--- /dev/null
+typedef long unsigned int size_t;
+typedef unsigned char __u_char;
+typedef unsigned short int __u_short;
+typedef unsigned int __u_int;
+typedef unsigned long int __u_long;
+typedef signed char __int8_t;
+typedef unsigned char __uint8_t;
+typedef signed short int __int16_t;
+typedef unsigned short int __uint16_t;
+typedef signed int __int32_t;
+typedef unsigned int __uint32_t;
+typedef signed long int __int64_t;
+typedef unsigned long int __uint64_t;
+typedef long int __quad_t;
+typedef unsigned long int __u_quad_t;
+typedef unsigned long int __dev_t;
+typedef unsigned int __uid_t;
+typedef unsigned int __gid_t;
+typedef unsigned long int __ino_t;
+typedef unsigned long int __ino64_t;
+typedef unsigned int __mode_t;
+typedef unsigned long int __nlink_t;
+typedef long int __off_t;
+typedef long int __off64_t;
+typedef int __pid_t;
+typedef struct { int __val[2]; } __fsid_t;
+typedef long int __clock_t;
+typedef unsigned long int __rlim_t;
+typedef unsigned long int __rlim64_t;
+typedef unsigned int __id_t;
+typedef long int __time_t;
+typedef unsigned int __useconds_t;
+typedef long int __suseconds_t;
+typedef int __daddr_t;
+typedef long int __swblk_t;
+typedef int __key_t;
+typedef int __clockid_t;
+typedef void * __timer_t;
+typedef long int __blksize_t;
+typedef long int __blkcnt_t;
+typedef long int __blkcnt64_t;
+typedef unsigned long int __fsblkcnt_t;
+typedef unsigned long int __fsblkcnt64_t;
+typedef unsigned long int __fsfilcnt_t;
+typedef unsigned long int __fsfilcnt64_t;
+typedef long int __ssize_t;
+typedef __off64_t __loff_t;
+typedef __quad_t *__qaddr_t;
+typedef char *__caddr_t;
+typedef long int __intptr_t;
+typedef unsigned int __socklen_t;
+struct _IO_FILE;
+typedef struct _IO_FILE FILE;
+typedef struct _IO_FILE __FILE;
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+} __mbstate_t;
+typedef struct
+{
+ __off_t __pos;
+ __mbstate_t __state;
+} _G_fpos_t;
+typedef struct
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+} _G_fpos64_t;
+typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
+typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
+typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
+typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
+typedef __builtin_va_list __gnuc_va_list;
+struct _IO_jump_t; struct _IO_FILE;
+typedef void _IO_lock_t;
+struct _IO_marker {
+ struct _IO_marker *_next;
+ struct _IO_FILE *_sbuf;
+ int _pos;
+};
+enum __codecvt_result
+{
+ __codecvt_ok,
+ __codecvt_partial,
+ __codecvt_error,
+ __codecvt_noconv
+};
+struct _IO_FILE {
+ int _flags;
+ char* _IO_read_ptr;
+ char* _IO_read_end;
+ char* _IO_read_base;
+ char* _IO_write_base;
+ char* _IO_write_ptr;
+ char* _IO_write_end;
+ char* _IO_buf_base;
+ char* _IO_buf_end;
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+ struct _IO_marker *_markers;
+ struct _IO_FILE *_chain;
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+ _IO_lock_t *_lock;
+ __off64_t _offset;
+ void *__pad1;
+ void *__pad2;
+ void *__pad3;
+ void *__pad4;
+ size_t __pad5;
+ int _mode;
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+typedef struct _IO_FILE _IO_FILE;
+struct _IO_FILE_plus;
+extern struct _IO_FILE_plus _IO_2_1_stdin_;
+extern struct _IO_FILE_plus _IO_2_1_stdout_;
+extern struct _IO_FILE_plus _IO_2_1_stderr_;
+typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
+typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
+ size_t __n);
+typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
+typedef int __io_close_fn (void *__cookie);
+extern int __underflow (_IO_FILE *);
+extern int __uflow (_IO_FILE *);
+extern int __overflow (_IO_FILE *, int);
+extern int _IO_getc (_IO_FILE *__fp);
+extern int _IO_putc (int __c, _IO_FILE *__fp);
+extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
+extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
+extern int _IO_peekc_locked (_IO_FILE *__fp);
+extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
+extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
+extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
+extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
+ __gnuc_va_list, int *__restrict);
+extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
+ __gnuc_va_list);
+extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
+extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
+extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
+extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
+extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
+typedef _G_fpos_t fpos_t;
+extern struct _IO_FILE *stdin;
+extern struct _IO_FILE *stdout;
+extern struct _IO_FILE *stderr;
+extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
+extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
+extern int renameat (int __oldfd, __const char *__old, int __newfd,
+ __const char *__new) __attribute__ ((__nothrow__));
+extern FILE *tmpfile (void) ;
+extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ;
+extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ;
+extern char *tempnam (__const char *__dir, __const char *__pfx)
+ __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
+extern int fclose (FILE *__stream);
+extern int fflush (FILE *__stream);
+extern int fflush_unlocked (FILE *__stream);
+extern FILE *fopen (__const char *__restrict __filename,
+ __const char *__restrict __modes) ;
+extern FILE *freopen (__const char *__restrict __filename,
+ __const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ;
+extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
+ __attribute__ ((__nothrow__)) ;
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) ;
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__));
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__));
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
+extern int fprintf (FILE *__restrict __stream,
+ __const char *__restrict __format, ...);
+extern int printf (__const char *__restrict __format, ...);
+extern int sprintf (char *__restrict __s,
+ __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
+ __gnuc_va_list __arg);
+extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
+extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ __const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ __const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+extern int vdprintf (int __fd, __const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+extern int fscanf (FILE *__restrict __stream,
+ __const char *__restrict __format, ...) ;
+extern int scanf (__const char *__restrict __format, ...) ;
+extern int sscanf (__const char *__restrict __s,
+ __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") ;
+extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") ;
+extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__));
+extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+extern int vsscanf (__const char *__restrict __s,
+ __const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf")
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+extern int fgetc (FILE *__stream);
+extern int getc (FILE *__stream);
+extern int getchar (void);
+extern int getc_unlocked (FILE *__stream);
+extern int getchar_unlocked (void);
+extern int fgetc_unlocked (FILE *__stream);
+extern int fputc (int __c, FILE *__stream);
+extern int putc (int __c, FILE *__stream);
+extern int putchar (int __c);
+extern int fputc_unlocked (int __c, FILE *__stream);
+extern int putc_unlocked (int __c, FILE *__stream);
+extern int putchar_unlocked (int __c);
+extern int getw (FILE *__stream);
+extern int putw (int __w, FILE *__stream);
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ ;
+extern char *gets (char *__s) ;
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
+extern int puts (__const char *__s);
+extern int ungetc (int __c, FILE *__stream);
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s) ;
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+extern int fseek (FILE *__stream, long int __off, int __whence);
+extern long int ftell (FILE *__stream) ;
+extern void rewind (FILE *__stream);
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+extern __off_t ftello (FILE *__stream) ;
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
+extern void perror (__const char *__s);
+extern int sys_nerr;
+extern __const char *__const sys_errlist[];
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
+extern FILE *popen (__const char *__command, __const char *__modes) ;
+extern int pclose (FILE *__stream);
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
+typedef long int __jmp_buf[8];
+typedef int __sig_atomic_t;
+typedef struct
+ {
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+ } __sigset_t;
+struct __jmp_buf_tag
+ {
+ __jmp_buf __jmpbuf;
+ int __mask_was_saved;
+ __sigset_t __saved_mask;
+ };
+typedef struct __jmp_buf_tag jmp_buf[1];
+extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__));
+extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__));
+extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__));
+extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
+ __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
+extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
+ __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
+typedef struct __jmp_buf_tag sigjmp_buf[1];
+extern void siglongjmp (sigjmp_buf __env, int __val)
+ __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
+extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+typedef int wchar_t;
+typedef struct
+ {
+ int quot;
+ int rem;
+ } div_t;
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ } ldiv_t;
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ } lldiv_t;
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;
+extern double atof (__const char *__nptr)
+ __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+extern int atoi (__const char *__nptr)
+ __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+extern long int atol (__const char *__nptr)
+ __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+__extension__ extern long long int atoll (__const char *__nptr)
+ __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+extern double strtod (__const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern float strtof (__const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern long double strtold (__const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern long int strtol (__const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern unsigned long int strtoul (__const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+__extension__
+extern long long int strtoq (__const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+__extension__
+extern unsigned long long int strtouq (__const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+__extension__
+extern long long int strtoll (__const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+__extension__
+extern unsigned long long int strtoull (__const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;
+extern long int a64l (__const char *__s)
+ __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+typedef __u_char u_char;
+typedef __u_short u_short;
+typedef __u_int u_int;
+typedef __u_long u_long;
+typedef __quad_t quad_t;
+typedef __u_quad_t u_quad_t;
+typedef __fsid_t fsid_t;
+typedef __loff_t loff_t;
+typedef __ino_t ino_t;
+typedef __dev_t dev_t;
+typedef __gid_t gid_t;
+typedef __mode_t mode_t;
+typedef __nlink_t nlink_t;
+typedef __uid_t uid_t;
+typedef __off_t off_t;
+typedef __pid_t pid_t;
+typedef __id_t id_t;
+typedef __ssize_t ssize_t;
+typedef __daddr_t daddr_t;
+typedef __caddr_t caddr_t;
+typedef __key_t key_t;
+typedef __time_t time_t;
+typedef __clockid_t clockid_t;
+typedef __timer_t timer_t;
+typedef unsigned long int ulong;
+typedef unsigned short int ushort;
+typedef unsigned int uint;
+typedef int int8_t __attribute__ ((__mode__ (__QI__)));
+typedef int int16_t __attribute__ ((__mode__ (__HI__)));
+typedef int int32_t __attribute__ ((__mode__ (__SI__)));
+typedef int int64_t __attribute__ ((__mode__ (__DI__)));
+typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
+typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
+typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
+typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+typedef __sigset_t sigset_t;
+struct timespec
+ {
+ __time_t tv_sec;
+ long int tv_nsec;
+ };
+struct timeval
+ {
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+ };
+typedef __suseconds_t suseconds_t;
+typedef long int __fd_mask;
+typedef struct
+ {
+ __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];
+ } fd_set;
+typedef __fd_mask fd_mask;
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+__extension__
+extern unsigned int gnu_dev_major (unsigned long long int __dev)
+ __attribute__ ((__nothrow__));
+__extension__
+extern unsigned int gnu_dev_minor (unsigned long long int __dev)
+ __attribute__ ((__nothrow__));
+__extension__
+extern unsigned long long int gnu_dev_makedev (unsigned int __major,
+ unsigned int __minor)
+ __attribute__ ((__nothrow__));
+typedef __blkcnt_t blkcnt_t;
+typedef __fsblkcnt_t fsblkcnt_t;
+typedef __fsfilcnt_t fsfilcnt_t;
+typedef unsigned long int pthread_t;
+typedef union
+{
+ char __size[56];
+ long int __align;
+} pthread_attr_t;
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+} __pthread_list_t;
+typedef union
+{
+ struct __pthread_mutex_s
+ {
+ int __lock;
+ unsigned int __count;
+ int __owner;
+ unsigned int __nusers;
+ int __kind;
+ int __spins;
+ __pthread_list_t __list;
+ } __data;
+ char __size[40];
+ long int __align;
+} pthread_mutex_t;
+typedef union
+{
+ char __size[4];
+ int __align;
+} pthread_mutexattr_t;
+typedef union
+{
+ struct
+ {
+ int __lock;
+ unsigned int __futex;
+ __extension__ unsigned long long int __total_seq;
+ __extension__ unsigned long long int __wakeup_seq;
+ __extension__ unsigned long long int __woken_seq;
+ void *__mutex;
+ unsigned int __nwaiters;
+ unsigned int __broadcast_seq;
+ } __data;
+ char __size[48];
+ __extension__ long long int __align;
+} pthread_cond_t;
+typedef union
+{
+ char __size[4];
+ int __align;
+} pthread_condattr_t;
+typedef unsigned int pthread_key_t;
+typedef int pthread_once_t;
+typedef union
+{
+ struct
+ {
+ int __lock;
+ unsigned int __nr_readers;
+ unsigned int __readers_wakeup;
+ unsigned int __writer_wakeup;
+ unsigned int __nr_readers_queued;
+ unsigned int __nr_writers_queued;
+ int __writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ unsigned int __flags;
+ } __data;
+ char __size[56];
+ long int __align;
+} pthread_rwlock_t;
+typedef union
+{
+ char __size[8];
+ long int __align;
+} pthread_rwlockattr_t;
+typedef volatile int pthread_spinlock_t;
+typedef union
+{
+ char __size[32];
+ long int __align;
+} pthread_barrier_t;
+typedef union
+{
+ char __size[4];
+ int __align;
+} pthread_barrierattr_t;
+extern long int random (void) __attribute__ ((__nothrow__));
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int rand (void) __attribute__ ((__nothrow__));
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
+extern double drand48 (void) __attribute__ ((__nothrow__));
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern long int lrand48 (void) __attribute__ ((__nothrow__));
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern long int mrand48 (void) __attribute__ ((__nothrow__));
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ unsigned long long int __a;
+ };
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
+extern void free (void *__ptr) __attribute__ ((__nothrow__));
+extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
+extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
+extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern char *__secure_getenv (__const char *__name)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int setenv (__const char *__name, __const char *__value, int __replace)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
+extern int clearenv (void) __attribute__ ((__nothrow__));
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int system (__const char *__command) ;
+extern char *realpath (__const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__)) ;
+typedef int (*__compar_fn_t) (__const void *, __const void *);
+extern void *bsearch (__const void *__key, __const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
+extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;
+extern int mbtowc (wchar_t *__restrict __pwc,
+ __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
+extern size_t wcstombs (char *__restrict __s,
+ __const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__));
+extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int posix_openpt (int __oflag) ;
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+typedef float float_t;
+typedef double double_t;
+extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__));
+extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__));
+extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__));
+extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__));
+extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__));
+extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__));
+extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__));
+extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__));
+extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__));
+extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__));
+extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__));
+extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__));
+extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__));
+extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__));
+extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__));
+extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__));
+extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__));
+extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__));
+extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__));
+extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__));
+extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__));
+extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__));
+extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__));
+extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__));
+extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__));
+extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__));
+extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__));
+extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__));
+extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__));
+extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__));
+extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__));
+extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__));
+extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__));
+extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__));
+extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__));
+extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__));
+extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__));
+extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__));
+extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__));
+extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__));
+extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__));
+extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__));
+extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__));
+extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__));
+extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__));
+extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__));
+extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__));
+extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__));
+extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__));
+extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__));
+extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__));
+extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__));
+extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__));
+extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__));
+extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__));
+extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__));
+extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__));
+extern int __fpclassify (double __value) __attribute__ ((__nothrow__))
+ __attribute__ ((__const__));
+extern int __signbit (double __value) __attribute__ ((__nothrow__))
+ __attribute__ ((__const__));
+extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__));
+extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__));
+extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__));
+extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__));
+extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__));
+extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__));
+extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__));
+extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__));
+extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__));
+extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__));
+extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__));
+extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__));
+extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__));
+extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__));
+extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__));
+extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__));
+extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__));
+extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__));
+extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__));
+extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__));
+extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__));
+extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__));
+extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__));
+extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__));
+extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__));
+extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__));
+extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__));
+extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
+extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__));
+extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__));
+extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__));
+extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__));
+extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__));
+extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__));
+extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__));
+extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__));
+extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__));
+extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__));
+extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__));
+extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__));
+extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__));
+extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__));
+extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__));
+extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__));
+extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__));
+extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__));
+extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__));
+extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__));
+extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__));
+extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__));
+extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__));
+extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__));
+extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__));
+extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__));
+extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__));
+extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__));
+extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__));
+extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__));
+extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__));
+extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__))
+ __attribute__ ((__const__));
+extern int __signbitf (float __value) __attribute__ ((__nothrow__))
+ __attribute__ ((__const__));
+extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__));
+extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__));
+extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__));
+extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__));
+extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__));
+extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__));
+extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__));
+extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__));
+extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__));
+extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__));
+extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__));
+extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__));
+extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__));
+extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__));
+extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__));
+extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__));
+extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__));
+extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__));
+extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__));
+extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__));
+extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__));
+extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__));
+extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__));
+extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__));
+extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__));
+extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__));
+extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__));
+extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__));
+extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__));
+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__));
+extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__));
+extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__));
+extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__));
+extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__));
+extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__));
+extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__));
+extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__));
+extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__));
+extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__));
+extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__));
+extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__));
+extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__));
+extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__));
+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__));
+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__));
+extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__));
+extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__));
+extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__));
+extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__));
+extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+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__));
+extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__));
+extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__));
+extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__));
+extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__));
+extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__));
+extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__))
+ __attribute__ ((__const__));
+extern int __signbitl (long double __value) __attribute__ ((__nothrow__))
+ __attribute__ ((__const__));
+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__));
+extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__));
+extern int signgam;
+enum
+ {
+ FP_NAN,
+ FP_INFINITE,
+ FP_ZERO,
+ FP_SUBNORMAL,
+ FP_NORMAL
+ };
+typedef enum
+{
+ _IEEE_ = -1,
+ _SVID_,
+ _XOPEN_,
+ _POSIX_,
+ _ISOC_
+} _LIB_VERSION_TYPE;
+extern _LIB_VERSION_TYPE _LIB_VERSION;
+struct exception
+ {
+ int type;
+ char *name;
+ double arg1;
+ double arg2;
+ double retval;
+ };
+extern int matherr (struct exception *__exc);
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+extern __const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const));
+extern __const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const));
+extern __const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const));
+extern int isalnum (int) __attribute__ ((__nothrow__));
+extern int isalpha (int) __attribute__ ((__nothrow__));
+extern int iscntrl (int) __attribute__ ((__nothrow__));
+extern int isdigit (int) __attribute__ ((__nothrow__));
+extern int islower (int) __attribute__ ((__nothrow__));
+extern int isgraph (int) __attribute__ ((__nothrow__));
+extern int isprint (int) __attribute__ ((__nothrow__));
+extern int ispunct (int) __attribute__ ((__nothrow__));
+extern int isspace (int) __attribute__ ((__nothrow__));
+extern int isupper (int) __attribute__ ((__nothrow__));
+extern int isxdigit (int) __attribute__ ((__nothrow__));
+extern int tolower (int __c) __attribute__ ((__nothrow__));
+extern int toupper (int __c) __attribute__ ((__nothrow__));
+extern int isblank (int) __attribute__ ((__nothrow__));
+extern int isascii (int __c) __attribute__ ((__nothrow__));
+extern int toascii (int __c) __attribute__ ((__nothrow__));
+extern int _toupper (int) __attribute__ ((__nothrow__));
+extern int _tolower (int) __attribute__ ((__nothrow__));
+typedef struct __locale_struct
+{
+ struct locale_data *__locales[13];
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+ const char *__names[13];
+} *__locale_t;
+typedef __locale_t locale_t;
+extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
+extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
+extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
+extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
+extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
+typedef __useconds_t useconds_t;
+typedef __intptr_t intptr_t;
+typedef __socklen_t socklen_t;
+extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
+extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
+extern int close (int __fd);
+extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
+extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
+extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ;
+extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
+extern unsigned int sleep (unsigned int __seconds);
+extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
+ __attribute__ ((__nothrow__));
+extern int usleep (__useconds_t __useconds);
+extern int pause (void);
+extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ;
+extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
+ __gid_t __group, int __flag)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
+extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ;
+extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ;
+extern char *getwd (char *__buf)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
+extern int dup (int __fd) __attribute__ ((__nothrow__)) ;
+extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
+extern char **__environ;
+extern int execve (__const char *__path, char *__const __argv[],
+ char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
+ __attribute__ ((__nothrow__));
+extern int execv (__const char *__path, char *__const __argv[])
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int execle (__const char *__path, __const char *__arg, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int execl (__const char *__path, __const char *__arg, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int execvp (__const char *__file, char *__const __argv[])
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int execlp (__const char *__file, __const char *__arg, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int nice (int __inc) __attribute__ ((__nothrow__)) ;
+extern void _exit (int __status) __attribute__ ((__noreturn__));
+enum
+ {
+ _PC_LINK_MAX,
+ _PC_MAX_CANON,
+ _PC_MAX_INPUT,
+ _PC_NAME_MAX,
+ _PC_PATH_MAX,
+ _PC_PIPE_BUF,
+ _PC_CHOWN_RESTRICTED,
+ _PC_NO_TRUNC,
+ _PC_VDISABLE,
+ _PC_SYNC_IO,
+ _PC_ASYNC_IO,
+ _PC_PRIO_IO,
+ _PC_SOCK_MAXBUF,
+ _PC_FILESIZEBITS,
+ _PC_REC_INCR_XFER_SIZE,
+ _PC_REC_MAX_XFER_SIZE,
+ _PC_REC_MIN_XFER_SIZE,
+ _PC_REC_XFER_ALIGN,
+ _PC_ALLOC_SIZE_MIN,
+ _PC_SYMLINK_MAX,
+ _PC_2_SYMLINKS
+ };
+enum
+ {
+ _SC_ARG_MAX,
+ _SC_CHILD_MAX,
+ _SC_CLK_TCK,
+ _SC_NGROUPS_MAX,
+ _SC_OPEN_MAX,
+ _SC_STREAM_MAX,
+ _SC_TZNAME_MAX,
+ _SC_JOB_CONTROL,
+ _SC_SAVED_IDS,
+ _SC_REALTIME_SIGNALS,
+ _SC_PRIORITY_SCHEDULING,
+ _SC_TIMERS,
+ _SC_ASYNCHRONOUS_IO,
+ _SC_PRIORITIZED_IO,
+ _SC_SYNCHRONIZED_IO,
+ _SC_FSYNC,
+ _SC_MAPPED_FILES,
+ _SC_MEMLOCK,
+ _SC_MEMLOCK_RANGE,
+ _SC_MEMORY_PROTECTION,
+ _SC_MESSAGE_PASSING,
+ _SC_SEMAPHORES,
+ _SC_SHARED_MEMORY_OBJECTS,
+ _SC_AIO_LISTIO_MAX,
+ _SC_AIO_MAX,
+ _SC_AIO_PRIO_DELTA_MAX,
+ _SC_DELAYTIMER_MAX,
+ _SC_MQ_OPEN_MAX,
+ _SC_MQ_PRIO_MAX,
+ _SC_VERSION,
+ _SC_PAGESIZE,
+ _SC_RTSIG_MAX,
+ _SC_SEM_NSEMS_MAX,
+ _SC_SEM_VALUE_MAX,
+ _SC_SIGQUEUE_MAX,
+ _SC_TIMER_MAX,
+ _SC_BC_BASE_MAX,
+ _SC_BC_DIM_MAX,
+ _SC_BC_SCALE_MAX,
+ _SC_BC_STRING_MAX,
+ _SC_COLL_WEIGHTS_MAX,
+ _SC_EQUIV_CLASS_MAX,
+ _SC_EXPR_NEST_MAX,
+ _SC_LINE_MAX,
+ _SC_RE_DUP_MAX,
+ _SC_CHARCLASS_NAME_MAX,
+ _SC_2_VERSION,
+ _SC_2_C_BIND,
+ _SC_2_C_DEV,
+ _SC_2_FORT_DEV,
+ _SC_2_FORT_RUN,
+ _SC_2_SW_DEV,
+ _SC_2_LOCALEDEF,
+ _SC_PII,
+ _SC_PII_XTI,
+ _SC_PII_SOCKET,
+ _SC_PII_INTERNET,
+ _SC_PII_OSI,
+ _SC_POLL,
+ _SC_SELECT,
+ _SC_UIO_MAXIOV,
+ _SC_IOV_MAX = _SC_UIO_MAXIOV,
+ _SC_PII_INTERNET_STREAM,
+ _SC_PII_INTERNET_DGRAM,
+ _SC_PII_OSI_COTS,
+ _SC_PII_OSI_CLTS,
+ _SC_PII_OSI_M,
+ _SC_T_IOV_MAX,
+ _SC_THREADS,
+ _SC_THREAD_SAFE_FUNCTIONS,
+ _SC_GETGR_R_SIZE_MAX,
+ _SC_GETPW_R_SIZE_MAX,
+ _SC_LOGIN_NAME_MAX,
+ _SC_TTY_NAME_MAX,
+ _SC_THREAD_DESTRUCTOR_ITERATIONS,
+ _SC_THREAD_KEYS_MAX,
+ _SC_THREAD_STACK_MIN,
+ _SC_THREAD_THREADS_MAX,
+ _SC_THREAD_ATTR_STACKADDR,
+ _SC_THREAD_ATTR_STACKSIZE,
+ _SC_THREAD_PRIORITY_SCHEDULING,
+ _SC_THREAD_PRIO_INHERIT,
+ _SC_THREAD_PRIO_PROTECT,
+ _SC_THREAD_PROCESS_SHARED,
+ _SC_NPROCESSORS_CONF,
+ _SC_NPROCESSORS_ONLN,
+ _SC_PHYS_PAGES,
+ _SC_AVPHYS_PAGES,
+ _SC_ATEXIT_MAX,
+ _SC_PASS_MAX,
+ _SC_XOPEN_VERSION,
+ _SC_XOPEN_XCU_VERSION,
+ _SC_XOPEN_UNIX,
+ _SC_XOPEN_CRYPT,
+ _SC_XOPEN_ENH_I18N,
+ _SC_XOPEN_SHM,
+ _SC_2_CHAR_TERM,
+ _SC_2_C_VERSION,
+ _SC_2_UPE,
+ _SC_XOPEN_XPG2,
+ _SC_XOPEN_XPG3,
+ _SC_XOPEN_XPG4,
+ _SC_CHAR_BIT,
+ _SC_CHAR_MAX,
+ _SC_CHAR_MIN,
+ _SC_INT_MAX,
+ _SC_INT_MIN,
+ _SC_LONG_BIT,
+ _SC_WORD_BIT,
+ _SC_MB_LEN_MAX,
+ _SC_NZERO,
+ _SC_SSIZE_MAX,
+ _SC_SCHAR_MAX,
+ _SC_SCHAR_MIN,
+ _SC_SHRT_MAX,
+ _SC_SHRT_MIN,
+ _SC_UCHAR_MAX,
+ _SC_UINT_MAX,
+ _SC_ULONG_MAX,
+ _SC_USHRT_MAX,
+ _SC_NL_ARGMAX,
+ _SC_NL_LANGMAX,
+ _SC_NL_MSGMAX,
+ _SC_NL_NMAX,
+ _SC_NL_SETMAX,
+ _SC_NL_TEXTMAX,
+ _SC_XBS5_ILP32_OFF32,
+ _SC_XBS5_ILP32_OFFBIG,
+ _SC_XBS5_LP64_OFF64,
+ _SC_XBS5_LPBIG_OFFBIG,
+ _SC_XOPEN_LEGACY,
+ _SC_XOPEN_REALTIME,
+ _SC_XOPEN_REALTIME_THREADS,
+ _SC_ADVISORY_INFO,
+ _SC_BARRIERS,
+ _SC_BASE,
+ _SC_C_LANG_SUPPORT,
+ _SC_C_LANG_SUPPORT_R,
+ _SC_CLOCK_SELECTION,
+ _SC_CPUTIME,
+ _SC_THREAD_CPUTIME,
+ _SC_DEVICE_IO,
+ _SC_DEVICE_SPECIFIC,
+ _SC_DEVICE_SPECIFIC_R,
+ _SC_FD_MGMT,
+ _SC_FIFO,
+ _SC_PIPE,
+ _SC_FILE_ATTRIBUTES,
+ _SC_FILE_LOCKING,
+ _SC_FILE_SYSTEM,
+ _SC_MONOTONIC_CLOCK,
+ _SC_MULTI_PROCESS,
+ _SC_SINGLE_PROCESS,
+ _SC_NETWORKING,
+ _SC_READER_WRITER_LOCKS,
+ _SC_SPIN_LOCKS,
+ _SC_REGEXP,
+ _SC_REGEX_VERSION,
+ _SC_SHELL,
+ _SC_SIGNALS,
+ _SC_SPAWN,
+ _SC_SPORADIC_SERVER,
+ _SC_THREAD_SPORADIC_SERVER,
+ _SC_SYSTEM_DATABASE,
+ _SC_SYSTEM_DATABASE_R,
+ _SC_TIMEOUTS,
+ _SC_TYPED_MEMORY_OBJECTS,
+ _SC_USER_GROUPS,
+ _SC_USER_GROUPS_R,
+ _SC_2_PBS,
+ _SC_2_PBS_ACCOUNTING,
+ _SC_2_PBS_LOCATE,
+ _SC_2_PBS_MESSAGE,
+ _SC_2_PBS_TRACK,
+ _SC_SYMLOOP_MAX,
+ _SC_STREAMS,
+ _SC_2_PBS_CHECKPOINT,
+ _SC_V6_ILP32_OFF32,
+ _SC_V6_ILP32_OFFBIG,
+ _SC_V6_LP64_OFF64,
+ _SC_V6_LPBIG_OFFBIG,
+ _SC_HOST_NAME_MAX,
+ _SC_TRACE,
+ _SC_TRACE_EVENT_FILTER,
+ _SC_TRACE_INHERIT,
+ _SC_TRACE_LOG,
+ _SC_LEVEL1_ICACHE_SIZE,
+ _SC_LEVEL1_ICACHE_ASSOC,
+ _SC_LEVEL1_ICACHE_LINESIZE,
+ _SC_LEVEL1_DCACHE_SIZE,
+ _SC_LEVEL1_DCACHE_ASSOC,
+ _SC_LEVEL1_DCACHE_LINESIZE,
+ _SC_LEVEL2_CACHE_SIZE,
+ _SC_LEVEL2_CACHE_ASSOC,
+ _SC_LEVEL2_CACHE_LINESIZE,
+ _SC_LEVEL3_CACHE_SIZE,
+ _SC_LEVEL3_CACHE_ASSOC,
+ _SC_LEVEL3_CACHE_LINESIZE,
+ _SC_LEVEL4_CACHE_SIZE,
+ _SC_LEVEL4_CACHE_ASSOC,
+ _SC_LEVEL4_CACHE_LINESIZE,
+ _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
+ _SC_RAW_SOCKETS,
+ _SC_V7_ILP32_OFF32,
+ _SC_V7_ILP32_OFFBIG,
+ _SC_V7_LP64_OFF64,
+ _SC_V7_LPBIG_OFFBIG,
+ _SC_SS_REPL_MAX,
+ _SC_TRACE_EVENT_NAME_MAX,
+ _SC_TRACE_NAME_MAX,
+ _SC_TRACE_SYS_MAX,
+ _SC_TRACE_USER_EVENT_MAX,
+ _SC_XOPEN_STREAMS,
+ _SC_THREAD_ROBUST_PRIO_INHERIT,
+ _SC_THREAD_ROBUST_PRIO_PROTECT,
+ };
+enum
+ {
+ _CS_PATH,
+ _CS_V6_WIDTH_RESTRICTED_ENVS,
+ _CS_GNU_LIBC_VERSION,
+ _CS_GNU_LIBPTHREAD_VERSION,
+ _CS_V5_WIDTH_RESTRICTED_ENVS,
+ _CS_V7_WIDTH_RESTRICTED_ENVS,
+ _CS_LFS_CFLAGS = 1000,
+ _CS_LFS_LDFLAGS,
+ _CS_LFS_LIBS,
+ _CS_LFS_LINTFLAGS,
+ _CS_LFS64_CFLAGS,
+ _CS_LFS64_LDFLAGS,
+ _CS_LFS64_LIBS,
+ _CS_LFS64_LINTFLAGS,
+ _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
+ _CS_XBS5_ILP32_OFF32_LDFLAGS,
+ _CS_XBS5_ILP32_OFF32_LIBS,
+ _CS_XBS5_ILP32_OFF32_LINTFLAGS,
+ _CS_XBS5_ILP32_OFFBIG_CFLAGS,
+ _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
+ _CS_XBS5_ILP32_OFFBIG_LIBS,
+ _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
+ _CS_XBS5_LP64_OFF64_CFLAGS,
+ _CS_XBS5_LP64_OFF64_LDFLAGS,
+ _CS_XBS5_LP64_OFF64_LIBS,
+ _CS_XBS5_LP64_OFF64_LINTFLAGS,
+ _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
+ _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
+ _CS_XBS5_LPBIG_OFFBIG_LIBS,
+ _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
+ _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+ _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+ _CS_POSIX_V6_ILP32_OFF32_LIBS,
+ _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+ _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+ _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+ _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+ _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+ _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+ _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+ _CS_POSIX_V6_LP64_OFF64_LIBS,
+ _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+ _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+ _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+ _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+ _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
+ _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
+ _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
+ _CS_POSIX_V7_ILP32_OFF32_LIBS,
+ _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
+ _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
+ _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
+ _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
+ _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
+ _CS_POSIX_V7_LP64_OFF64_CFLAGS,
+ _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
+ _CS_POSIX_V7_LP64_OFF64_LIBS,
+ _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
+ _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
+ _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
+ _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
+ _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+ };
+extern long int pathconf (__const char *__path, int __name)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
+extern long int sysconf (int __name) __attribute__ ((__nothrow__));
+extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
+extern __pid_t getpid (void) __attribute__ ((__nothrow__));
+extern __pid_t getppid (void) __attribute__ ((__nothrow__));
+extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
+extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
+extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
+extern int setpgrp (void) __attribute__ ((__nothrow__));
+extern __pid_t setsid (void) __attribute__ ((__nothrow__));
+extern __uid_t getuid (void) __attribute__ ((__nothrow__));
+extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
+extern __gid_t getgid (void) __attribute__ ((__nothrow__));
+extern __gid_t getegid (void) __attribute__ ((__nothrow__));
+extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ;
+extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
+extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
+extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
+extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
+extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
+extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
+extern __pid_t fork (void) __attribute__ ((__nothrow__));
+extern __pid_t vfork (void) __attribute__ ((__nothrow__));
+extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
+extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
+extern int isatty (int __fd) __attribute__ ((__nothrow__));
+extern int ttyslot (void) __attribute__ ((__nothrow__));
+extern int link (__const char *__from, __const char *__to)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
+extern int linkat (int __fromfd, __const char *__from, int __tofd,
+ __const char *__to, int __flags)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ;
+extern int symlink (__const char *__from, __const char *__to)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
+extern ssize_t readlink (__const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
+extern int symlinkat (__const char *__from, int __tofd,
+ __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
+extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ;
+extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int unlinkat (int __fd, __const char *__name, int __flag)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
+extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
+extern char *getlogin (void);
+extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
+extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern char *optarg;
+extern int optind;
+extern int opterr;
+extern int optopt;
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+ __attribute__ ((__nothrow__));
+extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int sethostname (__const char *__name, size_t __len)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ;
+extern int getdomainname (char *__name, size_t __len)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int setdomainname (__const char *__name, size_t __len)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int vhangup (void) __attribute__ ((__nothrow__));
+extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int profil (unsigned short int *__sample_buffer, size_t __size,
+ size_t __offset, unsigned int __scale)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int acct (__const char *__name) __attribute__ ((__nothrow__));
+extern char *getusershell (void) __attribute__ ((__nothrow__));
+extern void endusershell (void) __attribute__ ((__nothrow__));
+extern void setusershell (void) __attribute__ ((__nothrow__));
+extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ;
+extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
+extern int fsync (int __fd);
+extern long int gethostid (void);
+extern void sync (void) __attribute__ ((__nothrow__));
+extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int getdtablesize (void) __attribute__ ((__nothrow__));
+extern int truncate (__const char *__file, __off_t __length)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
+extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ;
+extern int brk (void *__addr) __attribute__ ((__nothrow__)) ;
+extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
+extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
+extern int lockf (int __fd, int __cmd, __off_t __len) ;
+extern int fdatasync (int __fildes);
+extern int __sigismember (__const __sigset_t *, int);
+extern int __sigaddset (__sigset_t *, int);
+extern int __sigdelset (__sigset_t *, int);
+typedef __sig_atomic_t sig_atomic_t;
+typedef union sigval
+ {
+ int sival_int;
+ void *sival_ptr;
+ } sigval_t;
+typedef struct siginfo
+ {
+ int si_signo;
+ int si_errno;
+ int si_code;
+ union
+ {
+ int _pad[((128 / sizeof (int)) - 4)];
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ } _kill;
+ struct
+ {
+ int si_tid;
+ int si_overrun;
+ sigval_t si_sigval;
+ } _timer;
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ sigval_t si_sigval;
+ } _rt;
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ int si_status;
+ __clock_t si_utime;
+ __clock_t si_stime;
+ } _sigchld;
+ struct
+ {
+ void *si_addr;
+ } _sigfault;
+ struct
+ {
+ long int si_band;
+ int si_fd;
+ } _sigpoll;
+ } _sifields;
+ } siginfo_t;
+enum
+{
+ SI_ASYNCNL = -60,
+ SI_TKILL = -6,
+ SI_SIGIO,
+ SI_ASYNCIO,
+ SI_MESGQ,
+ SI_TIMER,
+ SI_QUEUE,
+ SI_USER,
+ SI_KERNEL = 0x80
+};
+enum
+{
+ ILL_ILLOPC = 1,
+ ILL_ILLOPN,
+ ILL_ILLADR,
+ ILL_ILLTRP,
+ ILL_PRVOPC,
+ ILL_PRVREG,
+ ILL_COPROC,
+ ILL_BADSTK
+};
+enum
+{
+ FPE_INTDIV = 1,
+ FPE_INTOVF,
+ FPE_FLTDIV,
+ FPE_FLTOVF,
+ FPE_FLTUND,
+ FPE_FLTRES,
+ FPE_FLTINV,
+ FPE_FLTSUB
+};
+enum
+{
+ SEGV_MAPERR = 1,
+ SEGV_ACCERR
+};
+enum
+{
+ BUS_ADRALN = 1,
+ BUS_ADRERR,
+ BUS_OBJERR
+};
+enum
+{
+ TRAP_BRKPT = 1,
+ TRAP_TRACE
+};
+enum
+{
+ CLD_EXITED = 1,
+ CLD_KILLED,
+ CLD_DUMPED,
+ CLD_TRAPPED,
+ CLD_STOPPED,
+ CLD_CONTINUED
+};
+enum
+{
+ POLL_IN = 1,
+ POLL_OUT,
+ POLL_MSG,
+ POLL_ERR,
+ POLL_PRI,
+ POLL_HUP
+};
+typedef struct sigevent
+ {
+ sigval_t sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+ union
+ {
+ int _pad[((64 / sizeof (int)) - 4)];
+ __pid_t _tid;
+ struct
+ {
+ void (*_function) (sigval_t);
+ void *_attribute;
+ } _sigev_thread;
+ } _sigev_un;
+ } sigevent_t;
+enum
+{
+ SIGEV_SIGNAL = 0,
+ SIGEV_NONE,
+ SIGEV_THREAD,
+ SIGEV_THREAD_ID = 4
+};
+typedef void (*__sighandler_t) (int);
+extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__));
+extern __sighandler_t signal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__));
+extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__));
+extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__));
+extern int raise (int __sig) __attribute__ ((__nothrow__));
+extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__));
+extern int gsignal (int __sig) __attribute__ ((__nothrow__));
+extern void psignal (int __sig, __const char *__s);
+extern void psiginfo (__const siginfo_t *__pinfo, __const char *__s);
+extern int __sigpause (int __sig_or_mask, int __is_sig);
+extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
+extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
+extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
+typedef __sighandler_t sig_t;
+extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int sigismember (__const sigset_t *__set, int __signo)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+struct sigaction
+ {
+ union
+ {
+ __sighandler_t sa_handler;
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+ __sigset_t sa_mask;
+ int sa_flags;
+ void (*sa_restorer) (void);
+ };
+extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
+ sigset_t *__restrict __oset) __attribute__ ((__nothrow__));
+extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1)));
+extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
+ struct sigaction *__restrict __oact) __attribute__ ((__nothrow__));
+extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
+ __attribute__ ((__nonnull__ (1, 2)));
+extern int sigwaitinfo (__const sigset_t *__restrict __set,
+ siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));
+extern int sigtimedwait (__const sigset_t *__restrict __set,
+ siginfo_t *__restrict __info,
+ __const struct timespec *__restrict __timeout)
+ __attribute__ ((__nonnull__ (1)));
+extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
+ __attribute__ ((__nothrow__));
+extern __const char *__const _sys_siglist[65];
+extern __const char *__const sys_siglist[65];
+struct sigvec
+ {
+ __sighandler_t sv_handler;
+ int sv_mask;
+ int sv_flags;
+ };
+extern int sigvec (int __sig, __const struct sigvec *__vec,
+ struct sigvec *__ovec) __attribute__ ((__nothrow__));
+struct _fpreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+};
+struct _fpxreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+ unsigned short padding[3];
+};
+struct _xmmreg
+{
+ __uint32_t element[4];
+};
+struct _fpstate
+{
+ __uint16_t cwd;
+ __uint16_t swd;
+ __uint16_t ftw;
+ __uint16_t fop;
+ __uint64_t rip;
+ __uint64_t rdp;
+ __uint32_t mxcsr;
+ __uint32_t mxcr_mask;
+ struct _fpxreg _st[8];
+ struct _xmmreg _xmm[16];
+ __uint32_t padding[24];
+};
+struct sigcontext
+{
+ unsigned long r8;
+ unsigned long r9;
+ unsigned long r10;
+ unsigned long r11;
+ unsigned long r12;
+ unsigned long r13;
+ unsigned long r14;
+ unsigned long r15;
+ unsigned long rdi;
+ unsigned long rsi;
+ unsigned long rbp;
+ unsigned long rbx;
+ unsigned long rdx;
+ unsigned long rax;
+ unsigned long rcx;
+ unsigned long rsp;
+ unsigned long rip;
+ unsigned long eflags;
+ unsigned short cs;
+ unsigned short gs;
+ unsigned short fs;
+ unsigned short __pad0;
+ unsigned long err;
+ unsigned long trapno;
+ unsigned long oldmask;
+ unsigned long cr2;
+ struct _fpstate * fpstate;
+ unsigned long __reserved1 [8];
+};
+extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__));
+extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__));
+struct sigstack
+ {
+ void *ss_sp;
+ int ss_onstack;
+ };
+enum
+{
+ SS_ONSTACK = 1,
+ SS_DISABLE
+};
+typedef struct sigaltstack
+ {
+ void *ss_sp;
+ int ss_flags;
+ size_t ss_size;
+ } stack_t;
+extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
+ __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
+extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
+ struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__));
+extern int pthread_sigmask (int __how,
+ __const __sigset_t *__restrict __newmask,
+ __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__));
+extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__));
+extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__));
+extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__));
+struct stat
+ {
+ __dev_t st_dev;
+ __ino_t st_ino;
+ __nlink_t st_nlink;
+ __mode_t st_mode;
+ __uid_t st_uid;
+ __gid_t st_gid;
+ int __pad0;
+ __dev_t st_rdev;
+ __off_t st_size;
+ __blksize_t st_blksize;
+ __blkcnt_t st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ long int __unused[3];
+ };
+extern int stat (__const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int fstatat (int __fd, __const char *__restrict __file,
+ struct stat *__restrict __buf, int __flag)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
+extern int lstat (__const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+extern int chmod (__const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int lchmod (__const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__));
+extern int fchmodat (int __fd, __const char *__file, __mode_t __mode,
+ int __flag)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
+extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__));
+extern int mkdir (__const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
+ __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int mkfifo (__const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int utimensat (int __fd, __const char *__path,
+ __const struct timespec __times[2],
+ int __flags)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
+extern int futimens (int __fd, __const struct timespec __times[2]) __attribute__ ((__nothrow__));
+extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
+extern int __xstat (int __ver, __const char *__filename,
+ struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
+extern int __lxstat (int __ver, __const char *__filename,
+ struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
+extern int __fxstatat (int __ver, int __fildes, __const char *__filename,
+ struct stat *__stat_buf, int __flag)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
+extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
+ __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
+extern int __xmknodat (int __ver, int __fd, __const char *__path,
+ __mode_t __mode, __dev_t *__dev)
+ __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5)));
+typedef unsigned char uint8_t;
+typedef unsigned short int uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long int uint64_t;
+typedef signed char int_least8_t;
+typedef short int int_least16_t;
+typedef int int_least32_t;
+typedef long int int_least64_t;
+typedef unsigned char uint_least8_t;
+typedef unsigned short int uint_least16_t;
+typedef unsigned int uint_least32_t;
+typedef unsigned long int uint_least64_t;
+typedef signed char int_fast8_t;
+typedef long int int_fast16_t;
+typedef long int int_fast32_t;
+typedef long int int_fast64_t;
+typedef unsigned char uint_fast8_t;
+typedef unsigned long int uint_fast16_t;
+typedef unsigned long int uint_fast32_t;
+typedef unsigned long int uint_fast64_t;
+typedef unsigned long int uintptr_t;
+typedef long int intmax_t;
+typedef unsigned long int uintmax_t;
+typedef unsigned long int mp_limb_t;
+typedef long int mp_limb_signed_t;
+typedef struct
+{
+ int _mp_alloc;
+ int _mp_size;
+ mp_limb_t *_mp_d;
+} __mpz_struct;
+typedef __mpz_struct MP_INT;
+typedef __mpz_struct mpz_t[1];
+typedef mp_limb_t * mp_ptr;
+typedef const mp_limb_t * mp_srcptr;
+typedef long int mp_size_t;
+typedef long int mp_exp_t;
+typedef struct
+{
+ __mpz_struct _mp_num;
+ __mpz_struct _mp_den;
+} __mpq_struct;
+typedef __mpq_struct MP_RAT;
+typedef __mpq_struct mpq_t[1];
+typedef struct
+{
+ int _mp_prec;
+ int _mp_size;
+ mp_exp_t _mp_exp;
+ mp_limb_t *_mp_d;
+} __mpf_struct;
+typedef __mpf_struct mpf_t[1];
+typedef enum
+{
+ GMP_RAND_ALG_DEFAULT = 0,
+ GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT
+} gmp_randalg_t;
+typedef struct
+{
+ mpz_t _mp_seed;
+ gmp_randalg_t _mp_alg;
+ union {
+ void *_mp_lc;
+ } _mp_algdata;
+} __gmp_randstate_struct;
+typedef __gmp_randstate_struct gmp_randstate_t[1];
+typedef const __mpz_struct *mpz_srcptr;
+typedef __mpz_struct *mpz_ptr;
+typedef const __mpf_struct *mpf_srcptr;
+typedef __mpf_struct *mpf_ptr;
+typedef const __mpq_struct *mpq_srcptr;
+typedef __mpq_struct *mpq_ptr;
+ void __gmp_set_memory_functions (void *(*) (size_t), void *(*) (void *, size_t, size_t), void (*) (void *, size_t)) ;
+ void __gmp_get_memory_functions (void *(**) (size_t), void *(**) (void *, size_t, size_t), void (**) (void *, size_t)) ;
+ extern const int __gmp_bits_per_limb;
+ extern int __gmp_errno;
+ extern const char * const __gmp_version;
+ void __gmp_randinit (gmp_randstate_t, gmp_randalg_t, ...);
+ void __gmp_randinit_default (gmp_randstate_t);
+ void __gmp_randinit_lc_2exp (gmp_randstate_t, mpz_srcptr, unsigned long int, unsigned long int);
+ int __gmp_randinit_lc_2exp_size (gmp_randstate_t, unsigned long);
+ void __gmp_randinit_mt (gmp_randstate_t);
+ void __gmp_randinit_set (gmp_randstate_t, const __gmp_randstate_struct *);
+ void __gmp_randseed (gmp_randstate_t, mpz_srcptr);
+ void __gmp_randseed_ui (gmp_randstate_t, unsigned long int);
+ void __gmp_randclear (gmp_randstate_t);
+ unsigned long __gmp_urandomb_ui (gmp_randstate_t, unsigned long);
+ unsigned long __gmp_urandomm_ui (gmp_randstate_t, unsigned long);
+ int __gmp_asprintf (char **, const char *, ...);
+ int __gmp_fprintf (FILE *, const char *, ...);
+ int __gmp_printf (const char *, ...);
+ int __gmp_snprintf (char *, size_t, const char *, ...);
+ int __gmp_sprintf (char *, const char *, ...);
+ int __gmp_fscanf (FILE *, const char *, ...);
+ int __gmp_scanf (const char *, ...);
+ int __gmp_sscanf (const char *, const char *, ...);
+ void *__gmpz_realloc (mpz_ptr, mp_size_t);
+ void __gmpz_abs (mpz_ptr, mpz_srcptr);
+ void __gmpz_add (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_add_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_addmul (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_addmul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_and (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_array_init (mpz_ptr, mp_size_t, mp_size_t);
+ void __gmpz_bin_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_bin_uiui (mpz_ptr, unsigned long int, unsigned long int);
+ void __gmpz_cdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_cdiv_q_2exp (mpz_ptr, mpz_srcptr, unsigned long);
+ unsigned long int __gmpz_cdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_cdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
+ unsigned long int __gmpz_cdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_cdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_cdiv_r_2exp (mpz_ptr, mpz_srcptr, unsigned long);
+ unsigned long int __gmpz_cdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ unsigned long int __gmpz_cdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ void __gmpz_clear (mpz_ptr);
+ void __gmpz_clrbit (mpz_ptr, unsigned long int);
+ int __gmpz_cmp (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_cmp_d (mpz_srcptr, double) __attribute__ ((__pure__));
+ int __gmpz_cmp_si (mpz_srcptr, signed long int) __attribute__ ((__pure__));
+ int __gmpz_cmp_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ int __gmpz_cmpabs (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_cmpabs_d (mpz_srcptr, double) __attribute__ ((__pure__));
+ int __gmpz_cmpabs_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ void __gmpz_com (mpz_ptr, mpz_srcptr);
+ void __gmpz_combit (mpz_ptr, unsigned long int);
+ int __gmpz_congruent_p (mpz_srcptr, mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_congruent_2exp_p (mpz_srcptr, mpz_srcptr, unsigned long) __attribute__ ((__pure__));
+ int __gmpz_congruent_ui_p (mpz_srcptr, unsigned long, unsigned long) __attribute__ ((__pure__));
+ void __gmpz_divexact (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_divexact_ui (mpz_ptr, mpz_srcptr, unsigned long);
+ int __gmpz_divisible_p (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_divisible_ui_p (mpz_srcptr, unsigned long) __attribute__ ((__pure__));
+ int __gmpz_divisible_2exp_p (mpz_srcptr, unsigned long) __attribute__ ((__pure__));
+ void __gmpz_dump (mpz_srcptr);
+ void *__gmpz_export (void *, size_t *, int, size_t, int, size_t, mpz_srcptr);
+ void __gmpz_fac_ui (mpz_ptr, unsigned long int);
+ void __gmpz_fdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_fdiv_q_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
+ unsigned long int __gmpz_fdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_fdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
+ unsigned long int __gmpz_fdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_fdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_fdiv_r_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
+ unsigned long int __gmpz_fdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ unsigned long int __gmpz_fdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ void __gmpz_fib_ui (mpz_ptr, unsigned long int);
+ void __gmpz_fib2_ui (mpz_ptr, mpz_ptr, unsigned long int);
+ int __gmpz_fits_sint_p (mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_fits_slong_p (mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_fits_sshort_p (mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_fits_uint_p (mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_fits_ulong_p (mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_fits_ushort_p (mpz_srcptr) __attribute__ ((__pure__));
+ void __gmpz_gcd (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ unsigned long int __gmpz_gcd_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_gcdext (mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
+ double __gmpz_get_d (mpz_srcptr) __attribute__ ((__pure__));
+ double __gmpz_get_d_2exp (signed long int *, mpz_srcptr);
+ long int __gmpz_get_si (mpz_srcptr) __attribute__ ((__pure__));
+ char *__gmpz_get_str (char *, int, mpz_srcptr);
+ unsigned long int __gmpz_get_ui (mpz_srcptr) __attribute__ ((__pure__));
+ mp_limb_t __gmpz_getlimbn (mpz_srcptr, mp_size_t) __attribute__ ((__pure__));
+ unsigned long int __gmpz_hamdist (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
+ void __gmpz_import (mpz_ptr, size_t, int, size_t, int, size_t, const void *);
+ void __gmpz_init (mpz_ptr);
+ void __gmpz_init2 (mpz_ptr, unsigned long);
+ void __gmpz_init_set (mpz_ptr, mpz_srcptr);
+ void __gmpz_init_set_d (mpz_ptr, double);
+ void __gmpz_init_set_si (mpz_ptr, signed long int);
+ int __gmpz_init_set_str (mpz_ptr, const char *, int);
+ void __gmpz_init_set_ui (mpz_ptr, unsigned long int);
+ size_t __gmpz_inp_raw (mpz_ptr, FILE *);
+ size_t __gmpz_inp_str (mpz_ptr, FILE *, int);
+ int __gmpz_invert (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_ior (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ int __gmpz_jacobi (mpz_srcptr, mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_kronecker_si (mpz_srcptr, long) __attribute__ ((__pure__));
+ int __gmpz_kronecker_ui (mpz_srcptr, unsigned long) __attribute__ ((__pure__));
+ int __gmpz_si_kronecker (long, mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_ui_kronecker (unsigned long, mpz_srcptr) __attribute__ ((__pure__));
+ void __gmpz_lcm (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_lcm_ui (mpz_ptr, mpz_srcptr, unsigned long);
+ void __gmpz_lucnum_ui (mpz_ptr, unsigned long int);
+ void __gmpz_lucnum2_ui (mpz_ptr, mpz_ptr, unsigned long int);
+ int __gmpz_millerrabin (mpz_srcptr, int) __attribute__ ((__pure__));
+ void __gmpz_mod (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_mul (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_mul_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_mul_si (mpz_ptr, mpz_srcptr, long int);
+ void __gmpz_mul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_neg (mpz_ptr, mpz_srcptr);
+ void __gmpz_nextprime (mpz_ptr, mpz_srcptr);
+ size_t __gmpz_out_raw (FILE *, mpz_srcptr);
+ size_t __gmpz_out_str (FILE *, int, mpz_srcptr);
+ int __gmpz_perfect_power_p (mpz_srcptr) __attribute__ ((__pure__));
+ int __gmpz_perfect_square_p (mpz_srcptr) __attribute__ ((__pure__));
+ unsigned long int __gmpz_popcount (mpz_srcptr) __attribute__ ((__pure__));
+ void __gmpz_pow_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_powm (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_powm_ui (mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr);
+ int __gmpz_probab_prime_p (mpz_srcptr, int) __attribute__ ((__pure__));
+ void __gmpz_random (mpz_ptr, mp_size_t);
+ void __gmpz_random2 (mpz_ptr, mp_size_t);
+ void __gmpz_realloc2 (mpz_ptr, unsigned long);
+ unsigned long int __gmpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ int __gmpz_root (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_rootrem (mpz_ptr,mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_rrandomb (mpz_ptr, gmp_randstate_t, unsigned long int);
+ unsigned long int __gmpz_scan0 (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ unsigned long int __gmpz_scan1 (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ void __gmpz_set (mpz_ptr, mpz_srcptr);
+ void __gmpz_set_d (mpz_ptr, double);
+ void __gmpz_set_f (mpz_ptr, mpf_srcptr);
+ void __gmpz_set_q (mpz_ptr, mpq_srcptr);
+ void __gmpz_set_si (mpz_ptr, signed long int);
+ int __gmpz_set_str (mpz_ptr, const char *, int);
+ void __gmpz_set_ui (mpz_ptr, unsigned long int);
+ void __gmpz_setbit (mpz_ptr, unsigned long int);
+ size_t __gmpz_size (mpz_srcptr) __attribute__ ((__pure__));
+ size_t __gmpz_sizeinbase (mpz_srcptr, int) __attribute__ ((__pure__));
+ void __gmpz_sqrt (mpz_ptr, mpz_srcptr);
+ void __gmpz_sqrtrem (mpz_ptr, mpz_ptr, mpz_srcptr);
+ void __gmpz_sub (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_sub_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_ui_sub (mpz_ptr, unsigned long int, mpz_srcptr);
+ void __gmpz_submul (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_submul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_swap (mpz_ptr, mpz_ptr) ;
+ unsigned long int __gmpz_tdiv_ui (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ void __gmpz_tdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_tdiv_q_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
+ unsigned long int __gmpz_tdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_tdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
+ unsigned long int __gmpz_tdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
+ void __gmpz_tdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpz_tdiv_r_2exp (mpz_ptr, mpz_srcptr, unsigned long int);
+ unsigned long int __gmpz_tdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
+ int __gmpz_tstbit (mpz_srcptr, unsigned long int) __attribute__ ((__pure__));
+ void __gmpz_ui_pow_ui (mpz_ptr, unsigned long int, unsigned long int);
+ void __gmpz_urandomb (mpz_ptr, gmp_randstate_t, unsigned long int);
+ void __gmpz_urandomm (mpz_ptr, gmp_randstate_t, mpz_srcptr);
+ void __gmpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr);
+ void __gmpq_abs (mpq_ptr, mpq_srcptr);
+ void __gmpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr);
+ void __gmpq_canonicalize (mpq_ptr);
+ void __gmpq_clear (mpq_ptr);
+ int __gmpq_cmp (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__));
+ int __gmpq_cmp_si (mpq_srcptr, long, unsigned long) __attribute__ ((__pure__));
+ int __gmpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __attribute__ ((__pure__));
+ void __gmpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr);
+ void __gmpq_div_2exp (mpq_ptr, mpq_srcptr, unsigned long);
+ int __gmpq_equal (mpq_srcptr, mpq_srcptr) __attribute__ ((__pure__));
+ void __gmpq_get_num (mpz_ptr, mpq_srcptr);
+ void __gmpq_get_den (mpz_ptr, mpq_srcptr);
+ double __gmpq_get_d (mpq_srcptr) __attribute__ ((__pure__));
+ char *__gmpq_get_str (char *, int, mpq_srcptr);
+ void __gmpq_init (mpq_ptr);
+ size_t __gmpq_inp_str (mpq_ptr, FILE *, int);
+ void __gmpq_inv (mpq_ptr, mpq_srcptr);
+ void __gmpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr);
+ void __gmpq_mul_2exp (mpq_ptr, mpq_srcptr, unsigned long);
+ void __gmpq_neg (mpq_ptr, mpq_srcptr);
+ size_t __gmpq_out_str (FILE *, int, mpq_srcptr);
+ void __gmpq_set (mpq_ptr, mpq_srcptr);
+ void __gmpq_set_d (mpq_ptr, double);
+ void __gmpq_set_den (mpq_ptr, mpz_srcptr);
+ void __gmpq_set_f (mpq_ptr, mpf_srcptr);
+ void __gmpq_set_num (mpq_ptr, mpz_srcptr);
+ void __gmpq_set_si (mpq_ptr, signed long int, unsigned long int);
+ int __gmpq_set_str (mpq_ptr, const char *, int);
+ void __gmpq_set_ui (mpq_ptr, unsigned long int, unsigned long int);
+ void __gmpq_set_z (mpq_ptr, mpz_srcptr);
+ void __gmpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr);
+ void __gmpq_swap (mpq_ptr, mpq_ptr) ;
+ void __gmpf_abs (mpf_ptr, mpf_srcptr);
+ void __gmpf_add (mpf_ptr, mpf_srcptr, mpf_srcptr);
+ void __gmpf_add_ui (mpf_ptr, mpf_srcptr, unsigned long int);
+ void __gmpf_ceil (mpf_ptr, mpf_srcptr);
+ void __gmpf_clear (mpf_ptr);
+ int __gmpf_cmp (mpf_srcptr, mpf_srcptr) __attribute__ ((__pure__));
+ int __gmpf_cmp_d (mpf_srcptr, double) __attribute__ ((__pure__));
+ int __gmpf_cmp_si (mpf_srcptr, signed long int) __attribute__ ((__pure__));
+ int __gmpf_cmp_ui (mpf_srcptr, unsigned long int) __attribute__ ((__pure__));
+ void __gmpf_div (mpf_ptr, mpf_srcptr, mpf_srcptr);
+ void __gmpf_div_2exp (mpf_ptr, mpf_srcptr, unsigned long int);
+ void __gmpf_div_ui (mpf_ptr, mpf_srcptr, unsigned long int);
+ void __gmpf_dump (mpf_srcptr);
+ int __gmpf_eq (mpf_srcptr, mpf_srcptr, unsigned long int) __attribute__ ((__pure__));
+ int __gmpf_fits_sint_p (mpf_srcptr) __attribute__ ((__pure__));
+ int __gmpf_fits_slong_p (mpf_srcptr) __attribute__ ((__pure__));
+ int __gmpf_fits_sshort_p (mpf_srcptr) __attribute__ ((__pure__));
+ int __gmpf_fits_uint_p (mpf_srcptr) __attribute__ ((__pure__));
+ int __gmpf_fits_ulong_p (mpf_srcptr) __attribute__ ((__pure__));
+ int __gmpf_fits_ushort_p (mpf_srcptr) __attribute__ ((__pure__));
+ void __gmpf_floor (mpf_ptr, mpf_srcptr);
+ double __gmpf_get_d (mpf_srcptr) __attribute__ ((__pure__));
+ double __gmpf_get_d_2exp (signed long int *, mpf_srcptr);
+ unsigned long int __gmpf_get_default_prec (void) __attribute__ ((__pure__));
+ unsigned long int __gmpf_get_prec (mpf_srcptr) __attribute__ ((__pure__));
+ long __gmpf_get_si (mpf_srcptr) __attribute__ ((__pure__));
+ char *__gmpf_get_str (char *, mp_exp_t *, int, size_t, mpf_srcptr);
+ unsigned long __gmpf_get_ui (mpf_srcptr) __attribute__ ((__pure__));
+ void __gmpf_init (mpf_ptr);
+ void __gmpf_init2 (mpf_ptr, unsigned long int);
+ void __gmpf_init_set (mpf_ptr, mpf_srcptr);
+ void __gmpf_init_set_d (mpf_ptr, double);
+ void __gmpf_init_set_si (mpf_ptr, signed long int);
+ int __gmpf_init_set_str (mpf_ptr, const char *, int);
+ void __gmpf_init_set_ui (mpf_ptr, unsigned long int);
+ size_t __gmpf_inp_str (mpf_ptr, FILE *, int);
+ int __gmpf_integer_p (mpf_srcptr) __attribute__ ((__pure__));
+ void __gmpf_mul (mpf_ptr, mpf_srcptr, mpf_srcptr);
+ void __gmpf_mul_2exp (mpf_ptr, mpf_srcptr, unsigned long int);
+ void __gmpf_mul_ui (mpf_ptr, mpf_srcptr, unsigned long int);
+ void __gmpf_neg (mpf_ptr, mpf_srcptr);
+ size_t __gmpf_out_str (FILE *, int, size_t, mpf_srcptr);
+ void __gmpf_pow_ui (mpf_ptr, mpf_srcptr, unsigned long int);
+ void __gmpf_random2 (mpf_ptr, mp_size_t, mp_exp_t);
+ void __gmpf_reldiff (mpf_ptr, mpf_srcptr, mpf_srcptr);
+ void __gmpf_set (mpf_ptr, mpf_srcptr);
+ void __gmpf_set_d (mpf_ptr, double);
+ void __gmpf_set_default_prec (unsigned long int) ;
+ void __gmpf_set_prec (mpf_ptr, unsigned long int);
+ void __gmpf_set_prec_raw (mpf_ptr, unsigned long int) ;
+ void __gmpf_set_q (mpf_ptr, mpq_srcptr);
+ void __gmpf_set_si (mpf_ptr, signed long int);
+ int __gmpf_set_str (mpf_ptr, const char *, int);
+ void __gmpf_set_ui (mpf_ptr, unsigned long int);
+ void __gmpf_set_z (mpf_ptr, mpz_srcptr);
+ size_t __gmpf_size (mpf_srcptr) __attribute__ ((__pure__));
+ void __gmpf_sqrt (mpf_ptr, mpf_srcptr);
+ void __gmpf_sqrt_ui (mpf_ptr, unsigned long int);
+ void __gmpf_sub (mpf_ptr, mpf_srcptr, mpf_srcptr);
+ void __gmpf_sub_ui (mpf_ptr, mpf_srcptr, unsigned long int);
+ void __gmpf_swap (mpf_ptr, mpf_ptr) ;
+ void __gmpf_trunc (mpf_ptr, mpf_srcptr);
+ void __gmpf_ui_div (mpf_ptr, unsigned long int, mpf_srcptr);
+ void __gmpf_ui_sub (mpf_ptr, unsigned long int, mpf_srcptr);
+ void __gmpf_urandomb (mpf_t, gmp_randstate_t, unsigned long int);
+ mp_limb_t __gmpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t);
+ mp_limb_t __gmpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) ;
+ mp_limb_t __gmpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
+ mp_limb_t __gmpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
+ mp_limb_t __gmpn_bdivmod (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, unsigned long int);
+ int __gmpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) __attribute__ ((__pure__));
+ mp_limb_t __gmpn_divexact_by3c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
+ mp_limb_t __gmpn_divrem (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t);
+ mp_limb_t __gmpn_divrem_1 (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t);
+ mp_limb_t __gmpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr);
+ mp_size_t __gmpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t);
+ mp_limb_t __gmpn_gcd_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__));
+ mp_limb_t __gmpn_gcdext_1 (mp_ptr, mp_ptr, mp_limb_t, mp_limb_t);
+ mp_size_t __gmpn_gcdext (mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t);
+ size_t __gmpn_get_str (unsigned char *, int, mp_ptr, mp_size_t);
+ unsigned long int __gmpn_hamdist (mp_srcptr, mp_srcptr, mp_size_t) __attribute__ ((__pure__));
+ mp_limb_t __gmpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int);
+ mp_limb_t __gmpn_mod_1 (mp_srcptr, mp_size_t, mp_limb_t) __attribute__ ((__pure__));
+ mp_limb_t __gmpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
+ mp_limb_t __gmpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
+ void __gmpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
+ mp_limb_t __gmpn_neg_n (mp_ptr, mp_srcptr, mp_size_t);
+ int __gmpn_perfect_square_p (mp_srcptr, mp_size_t) __attribute__ ((__pure__));
+ unsigned long int __gmpn_popcount (mp_srcptr, mp_size_t) __attribute__ ((__pure__));
+ mp_size_t __gmpn_pow_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr);
+ mp_limb_t __gmpn_preinv_mod_1 (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t) __attribute__ ((__pure__));
+ void __gmpn_random (mp_ptr, mp_size_t);
+ void __gmpn_random2 (mp_ptr, mp_size_t);
+ mp_limb_t __gmpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int);
+ unsigned long int __gmpn_scan0 (mp_srcptr, unsigned long int) __attribute__ ((__pure__));
+ unsigned long int __gmpn_scan1 (mp_srcptr, unsigned long int) __attribute__ ((__pure__));
+ mp_size_t __gmpn_set_str (mp_ptr, const unsigned char *, size_t, int);
+ mp_size_t __gmpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t);
+ mp_limb_t __gmpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t);
+ mp_limb_t __gmpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) ;
+ mp_limb_t __gmpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
+ mp_limb_t __gmpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
+ void __gmpn_tdiv_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
+extern __inline__ void
+__gmpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
+{
+ if (__gmp_w != __gmp_u)
+ __gmpz_set (__gmp_w, __gmp_u);
+ __gmp_w->_mp_size = ((__gmp_w->_mp_size) >= 0 ? (__gmp_w->_mp_size) : -(__gmp_w->_mp_size));
+}
+extern __inline__
+int
+__gmpz_fits_uint_p (mpz_srcptr __gmp_z)
+{
+ 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)));;
+}
+extern __inline__
+int
+__gmpz_fits_ulong_p (mpz_srcptr __gmp_z)
+{
+ 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)));;
+}
+extern __inline__
+int
+__gmpz_fits_ushort_p (mpz_srcptr __gmp_z)
+{
+ 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)));;
+}
+extern __inline__
+unsigned long
+__gmpz_get_ui (mpz_srcptr __gmp_z)
+{
+ mp_ptr __gmp_p = __gmp_z->_mp_d;
+ mp_size_t __gmp_n = __gmp_z->_mp_size;
+ mp_limb_t __gmp_l = __gmp_p[0];
+ return (__gmp_n != 0 ? __gmp_l : 0);
+}
+extern __inline__
+mp_limb_t
+__gmpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n)
+{
+ mp_limb_t __gmp_result = 0;
+ if (__builtin_expect ((__gmp_n >= 0 && __gmp_n < ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size))) != 0, 1))
+ __gmp_result = __gmp_z->_mp_d[__gmp_n];
+ return __gmp_result;
+}
+extern __inline__ void
+__gmpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
+{
+ if (__gmp_w != __gmp_u)
+ __gmpz_set (__gmp_w, __gmp_u);
+ __gmp_w->_mp_size = - __gmp_w->_mp_size;
+}
+extern __inline__
+int
+__gmpz_perfect_square_p (mpz_srcptr __gmp_a)
+{
+ mp_size_t __gmp_asize;
+ int __gmp_result;
+ __gmp_asize = __gmp_a->_mp_size;
+ __gmp_result = (__gmp_asize >= 0);
+ if (__builtin_expect ((__gmp_asize > 0) != 0, 1))
+ __gmp_result = __gmpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize);
+ return __gmp_result;
+}
+extern __inline__
+unsigned long
+__gmpz_popcount (mpz_srcptr __gmp_u)
+{
+ mp_size_t __gmp_usize;
+ unsigned long __gmp_result;
+ __gmp_usize = __gmp_u->_mp_size;
+ __gmp_result = (__gmp_usize < 0 ? (~ (unsigned long) 0) : 0);
+ if (__builtin_expect ((__gmp_usize > 0) != 0, 1))
+ __gmp_result = __gmpn_popcount (__gmp_u->_mp_d, __gmp_usize);
+ return __gmp_result;
+}
+extern __inline__
+void
+__gmpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u)
+{
+ __gmpz_tdiv_q (__gmp_w, (&((__gmp_u)->_mp_num)), (&((__gmp_u)->_mp_den)));
+}
+extern __inline__
+size_t
+__gmpz_size (mpz_srcptr __gmp_z)
+{
+ return ((__gmp_z->_mp_size) >= 0 ? (__gmp_z->_mp_size) : -(__gmp_z->_mp_size));
+}
+extern __inline__ void
+__gmpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
+{
+ if (__gmp_w != __gmp_u)
+ __gmpq_set (__gmp_w, __gmp_u);
+ __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));
+}
+extern __inline__ void
+__gmpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
+{
+ if (__gmp_w != __gmp_u)
+ __gmpq_set (__gmp_w, __gmp_u);
+ __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size;
+}
+extern __inline__
+mp_limb_t
+__gmpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
+{
+ mp_limb_t __gmp_c;
+ 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);
+ return __gmp_c;
+}
+extern __inline__
+mp_limb_t
+__gmpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n)
+{
+ mp_limb_t __gmp_c;
+ 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);
+ return __gmp_c;
+}
+extern __inline__
+int
+__gmpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size)
+{
+ int __gmp_result;
+ 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);
+ return __gmp_result;
+}
+extern __inline__
+mp_limb_t
+__gmpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
+{
+ mp_limb_t __gmp_c;
+ 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);
+ return __gmp_c;
+}
+extern __inline__
+mp_limb_t
+__gmpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n)
+{
+ mp_limb_t __gmp_c;
+ 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);
+ return __gmp_c;
+}
+extern __inline__
+mp_limb_t
+__gmpn_neg_n (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n)
+{
+ mp_limb_t __gmp_ul, __gmp_cy;
+ __gmp_cy = 0;
+ do {
+ __gmp_ul = *__gmp_up++;
+ *__gmp_rp++ = -__gmp_ul - __gmp_cy;
+ __gmp_cy |= __gmp_ul != 0;
+ } while (--__gmp_n != 0);
+ return __gmp_cy;
+}
+enum
+{
+ GMP_ERROR_NONE = 0,
+ GMP_ERROR_UNSUPPORTED_ARGUMENT = 1,
+ GMP_ERROR_DIVISION_BY_ZERO = 2,
+ GMP_ERROR_SQRT_OF_NEGATIVE = 4,
+ GMP_ERROR_INVALID_ARGUMENT = 8
+};
+typedef long int_t;
+typedef int_t header_t;
+typedef int bool_t;
+typedef unsigned short ucs2_t;
+struct bgl_dframe {
+ union scmobj *symbol;
+ struct bgl_dframe *link;
+};
+typedef union scmobj {
+ int_t integer;
+ header_t header;
+ struct pair {
+ union scmobj *car;
+ union scmobj *cdr;
+ } pair_t;
+ struct extended_pair {
+ union scmobj *car;
+ union scmobj *cdr;
+ union scmobj *eheader;
+ union scmobj *cer;
+ } extended_pair_t;
+ struct string {
+ int length;
+ unsigned char char0;
+ } string_t;
+ struct ucs2_string {
+ header_t header;
+ int length;
+ ucs2_t char0;
+ } ucs2_string_t;
+ struct vector {
+ int length;
+ union scmobj *obj0;
+ } vector_t;
+ struct tvector {
+ header_t header;
+ int length;
+ union scmobj *descr;
+ } tvector_t;
+ struct procedure {
+ header_t header;
+ union scmobj *(*entry)();
+ union scmobj *(*va_entry)();
+ union scmobj *attr;
+ int arity;
+ union scmobj *obj0;
+ } procedure_t;
+ struct procedure_light {
+ union scmobj *(*entry)();
+ union scmobj *obj0;
+ } procedure_light_t;
+ struct symbol {
+ header_t header;
+ union scmobj *string;
+ union scmobj *cval;
+ } symbol_t;
+ struct port {
+ header_t header;
+ union scmobj *kindof;
+ union scmobj *name;
+ void *stream;
+ union scmobj *chook;
+ void *timeout;
+ void *userdata;
+ int (*sysclose)();
+ long (*sysseek)();
+ } port_t;
+ struct output_port {
+ struct port port;
+ union scmobj *buf;
+ long cnt;
+ char *ptr;
+ int bufmode;
+ size_t (*syswrite)();
+ union scmobj *(*sysflush)();
+ union scmobj *fhook;
+ union scmobj *flushbuf;
+ } output_port_t;
+ struct input_port {
+ struct port port;
+ long filepos;
+ long fillbarrier;
+ long (*sysread)();
+ bool_t eof;
+ long matchstart;
+ long matchstop;
+ long forward;
+ long bufpos;
+ union scmobj *buf;
+ int lastchar;
+ } input_port_t;
+ struct input_procedure_port {
+ struct input_port iport;
+ union scmobj *pbuffer;
+ long pbufpos;
+ } input_procedure_port_t;
+ struct input_gzip_port {
+ struct input_procedure_port iport;
+ union scmobj *gzip;
+ } input_gzip_port_t;
+ struct binary_port {
+ header_t header;
+ union scmobj *name;
+ FILE *file;
+ int io;
+ } binary_port_t;
+ struct cell {
+ union scmobj *val;
+ } cell_t;
+ struct structure {
+ header_t header;
+ union scmobj *key;
+ int length;
+ union scmobj *obj0;
+ } struct_t;
+ struct real {
+ double real;
+ } real_t;
+ struct stack {
+ header_t header;
+ union scmobj *self;
+ union scmobj *exitd_top;
+ union scmobj *stamp;
+ long size;
+ struct befored *before_top;
+ char *stack_top;
+ char *stack_bot;
+ struct bgl_dframe *top_frame;
+ void *stack;
+ } stack_t;
+ struct foreign {
+ header_t header;
+ union scmobj *id;
+ void *cobj;
+ } foreign_t;
+ struct elong {
+ header_t header;
+ long elong;
+ } elong_t;
+ struct llong {
+ header_t header;
+ long long llong;
+ } llong_t;
+ struct bignum {
+ header_t header;
+ __mpz_struct mpz;
+ } bignum_t;
+ struct process {
+ header_t header;
+ int pid;
+ int index;
+ union scmobj *stream[ 3 ];
+ int exited;
+ int exit_status;
+ } process_t;
+ struct socket {
+ header_t header;
+ int portnum;
+ union scmobj *hostname;
+ union scmobj *hostip;
+ int fd;
+ union scmobj *input;
+ union scmobj *output;
+ int stype;
+ union scmobj *chook;
+ union scmobj *(*accept)();
+ void *userdata;
+ } socket_t;
+ struct custom {
+ header_t header;
+ char *identifier;
+ int (*final)();
+ int (*equal)();
+ long (*hash)();
+ char *(*to_string)();
+ union scmobj *(*output)();
+ } custom_t;
+ struct bgl_date {
+ header_t header;
+ int sec;
+ int min;
+ int hour;
+ int mday;
+ int mon;
+ int year;
+ int wday;
+ int yday;
+ long timezone;
+ int isdst;
+ } date_t;
+ struct bgl_mutex {
+ header_t header;
+ union scmobj *name;
+ void *mutex;
+ } mutex_t;
+ struct bgl_condvar {
+ header_t header;
+ union scmobj *name;
+ void *condvar;
+ } condvar_t;
+ struct bgl_mmap {
+ header_t header;
+ union scmobj *name;
+ int fd;
+ long length;
+ long rp;
+ long wp;
+ unsigned char *map;
+ } mmap_t;
+ struct bgl_hvector {
+ header_t header;
+ unsigned int length;
+ } hvector_t;
+ struct bgl_weakptr {
+ header_t header;
+ union scmobj *data;
+ } weakptr_t;
+ struct bgl_dynamic_env {
+ header_t header;
+ union scmobj *current_output_port;
+ union scmobj *current_input_port;
+ union scmobj *current_error_port;
+ union scmobj *current_display;
+ int mvalues_number;
+ union scmobj *mvalues[ 16 ];
+ char *stack_bottom;
+ union scmobj *exitd_top;
+ union scmobj *exitd_stamp;
+ struct befored *befored_top;
+ union scmobj *exitd_val;
+ union scmobj *error_handler;
+ union scmobj *error_notifiers;
+ union scmobj *uncaught_exception_handler;
+ union scmobj *interrupt_notifier;
+ union scmobj *debug_alist;
+ struct bgl_dframe top;
+ struct bgl_dframe *top_of_frame;
+ void *current_thread;
+ union scmobj *lexical_stack;
+ union scmobj *bytecode;
+ union scmobj *module;
+ union scmobj *abase;
+ union scmobj *parameters;
+ union scmobj *thread_backend;
+ union scmobj *user_data;
+ } dynamic_env_t;
+} *obj_t;
+typedef obj_t (*function_t)();
+typedef struct __object_bgl {
+ header_t header;
+ obj_t widening;
+} *object_bglt;
+typedef struct __bgl__object_00_bgl {
+ header_t header;
+ obj_t widening;
+} *bgl__object_00_bglt;
+typedef struct BgL__object_00_bgl {
+ header_t header;
+ obj_t widening;
+} *BgL__object_00_bglt;
+typedef struct BgL_objectz00_bgl {
+ header_t header;
+ obj_t widening;
+} *BgL_objectz00_bglt;
+struct bgl_input_timeout {
+ long timeout;
+ long (*sysread)( void *, size_t, size_t, obj_t );
+ int (*sysclose)( obj_t );
+};
+ extern obj_t GC_malloc( size_t );
+ extern obj_t GC_realloc( obj_t, size_t );
+ extern void GC_free( obj_t );
+ extern void GC_gcollect();
+ extern obj_t GC_malloc_atomic( size_t );
+ extern obj_t GC_debug_malloc( size_t, char *, long );
+ extern obj_t GC_debug_malloc_atomic( size_t, char *, long );
+ extern int GC_gc_no;
+ extern int GC_size( void * );
+ extern void GC_init();
+ extern void GC_expand_hp( size_t );
+ extern void GC_register_displacement( int );
+ extern void GC_debug_register_displacement( int );
+ extern void* GC_base( void* );
+ extern int GC_invoke_finalizers();
+ extern int GC_general_register_disappearing_link( obj_t * , obj_t );
+ extern int GC_unregister_disappearing_link( obj_t * );
+ typedef obj_t (*GC_fn_type) ( obj_t client_data );
+ extern obj_t GC_call_with_alloc_lock( GC_fn_type fn, obj_t client_data );
+ typedef void (*GC_finalization_proc)( void *obj, void *client_data );
+ extern void GC_register_finalizer( void *obj,
+ GC_finalization_proc fn, void *d,
+ GC_finalization_proc *ofn, void **od );
+extern obj_t alloc_hvector( int, int, int );
+extern obj_t make_weakptr( obj_t );
+extern obj_t weakptr_data( obj_t );
+extern void weakptr_data_set( obj_t , obj_t );
+extern obj_t single_thread_denv;
+extern void bgl_init_dynamic_env();
+extern obj_t make_dynamic_env();
+extern obj_t bgl_dup_dynamic_env( obj_t );
+extern obj_t (*bgl_multithread_dynamic_denv)();
+extern gmp_randstate_t gmp_random_state;
+extern obj_t bgl_safe_plus_fx( long, long );
+extern obj_t bgl_safe_minus_fx( long, long );
+extern obj_t bgl_safe_mul_fx( long, long );
+extern obj_t bgl_safe_quotient_fx( long, long );
+extern obj_t bgl_safe_plus_elong( long, long );
+extern obj_t bgl_safe_minus_elong( long, long );
+extern obj_t bgl_safe_mul_elong( long, long );
+extern obj_t bgl_safe_quotient_elong( long, long );
+extern obj_t bgl_safe_plus_llong( long long, long long );
+extern obj_t bgl_safe_minus_llong( long long, long long );
+extern obj_t bgl_safe_mul_llong( long long, long long );
+extern obj_t bgl_safe_quotient_llong( long long, long long );
+extern obj_t _exit_value_;
+typedef jmp_buf callcc_jmp_buf;
+struct exitd {
+ void *exit;
+ long userp;
+ obj_t stamp;
+ struct exitd *prev;
+};
+struct befored {
+ obj_t before;
+ struct befored *prev;
+};
+extern header_t bgl_opaque_nil;
+extern obj_t bigloo_exit( obj_t );
+extern obj_t va_generic_entry( obj_t, ... );
+extern obj_t opt_generic_entry( obj_t, ... );
+extern obj_t apply( obj_t, obj_t );
+extern void bgl_init_module_debug_start( char * );
+extern void bgl_init_module_debug_library( char * );
+extern void bgl_init_module_debug_import( char *, char * );
+extern void bgl_init_module_debug_object( char * );
+extern void bgl_init_module_debug_end( char * );
+extern obj_t the_failure( obj_t, obj_t, obj_t );
+extern obj_t bgl_system_failure( int, obj_t, obj_t, obj_t );
+extern obj_t bgl_make_procedure( obj_t, int, int );
+extern obj_t make_fx_procedure( function_t, int, int );
+extern obj_t make_va_procedure( function_t, int, int );
+extern obj_t bgl_time( obj_t );
+extern obj_t bgl_procedure_entry_to_string( obj_t );
+extern obj_t bgl_string_to_procedure_entry( obj_t );
+extern obj_t make_pair( obj_t, obj_t );
+extern obj_t make_extended_pair( obj_t a, obj_t d, obj_t e );
+extern obj_t make_cell( obj_t );
+extern obj_t make_real( double );
+extern obj_t make_belong( long );
+extern obj_t make_bllong( long long );
+extern obj_t bgl_string_to_bignum( char *, int );
+extern obj_t bgl_reverse( obj_t );
+extern obj_t bgl_reverse_bang( obj_t );
+extern long bgl_list_length( obj_t );
+extern obj_t bgl_remq( obj_t, obj_t );
+extern obj_t bgl_remq_bang( obj_t, obj_t );
+extern obj_t bgl_make_output_port( obj_t, void *, obj_t, obj_t, size_t (*)(), long (*)(), int (*)() );
+extern void bgl_output_port_buffer_set( obj_t, obj_t );
+extern obj_t bgl_close_output_port( obj_t );
+extern obj_t get_output_string( obj_t );
+extern obj_t bgl_file_to_output_port( FILE *, obj_t );
+extern obj_t bgl_open_output_file( obj_t, obj_t );
+extern obj_t bgl_append_output_file( obj_t, obj_t );
+extern obj_t bgl_open_output_string( obj_t );
+extern obj_t bgl_open_output_procedure( obj_t, obj_t, obj_t, obj_t );
+extern obj_t create_vector( int );
+extern obj_t make_string_sans_fill();
+extern obj_t string_to_bstring( char * );
+extern obj_t string_to_bstring_len( char *, int );
+extern obj_t close_init_string();
+extern obj_t bgl_string_shrink( obj_t, long );
+extern obj_t bgl_find_runtime_type( obj_t );
+extern obj_t cobj_to_foreign( obj_t, void * );
+extern long obj_to_cobj( obj_t );
+extern int _bigloo_main( int, char *[], char *[], obj_t (*)(obj_t) );
+extern obj_t string_to_symbol( char * );
+extern obj_t bstring_to_symbol( obj_t );
+extern obj_t bgl_symbol_genname( obj_t, char * );
+extern obj_t string_to_keyword( char * );
+extern obj_t bgl_open_input_string( obj_t, int );
+extern long bgl_file_size( char * );
+extern obj_t create_custom( long );
+extern void bgl_input_port_buffer_set( obj_t, obj_t );
+extern obj_t bgl_reset_output_string_port( obj_t );
+extern obj_t bgl_display_string( obj_t, obj_t );
+extern obj_t bgl_display_symbol( obj_t, obj_t );
+extern obj_t bgl_display_fixnum( obj_t, obj_t );
+extern obj_t bgl_display_char( char, obj_t );
+extern obj_t bgl_output_flush( obj_t, char *, size_t );
+extern obj_t bgl_make_date();
+extern obj_t bgl_make_mutex( obj_t );
+extern obj_t bgl_make_condvar( obj_t );
+extern bool_t (*bgl_mutex_lock)( obj_t );
+extern bool_t (*bgl_mutex_timed_lock)( obj_t, long );
+extern bool_t (*bgl_mutex_unlock)( obj_t );
+extern obj_t (*bgl_mutex_state)( obj_t );
+extern bool_t (*bgl_condvar_wait)( obj_t, obj_t );
+extern bool_t (*bgl_condvar_timed_wait)( obj_t, obj_t, long );
+extern bool_t (*bgl_condvar_signal)( obj_t );
+extern bool_t (*bgl_condvar_broadcast)( obj_t );
+extern obj_t bgl_open_mmap( obj_t, bool_t, bool_t );
+ obj_t bgl_close_mmap( obj_t );
+extern void (*bgl_gc_do_blocking )( void (*fun)(), void * );
+extern obj_t bgl_make_client_socket( obj_t, int, int, obj_t, obj_t );
+extern obj_t bgl_make_server_socket( obj_t, int, int );
+extern obj_t bgl_socket_accept( obj_t, bool_t, obj_t, obj_t );
+extern long bgl_socket_accept_many( obj_t, bool_t, obj_t, obj_t, obj_t );
+extern obj_t bgl_gethostname();
+extern obj_t bgl_socket_hostname();
+extern obj_t bgl_getsockopt( obj_t, obj_t );
+extern obj_t bgl_setsockopt( obj_t, obj_t, obj_t );
+extern void bgl_init_trace( void );
+extern int bgl_sigprocmask( int );
+extern long bgl_rgc_blit_string( obj_t, char *, long, long );
+extern obj_t bigloo_nan, bigloo_infinity, bigloo_minfinity;
+typedef long int ptrdiff_t;
+typedef signed char gint8;
+typedef unsigned char guint8;
+typedef signed short gint16;
+typedef unsigned short guint16;
+typedef signed int gint32;
+typedef unsigned int guint32;
+typedef signed long gint64;
+typedef unsigned long guint64;
+typedef signed long gssize;
+typedef unsigned long gsize;
+typedef gint64 goffset;
+typedef signed long gintptr;
+typedef unsigned long guintptr;
+typedef struct _GStaticMutex GStaticMutex;
+struct _GStaticMutex
+{
+ struct _GMutex *runtime_mutex;
+ union {
+ char pad[40];
+ double dummy_double;
+ void *dummy_pointer;
+ long dummy_long;
+ } static_mutex;
+};
+typedef union _GSystemThread GSystemThread;
+union _GSystemThread
+{
+ char data[8];
+ double dummy_double;
+ void *dummy_pointer;
+ long dummy_long;
+};
+typedef int GPid;
+typedef char gchar;
+typedef short gshort;
+typedef long glong;
+typedef int gint;
+typedef gint gboolean;
+typedef unsigned char guchar;
+typedef unsigned short gushort;
+typedef unsigned long gulong;
+typedef unsigned int guint;
+typedef float gfloat;
+typedef double gdouble;
+typedef void* gpointer;
+typedef const void *gconstpointer;
+typedef gint (*GCompareFunc) (gconstpointer a,
+ gconstpointer b);
+typedef gint (*GCompareDataFunc) (gconstpointer a,
+ gconstpointer b,
+ gpointer user_data);
+typedef gboolean (*GEqualFunc) (gconstpointer a,
+ gconstpointer b);
+typedef void (*GDestroyNotify) (gpointer data);
+typedef void (*GFunc) (gpointer data,
+ gpointer user_data);
+typedef guint (*GHashFunc) (gconstpointer key);
+typedef void (*GHFunc) (gpointer key,
+ gpointer value,
+ gpointer user_data);
+typedef void (*GFreeFunc) (gpointer data);
+typedef const gchar * (*GTranslateFunc) (const gchar *str,
+ gpointer data);
+typedef union _GDoubleIEEE754 GDoubleIEEE754;
+typedef union _GFloatIEEE754 GFloatIEEE754;
+union _GFloatIEEE754
+{
+ gfloat v_float;
+ struct {
+ guint mantissa : 23;
+ guint biased_exponent : 8;
+ guint sign : 1;
+ } mpn;
+};
+union _GDoubleIEEE754
+{
+ gdouble v_double;
+ struct {
+ guint mantissa_low : 32;
+ guint mantissa_high : 20;
+ guint biased_exponent : 11;
+ guint sign : 1;
+ } mpn;
+};
+typedef struct _GTimeVal GTimeVal;
+struct _GTimeVal
+{
+ glong tv_sec;
+ glong tv_usec;
+};
+typedef struct _GArray GArray;
+typedef struct _GByteArray GByteArray;
+typedef struct _GPtrArray GPtrArray;
+struct _GArray
+{
+ gchar *data;
+ guint len;
+};
+struct _GByteArray
+{
+ guint8 *data;
+ guint len;
+};
+struct _GPtrArray
+{
+ gpointer *pdata;
+ guint len;
+};
+GArray* g_array_new (gboolean zero_terminated,
+ gboolean clear_,
+ guint element_size);
+GArray* g_array_sized_new (gboolean zero_terminated,
+ gboolean clear_,
+ guint element_size,
+ guint reserved_size);
+gchar* g_array_free (GArray *array,
+ gboolean free_segment);
+GArray* g_array_append_vals (GArray *array,
+ gconstpointer data,
+ guint len);
+GArray* g_array_prepend_vals (GArray *array,
+ gconstpointer data,
+ guint len);
+GArray* g_array_insert_vals (GArray *array,
+ guint index_,
+ gconstpointer data,
+ guint len);
+GArray* g_array_set_size (GArray *array,
+ guint length);
+GArray* g_array_remove_index (GArray *array,
+ guint index_);
+GArray* g_array_remove_index_fast (GArray *array,
+ guint index_);
+GArray* g_array_remove_range (GArray *array,
+ guint index_,
+ guint length);
+void g_array_sort (GArray *array,
+ GCompareFunc compare_func);
+void g_array_sort_with_data (GArray *array,
+ GCompareDataFunc compare_func,
+ gpointer user_data);
+GPtrArray* g_ptr_array_new (void);
+GPtrArray* g_ptr_array_sized_new (guint reserved_size);
+gpointer* g_ptr_array_free (GPtrArray *array,
+ gboolean free_seg);
+void g_ptr_array_set_size (GPtrArray *array,
+ gint length);
+gpointer g_ptr_array_remove_index (GPtrArray *array,
+ guint index_);
+gpointer g_ptr_array_remove_index_fast (GPtrArray *array,
+ guint index_);
+gboolean g_ptr_array_remove (GPtrArray *array,
+ gpointer data);
+gboolean g_ptr_array_remove_fast (GPtrArray *array,
+ gpointer data);
+void g_ptr_array_remove_range (GPtrArray *array,
+ guint index_,
+ guint length);
+void g_ptr_array_add (GPtrArray *array,
+ gpointer data);
+void g_ptr_array_sort (GPtrArray *array,
+ GCompareFunc compare_func);
+void g_ptr_array_sort_with_data (GPtrArray *array,
+ GCompareDataFunc compare_func,
+ gpointer user_data);
+void g_ptr_array_foreach (GPtrArray *array,
+ GFunc func,
+ gpointer user_data);
+GByteArray* g_byte_array_new (void);
+GByteArray* g_byte_array_sized_new (guint reserved_size);
+guint8* g_byte_array_free (GByteArray *array,
+ gboolean free_segment);
+GByteArray* g_byte_array_append (GByteArray *array,
+ const guint8 *data,
+ guint len);
+GByteArray* g_byte_array_prepend (GByteArray *array,
+ const guint8 *data,
+ guint len);
+GByteArray* g_byte_array_set_size (GByteArray *array,
+ guint length);
+GByteArray* g_byte_array_remove_index (GByteArray *array,
+ guint index_);
+GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
+ guint index_);
+GByteArray* g_byte_array_remove_range (GByteArray *array,
+ guint index_,
+ guint length);
+void g_byte_array_sort (GByteArray *array,
+ GCompareFunc compare_func);
+void g_byte_array_sort_with_data (GByteArray *array,
+ GCompareDataFunc compare_func,
+ gpointer user_data);
+typedef guint32 GQuark;
+GQuark g_quark_try_string (const gchar *string);
+GQuark g_quark_from_static_string (const gchar *string);
+GQuark g_quark_from_string (const gchar *string);
+const gchar* g_quark_to_string (GQuark quark) __attribute__((__const__));
+const gchar* g_intern_string (const gchar *string);
+const gchar* g_intern_static_string (const gchar *string);
+typedef struct _GError GError;
+struct _GError
+{
+ GQuark domain;
+ gint code;
+ gchar *message;
+};
+GError* g_error_new (GQuark domain,
+ gint code,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 3, 4)));
+GError* g_error_new_literal (GQuark domain,
+ gint code,
+ const gchar *message);
+void g_error_free (GError *error);
+GError* g_error_copy (const GError *error);
+gboolean g_error_matches (const GError *error,
+ GQuark domain,
+ gint code);
+void g_set_error (GError **err,
+ GQuark domain,
+ gint code,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 4, 5)));
+void g_set_error_literal (GError **err,
+ GQuark domain,
+ gint code,
+ const gchar *message);
+void g_propagate_error (GError **dest,
+ GError *src);
+void g_clear_error (GError **err);
+void g_prefix_error (GError **err,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 2, 3)));
+void g_propagate_prefixed_error (GError **dest,
+ GError *src,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 3, 4)));
+typedef __gnuc_va_list va_list;
+const gchar* g_get_user_name (void);
+const gchar* g_get_real_name (void);
+const gchar* g_get_home_dir (void);
+const gchar* g_get_tmp_dir (void);
+const gchar* g_get_host_name (void);
+gchar* g_get_prgname (void);
+void g_set_prgname (const gchar *prgname);
+const gchar* g_get_application_name (void);
+void g_set_application_name (const gchar *application_name);
+const gchar* g_get_user_data_dir (void);
+const gchar* g_get_user_config_dir (void);
+const gchar* g_get_user_cache_dir (void);
+const gchar* const * g_get_system_data_dirs (void);
+const gchar* const * g_get_system_config_dirs (void);
+const gchar* const * g_get_language_names (void);
+typedef enum {
+ G_USER_DIRECTORY_DESKTOP,
+ G_USER_DIRECTORY_DOCUMENTS,
+ G_USER_DIRECTORY_DOWNLOAD,
+ G_USER_DIRECTORY_MUSIC,
+ G_USER_DIRECTORY_PICTURES,
+ G_USER_DIRECTORY_PUBLIC_SHARE,
+ G_USER_DIRECTORY_TEMPLATES,
+ G_USER_DIRECTORY_VIDEOS,
+ G_USER_N_DIRECTORIES
+} GUserDirectory;
+const gchar* g_get_user_special_dir (GUserDirectory directory);
+typedef struct _GDebugKey GDebugKey;
+struct _GDebugKey
+{
+ const gchar *key;
+ guint value;
+};
+guint g_parse_debug_string (const gchar *string,
+ const GDebugKey *keys,
+ guint nkeys);
+gint g_snprintf (gchar *string,
+ gulong n,
+ gchar const *format,
+ ...) __attribute__((__format__ (__printf__, 3, 4)));
+gint g_vsnprintf (gchar *string,
+ gulong n,
+ gchar const *format,
+ va_list args);
+gboolean g_path_is_absolute (const gchar *file_name);
+const gchar* g_path_skip_root (const gchar *file_name);
+const gchar* g_basename (const gchar *file_name);
+gchar* g_get_current_dir (void);
+gchar* g_path_get_basename (const gchar *file_name) __attribute__((__malloc__));
+gchar* g_path_get_dirname (const gchar *file_name) __attribute__((__malloc__));
+void g_nullify_pointer (gpointer *nullify_location);
+const gchar* g_getenv (const gchar *variable);
+gboolean g_setenv (const gchar *variable,
+ const gchar *value,
+ gboolean overwrite);
+void g_unsetenv (const gchar *variable);
+gchar** g_listenv (void);
+const gchar* _g_getenv_nomalloc (const gchar *variable,
+ gchar buffer[1024]);
+typedef void (*GVoidFunc) (void);
+void g_atexit (GVoidFunc func);
+gchar* g_find_program_in_path (const gchar *program);
+static __inline __attribute__ ((unused)) gint g_bit_nth_lsf (gulong mask,
+ gint nth_bit) __attribute__((__const__));
+static __inline __attribute__ ((unused)) gint g_bit_nth_msf (gulong mask,
+ gint nth_bit) __attribute__((__const__));
+static __inline __attribute__ ((unused)) guint g_bit_storage (gulong number) __attribute__((__const__));
+typedef struct _GTrashStack GTrashStack;
+struct _GTrashStack
+{
+ GTrashStack *next;
+};
+static __inline __attribute__ ((unused)) void g_trash_stack_push (GTrashStack **stack_p,
+ gpointer data_p);
+static __inline __attribute__ ((unused)) gpointer g_trash_stack_pop (GTrashStack **stack_p);
+static __inline __attribute__ ((unused)) gpointer g_trash_stack_peek (GTrashStack **stack_p);
+static __inline __attribute__ ((unused)) guint g_trash_stack_height (GTrashStack **stack_p);
+static __inline __attribute__ ((unused)) gint
+g_bit_nth_lsf (gulong mask,
+ gint nth_bit)
+{
+ if ((nth_bit < -1))
+ nth_bit = -1;
+ while (nth_bit < ((8 * 8) - 1))
+ {
+ nth_bit++;
+ if (mask & (1UL << nth_bit))
+ return nth_bit;
+ }
+ return -1;
+}
+static __inline __attribute__ ((unused)) gint
+g_bit_nth_msf (gulong mask,
+ gint nth_bit)
+{
+ if (nth_bit < 0 || (nth_bit > 8 * 8))
+ nth_bit = 8 * 8;
+ while (nth_bit > 0)
+ {
+ nth_bit--;
+ if (mask & (1UL << nth_bit))
+ return nth_bit;
+ }
+ return -1;
+}
+static __inline __attribute__ ((unused)) guint
+g_bit_storage (gulong number)
+{
+ register guint n_bits = 0;
+ do
+ {
+ n_bits++;
+ number >>= 1;
+ }
+ while (number);
+ return n_bits;
+}
+static __inline __attribute__ ((unused)) void
+g_trash_stack_push (GTrashStack **stack_p,
+ gpointer data_p)
+{
+ GTrashStack *data = (GTrashStack *) data_p;
+ data->next = *stack_p;
+ *stack_p = data;
+}
+static __inline __attribute__ ((unused)) gpointer
+g_trash_stack_pop (GTrashStack **stack_p)
+{
+ GTrashStack *data;
+ data = *stack_p;
+ if (data)
+ {
+ *stack_p = data->next;
+ data->next = ((void *)0);
+ }
+ return data;
+}
+static __inline __attribute__ ((unused)) gpointer
+g_trash_stack_peek (GTrashStack **stack_p)
+{
+ GTrashStack *data;
+ data = *stack_p;
+ return data;
+}
+static __inline __attribute__ ((unused)) guint
+g_trash_stack_height (GTrashStack **stack_p)
+{
+ GTrashStack *data;
+ guint i = 0;
+ for (data = *stack_p; data; data = data->next)
+ i++;
+ return i;
+}
+extern const guint glib_major_version;
+extern const guint glib_minor_version;
+extern const guint glib_micro_version;
+extern const guint glib_interface_age;
+extern const guint glib_binary_age;
+const gchar * glib_check_version (guint required_major,
+ guint required_minor,
+ guint required_micro);
+gint g_atomic_int_exchange_and_add (volatile gint __attribute__((may_alias)) *atomic,
+ gint val);
+void g_atomic_int_add (volatile gint __attribute__((may_alias)) *atomic,
+ gint val);
+gboolean g_atomic_int_compare_and_exchange (volatile gint __attribute__((may_alias)) *atomic,
+ gint oldval,
+ gint newval);
+gboolean g_atomic_pointer_compare_and_exchange (volatile gpointer __attribute__((may_alias)) *atomic,
+ gpointer oldval,
+ gpointer newval);
+gint g_atomic_int_get (volatile gint __attribute__((may_alias)) *atomic);
+void g_atomic_int_set (volatile gint __attribute__((may_alias)) *atomic,
+ gint newval);
+gpointer g_atomic_pointer_get (volatile gpointer __attribute__((may_alias)) *atomic);
+void g_atomic_pointer_set (volatile gpointer __attribute__((may_alias)) *atomic,
+ gpointer newval);
+extern GQuark g_thread_error_quark (void);
+typedef enum
+{
+ G_THREAD_ERROR_AGAIN
+} GThreadError;
+typedef gpointer (*GThreadFunc) (gpointer data);
+typedef enum
+{
+ G_THREAD_PRIORITY_LOW,
+ G_THREAD_PRIORITY_NORMAL,
+ G_THREAD_PRIORITY_HIGH,
+ G_THREAD_PRIORITY_URGENT
+} GThreadPriority;
+typedef struct _GThread GThread;
+struct _GThread
+{
+ GThreadFunc func;
+ gpointer data;
+ gboolean joinable;
+ GThreadPriority priority;
+};
+typedef struct _GMutex GMutex;
+typedef struct _GCond GCond;
+typedef struct _GPrivate GPrivate;
+typedef struct _GStaticPrivate GStaticPrivate;
+typedef struct _GThreadFunctions GThreadFunctions;
+struct _GThreadFunctions
+{
+ GMutex* (*mutex_new) (void);
+ void (*mutex_lock) (GMutex *mutex);
+ gboolean (*mutex_trylock) (GMutex *mutex);
+ void (*mutex_unlock) (GMutex *mutex);
+ void (*mutex_free) (GMutex *mutex);
+ GCond* (*cond_new) (void);
+ void (*cond_signal) (GCond *cond);
+ void (*cond_broadcast) (GCond *cond);
+ void (*cond_wait) (GCond *cond,
+ GMutex *mutex);
+ gboolean (*cond_timed_wait) (GCond *cond,
+ GMutex *mutex,
+ GTimeVal *end_time);
+ void (*cond_free) (GCond *cond);
+ GPrivate* (*private_new) (GDestroyNotify destructor);
+ gpointer (*private_get) (GPrivate *private_key);
+ void (*private_set) (GPrivate *private_key,
+ gpointer data);
+ void (*thread_create) (GThreadFunc func,
+ gpointer data,
+ gulong stack_size,
+ gboolean joinable,
+ gboolean bound,
+ GThreadPriority priority,
+ gpointer thread,
+ GError **error);
+ void (*thread_yield) (void);
+ void (*thread_join) (gpointer thread);
+ void (*thread_exit) (void);
+ void (*thread_set_priority)(gpointer thread,
+ GThreadPriority priority);
+ void (*thread_self) (gpointer thread);
+ gboolean (*thread_equal) (gpointer thread1,
+ gpointer thread2);
+};
+extern GThreadFunctions g_thread_functions_for_glib_use;
+extern gboolean g_thread_use_default_impl;
+extern gboolean g_threads_got_initialized;
+extern guint64 (*g_thread_gettime) (void);
+void g_thread_init (GThreadFunctions *vtable);
+void g_thread_init_with_errorcheck_mutexes (GThreadFunctions* vtable);
+gboolean g_thread_get_initialized (void);
+GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex);
+GThread* g_thread_create_full (GThreadFunc func,
+ gpointer data,
+ gulong stack_size,
+ gboolean joinable,
+ gboolean bound,
+ GThreadPriority priority,
+ GError **error);
+GThread* g_thread_self (void);
+void g_thread_exit (gpointer retval);
+gpointer g_thread_join (GThread *thread);
+void g_thread_set_priority (GThread *thread,
+ GThreadPriority priority);
+void g_static_mutex_init (GStaticMutex *mutex);
+void g_static_mutex_free (GStaticMutex *mutex);
+struct _GStaticPrivate
+{
+ guint index;
+};
+void g_static_private_init (GStaticPrivate *private_key);
+gpointer g_static_private_get (GStaticPrivate *private_key);
+void g_static_private_set (GStaticPrivate *private_key,
+ gpointer data,
+ GDestroyNotify notify);
+void g_static_private_free (GStaticPrivate *private_key);
+typedef struct _GStaticRecMutex GStaticRecMutex;
+struct _GStaticRecMutex
+{
+ GStaticMutex mutex;
+ guint depth;
+ GSystemThread owner;
+};
+void g_static_rec_mutex_init (GStaticRecMutex *mutex);
+void g_static_rec_mutex_lock (GStaticRecMutex *mutex);
+gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex);
+void g_static_rec_mutex_unlock (GStaticRecMutex *mutex);
+void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex,
+ guint depth);
+guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex);
+void g_static_rec_mutex_free (GStaticRecMutex *mutex);
+typedef struct _GStaticRWLock GStaticRWLock;
+struct _GStaticRWLock
+{
+ GStaticMutex mutex;
+ GCond *read_cond;
+ GCond *write_cond;
+ guint read_counter;
+ gboolean have_writer;
+ guint want_to_read;
+ guint want_to_write;
+};
+void g_static_rw_lock_init (GStaticRWLock* lock);
+void g_static_rw_lock_reader_lock (GStaticRWLock* lock);
+gboolean g_static_rw_lock_reader_trylock (GStaticRWLock* lock);
+void g_static_rw_lock_reader_unlock (GStaticRWLock* lock);
+void g_static_rw_lock_writer_lock (GStaticRWLock* lock);
+gboolean g_static_rw_lock_writer_trylock (GStaticRWLock* lock);
+void g_static_rw_lock_writer_unlock (GStaticRWLock* lock);
+void g_static_rw_lock_free (GStaticRWLock* lock);
+void g_thread_foreach (GFunc thread_func,
+ gpointer user_data);
+typedef enum
+{
+ G_ONCE_STATUS_NOTCALLED,
+ G_ONCE_STATUS_PROGRESS,
+ G_ONCE_STATUS_READY
+} GOnceStatus;
+typedef struct _GOnce GOnce;
+struct _GOnce
+{
+ volatile GOnceStatus status;
+ volatile gpointer retval;
+};
+gpointer g_once_impl (GOnce *once, GThreadFunc func, gpointer arg);
+static __inline __attribute__ ((unused)) gboolean g_once_init_enter (volatile gsize *value_location);
+gboolean g_once_init_enter_impl (volatile gsize *value_location);
+void g_once_init_leave (volatile gsize *value_location,
+ gsize initialization_value);
+static __inline __attribute__ ((unused)) gboolean
+g_once_init_enter (volatile gsize *value_location)
+{
+ if ((gpointer) ((gpointer)*(value_location)) != ((void *)0))
+ return (0);
+ else
+ return g_once_init_enter_impl (value_location);
+}
+extern void glib_dummy_decl (void);
+typedef struct _GAsyncQueue GAsyncQueue;
+GAsyncQueue* g_async_queue_new (void);
+GAsyncQueue* g_async_queue_new_full (GDestroyNotify item_free_func);
+void g_async_queue_lock (GAsyncQueue *queue);
+void g_async_queue_unlock (GAsyncQueue *queue);
+GAsyncQueue* g_async_queue_ref (GAsyncQueue *queue);
+void g_async_queue_unref (GAsyncQueue *queue);
+void g_async_queue_ref_unlocked (GAsyncQueue *queue);
+void g_async_queue_unref_and_unlock (GAsyncQueue *queue);
+void g_async_queue_push (GAsyncQueue *queue,
+ gpointer data);
+void g_async_queue_push_unlocked (GAsyncQueue *queue,
+ gpointer data);
+void g_async_queue_push_sorted (GAsyncQueue *queue,
+ gpointer data,
+ GCompareDataFunc func,
+ gpointer user_data);
+void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue,
+ gpointer data,
+ GCompareDataFunc func,
+ gpointer user_data);
+gpointer g_async_queue_pop (GAsyncQueue *queue);
+gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue);
+gpointer g_async_queue_try_pop (GAsyncQueue *queue);
+gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue);
+gpointer g_async_queue_timed_pop (GAsyncQueue *queue,
+ GTimeVal *end_time);
+gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue,
+ GTimeVal *end_time);
+gint g_async_queue_length (GAsyncQueue *queue);
+gint g_async_queue_length_unlocked (GAsyncQueue *queue);
+void g_async_queue_sort (GAsyncQueue *queue,
+ GCompareDataFunc func,
+ gpointer user_data);
+void g_async_queue_sort_unlocked (GAsyncQueue *queue,
+ GCompareDataFunc func,
+ gpointer user_data);
+GMutex* _g_async_queue_get_mutex (GAsyncQueue *queue);
+void g_on_error_query (const gchar *prg_name);
+void g_on_error_stack_trace (const gchar *prg_name);
+gsize g_base64_encode_step (const guchar *in,
+ gsize len,
+ gboolean break_lines,
+ gchar *out,
+ gint *state,
+ gint *save);
+gsize g_base64_encode_close (gboolean break_lines,
+ gchar *out,
+ gint *state,
+ gint *save);
+gchar* g_base64_encode (const guchar *data,
+ gsize len) __attribute__((__malloc__));
+gsize g_base64_decode_step (const gchar *in,
+ gsize len,
+ guchar *out,
+ gint *state,
+ guint *save);
+guchar *g_base64_decode (const gchar *text,
+ gsize *out_len) __attribute__((__malloc__));
+guchar *g_base64_decode_inplace (gchar *text,
+ gsize *out_len);
+typedef __clock_t clock_t;
+struct tm
+{
+ int tm_sec;
+ int tm_min;
+ int tm_hour;
+ int tm_mday;
+ int tm_mon;
+ int tm_year;
+ int tm_wday;
+ int tm_yday;
+ int tm_isdst;
+ long int tm_gmtoff;
+ __const char *tm_zone;
+};
+struct itimerspec
+ {
+ struct timespec it_interval;
+ struct timespec it_value;
+ };
+struct sigevent;
+extern clock_t clock (void) __attribute__ ((__nothrow__));
+extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
+extern double difftime (time_t __time1, time_t __time0)
+ __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
+extern size_t strftime (char *__restrict __s, size_t __maxsize,
+ __const char *__restrict __format,
+ __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
+extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
+ __const char *__restrict __format,
+ __const struct tm *__restrict __tp,
+ __locale_t __loc) __attribute__ ((__nothrow__));
+extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
+extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
+extern struct tm *gmtime_r (__const time_t *__restrict __timer,
+ struct tm *__restrict __tp) __attribute__ ((__nothrow__));
+extern struct tm *localtime_r (__const time_t *__restrict __timer,
+ struct tm *__restrict __tp) __attribute__ ((__nothrow__));
+extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
+extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
+extern char *asctime_r (__const struct tm *__restrict __tp,
+ char *__restrict __buf) __attribute__ ((__nothrow__));
+extern char *ctime_r (__const time_t *__restrict __timer,
+ char *__restrict __buf) __attribute__ ((__nothrow__));
+extern char *__tzname[2];
+extern int __daylight;
+extern long int __timezone;
+extern char *tzname[2];
+extern void tzset (void) __attribute__ ((__nothrow__));
+extern int daylight;
+extern long int timezone;
+extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
+extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
+extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
+extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
+extern int nanosleep (__const struct timespec *__requested_time,
+ struct timespec *__remaining);
+extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
+extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
+extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
+ __attribute__ ((__nothrow__));
+extern int clock_nanosleep (clockid_t __clock_id, int __flags,
+ __const struct timespec *__req,
+ struct timespec *__rem);
+extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
+extern int timer_create (clockid_t __clock_id,
+ struct sigevent *__restrict __evp,
+ timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
+extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
+extern int timer_settime (timer_t __timerid, int __flags,
+ __const struct itimerspec *__restrict __value,
+ struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
+extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
+ __attribute__ ((__nothrow__));
+extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
+typedef enum
+{
+ G_BOOKMARK_FILE_ERROR_INVALID_URI,
+ G_BOOKMARK_FILE_ERROR_INVALID_VALUE,
+ G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED,
+ G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
+ G_BOOKMARK_FILE_ERROR_READ,
+ G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING,
+ G_BOOKMARK_FILE_ERROR_WRITE,
+ G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND
+} GBookmarkFileError;
+GQuark g_bookmark_file_error_quark (void);
+typedef struct _GBookmarkFile GBookmarkFile;
+GBookmarkFile *g_bookmark_file_new (void);
+void g_bookmark_file_free (GBookmarkFile *bookmark);
+gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark,
+ const gchar *filename,
+ GError **error);
+gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark,
+ const gchar *data,
+ gsize length,
+ GError **error);
+gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark,
+ const gchar *file,
+ gchar **full_path,
+ GError **error);
+gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark,
+ const gchar *filename,
+ GError **error);
+void g_bookmark_file_set_title (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *title);
+gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error) __attribute__((__malloc__));
+void g_bookmark_file_set_description (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *description);
+gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error) __attribute__((__malloc__));
+void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *mime_type);
+gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error) __attribute__((__malloc__));
+void g_bookmark_file_set_groups (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar **groups,
+ gsize length);
+void g_bookmark_file_add_group (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *group);
+gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *group,
+ GError **error);
+gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark,
+ const gchar *uri,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+void g_bookmark_file_add_application (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *name,
+ const gchar *exec);
+gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *name,
+ GError **error);
+gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark,
+ const gchar *uri,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *name,
+ const gchar *exec,
+ gint count,
+ time_t stamp,
+ GError **error);
+gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *name,
+ gchar **exec,
+ guint *count,
+ time_t *stamp,
+ GError **error);
+void g_bookmark_file_set_is_private (GBookmarkFile *bookmark,
+ const gchar *uri,
+ gboolean is_private);
+gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error);
+void g_bookmark_file_set_icon (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *href,
+ const gchar *mime_type);
+gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark,
+ const gchar *uri,
+ gchar **href,
+ gchar **mime_type,
+ GError **error);
+void g_bookmark_file_set_added (GBookmarkFile *bookmark,
+ const gchar *uri,
+ time_t added);
+time_t g_bookmark_file_get_added (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error);
+void g_bookmark_file_set_modified (GBookmarkFile *bookmark,
+ const gchar *uri,
+ time_t modified);
+time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error);
+void g_bookmark_file_set_visited (GBookmarkFile *bookmark,
+ const gchar *uri,
+ time_t visited);
+time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error);
+gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark,
+ const gchar *uri);
+gint g_bookmark_file_get_size (GBookmarkFile *bookmark);
+gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark,
+ gsize *length) __attribute__((__malloc__));
+gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *group,
+ GError **error);
+gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark,
+ const gchar *uri,
+ const gchar *name,
+ GError **error);
+gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark,
+ const gchar *uri,
+ GError **error);
+gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark,
+ const gchar *old_uri,
+ const gchar *new_uri,
+ GError **error);
+gpointer g_slice_alloc (gsize block_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
+gpointer g_slice_alloc0 (gsize block_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
+gpointer g_slice_copy (gsize block_size,
+ gconstpointer mem_block) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
+void g_slice_free1 (gsize block_size,
+ gpointer mem_block);
+void g_slice_free_chain_with_offset (gsize block_size,
+ gpointer mem_chain,
+ gsize next_offset);
+typedef enum {
+ G_SLICE_CONFIG_ALWAYS_MALLOC = 1,
+ G_SLICE_CONFIG_BYPASS_MAGAZINES,
+ G_SLICE_CONFIG_WORKING_SET_MSECS,
+ G_SLICE_CONFIG_COLOR_INCREMENT,
+ G_SLICE_CONFIG_CHUNK_SIZES,
+ G_SLICE_CONFIG_CONTENTION_COUNTER
+} GSliceConfig;
+void g_slice_set_config (GSliceConfig ckey, gint64 value);
+gint64 g_slice_get_config (GSliceConfig ckey);
+gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values);
+typedef struct _GMemVTable GMemVTable;
+gpointer g_malloc (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
+gpointer g_malloc0 (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
+gpointer g_realloc (gpointer mem,
+ gsize n_bytes) __attribute__((warn_unused_result));
+void g_free (gpointer mem);
+gpointer g_try_malloc (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
+gpointer g_try_malloc0 (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1)));
+gpointer g_try_realloc (gpointer mem,
+ gsize n_bytes) __attribute__((warn_unused_result));
+struct _GMemVTable
+{
+ gpointer (*malloc) (gsize n_bytes);
+ gpointer (*realloc) (gpointer mem,
+ gsize n_bytes);
+ void (*free) (gpointer mem);
+ gpointer (*calloc) (gsize n_blocks,
+ gsize n_block_bytes);
+ gpointer (*try_malloc) (gsize n_bytes);
+ gpointer (*try_realloc) (gpointer mem,
+ gsize n_bytes);
+};
+void g_mem_set_vtable (GMemVTable *vtable);
+gboolean g_mem_is_system_malloc (void);
+extern gboolean g_mem_gc_friendly;
+extern GMemVTable *glib_mem_profiler_table;
+void g_mem_profile (void);
+typedef struct _GAllocator GAllocator;
+typedef struct _GMemChunk GMemChunk;
+GMemChunk* g_mem_chunk_new (const gchar *name,
+ gint atom_size,
+ gsize area_size,
+ gint type);
+void g_mem_chunk_destroy (GMemChunk *mem_chunk);
+gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk);
+gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk);
+void g_mem_chunk_free (GMemChunk *mem_chunk,
+ gpointer mem);
+void g_mem_chunk_clean (GMemChunk *mem_chunk);
+void g_mem_chunk_reset (GMemChunk *mem_chunk);
+void g_mem_chunk_print (GMemChunk *mem_chunk);
+void g_mem_chunk_info (void);
+void g_blow_chunks (void);
+GAllocator*g_allocator_new (const gchar *name,
+ guint n_preallocs);
+void g_allocator_free (GAllocator *allocator);
+typedef struct _GList GList;
+struct _GList
+{
+ gpointer data;
+ GList *next;
+ GList *prev;
+};
+GList* g_list_alloc (void) __attribute__((warn_unused_result));
+void g_list_free (GList *list);
+void g_list_free_1 (GList *list);
+GList* g_list_append (GList *list,
+ gpointer data) __attribute__((warn_unused_result));
+GList* g_list_prepend (GList *list,
+ gpointer data) __attribute__((warn_unused_result));
+GList* g_list_insert (GList *list,
+ gpointer data,
+ gint position) __attribute__((warn_unused_result));
+GList* g_list_insert_sorted (GList *list,
+ gpointer data,
+ GCompareFunc func) __attribute__((warn_unused_result));
+GList* g_list_insert_sorted_with_data (GList *list,
+ gpointer data,
+ GCompareDataFunc func,
+ gpointer user_data) __attribute__((warn_unused_result));
+GList* g_list_insert_before (GList *list,
+ GList *sibling,
+ gpointer data) __attribute__((warn_unused_result));
+GList* g_list_concat (GList *list1,
+ GList *list2) __attribute__((warn_unused_result));
+GList* g_list_remove (GList *list,
+ gconstpointer data) __attribute__((warn_unused_result));
+GList* g_list_remove_all (GList *list,
+ gconstpointer data) __attribute__((warn_unused_result));
+GList* g_list_remove_link (GList *list,
+ GList *llink) __attribute__((warn_unused_result));
+GList* g_list_delete_link (GList *list,
+ GList *link_) __attribute__((warn_unused_result));
+GList* g_list_reverse (GList *list) __attribute__((warn_unused_result));
+GList* g_list_copy (GList *list) __attribute__((warn_unused_result));
+GList* g_list_nth (GList *list,
+ guint n);
+GList* g_list_nth_prev (GList *list,
+ guint n);
+GList* g_list_find (GList *list,
+ gconstpointer data);
+GList* g_list_find_custom (GList *list,
+ gconstpointer data,
+ GCompareFunc func);
+gint g_list_position (GList *list,
+ GList *llink);
+gint g_list_index (GList *list,
+ gconstpointer data);
+GList* g_list_last (GList *list);
+GList* g_list_first (GList *list);
+guint g_list_length (GList *list);
+void g_list_foreach (GList *list,
+ GFunc func,
+ gpointer user_data);
+GList* g_list_sort (GList *list,
+ GCompareFunc compare_func) __attribute__((warn_unused_result));
+GList* g_list_sort_with_data (GList *list,
+ GCompareDataFunc compare_func,
+ gpointer user_data) __attribute__((warn_unused_result));
+gpointer g_list_nth_data (GList *list,
+ guint n);
+void g_list_push_allocator (gpointer allocator);
+void g_list_pop_allocator (void);
+typedef struct _GCache GCache;
+typedef gpointer (*GCacheNewFunc) (gpointer key);
+typedef gpointer (*GCacheDupFunc) (gpointer value);
+typedef void (*GCacheDestroyFunc) (gpointer value);
+GCache* g_cache_new (GCacheNewFunc value_new_func,
+ GCacheDestroyFunc value_destroy_func,
+ GCacheDupFunc key_dup_func,
+ GCacheDestroyFunc key_destroy_func,
+ GHashFunc hash_key_func,
+ GHashFunc hash_value_func,
+ GEqualFunc key_equal_func);
+void g_cache_destroy (GCache *cache);
+gpointer g_cache_insert (GCache *cache,
+ gpointer key);
+void g_cache_remove (GCache *cache,
+ gconstpointer value);
+void g_cache_key_foreach (GCache *cache,
+ GHFunc func,
+ gpointer user_data);
+void g_cache_value_foreach (GCache *cache,
+ GHFunc func,
+ gpointer user_data);
+typedef enum {
+ G_CHECKSUM_MD5,
+ G_CHECKSUM_SHA1,
+ G_CHECKSUM_SHA256
+} GChecksumType;
+typedef struct _GChecksum GChecksum;
+gssize g_checksum_type_get_length (GChecksumType checksum_type);
+GChecksum * g_checksum_new (GChecksumType checksum_type);
+void g_checksum_reset (GChecksum *checksum);
+GChecksum * g_checksum_copy (const GChecksum *checksum);
+void g_checksum_free (GChecksum *checksum);
+void g_checksum_update (GChecksum *checksum,
+ const guchar *data,
+ gssize length);
+const gchar *g_checksum_get_string (GChecksum *checksum);
+void g_checksum_get_digest (GChecksum *checksum,
+ guint8 *buffer,
+ gsize *digest_len);
+gchar *g_compute_checksum_for_data (GChecksumType checksum_type,
+ const guchar *data,
+ gsize length);
+gchar *g_compute_checksum_for_string (GChecksumType checksum_type,
+ const gchar *str,
+ gssize length);
+typedef struct _GCompletion GCompletion;
+typedef gchar* (*GCompletionFunc) (gpointer);
+typedef gint (*GCompletionStrncmpFunc) (const gchar *s1,
+ const gchar *s2,
+ gsize n);
+struct _GCompletion
+{
+ GList* items;
+ GCompletionFunc func;
+ gchar* prefix;
+ GList* cache;
+ GCompletionStrncmpFunc strncmp_func;
+};
+GCompletion* g_completion_new (GCompletionFunc func);
+void g_completion_add_items (GCompletion* cmp,
+ GList* items);
+void g_completion_remove_items (GCompletion* cmp,
+ GList* items);
+void g_completion_clear_items (GCompletion* cmp);
+GList* g_completion_complete (GCompletion* cmp,
+ const gchar* prefix,
+ gchar** new_prefix);
+GList* g_completion_complete_utf8 (GCompletion *cmp,
+ const gchar* prefix,
+ gchar** new_prefix);
+void g_completion_set_compare (GCompletion *cmp,
+ GCompletionStrncmpFunc strncmp_func);
+void g_completion_free (GCompletion* cmp);
+typedef enum
+{
+ G_CONVERT_ERROR_NO_CONVERSION,
+ G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
+ G_CONVERT_ERROR_FAILED,
+ G_CONVERT_ERROR_PARTIAL_INPUT,
+ G_CONVERT_ERROR_BAD_URI,
+ G_CONVERT_ERROR_NOT_ABSOLUTE_PATH
+} GConvertError;
+GQuark g_convert_error_quark (void);
+typedef struct _GIConv *GIConv;
+GIConv g_iconv_open (const gchar *to_codeset,
+ const gchar *from_codeset);
+gsize g_iconv (GIConv converter,
+ gchar **inbuf,
+ gsize *inbytes_left,
+ gchar **outbuf,
+ gsize *outbytes_left);
+gint g_iconv_close (GIConv converter);
+gchar* g_convert (const gchar *str,
+ gssize len,
+ const gchar *to_codeset,
+ const gchar *from_codeset,
+ gsize *bytes_read,
+ gsize *bytes_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_convert_with_iconv (const gchar *str,
+ gssize len,
+ GIConv converter,
+ gsize *bytes_read,
+ gsize *bytes_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_convert_with_fallback (const gchar *str,
+ gssize len,
+ const gchar *to_codeset,
+ const gchar *from_codeset,
+ gchar *fallback,
+ gsize *bytes_read,
+ gsize *bytes_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_locale_to_utf8 (const gchar *opsysstring,
+ gssize len,
+ gsize *bytes_read,
+ gsize *bytes_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_locale_from_utf8 (const gchar *utf8string,
+ gssize len,
+ gsize *bytes_read,
+ gsize *bytes_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_filename_to_utf8 (const gchar *opsysstring,
+ gssize len,
+ gsize *bytes_read,
+ gsize *bytes_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_filename_from_utf8 (const gchar *utf8string,
+ gssize len,
+ gsize *bytes_read,
+ gsize *bytes_written,
+ GError **error) __attribute__((__malloc__));
+gchar *g_filename_from_uri (const gchar *uri,
+ gchar **hostname,
+ GError **error) __attribute__((__malloc__));
+gchar *g_filename_to_uri (const gchar *filename,
+ const gchar *hostname,
+ GError **error) __attribute__((__malloc__));
+gchar *g_filename_display_name (const gchar *filename) __attribute__((__malloc__));
+gboolean g_get_filename_charsets (const gchar ***charsets);
+gchar *g_filename_display_basename (const gchar *filename) __attribute__((__malloc__));
+gchar **g_uri_list_extract_uris (const gchar *uri_list) __attribute__((__malloc__));
+typedef struct _GData GData;
+typedef void (*GDataForeachFunc) (GQuark key_id,
+ gpointer data,
+ gpointer user_data);
+void g_datalist_init (GData **datalist);
+void g_datalist_clear (GData **datalist);
+gpointer g_datalist_id_get_data (GData **datalist,
+ GQuark key_id);
+void g_datalist_id_set_data_full (GData **datalist,
+ GQuark key_id,
+ gpointer data,
+ GDestroyNotify destroy_func);
+gpointer g_datalist_id_remove_no_notify (GData **datalist,
+ GQuark key_id);
+void g_datalist_foreach (GData **datalist,
+ GDataForeachFunc func,
+ gpointer user_data);
+void g_datalist_set_flags (GData **datalist,
+ guint flags);
+void g_datalist_unset_flags (GData **datalist,
+ guint flags);
+guint g_datalist_get_flags (GData **datalist);
+void g_dataset_destroy (gconstpointer dataset_location);
+gpointer g_dataset_id_get_data (gconstpointer dataset_location,
+ GQuark key_id);
+void g_dataset_id_set_data_full (gconstpointer dataset_location,
+ GQuark key_id,
+ gpointer data,
+ GDestroyNotify destroy_func);
+gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location,
+ GQuark key_id);
+void g_dataset_foreach (gconstpointer dataset_location,
+ GDataForeachFunc func,
+ gpointer user_data);
+typedef gint32 GTime;
+typedef guint16 GDateYear;
+typedef guint8 GDateDay;
+typedef struct _GDate GDate;
+typedef enum
+{
+ G_DATE_DAY = 0,
+ G_DATE_MONTH = 1,
+ G_DATE_YEAR = 2
+} GDateDMY;
+typedef enum
+{
+ G_DATE_BAD_WEEKDAY = 0,
+ G_DATE_MONDAY = 1,
+ G_DATE_TUESDAY = 2,
+ G_DATE_WEDNESDAY = 3,
+ G_DATE_THURSDAY = 4,
+ G_DATE_FRIDAY = 5,
+ G_DATE_SATURDAY = 6,
+ G_DATE_SUNDAY = 7
+} GDateWeekday;
+typedef enum
+{
+ G_DATE_BAD_MONTH = 0,
+ G_DATE_JANUARY = 1,
+ G_DATE_FEBRUARY = 2,
+ G_DATE_MARCH = 3,
+ G_DATE_APRIL = 4,
+ G_DATE_MAY = 5,
+ G_DATE_JUNE = 6,
+ G_DATE_JULY = 7,
+ G_DATE_AUGUST = 8,
+ G_DATE_SEPTEMBER = 9,
+ G_DATE_OCTOBER = 10,
+ G_DATE_NOVEMBER = 11,
+ G_DATE_DECEMBER = 12
+} GDateMonth;
+struct _GDate
+{
+ guint julian_days : 32;
+ guint julian : 1;
+ guint dmy : 1;
+ guint day : 6;
+ guint month : 4;
+ guint year : 16;
+};
+GDate* g_date_new (void);
+GDate* g_date_new_dmy (GDateDay day,
+ GDateMonth month,
+ GDateYear year);
+GDate* g_date_new_julian (guint32 julian_day);
+void g_date_free (GDate *date);
+gboolean g_date_valid (const GDate *date);
+gboolean g_date_valid_day (GDateDay day) __attribute__((__const__));
+gboolean g_date_valid_month (GDateMonth month) __attribute__((__const__));
+gboolean g_date_valid_year (GDateYear year) __attribute__((__const__));
+gboolean g_date_valid_weekday (GDateWeekday weekday) __attribute__((__const__));
+gboolean g_date_valid_julian (guint32 julian_date) __attribute__((__const__));
+gboolean g_date_valid_dmy (GDateDay day,
+ GDateMonth month,
+ GDateYear year) __attribute__((__const__));
+GDateWeekday g_date_get_weekday (const GDate *date);
+GDateMonth g_date_get_month (const GDate *date);
+GDateYear g_date_get_year (const GDate *date);
+GDateDay g_date_get_day (const GDate *date);
+guint32 g_date_get_julian (const GDate *date);
+guint g_date_get_day_of_year (const GDate *date);
+guint g_date_get_monday_week_of_year (const GDate *date);
+guint g_date_get_sunday_week_of_year (const GDate *date);
+guint g_date_get_iso8601_week_of_year (const GDate *date);
+void g_date_clear (GDate *date,
+ guint n_dates);
+void g_date_set_parse (GDate *date,
+ const gchar *str);
+void g_date_set_time_t (GDate *date,
+ time_t timet);
+void g_date_set_time_val (GDate *date,
+ GTimeVal *timeval);
+void g_date_set_time (GDate *date,
+ GTime time_);
+void g_date_set_month (GDate *date,
+ GDateMonth month);
+void g_date_set_day (GDate *date,
+ GDateDay day);
+void g_date_set_year (GDate *date,
+ GDateYear year);
+void g_date_set_dmy (GDate *date,
+ GDateDay day,
+ GDateMonth month,
+ GDateYear y);
+void g_date_set_julian (GDate *date,
+ guint32 julian_date);
+gboolean g_date_is_first_of_month (const GDate *date);
+gboolean g_date_is_last_of_month (const GDate *date);
+void g_date_add_days (GDate *date,
+ guint n_days);
+void g_date_subtract_days (GDate *date,
+ guint n_days);
+void g_date_add_months (GDate *date,
+ guint n_months);
+void g_date_subtract_months (GDate *date,
+ guint n_months);
+void g_date_add_years (GDate *date,
+ guint n_years);
+void g_date_subtract_years (GDate *date,
+ guint n_years);
+gboolean g_date_is_leap_year (GDateYear year) __attribute__((__const__));
+guint8 g_date_get_days_in_month (GDateMonth month,
+ GDateYear year) __attribute__((__const__));
+guint8 g_date_get_monday_weeks_in_year (GDateYear year) __attribute__((__const__));
+guint8 g_date_get_sunday_weeks_in_year (GDateYear year) __attribute__((__const__));
+gint g_date_days_between (const GDate *date1,
+ const GDate *date2);
+gint g_date_compare (const GDate *lhs,
+ const GDate *rhs);
+void g_date_to_struct_tm (const GDate *date,
+ struct tm *tm);
+void g_date_clamp (GDate *date,
+ const GDate *min_date,
+ const GDate *max_date);
+void g_date_order (GDate *date1, GDate *date2);
+gsize g_date_strftime (gchar *s,
+ gsize slen,
+ const gchar *format,
+ const GDate *date);
+typedef struct _GDir GDir;
+GDir * g_dir_open (const gchar *path,
+ guint flags,
+ GError **error);
+const gchar *g_dir_read_name (GDir *dir);
+void g_dir_rewind (GDir *dir);
+void g_dir_close (GDir *dir);
+typedef enum
+{
+ G_FILE_ERROR_EXIST,
+ G_FILE_ERROR_ISDIR,
+ G_FILE_ERROR_ACCES,
+ G_FILE_ERROR_NAMETOOLONG,
+ G_FILE_ERROR_NOENT,
+ G_FILE_ERROR_NOTDIR,
+ G_FILE_ERROR_NXIO,
+ G_FILE_ERROR_NODEV,
+ G_FILE_ERROR_ROFS,
+ G_FILE_ERROR_TXTBSY,
+ G_FILE_ERROR_FAULT,
+ G_FILE_ERROR_LOOP,
+ G_FILE_ERROR_NOSPC,
+ G_FILE_ERROR_NOMEM,
+ G_FILE_ERROR_MFILE,
+ G_FILE_ERROR_NFILE,
+ G_FILE_ERROR_BADF,
+ G_FILE_ERROR_INVAL,
+ G_FILE_ERROR_PIPE,
+ G_FILE_ERROR_AGAIN,
+ G_FILE_ERROR_INTR,
+ G_FILE_ERROR_IO,
+ G_FILE_ERROR_PERM,
+ G_FILE_ERROR_NOSYS,
+ G_FILE_ERROR_FAILED
+} GFileError;
+typedef enum
+{
+ G_FILE_TEST_IS_REGULAR = 1 << 0,
+ G_FILE_TEST_IS_SYMLINK = 1 << 1,
+ G_FILE_TEST_IS_DIR = 1 << 2,
+ G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
+ G_FILE_TEST_EXISTS = 1 << 4
+} GFileTest;
+GQuark g_file_error_quark (void);
+GFileError g_file_error_from_errno (gint err_no);
+gboolean g_file_test (const gchar *filename,
+ GFileTest test);
+gboolean g_file_get_contents (const gchar *filename,
+ gchar **contents,
+ gsize *length,
+ GError **error);
+gboolean g_file_set_contents (const gchar *filename,
+ const gchar *contents,
+ gssize length,
+ GError **error);
+gchar *g_file_read_link (const gchar *filename,
+ GError **error);
+gint g_mkstemp (gchar *tmpl);
+gint g_file_open_tmp (const gchar *tmpl,
+ gchar **name_used,
+ GError **error);
+char *g_format_size_for_display (goffset size);
+gchar *g_build_path (const gchar *separator,
+ const gchar *first_element,
+ ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
+gchar *g_build_pathv (const gchar *separator,
+ gchar **args) __attribute__((__malloc__));
+gchar *g_build_filename (const gchar *first_element,
+ ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
+gchar *g_build_filenamev (gchar **args) __attribute__((__malloc__));
+int g_mkdir_with_parents (const gchar *pathname,
+ int mode);
+typedef struct _GHashTable GHashTable;
+typedef gboolean (*GHRFunc) (gpointer key,
+ gpointer value,
+ gpointer user_data);
+typedef struct _GHashTableIter GHashTableIter;
+struct _GHashTableIter
+{
+ gpointer dummy1;
+ gpointer dummy2;
+ gpointer dummy3;
+ int dummy4;
+ gboolean dummy5;
+ gpointer dummy6;
+};
+GHashTable* g_hash_table_new (GHashFunc hash_func,
+ GEqualFunc key_equal_func);
+GHashTable* g_hash_table_new_full (GHashFunc hash_func,
+ GEqualFunc key_equal_func,
+ GDestroyNotify key_destroy_func,
+ GDestroyNotify value_destroy_func);
+void g_hash_table_destroy (GHashTable *hash_table);
+void g_hash_table_insert (GHashTable *hash_table,
+ gpointer key,
+ gpointer value);
+void g_hash_table_replace (GHashTable *hash_table,
+ gpointer key,
+ gpointer value);
+gboolean g_hash_table_remove (GHashTable *hash_table,
+ gconstpointer key);
+void g_hash_table_remove_all (GHashTable *hash_table);
+gboolean g_hash_table_steal (GHashTable *hash_table,
+ gconstpointer key);
+void g_hash_table_steal_all (GHashTable *hash_table);
+gpointer g_hash_table_lookup (GHashTable *hash_table,
+ gconstpointer key);
+gboolean g_hash_table_lookup_extended (GHashTable *hash_table,
+ gconstpointer lookup_key,
+ gpointer *orig_key,
+ gpointer *value);
+void g_hash_table_foreach (GHashTable *hash_table,
+ GHFunc func,
+ gpointer user_data);
+gpointer g_hash_table_find (GHashTable *hash_table,
+ GHRFunc predicate,
+ gpointer user_data);
+guint g_hash_table_foreach_remove (GHashTable *hash_table,
+ GHRFunc func,
+ gpointer user_data);
+guint g_hash_table_foreach_steal (GHashTable *hash_table,
+ GHRFunc func,
+ gpointer user_data);
+guint g_hash_table_size (GHashTable *hash_table);
+GList * g_hash_table_get_keys (GHashTable *hash_table);
+GList * g_hash_table_get_values (GHashTable *hash_table);
+void g_hash_table_iter_init (GHashTableIter *iter,
+ GHashTable *hash_table);
+gboolean g_hash_table_iter_next (GHashTableIter *iter,
+ gpointer *key,
+ gpointer *value);
+GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter);
+void g_hash_table_iter_remove (GHashTableIter *iter);
+void g_hash_table_iter_steal (GHashTableIter *iter);
+GHashTable* g_hash_table_ref (GHashTable *hash_table);
+void g_hash_table_unref (GHashTable *hash_table);
+gboolean g_str_equal (gconstpointer v1,
+ gconstpointer v2);
+guint g_str_hash (gconstpointer v);
+gboolean g_int_equal (gconstpointer v1,
+ gconstpointer v2);
+guint g_int_hash (gconstpointer v);
+guint g_direct_hash (gconstpointer v) __attribute__((__const__));
+gboolean g_direct_equal (gconstpointer v1,
+ gconstpointer v2) __attribute__((__const__));
+typedef struct _GHook GHook;
+typedef struct _GHookList GHookList;
+typedef gint (*GHookCompareFunc) (GHook *new_hook,
+ GHook *sibling);
+typedef gboolean (*GHookFindFunc) (GHook *hook,
+ gpointer data);
+typedef void (*GHookMarshaller) (GHook *hook,
+ gpointer marshal_data);
+typedef gboolean (*GHookCheckMarshaller) (GHook *hook,
+ gpointer marshal_data);
+typedef void (*GHookFunc) (gpointer data);
+typedef gboolean (*GHookCheckFunc) (gpointer data);
+typedef void (*GHookFinalizeFunc) (GHookList *hook_list,
+ GHook *hook);
+typedef enum
+{
+ G_HOOK_FLAG_ACTIVE = 1 << 0,
+ G_HOOK_FLAG_IN_CALL = 1 << 1,
+ G_HOOK_FLAG_MASK = 0x0f
+} GHookFlagMask;
+struct _GHookList
+{
+ gulong seq_id;
+ guint hook_size : 16;
+ guint is_setup : 1;
+ GHook *hooks;
+ gpointer dummy3;
+ GHookFinalizeFunc finalize_hook;
+ gpointer dummy[2];
+};
+struct _GHook
+{
+ gpointer data;
+ GHook *next;
+ GHook *prev;
+ guint ref_count;
+ gulong hook_id;
+ guint flags;
+ gpointer func;
+ GDestroyNotify destroy;
+};
+void g_hook_list_init (GHookList *hook_list,
+ guint hook_size);
+void g_hook_list_clear (GHookList *hook_list);
+GHook* g_hook_alloc (GHookList *hook_list);
+void g_hook_free (GHookList *hook_list,
+ GHook *hook);
+GHook * g_hook_ref (GHookList *hook_list,
+ GHook *hook);
+void g_hook_unref (GHookList *hook_list,
+ GHook *hook);
+gboolean g_hook_destroy (GHookList *hook_list,
+ gulong hook_id);
+void g_hook_destroy_link (GHookList *hook_list,
+ GHook *hook);
+void g_hook_prepend (GHookList *hook_list,
+ GHook *hook);
+void g_hook_insert_before (GHookList *hook_list,
+ GHook *sibling,
+ GHook *hook);
+void g_hook_insert_sorted (GHookList *hook_list,
+ GHook *hook,
+ GHookCompareFunc func);
+GHook* g_hook_get (GHookList *hook_list,
+ gulong hook_id);
+GHook* g_hook_find (GHookList *hook_list,
+ gboolean need_valids,
+ GHookFindFunc func,
+ gpointer data);
+GHook* g_hook_find_data (GHookList *hook_list,
+ gboolean need_valids,
+ gpointer data);
+GHook* g_hook_find_func (GHookList *hook_list,
+ gboolean need_valids,
+ gpointer func);
+GHook* g_hook_find_func_data (GHookList *hook_list,
+ gboolean need_valids,
+ gpointer func,
+ gpointer data);
+GHook* g_hook_first_valid (GHookList *hook_list,
+ gboolean may_be_in_call);
+GHook* g_hook_next_valid (GHookList *hook_list,
+ GHook *hook,
+ gboolean may_be_in_call);
+gint g_hook_compare_ids (GHook *new_hook,
+ GHook *sibling);
+void g_hook_list_invoke (GHookList *hook_list,
+ gboolean may_recurse);
+void g_hook_list_invoke_check (GHookList *hook_list,
+ gboolean may_recurse);
+void g_hook_list_marshal (GHookList *hook_list,
+ gboolean may_recurse,
+ GHookMarshaller marshaller,
+ gpointer marshal_data);
+void g_hook_list_marshal_check (GHookList *hook_list,
+ gboolean may_recurse,
+ GHookCheckMarshaller marshaller,
+ gpointer marshal_data);
+typedef struct _GPollFD GPollFD;
+typedef gint (*GPollFunc) (GPollFD *ufds,
+ guint nfsd,
+ gint timeout_);
+struct _GPollFD
+{
+ gint fd;
+ gushort events;
+ gushort revents;
+};
+gint g_poll (GPollFD *fds,
+ guint nfds,
+ gint timeout);
+typedef struct _GSList GSList;
+struct _GSList
+{
+ gpointer data;
+ GSList *next;
+};
+GSList* g_slist_alloc (void) __attribute__((warn_unused_result));
+void g_slist_free (GSList *list);
+void g_slist_free_1 (GSList *list);
+GSList* g_slist_append (GSList *list,
+ gpointer data) __attribute__((warn_unused_result));
+GSList* g_slist_prepend (GSList *list,
+ gpointer data) __attribute__((warn_unused_result));
+GSList* g_slist_insert (GSList *list,
+ gpointer data,
+ gint position) __attribute__((warn_unused_result));
+GSList* g_slist_insert_sorted (GSList *list,
+ gpointer data,
+ GCompareFunc func) __attribute__((warn_unused_result));
+GSList* g_slist_insert_sorted_with_data (GSList *list,
+ gpointer data,
+ GCompareDataFunc func,
+ gpointer user_data) __attribute__((warn_unused_result));
+GSList* g_slist_insert_before (GSList *slist,
+ GSList *sibling,
+ gpointer data) __attribute__((warn_unused_result));
+GSList* g_slist_concat (GSList *list1,
+ GSList *list2) __attribute__((warn_unused_result));
+GSList* g_slist_remove (GSList *list,
+ gconstpointer data) __attribute__((warn_unused_result));
+GSList* g_slist_remove_all (GSList *list,
+ gconstpointer data) __attribute__((warn_unused_result));
+GSList* g_slist_remove_link (GSList *list,
+ GSList *link_) __attribute__((warn_unused_result));
+GSList* g_slist_delete_link (GSList *list,
+ GSList *link_) __attribute__((warn_unused_result));
+GSList* g_slist_reverse (GSList *list) __attribute__((warn_unused_result));
+GSList* g_slist_copy (GSList *list) __attribute__((warn_unused_result));
+GSList* g_slist_nth (GSList *list,
+ guint n);
+GSList* g_slist_find (GSList *list,
+ gconstpointer data);
+GSList* g_slist_find_custom (GSList *list,
+ gconstpointer data,
+ GCompareFunc func);
+gint g_slist_position (GSList *list,
+ GSList *llink);
+gint g_slist_index (GSList *list,
+ gconstpointer data);
+GSList* g_slist_last (GSList *list);
+guint g_slist_length (GSList *list);
+void g_slist_foreach (GSList *list,
+ GFunc func,
+ gpointer user_data);
+GSList* g_slist_sort (GSList *list,
+ GCompareFunc compare_func) __attribute__((warn_unused_result));
+GSList* g_slist_sort_with_data (GSList *list,
+ GCompareDataFunc compare_func,
+ gpointer user_data) __attribute__((warn_unused_result));
+gpointer g_slist_nth_data (GSList *list,
+ guint n);
+void g_slist_push_allocator (gpointer dummy);
+void g_slist_pop_allocator (void);
+typedef struct _GMainContext GMainContext;
+typedef struct _GMainLoop GMainLoop;
+typedef struct _GSource GSource;
+typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs;
+typedef struct _GSourceFuncs GSourceFuncs;
+typedef gboolean (*GSourceFunc) (gpointer data);
+typedef void (*GChildWatchFunc) (GPid pid,
+ gint status,
+ gpointer data);
+struct _GSource
+{
+ gpointer callback_data;
+ GSourceCallbackFuncs *callback_funcs;
+ GSourceFuncs *source_funcs;
+ guint ref_count;
+ GMainContext *context;
+ gint priority;
+ guint flags;
+ guint source_id;
+ GSList *poll_fds;
+ GSource *prev;
+ GSource *next;
+ gpointer reserved1;
+ gpointer reserved2;
+};
+struct _GSourceCallbackFuncs
+{
+ void (*ref) (gpointer cb_data);
+ void (*unref) (gpointer cb_data);
+ void (*get) (gpointer cb_data,
+ GSource *source,
+ GSourceFunc *func,
+ gpointer *data);
+};
+typedef void (*GSourceDummyMarshal) (void);
+struct _GSourceFuncs
+{
+ gboolean (*prepare) (GSource *source,
+ gint *timeout_);
+ gboolean (*check) (GSource *source);
+ gboolean (*dispatch) (GSource *source,
+ GSourceFunc callback,
+ gpointer user_data);
+ void (*finalize) (GSource *source);
+ GSourceFunc closure_callback;
+ GSourceDummyMarshal closure_marshal;
+};
+GMainContext *g_main_context_new (void);
+GMainContext *g_main_context_ref (GMainContext *context);
+void g_main_context_unref (GMainContext *context);
+GMainContext *g_main_context_default (void);
+gboolean g_main_context_iteration (GMainContext *context,
+ gboolean may_block);
+gboolean g_main_context_pending (GMainContext *context);
+GSource *g_main_context_find_source_by_id (GMainContext *context,
+ guint source_id);
+GSource *g_main_context_find_source_by_user_data (GMainContext *context,
+ gpointer user_data);
+GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context,
+ GSourceFuncs *funcs,
+ gpointer user_data);
+void g_main_context_wakeup (GMainContext *context);
+gboolean g_main_context_acquire (GMainContext *context);
+void g_main_context_release (GMainContext *context);
+gboolean g_main_context_is_owner (GMainContext *context);
+gboolean g_main_context_wait (GMainContext *context,
+ GCond *cond,
+ GMutex *mutex);
+gboolean g_main_context_prepare (GMainContext *context,
+ gint *priority);
+gint g_main_context_query (GMainContext *context,
+ gint max_priority,
+ gint *timeout_,
+ GPollFD *fds,
+ gint n_fds);
+gint g_main_context_check (GMainContext *context,
+ gint max_priority,
+ GPollFD *fds,
+ gint n_fds);
+void g_main_context_dispatch (GMainContext *context);
+void g_main_context_set_poll_func (GMainContext *context,
+ GPollFunc func);
+GPollFunc g_main_context_get_poll_func (GMainContext *context);
+void g_main_context_add_poll (GMainContext *context,
+ GPollFD *fd,
+ gint priority);
+void g_main_context_remove_poll (GMainContext *context,
+ GPollFD *fd);
+gint g_main_depth (void);
+GSource *g_main_current_source (void);
+GMainLoop *g_main_loop_new (GMainContext *context,
+ gboolean is_running);
+void g_main_loop_run (GMainLoop *loop);
+void g_main_loop_quit (GMainLoop *loop);
+GMainLoop *g_main_loop_ref (GMainLoop *loop);
+void g_main_loop_unref (GMainLoop *loop);
+gboolean g_main_loop_is_running (GMainLoop *loop);
+GMainContext *g_main_loop_get_context (GMainLoop *loop);
+GSource *g_source_new (GSourceFuncs *source_funcs,
+ guint struct_size);
+GSource *g_source_ref (GSource *source);
+void g_source_unref (GSource *source);
+guint g_source_attach (GSource *source,
+ GMainContext *context);
+void g_source_destroy (GSource *source);
+void g_source_set_priority (GSource *source,
+ gint priority);
+gint g_source_get_priority (GSource *source);
+void g_source_set_can_recurse (GSource *source,
+ gboolean can_recurse);
+gboolean g_source_get_can_recurse (GSource *source);
+guint g_source_get_id (GSource *source);
+GMainContext *g_source_get_context (GSource *source);
+void g_source_set_callback (GSource *source,
+ GSourceFunc func,
+ gpointer data,
+ GDestroyNotify notify);
+void g_source_set_funcs (GSource *source,
+ GSourceFuncs *funcs);
+gboolean g_source_is_destroyed (GSource *source);
+void g_source_set_callback_indirect (GSource *source,
+ gpointer callback_data,
+ GSourceCallbackFuncs *callback_funcs);
+void g_source_add_poll (GSource *source,
+ GPollFD *fd);
+void g_source_remove_poll (GSource *source,
+ GPollFD *fd);
+void g_source_get_current_time (GSource *source,
+ GTimeVal *timeval);
+GSource *g_idle_source_new (void);
+GSource *g_child_watch_source_new (GPid pid);
+GSource *g_timeout_source_new (guint interval);
+GSource *g_timeout_source_new_seconds (guint interval);
+void g_get_current_time (GTimeVal *result);
+gboolean g_source_remove (guint tag);
+gboolean g_source_remove_by_user_data (gpointer user_data);
+gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
+ gpointer user_data);
+guint g_timeout_add_full (gint priority,
+ guint interval,
+ GSourceFunc function,
+ gpointer data,
+ GDestroyNotify notify);
+guint g_timeout_add (guint interval,
+ GSourceFunc function,
+ gpointer data);
+guint g_timeout_add_seconds_full (gint priority,
+ guint interval,
+ GSourceFunc function,
+ gpointer data,
+ GDestroyNotify notify);
+guint g_timeout_add_seconds (guint interval,
+ GSourceFunc function,
+ gpointer data);
+guint g_child_watch_add_full (gint priority,
+ GPid pid,
+ GChildWatchFunc function,
+ gpointer data,
+ GDestroyNotify notify);
+guint g_child_watch_add (GPid pid,
+ GChildWatchFunc function,
+ gpointer data);
+guint g_idle_add (GSourceFunc function,
+ gpointer data);
+guint g_idle_add_full (gint priority,
+ GSourceFunc function,
+ gpointer data,
+ GDestroyNotify notify);
+gboolean g_idle_remove_by_data (gpointer data);
+extern GSourceFuncs g_timeout_funcs;
+extern GSourceFuncs g_child_watch_funcs;
+extern GSourceFuncs g_idle_funcs;
+typedef guint32 gunichar;
+typedef guint16 gunichar2;
+typedef enum
+{
+ G_UNICODE_CONTROL,
+ G_UNICODE_FORMAT,
+ G_UNICODE_UNASSIGNED,
+ G_UNICODE_PRIVATE_USE,
+ G_UNICODE_SURROGATE,
+ G_UNICODE_LOWERCASE_LETTER,
+ G_UNICODE_MODIFIER_LETTER,
+ G_UNICODE_OTHER_LETTER,
+ G_UNICODE_TITLECASE_LETTER,
+ G_UNICODE_UPPERCASE_LETTER,
+ G_UNICODE_COMBINING_MARK,
+ G_UNICODE_ENCLOSING_MARK,
+ G_UNICODE_NON_SPACING_MARK,
+ G_UNICODE_DECIMAL_NUMBER,
+ G_UNICODE_LETTER_NUMBER,
+ G_UNICODE_OTHER_NUMBER,
+ G_UNICODE_CONNECT_PUNCTUATION,
+ G_UNICODE_DASH_PUNCTUATION,
+ G_UNICODE_CLOSE_PUNCTUATION,
+ G_UNICODE_FINAL_PUNCTUATION,
+ G_UNICODE_INITIAL_PUNCTUATION,
+ G_UNICODE_OTHER_PUNCTUATION,
+ G_UNICODE_OPEN_PUNCTUATION,
+ G_UNICODE_CURRENCY_SYMBOL,
+ G_UNICODE_MODIFIER_SYMBOL,
+ G_UNICODE_MATH_SYMBOL,
+ G_UNICODE_OTHER_SYMBOL,
+ G_UNICODE_LINE_SEPARATOR,
+ G_UNICODE_PARAGRAPH_SEPARATOR,
+ G_UNICODE_SPACE_SEPARATOR
+} GUnicodeType;
+typedef enum
+{
+ G_UNICODE_BREAK_MANDATORY,
+ G_UNICODE_BREAK_CARRIAGE_RETURN,
+ G_UNICODE_BREAK_LINE_FEED,
+ G_UNICODE_BREAK_COMBINING_MARK,
+ G_UNICODE_BREAK_SURROGATE,
+ G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
+ G_UNICODE_BREAK_INSEPARABLE,
+ G_UNICODE_BREAK_NON_BREAKING_GLUE,
+ G_UNICODE_BREAK_CONTINGENT,
+ G_UNICODE_BREAK_SPACE,
+ G_UNICODE_BREAK_AFTER,
+ G_UNICODE_BREAK_BEFORE,
+ G_UNICODE_BREAK_BEFORE_AND_AFTER,
+ G_UNICODE_BREAK_HYPHEN,
+ G_UNICODE_BREAK_NON_STARTER,
+ G_UNICODE_BREAK_OPEN_PUNCTUATION,
+ G_UNICODE_BREAK_CLOSE_PUNCTUATION,
+ G_UNICODE_BREAK_QUOTATION,
+ G_UNICODE_BREAK_EXCLAMATION,
+ G_UNICODE_BREAK_IDEOGRAPHIC,
+ G_UNICODE_BREAK_NUMERIC,
+ G_UNICODE_BREAK_INFIX_SEPARATOR,
+ G_UNICODE_BREAK_SYMBOL,
+ G_UNICODE_BREAK_ALPHABETIC,
+ G_UNICODE_BREAK_PREFIX,
+ G_UNICODE_BREAK_POSTFIX,
+ G_UNICODE_BREAK_COMPLEX_CONTEXT,
+ G_UNICODE_BREAK_AMBIGUOUS,
+ G_UNICODE_BREAK_UNKNOWN,
+ G_UNICODE_BREAK_NEXT_LINE,
+ G_UNICODE_BREAK_WORD_JOINER,
+ G_UNICODE_BREAK_HANGUL_L_JAMO,
+ G_UNICODE_BREAK_HANGUL_V_JAMO,
+ G_UNICODE_BREAK_HANGUL_T_JAMO,
+ G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
+ G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE
+} GUnicodeBreakType;
+typedef enum
+{
+ G_UNICODE_SCRIPT_INVALID_CODE = -1,
+ G_UNICODE_SCRIPT_COMMON = 0,
+ G_UNICODE_SCRIPT_INHERITED,
+ G_UNICODE_SCRIPT_ARABIC,
+ G_UNICODE_SCRIPT_ARMENIAN,
+ G_UNICODE_SCRIPT_BENGALI,
+ G_UNICODE_SCRIPT_BOPOMOFO,
+ G_UNICODE_SCRIPT_CHEROKEE,
+ G_UNICODE_SCRIPT_COPTIC,
+ G_UNICODE_SCRIPT_CYRILLIC,
+ G_UNICODE_SCRIPT_DESERET,
+ G_UNICODE_SCRIPT_DEVANAGARI,
+ G_UNICODE_SCRIPT_ETHIOPIC,
+ G_UNICODE_SCRIPT_GEORGIAN,
+ G_UNICODE_SCRIPT_GOTHIC,
+ G_UNICODE_SCRIPT_GREEK,
+ G_UNICODE_SCRIPT_GUJARATI,
+ G_UNICODE_SCRIPT_GURMUKHI,
+ G_UNICODE_SCRIPT_HAN,
+ G_UNICODE_SCRIPT_HANGUL,
+ G_UNICODE_SCRIPT_HEBREW,
+ G_UNICODE_SCRIPT_HIRAGANA,
+ G_UNICODE_SCRIPT_KANNADA,
+ G_UNICODE_SCRIPT_KATAKANA,
+ G_UNICODE_SCRIPT_KHMER,
+ G_UNICODE_SCRIPT_LAO,
+ G_UNICODE_SCRIPT_LATIN,
+ G_UNICODE_SCRIPT_MALAYALAM,
+ G_UNICODE_SCRIPT_MONGOLIAN,
+ G_UNICODE_SCRIPT_MYANMAR,
+ G_UNICODE_SCRIPT_OGHAM,
+ G_UNICODE_SCRIPT_OLD_ITALIC,
+ G_UNICODE_SCRIPT_ORIYA,
+ G_UNICODE_SCRIPT_RUNIC,
+ G_UNICODE_SCRIPT_SINHALA,
+ G_UNICODE_SCRIPT_SYRIAC,
+ G_UNICODE_SCRIPT_TAMIL,
+ G_UNICODE_SCRIPT_TELUGU,
+ G_UNICODE_SCRIPT_THAANA,
+ G_UNICODE_SCRIPT_THAI,
+ G_UNICODE_SCRIPT_TIBETAN,
+ G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL,
+ G_UNICODE_SCRIPT_YI,
+ G_UNICODE_SCRIPT_TAGALOG,
+ G_UNICODE_SCRIPT_HANUNOO,
+ G_UNICODE_SCRIPT_BUHID,
+ G_UNICODE_SCRIPT_TAGBANWA,
+ G_UNICODE_SCRIPT_BRAILLE,
+ G_UNICODE_SCRIPT_CYPRIOT,
+ G_UNICODE_SCRIPT_LIMBU,
+ G_UNICODE_SCRIPT_OSMANYA,
+ G_UNICODE_SCRIPT_SHAVIAN,
+ G_UNICODE_SCRIPT_LINEAR_B,
+ G_UNICODE_SCRIPT_TAI_LE,
+ G_UNICODE_SCRIPT_UGARITIC,
+ G_UNICODE_SCRIPT_NEW_TAI_LUE,
+ G_UNICODE_SCRIPT_BUGINESE,
+ G_UNICODE_SCRIPT_GLAGOLITIC,
+ G_UNICODE_SCRIPT_TIFINAGH,
+ G_UNICODE_SCRIPT_SYLOTI_NAGRI,
+ G_UNICODE_SCRIPT_OLD_PERSIAN,
+ G_UNICODE_SCRIPT_KHAROSHTHI,
+ G_UNICODE_SCRIPT_UNKNOWN,
+ G_UNICODE_SCRIPT_BALINESE,
+ G_UNICODE_SCRIPT_CUNEIFORM,
+ G_UNICODE_SCRIPT_PHOENICIAN,
+ G_UNICODE_SCRIPT_PHAGS_PA,
+ G_UNICODE_SCRIPT_NKO,
+ G_UNICODE_SCRIPT_KAYAH_LI,
+ G_UNICODE_SCRIPT_LEPCHA,
+ G_UNICODE_SCRIPT_REJANG,
+ G_UNICODE_SCRIPT_SUNDANESE,
+ G_UNICODE_SCRIPT_SAURASHTRA,
+ G_UNICODE_SCRIPT_CHAM,
+ G_UNICODE_SCRIPT_OL_CHIKI,
+ G_UNICODE_SCRIPT_VAI,
+ G_UNICODE_SCRIPT_CARIAN,
+ G_UNICODE_SCRIPT_LYCIAN,
+ G_UNICODE_SCRIPT_LYDIAN
+} GUnicodeScript;
+gboolean g_get_charset (const char **charset);
+gboolean g_unichar_isalnum (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isalpha (gunichar c) __attribute__((__const__));
+gboolean g_unichar_iscntrl (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isdigit (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isgraph (gunichar c) __attribute__((__const__));
+gboolean g_unichar_islower (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isprint (gunichar c) __attribute__((__const__));
+gboolean g_unichar_ispunct (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isspace (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isupper (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isxdigit (gunichar c) __attribute__((__const__));
+gboolean g_unichar_istitle (gunichar c) __attribute__((__const__));
+gboolean g_unichar_isdefined (gunichar c) __attribute__((__const__));
+gboolean g_unichar_iswide (gunichar c) __attribute__((__const__));
+gboolean g_unichar_iswide_cjk(gunichar c) __attribute__((__const__));
+gboolean g_unichar_iszerowidth(gunichar c) __attribute__((__const__));
+gboolean g_unichar_ismark (gunichar c) __attribute__((__const__));
+gunichar g_unichar_toupper (gunichar c) __attribute__((__const__));
+gunichar g_unichar_tolower (gunichar c) __attribute__((__const__));
+gunichar g_unichar_totitle (gunichar c) __attribute__((__const__));
+gint g_unichar_digit_value (gunichar c) __attribute__((__const__));
+gint g_unichar_xdigit_value (gunichar c) __attribute__((__const__));
+GUnicodeType g_unichar_type (gunichar c) __attribute__((__const__));
+GUnicodeBreakType g_unichar_break_type (gunichar c) __attribute__((__const__));
+gint g_unichar_combining_class (gunichar uc) __attribute__((__const__));
+void g_unicode_canonical_ordering (gunichar *string,
+ gsize len);
+gunichar *g_unicode_canonical_decomposition (gunichar ch,
+ gsize *result_len) __attribute__((__malloc__));
+extern const gchar * const g_utf8_skip;
+gunichar g_utf8_get_char (const gchar *p) __attribute__((__pure__));
+gunichar g_utf8_get_char_validated (const gchar *p,
+ gssize max_len) __attribute__((__pure__));
+gchar* g_utf8_offset_to_pointer (const gchar *str,
+ glong offset) __attribute__((__pure__));
+glong g_utf8_pointer_to_offset (const gchar *str,
+ const gchar *pos) __attribute__((__pure__));
+gchar* g_utf8_prev_char (const gchar *p) __attribute__((__pure__));
+gchar* g_utf8_find_next_char (const gchar *p,
+ const gchar *end) __attribute__((__pure__));
+gchar* g_utf8_find_prev_char (const gchar *str,
+ const gchar *p) __attribute__((__pure__));
+glong g_utf8_strlen (const gchar *p,
+ gssize max) __attribute__((__pure__));
+gchar* g_utf8_strncpy (gchar *dest,
+ const gchar *src,
+ gsize n);
+gchar* g_utf8_strchr (const gchar *p,
+ gssize len,
+ gunichar c);
+gchar* g_utf8_strrchr (const gchar *p,
+ gssize len,
+ gunichar c);
+gchar* g_utf8_strreverse (const gchar *str,
+ gssize len);
+gunichar2 *g_utf8_to_utf16 (const gchar *str,
+ glong len,
+ glong *items_read,
+ glong *items_written,
+ GError **error) __attribute__((__malloc__));
+gunichar * g_utf8_to_ucs4 (const gchar *str,
+ glong len,
+ glong *items_read,
+ glong *items_written,
+ GError **error) __attribute__((__malloc__));
+gunichar * g_utf8_to_ucs4_fast (const gchar *str,
+ glong len,
+ glong *items_written) __attribute__((__malloc__));
+gunichar * g_utf16_to_ucs4 (const gunichar2 *str,
+ glong len,
+ glong *items_read,
+ glong *items_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_utf16_to_utf8 (const gunichar2 *str,
+ glong len,
+ glong *items_read,
+ glong *items_written,
+ GError **error) __attribute__((__malloc__));
+gunichar2 *g_ucs4_to_utf16 (const gunichar *str,
+ glong len,
+ glong *items_read,
+ glong *items_written,
+ GError **error) __attribute__((__malloc__));
+gchar* g_ucs4_to_utf8 (const gunichar *str,
+ glong len,
+ glong *items_read,
+ glong *items_written,
+ GError **error) __attribute__((__malloc__));
+gint g_unichar_to_utf8 (gunichar c,
+ gchar *outbuf);
+gboolean g_utf8_validate (const gchar *str,
+ gssize max_len,
+ const gchar **end);
+gboolean g_unichar_validate (gunichar ch) __attribute__((__const__));
+gchar *g_utf8_strup (const gchar *str,
+ gssize len) __attribute__((__malloc__));
+gchar *g_utf8_strdown (const gchar *str,
+ gssize len) __attribute__((__malloc__));
+gchar *g_utf8_casefold (const gchar *str,
+ gssize len) __attribute__((__malloc__));
+typedef enum {
+ G_NORMALIZE_DEFAULT,
+ G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT,
+ G_NORMALIZE_DEFAULT_COMPOSE,
+ G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE,
+ G_NORMALIZE_ALL,
+ G_NORMALIZE_NFKD = G_NORMALIZE_ALL,
+ G_NORMALIZE_ALL_COMPOSE,
+ G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
+} GNormalizeMode;
+gchar *g_utf8_normalize (const gchar *str,
+ gssize len,
+ GNormalizeMode mode) __attribute__((__malloc__));
+gint g_utf8_collate (const gchar *str1,
+ const gchar *str2) __attribute__((__pure__));
+gchar *g_utf8_collate_key (const gchar *str,
+ gssize len) __attribute__((__malloc__));
+gchar *g_utf8_collate_key_for_filename (const gchar *str,
+ gssize len) __attribute__((__malloc__));
+gboolean g_unichar_get_mirror_char (gunichar ch,
+ gunichar *mirrored_ch);
+GUnicodeScript g_unichar_get_script (gunichar ch) __attribute__((__const__));
+gchar *_g_utf8_make_valid (const gchar *name);
+typedef struct _GString GString;
+typedef struct _GStringChunk GStringChunk;
+struct _GString
+{
+ gchar *str;
+ gsize len;
+ gsize allocated_len;
+};
+GStringChunk* g_string_chunk_new (gsize size);
+void g_string_chunk_free (GStringChunk *chunk);
+void g_string_chunk_clear (GStringChunk *chunk);
+gchar* g_string_chunk_insert (GStringChunk *chunk,
+ const gchar *string);
+gchar* g_string_chunk_insert_len (GStringChunk *chunk,
+ const gchar *string,
+ gssize len);
+gchar* g_string_chunk_insert_const (GStringChunk *chunk,
+ const gchar *string);
+GString* g_string_new (const gchar *init);
+GString* g_string_new_len (const gchar *init,
+ gssize len);
+GString* g_string_sized_new (gsize dfl_size);
+gchar* g_string_free (GString *string,
+ gboolean free_segment);
+gboolean g_string_equal (const GString *v,
+ const GString *v2);
+guint g_string_hash (const GString *str);
+GString* g_string_assign (GString *string,
+ const gchar *rval);
+GString* g_string_truncate (GString *string,
+ gsize len);
+GString* g_string_set_size (GString *string,
+ gsize len);
+GString* g_string_insert_len (GString *string,
+ gssize pos,
+ const gchar *val,
+ gssize len);
+GString* g_string_append (GString *string,
+ const gchar *val);
+GString* g_string_append_len (GString *string,
+ const gchar *val,
+ gssize len);
+GString* g_string_append_c (GString *string,
+ gchar c);
+GString* g_string_append_unichar (GString *string,
+ gunichar wc);
+GString* g_string_prepend (GString *string,
+ const gchar *val);
+GString* g_string_prepend_c (GString *string,
+ gchar c);
+GString* g_string_prepend_unichar (GString *string,
+ gunichar wc);
+GString* g_string_prepend_len (GString *string,
+ const gchar *val,
+ gssize len);
+GString* g_string_insert (GString *string,
+ gssize pos,
+ const gchar *val);
+GString* g_string_insert_c (GString *string,
+ gssize pos,
+ gchar c);
+GString* g_string_insert_unichar (GString *string,
+ gssize pos,
+ gunichar wc);
+GString* g_string_overwrite (GString *string,
+ gsize pos,
+ const gchar *val);
+GString* g_string_overwrite_len (GString *string,
+ gsize pos,
+ const gchar *val,
+ gssize len);
+GString* g_string_erase (GString *string,
+ gssize pos,
+ gssize len);
+GString* g_string_ascii_down (GString *string);
+GString* g_string_ascii_up (GString *string);
+void g_string_vprintf (GString *string,
+ const gchar *format,
+ va_list args);
+void g_string_printf (GString *string,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 2, 3)));
+void g_string_append_vprintf (GString *string,
+ const gchar *format,
+ va_list args);
+void g_string_append_printf (GString *string,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 2, 3)));
+GString * g_string_append_uri_escaped(GString *string,
+ const char *unescaped,
+ const char *reserved_chars_allowed,
+ gboolean allow_utf8);
+static inline GString*
+g_string_append_c_inline (GString *gstring,
+ gchar c)
+{
+ if (gstring->len + 1 < gstring->allocated_len)
+ {
+ gstring->str[gstring->len++] = c;
+ gstring->str[gstring->len] = 0;
+ }
+ else
+ g_string_insert_c (gstring, -1, c);
+ return gstring;
+}
+GString* g_string_down (GString *string);
+GString* g_string_up (GString *string);
+typedef struct _GIOChannel GIOChannel;
+typedef struct _GIOFuncs GIOFuncs;
+typedef enum
+{
+ G_IO_ERROR_NONE,
+ G_IO_ERROR_AGAIN,
+ G_IO_ERROR_INVAL,
+ G_IO_ERROR_UNKNOWN
+} GIOError;
+typedef enum
+{
+ G_IO_CHANNEL_ERROR_FBIG,
+ G_IO_CHANNEL_ERROR_INVAL,
+ G_IO_CHANNEL_ERROR_IO,
+ G_IO_CHANNEL_ERROR_ISDIR,
+ G_IO_CHANNEL_ERROR_NOSPC,
+ G_IO_CHANNEL_ERROR_NXIO,
+ G_IO_CHANNEL_ERROR_OVERFLOW,
+ G_IO_CHANNEL_ERROR_PIPE,
+ G_IO_CHANNEL_ERROR_FAILED
+} GIOChannelError;
+typedef enum
+{
+ G_IO_STATUS_ERROR,
+ G_IO_STATUS_NORMAL,
+ G_IO_STATUS_EOF,
+ G_IO_STATUS_AGAIN
+} GIOStatus;
+typedef enum
+{
+ G_SEEK_CUR,
+ G_SEEK_SET,
+ G_SEEK_END
+} GSeekType;
+typedef enum
+{
+ G_IO_IN =1,
+ G_IO_OUT =4,
+ G_IO_PRI =2,
+ G_IO_ERR =8,
+ G_IO_HUP =16,
+ G_IO_NVAL =32
+} GIOCondition;
+typedef enum
+{
+ G_IO_FLAG_APPEND = 1 << 0,
+ G_IO_FLAG_NONBLOCK = 1 << 1,
+ G_IO_FLAG_IS_READABLE = 1 << 2,
+ G_IO_FLAG_IS_WRITEABLE = 1 << 3,
+ G_IO_FLAG_IS_SEEKABLE = 1 << 4,
+ G_IO_FLAG_MASK = (1 << 5) - 1,
+ G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
+ G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
+} GIOFlags;
+struct _GIOChannel
+{
+ gint ref_count;
+ GIOFuncs *funcs;
+ gchar *encoding;
+ GIConv read_cd;
+ GIConv write_cd;
+ gchar *line_term;
+ guint line_term_len;
+ gsize buf_size;
+ GString *read_buf;
+ GString *encoded_read_buf;
+ GString *write_buf;
+ gchar partial_write_buf[6];
+ guint use_buffer : 1;
+ guint do_encode : 1;
+ guint close_on_unref : 1;
+ guint is_readable : 1;
+ guint is_writeable : 1;
+ guint is_seekable : 1;
+ gpointer reserved1;
+ gpointer reserved2;
+};
+typedef gboolean (*GIOFunc) (GIOChannel *source,
+ GIOCondition condition,
+ gpointer data);
+struct _GIOFuncs
+{
+ GIOStatus (*io_read) (GIOChannel *channel,
+ gchar *buf,
+ gsize count,
+ gsize *bytes_read,
+ GError **err);
+ GIOStatus (*io_write) (GIOChannel *channel,
+ const gchar *buf,
+ gsize count,
+ gsize *bytes_written,
+ GError **err);
+ GIOStatus (*io_seek) (GIOChannel *channel,
+ gint64 offset,
+ GSeekType type,
+ GError **err);
+ GIOStatus (*io_close) (GIOChannel *channel,
+ GError **err);
+ GSource* (*io_create_watch) (GIOChannel *channel,
+ GIOCondition condition);
+ void (*io_free) (GIOChannel *channel);
+ GIOStatus (*io_set_flags) (GIOChannel *channel,
+ GIOFlags flags,
+ GError **err);
+ GIOFlags (*io_get_flags) (GIOChannel *channel);
+};
+void g_io_channel_init (GIOChannel *channel);
+GIOChannel *g_io_channel_ref (GIOChannel *channel);
+void g_io_channel_unref (GIOChannel *channel);
+GIOError g_io_channel_read (GIOChannel *channel,
+ gchar *buf,
+ gsize count,
+ gsize *bytes_read);
+GIOError g_io_channel_write (GIOChannel *channel,
+ const gchar *buf,
+ gsize count,
+ gsize *bytes_written);
+GIOError g_io_channel_seek (GIOChannel *channel,
+ gint64 offset,
+ GSeekType type);
+void g_io_channel_close (GIOChannel *channel);
+GIOStatus g_io_channel_shutdown (GIOChannel *channel,
+ gboolean flush,
+ GError **err);
+guint g_io_add_watch_full (GIOChannel *channel,
+ gint priority,
+ GIOCondition condition,
+ GIOFunc func,
+ gpointer user_data,
+ GDestroyNotify notify);
+GSource * g_io_create_watch (GIOChannel *channel,
+ GIOCondition condition);
+guint g_io_add_watch (GIOChannel *channel,
+ GIOCondition condition,
+ GIOFunc func,
+ gpointer user_data);
+void g_io_channel_set_buffer_size (GIOChannel *channel,
+ gsize size);
+gsize g_io_channel_get_buffer_size (GIOChannel *channel);
+GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel);
+GIOStatus g_io_channel_set_flags (GIOChannel *channel,
+ GIOFlags flags,
+ GError **error);
+GIOFlags g_io_channel_get_flags (GIOChannel *channel);
+void g_io_channel_set_line_term (GIOChannel *channel,
+ const gchar *line_term,
+ gint length);
+const gchar* g_io_channel_get_line_term (GIOChannel *channel,
+ gint *length);
+void g_io_channel_set_buffered (GIOChannel *channel,
+ gboolean buffered);
+gboolean g_io_channel_get_buffered (GIOChannel *channel);
+GIOStatus g_io_channel_set_encoding (GIOChannel *channel,
+ const gchar *encoding,
+ GError **error);
+const gchar* g_io_channel_get_encoding (GIOChannel *channel);
+void g_io_channel_set_close_on_unref (GIOChannel *channel,
+ gboolean do_close);
+gboolean g_io_channel_get_close_on_unref (GIOChannel *channel);
+GIOStatus g_io_channel_flush (GIOChannel *channel,
+ GError **error);
+GIOStatus g_io_channel_read_line (GIOChannel *channel,
+ gchar **str_return,
+ gsize *length,
+ gsize *terminator_pos,
+ GError **error);
+GIOStatus g_io_channel_read_line_string (GIOChannel *channel,
+ GString *buffer,
+ gsize *terminator_pos,
+ GError **error);
+GIOStatus g_io_channel_read_to_end (GIOChannel *channel,
+ gchar **str_return,
+ gsize *length,
+ GError **error);
+GIOStatus g_io_channel_read_chars (GIOChannel *channel,
+ gchar *buf,
+ gsize count,
+ gsize *bytes_read,
+ GError **error);
+GIOStatus g_io_channel_read_unichar (GIOChannel *channel,
+ gunichar *thechar,
+ GError **error);
+GIOStatus g_io_channel_write_chars (GIOChannel *channel,
+ const gchar *buf,
+ gssize count,
+ gsize *bytes_written,
+ GError **error);
+GIOStatus g_io_channel_write_unichar (GIOChannel *channel,
+ gunichar thechar,
+ GError **error);
+GIOStatus g_io_channel_seek_position (GIOChannel *channel,
+ gint64 offset,
+ GSeekType type,
+ GError **error);
+GIOChannel* g_io_channel_new_file (const gchar *filename,
+ const gchar *mode,
+ GError **error);
+GQuark g_io_channel_error_quark (void);
+GIOChannelError g_io_channel_error_from_errno (gint en);
+GIOChannel* g_io_channel_unix_new (int fd);
+gint g_io_channel_unix_get_fd (GIOChannel *channel);
+extern GSourceFuncs g_io_watch_funcs;
+typedef enum
+{
+ G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
+ G_KEY_FILE_ERROR_PARSE,
+ G_KEY_FILE_ERROR_NOT_FOUND,
+ G_KEY_FILE_ERROR_KEY_NOT_FOUND,
+ G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
+ G_KEY_FILE_ERROR_INVALID_VALUE
+} GKeyFileError;
+GQuark g_key_file_error_quark (void);
+typedef struct _GKeyFile GKeyFile;
+typedef enum
+{
+ G_KEY_FILE_NONE = 0,
+ G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
+ G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
+} GKeyFileFlags;
+GKeyFile *g_key_file_new (void);
+void g_key_file_free (GKeyFile *key_file);
+void g_key_file_set_list_separator (GKeyFile *key_file,
+ gchar separator);
+gboolean g_key_file_load_from_file (GKeyFile *key_file,
+ const gchar *file,
+ GKeyFileFlags flags,
+ GError **error);
+gboolean g_key_file_load_from_data (GKeyFile *key_file,
+ const gchar *data,
+ gsize length,
+ GKeyFileFlags flags,
+ GError **error);
+gboolean g_key_file_load_from_dirs (GKeyFile *key_file,
+ const gchar *file,
+ const gchar **search_dirs,
+ gchar **full_path,
+ GKeyFileFlags flags,
+ GError **error);
+gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file,
+ const gchar *file,
+ gchar **full_path,
+ GKeyFileFlags flags,
+ GError **error);
+gchar *g_key_file_to_data (GKeyFile *key_file,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+gchar *g_key_file_get_start_group (GKeyFile *key_file) __attribute__((__malloc__));
+gchar **g_key_file_get_groups (GKeyFile *key_file,
+ gsize *length) __attribute__((__malloc__));
+gchar **g_key_file_get_keys (GKeyFile *key_file,
+ const gchar *group_name,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+gboolean g_key_file_has_group (GKeyFile *key_file,
+ const gchar *group_name);
+gboolean g_key_file_has_key (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error);
+gchar *g_key_file_get_value (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_value (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar *value);
+gchar *g_key_file_get_string (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_string (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar *string);
+gchar *g_key_file_get_locale_string (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar *locale,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_locale_string (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar *locale,
+ const gchar *string);
+gboolean g_key_file_get_boolean (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error);
+void g_key_file_set_boolean (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gboolean value);
+gint g_key_file_get_integer (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error);
+void g_key_file_set_integer (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gint value);
+gdouble g_key_file_get_double (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error);
+void g_key_file_set_double (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gdouble value);
+gchar **g_key_file_get_string_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_string_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar * const list[],
+ gsize length);
+gchar **g_key_file_get_locale_string_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar *locale,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_locale_string_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar *locale,
+ const gchar * const list[],
+ gsize length);
+gboolean *g_key_file_get_boolean_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_boolean_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gboolean list[],
+ gsize length);
+gint *g_key_file_get_integer_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_double_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gdouble list[],
+ gsize length);
+gdouble *g_key_file_get_double_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gsize *length,
+ GError **error) __attribute__((__malloc__));
+void g_key_file_set_integer_list (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gint list[],
+ gsize length);
+gboolean g_key_file_set_comment (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ const gchar *comment,
+ GError **error);
+gchar *g_key_file_get_comment (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error) __attribute__((__malloc__));
+gboolean g_key_file_remove_comment (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error);
+gboolean g_key_file_remove_key (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ GError **error);
+gboolean g_key_file_remove_group (GKeyFile *key_file,
+ const gchar *group_name,
+ GError **error);
+typedef struct _GMappedFile GMappedFile;
+GMappedFile *g_mapped_file_new (const gchar *filename,
+ gboolean writable,
+ GError **error) __attribute__((__malloc__));
+gsize g_mapped_file_get_length (GMappedFile *file);
+gchar *g_mapped_file_get_contents (GMappedFile *file);
+void g_mapped_file_free (GMappedFile *file);
+typedef enum
+{
+ G_MARKUP_ERROR_BAD_UTF8,
+ G_MARKUP_ERROR_EMPTY,
+ G_MARKUP_ERROR_PARSE,
+ G_MARKUP_ERROR_UNKNOWN_ELEMENT,
+ G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
+ G_MARKUP_ERROR_INVALID_CONTENT,
+ G_MARKUP_ERROR_MISSING_ATTRIBUTE
+} GMarkupError;
+GQuark g_markup_error_quark (void);
+typedef enum
+{
+ G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
+ G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1,
+ G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2
+} GMarkupParseFlags;
+typedef struct _GMarkupParseContext GMarkupParseContext;
+typedef struct _GMarkupParser GMarkupParser;
+struct _GMarkupParser
+{
+ void (*start_element) (GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error);
+ void (*end_element) (GMarkupParseContext *context,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error);
+ void (*text) (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error);
+ void (*passthrough) (GMarkupParseContext *context,
+ const gchar *passthrough_text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error);
+ void (*error) (GMarkupParseContext *context,
+ GError *error,
+ gpointer user_data);
+};
+GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser,
+ GMarkupParseFlags flags,
+ gpointer user_data,
+ GDestroyNotify user_data_dnotify);
+void g_markup_parse_context_free (GMarkupParseContext *context);
+gboolean g_markup_parse_context_parse (GMarkupParseContext *context,
+ const gchar *text,
+ gssize text_len,
+ GError **error);
+void g_markup_parse_context_push (GMarkupParseContext *context,
+ GMarkupParser *parser,
+ gpointer user_data);
+gpointer g_markup_parse_context_pop (GMarkupParseContext *context);
+gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context,
+ GError **error);
+const gchar *g_markup_parse_context_get_element (GMarkupParseContext *context);
+const GSList *g_markup_parse_context_get_element_stack (GMarkupParseContext *context);
+void g_markup_parse_context_get_position (GMarkupParseContext *context,
+ gint *line_number,
+ gint *char_number);
+gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context);
+gchar* g_markup_escape_text (const gchar *text,
+ gssize length);
+gchar *g_markup_printf_escaped (const char *format,
+ ...) __attribute__((__format__ (__printf__, 1, 2)));
+gchar *g_markup_vprintf_escaped (const char *format,
+ va_list args);
+typedef enum
+{
+ G_MARKUP_COLLECT_INVALID,
+ G_MARKUP_COLLECT_STRING,
+ G_MARKUP_COLLECT_STRDUP,
+ G_MARKUP_COLLECT_BOOLEAN,
+ G_MARKUP_COLLECT_TRISTATE,
+ G_MARKUP_COLLECT_OPTIONAL = (1 << 16)
+} GMarkupCollectType;
+gboolean g_markup_collect_attributes (const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ GError **error,
+ GMarkupCollectType first_type,
+ const gchar *first_attr,
+ ...);
+
+gsize g_printf_string_upper_bound (const gchar* format,
+ va_list args);
+typedef enum
+{
+ G_LOG_FLAG_RECURSION = 1 << 0,
+ G_LOG_FLAG_FATAL = 1 << 1,
+ G_LOG_LEVEL_ERROR = 1 << 2,
+ G_LOG_LEVEL_CRITICAL = 1 << 3,
+ G_LOG_LEVEL_WARNING = 1 << 4,
+ G_LOG_LEVEL_MESSAGE = 1 << 5,
+ G_LOG_LEVEL_INFO = 1 << 6,
+ G_LOG_LEVEL_DEBUG = 1 << 7,
+ G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
+} GLogLevelFlags;
+typedef void (*GLogFunc) (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *message,
+ gpointer user_data);
+guint g_log_set_handler (const gchar *log_domain,
+ GLogLevelFlags log_levels,
+ GLogFunc log_func,
+ gpointer user_data);
+void g_log_remove_handler (const gchar *log_domain,
+ guint handler_id);
+void g_log_default_handler (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *message,
+ gpointer unused_data);
+GLogFunc g_log_set_default_handler (GLogFunc log_func,
+ gpointer user_data);
+void g_log (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 3, 4)));
+void g_logv (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *format,
+ va_list args);
+GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain,
+ GLogLevelFlags fatal_mask);
+GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask);
+__attribute__((visibility("hidden"))) void _g_log_fallback_handler (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *message,
+ gpointer unused_data);
+void g_return_if_fail_warning (const char *log_domain,
+ const char *pretty_function,
+ const char *expression);
+void g_warn_message (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *warnexpr);
+void g_assert_warning (const char *log_domain,
+ const char *file,
+ const int line,
+ const char *pretty_function,
+ const char *expression) __attribute__((__noreturn__));
+typedef void (*GPrintFunc) (const gchar *string);
+void g_print (const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 1, 2)));
+GPrintFunc g_set_print_handler (GPrintFunc func);
+void g_printerr (const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 1, 2)));
+GPrintFunc g_set_printerr_handler (GPrintFunc func);
+typedef struct _GNode GNode;
+typedef enum
+{
+ G_TRAVERSE_LEAVES = 1 << 0,
+ G_TRAVERSE_NON_LEAVES = 1 << 1,
+ G_TRAVERSE_ALL = G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES,
+ G_TRAVERSE_MASK = 0x03,
+ G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES,
+ G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES
+} GTraverseFlags;
+typedef enum
+{
+ G_IN_ORDER,
+ G_PRE_ORDER,
+ G_POST_ORDER,
+ G_LEVEL_ORDER
+} GTraverseType;
+typedef gboolean (*GNodeTraverseFunc) (GNode *node,
+ gpointer data);
+typedef void (*GNodeForeachFunc) (GNode *node,
+ gpointer data);
+typedef gpointer (*GCopyFunc) (gconstpointer src,
+ gpointer data);
+struct _GNode
+{
+ gpointer data;
+ GNode *next;
+ GNode *prev;
+ GNode *parent;
+ GNode *children;
+};
+GNode* g_node_new (gpointer data);
+void g_node_destroy (GNode *root);
+void g_node_unlink (GNode *node);
+GNode* g_node_copy_deep (GNode *node,
+ GCopyFunc copy_func,
+ gpointer data);
+GNode* g_node_copy (GNode *node);
+GNode* g_node_insert (GNode *parent,
+ gint position,
+ GNode *node);
+GNode* g_node_insert_before (GNode *parent,
+ GNode *sibling,
+ GNode *node);
+GNode* g_node_insert_after (GNode *parent,
+ GNode *sibling,
+ GNode *node);
+GNode* g_node_prepend (GNode *parent,
+ GNode *node);
+guint g_node_n_nodes (GNode *root,
+ GTraverseFlags flags);
+GNode* g_node_get_root (GNode *node);
+gboolean g_node_is_ancestor (GNode *node,
+ GNode *descendant);
+guint g_node_depth (GNode *node);
+GNode* g_node_find (GNode *root,
+ GTraverseType order,
+ GTraverseFlags flags,
+ gpointer data);
+void g_node_traverse (GNode *root,
+ GTraverseType order,
+ GTraverseFlags flags,
+ gint max_depth,
+ GNodeTraverseFunc func,
+ gpointer data);
+guint g_node_max_height (GNode *root);
+void g_node_children_foreach (GNode *node,
+ GTraverseFlags flags,
+ GNodeForeachFunc func,
+ gpointer data);
+void g_node_reverse_children (GNode *node);
+guint g_node_n_children (GNode *node);
+GNode* g_node_nth_child (GNode *node,
+ guint n);
+GNode* g_node_last_child (GNode *node);
+GNode* g_node_find_child (GNode *node,
+ GTraverseFlags flags,
+ gpointer data);
+gint g_node_child_position (GNode *node,
+ GNode *child);
+gint g_node_child_index (GNode *node,
+ gpointer data);
+GNode* g_node_first_sibling (GNode *node);
+GNode* g_node_last_sibling (GNode *node);
+void g_node_push_allocator (gpointer dummy);
+void g_node_pop_allocator (void);
+typedef struct _GOptionContext GOptionContext;
+typedef struct _GOptionGroup GOptionGroup;
+typedef struct _GOptionEntry GOptionEntry;
+typedef enum
+{
+ G_OPTION_FLAG_HIDDEN = 1 << 0,
+ G_OPTION_FLAG_IN_MAIN = 1 << 1,
+ G_OPTION_FLAG_REVERSE = 1 << 2,
+ G_OPTION_FLAG_NO_ARG = 1 << 3,
+ G_OPTION_FLAG_FILENAME = 1 << 4,
+ G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
+ G_OPTION_FLAG_NOALIAS = 1 << 6
+} GOptionFlags;
+typedef enum
+{
+ G_OPTION_ARG_NONE,
+ G_OPTION_ARG_STRING,
+ G_OPTION_ARG_INT,
+ G_OPTION_ARG_CALLBACK,
+ G_OPTION_ARG_FILENAME,
+ G_OPTION_ARG_STRING_ARRAY,
+ G_OPTION_ARG_FILENAME_ARRAY,
+ G_OPTION_ARG_DOUBLE,
+ G_OPTION_ARG_INT64
+} GOptionArg;
+typedef gboolean (*GOptionArgFunc) (const gchar *option_name,
+ const gchar *value,
+ gpointer data,
+ GError **error);
+typedef gboolean (*GOptionParseFunc) (GOptionContext *context,
+ GOptionGroup *group,
+ gpointer data,
+ GError **error);
+typedef void (*GOptionErrorFunc) (GOptionContext *context,
+ GOptionGroup *group,
+ gpointer data,
+ GError **error);
+typedef enum
+{
+ G_OPTION_ERROR_UNKNOWN_OPTION,
+ G_OPTION_ERROR_BAD_VALUE,
+ G_OPTION_ERROR_FAILED
+} GOptionError;
+GQuark g_option_error_quark (void);
+struct _GOptionEntry
+{
+ const gchar *long_name;
+ gchar short_name;
+ gint flags;
+ GOptionArg arg;
+ gpointer arg_data;
+ const gchar *description;
+ const gchar *arg_description;
+};
+GOptionContext *g_option_context_new (const gchar *parameter_string);
+void g_option_context_set_summary (GOptionContext *context,
+ const gchar *summary);
+const gchar *g_option_context_get_summary (GOptionContext *context);
+void g_option_context_set_description (GOptionContext *context,
+ const gchar *description);
+const gchar *g_option_context_get_description (GOptionContext *context);
+void g_option_context_free (GOptionContext *context);
+void g_option_context_set_help_enabled (GOptionContext *context,
+ gboolean help_enabled);
+gboolean g_option_context_get_help_enabled (GOptionContext *context);
+void g_option_context_set_ignore_unknown_options (GOptionContext *context,
+ gboolean ignore_unknown);
+gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context);
+void g_option_context_add_main_entries (GOptionContext *context,
+ const GOptionEntry *entries,
+ const gchar *translation_domain);
+gboolean g_option_context_parse (GOptionContext *context,
+ gint *argc,
+ gchar ***argv,
+ GError **error);
+void g_option_context_set_translate_func (GOptionContext *context,
+ GTranslateFunc func,
+ gpointer data,
+ GDestroyNotify destroy_notify);
+void g_option_context_set_translation_domain (GOptionContext *context,
+ const gchar *domain);
+void g_option_context_add_group (GOptionContext *context,
+ GOptionGroup *group);
+void g_option_context_set_main_group (GOptionContext *context,
+ GOptionGroup *group);
+GOptionGroup *g_option_context_get_main_group (GOptionContext *context);
+gchar *g_option_context_get_help (GOptionContext *context,
+ gboolean main_help,
+ GOptionGroup *group);
+GOptionGroup *g_option_group_new (const gchar *name,
+ const gchar *description,
+ const gchar *help_description,
+ gpointer user_data,
+ GDestroyNotify destroy);
+void g_option_group_set_parse_hooks (GOptionGroup *group,
+ GOptionParseFunc pre_parse_func,
+ GOptionParseFunc post_parse_func);
+void g_option_group_set_error_hook (GOptionGroup *group,
+ GOptionErrorFunc error_func);
+void g_option_group_free (GOptionGroup *group);
+void g_option_group_add_entries (GOptionGroup *group,
+ const GOptionEntry *entries);
+void g_option_group_set_translate_func (GOptionGroup *group,
+ GTranslateFunc func,
+ gpointer data,
+ GDestroyNotify destroy_notify);
+void g_option_group_set_translation_domain (GOptionGroup *group,
+ const gchar *domain);
+typedef struct _GPatternSpec GPatternSpec;
+GPatternSpec* g_pattern_spec_new (const gchar *pattern);
+void g_pattern_spec_free (GPatternSpec *pspec);
+gboolean g_pattern_spec_equal (GPatternSpec *pspec1,
+ GPatternSpec *pspec2);
+gboolean g_pattern_match (GPatternSpec *pspec,
+ guint string_length,
+ const gchar *string,
+ const gchar *string_reversed);
+gboolean g_pattern_match_string (GPatternSpec *pspec,
+ const gchar *string);
+gboolean g_pattern_match_simple (const gchar *pattern,
+ const gchar *string);
+guint g_spaced_primes_closest (guint num) __attribute__((__const__));
+void g_qsort_with_data (gconstpointer pbase,
+ gint total_elems,
+ gsize size,
+ GCompareDataFunc compare_func,
+ gpointer user_data);
+typedef struct _GQueue GQueue;
+struct _GQueue
+{
+ GList *head;
+ GList *tail;
+ guint length;
+};
+GQueue* g_queue_new (void);
+void g_queue_free (GQueue *queue);
+void g_queue_init (GQueue *queue);
+void g_queue_clear (GQueue *queue);
+gboolean g_queue_is_empty (GQueue *queue);
+guint g_queue_get_length (GQueue *queue);
+void g_queue_reverse (GQueue *queue);
+GQueue * g_queue_copy (GQueue *queue);
+void g_queue_foreach (GQueue *queue,
+ GFunc func,
+ gpointer user_data);
+GList * g_queue_find (GQueue *queue,
+ gconstpointer data);
+GList * g_queue_find_custom (GQueue *queue,
+ gconstpointer data,
+ GCompareFunc func);
+void g_queue_sort (GQueue *queue,
+ GCompareDataFunc compare_func,
+ gpointer user_data);
+void g_queue_push_head (GQueue *queue,
+ gpointer data);
+void g_queue_push_tail (GQueue *queue,
+ gpointer data);
+void g_queue_push_nth (GQueue *queue,
+ gpointer data,
+ gint n);
+gpointer g_queue_pop_head (GQueue *queue);
+gpointer g_queue_pop_tail (GQueue *queue);
+gpointer g_queue_pop_nth (GQueue *queue,
+ guint n);
+gpointer g_queue_peek_head (GQueue *queue);
+gpointer g_queue_peek_tail (GQueue *queue);
+gpointer g_queue_peek_nth (GQueue *queue,
+ guint n);
+gint g_queue_index (GQueue *queue,
+ gconstpointer data);
+void g_queue_remove (GQueue *queue,
+ gconstpointer data);
+void g_queue_remove_all (GQueue *queue,
+ gconstpointer data);
+void g_queue_insert_before (GQueue *queue,
+ GList *sibling,
+ gpointer data);
+void g_queue_insert_after (GQueue *queue,
+ GList *sibling,
+ gpointer data);
+void g_queue_insert_sorted (GQueue *queue,
+ gpointer data,
+ GCompareDataFunc func,
+ gpointer user_data);
+void g_queue_push_head_link (GQueue *queue,
+ GList *link_);
+void g_queue_push_tail_link (GQueue *queue,
+ GList *link_);
+void g_queue_push_nth_link (GQueue *queue,
+ gint n,
+ GList *link_);
+GList* g_queue_pop_head_link (GQueue *queue);
+GList* g_queue_pop_tail_link (GQueue *queue);
+GList* g_queue_pop_nth_link (GQueue *queue,
+ guint n);
+GList* g_queue_peek_head_link (GQueue *queue);
+GList* g_queue_peek_tail_link (GQueue *queue);
+GList* g_queue_peek_nth_link (GQueue *queue,
+ guint n);
+gint g_queue_link_index (GQueue *queue,
+ GList *link_);
+void g_queue_unlink (GQueue *queue,
+ GList *link_);
+void g_queue_delete_link (GQueue *queue,
+ GList *link_);
+typedef struct _GRand GRand;
+GRand* g_rand_new_with_seed (guint32 seed);
+GRand* g_rand_new_with_seed_array (const guint32 *seed,
+ guint seed_length);
+GRand* g_rand_new (void);
+void g_rand_free (GRand *rand_);
+GRand* g_rand_copy (GRand *rand_);
+void g_rand_set_seed (GRand *rand_,
+ guint32 seed);
+void g_rand_set_seed_array (GRand *rand_,
+ const guint32 *seed,
+ guint seed_length);
+guint32 g_rand_int (GRand *rand_);
+gint32 g_rand_int_range (GRand *rand_,
+ gint32 begin,
+ gint32 end);
+gdouble g_rand_double (GRand *rand_);
+gdouble g_rand_double_range (GRand *rand_,
+ gdouble begin,
+ gdouble end);
+void g_random_set_seed (guint32 seed);
+guint32 g_random_int (void);
+gint32 g_random_int_range (gint32 begin,
+ gint32 end);
+gdouble g_random_double (void);
+gdouble g_random_double_range (gdouble begin,
+ gdouble end);
+typedef struct _GRelation GRelation;
+typedef struct _GTuples GTuples;
+struct _GTuples
+{
+ guint len;
+};
+GRelation* g_relation_new (gint fields);
+void g_relation_destroy (GRelation *relation);
+void g_relation_index (GRelation *relation,
+ gint field,
+ GHashFunc hash_func,
+ GEqualFunc key_equal_func);
+void g_relation_insert (GRelation *relation,
+ ...);
+gint g_relation_delete (GRelation *relation,
+ gconstpointer key,
+ gint field);
+GTuples* g_relation_select (GRelation *relation,
+ gconstpointer key,
+ gint field);
+gint g_relation_count (GRelation *relation,
+ gconstpointer key,
+ gint field);
+gboolean g_relation_exists (GRelation *relation,
+ ...);
+void g_relation_print (GRelation *relation);
+void g_tuples_destroy (GTuples *tuples);
+gpointer g_tuples_index (GTuples *tuples,
+ gint index_,
+ gint field);
+typedef enum
+{
+ G_REGEX_ERROR_COMPILE,
+ G_REGEX_ERROR_OPTIMIZE,
+ G_REGEX_ERROR_REPLACE,
+ G_REGEX_ERROR_MATCH,
+ G_REGEX_ERROR_INTERNAL,
+ G_REGEX_ERROR_STRAY_BACKSLASH = 101,
+ G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102,
+ G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103,
+ G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104,
+ G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105,
+ G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106,
+ G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107,
+ G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108,
+ G_REGEX_ERROR_NOTHING_TO_REPEAT = 109,
+ G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112,
+ G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113,
+ G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114,
+ G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115,
+ G_REGEX_ERROR_UNTERMINATED_COMMENT = 118,
+ G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120,
+ G_REGEX_ERROR_MEMORY_ERROR = 121,
+ G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125,
+ G_REGEX_ERROR_MALFORMED_CONDITION = 126,
+ G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127,
+ G_REGEX_ERROR_ASSERTION_EXPECTED = 128,
+ G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130,
+ G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131,
+ G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134,
+ G_REGEX_ERROR_INVALID_CONDITION = 135,
+ G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136,
+ G_REGEX_ERROR_INFINITE_LOOP = 140,
+ G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142,
+ G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143,
+ G_REGEX_ERROR_MALFORMED_PROPERTY = 146,
+ G_REGEX_ERROR_UNKNOWN_PROPERTY = 147,
+ G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148,
+ G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149,
+ G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151,
+ G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154,
+ G_REGEX_ERROR_DEFINE_REPETION = 155,
+ G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156,
+ G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157
+} GRegexError;
+GQuark g_regex_error_quark (void);
+typedef enum
+{
+ G_REGEX_CASELESS = 1 << 0,
+ G_REGEX_MULTILINE = 1 << 1,
+ G_REGEX_DOTALL = 1 << 2,
+ G_REGEX_EXTENDED = 1 << 3,
+ G_REGEX_ANCHORED = 1 << 4,
+ G_REGEX_DOLLAR_ENDONLY = 1 << 5,
+ G_REGEX_UNGREEDY = 1 << 9,
+ G_REGEX_RAW = 1 << 11,
+ G_REGEX_NO_AUTO_CAPTURE = 1 << 12,
+ G_REGEX_OPTIMIZE = 1 << 13,
+ G_REGEX_DUPNAMES = 1 << 19,
+ G_REGEX_NEWLINE_CR = 1 << 20,
+ G_REGEX_NEWLINE_LF = 1 << 21,
+ G_REGEX_NEWLINE_CRLF = G_REGEX_NEWLINE_CR | G_REGEX_NEWLINE_LF
+} GRegexCompileFlags;
+typedef enum
+{
+ G_REGEX_MATCH_ANCHORED = 1 << 4,
+ G_REGEX_MATCH_NOTBOL = 1 << 7,
+ G_REGEX_MATCH_NOTEOL = 1 << 8,
+ G_REGEX_MATCH_NOTEMPTY = 1 << 10,
+ G_REGEX_MATCH_PARTIAL = 1 << 15,
+ G_REGEX_MATCH_NEWLINE_CR = 1 << 20,
+ G_REGEX_MATCH_NEWLINE_LF = 1 << 21,
+ G_REGEX_MATCH_NEWLINE_CRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_LF,
+ G_REGEX_MATCH_NEWLINE_ANY = 1 << 22
+} GRegexMatchFlags;
+typedef struct _GRegex GRegex;
+typedef struct _GMatchInfo GMatchInfo;
+typedef gboolean (*GRegexEvalCallback) (const GMatchInfo *match_info,
+ GString *result,
+ gpointer user_data);
+GRegex *g_regex_new (const gchar *pattern,
+ GRegexCompileFlags compile_options,
+ GRegexMatchFlags match_options,
+ GError **error);
+GRegex *g_regex_ref (GRegex *regex);
+void g_regex_unref (GRegex *regex);
+const gchar *g_regex_get_pattern (const GRegex *regex);
+gint g_regex_get_max_backref (const GRegex *regex);
+gint g_regex_get_capture_count (const GRegex *regex);
+gint g_regex_get_string_number (const GRegex *regex,
+ const gchar *name);
+gchar *g_regex_escape_string (const gchar *string,
+ gint length);
+gboolean g_regex_match_simple (const gchar *pattern,
+ const gchar *string,
+ GRegexCompileFlags compile_options,
+ GRegexMatchFlags match_options);
+gboolean g_regex_match (const GRegex *regex,
+ const gchar *string,
+ GRegexMatchFlags match_options,
+ GMatchInfo **match_info);
+gboolean g_regex_match_full (const GRegex *regex,
+ const gchar *string,
+ gssize string_len,
+ gint start_position,
+ GRegexMatchFlags match_options,
+ GMatchInfo **match_info,
+ GError **error);
+gboolean g_regex_match_all (const GRegex *regex,
+ const gchar *string,
+ GRegexMatchFlags match_options,
+ GMatchInfo **match_info);
+gboolean g_regex_match_all_full (const GRegex *regex,
+ const gchar *string,
+ gssize string_len,
+ gint start_position,
+ GRegexMatchFlags match_options,
+ GMatchInfo **match_info,
+ GError **error);
+gchar **g_regex_split_simple (const gchar *pattern,
+ const gchar *string,
+ GRegexCompileFlags compile_options,
+ GRegexMatchFlags match_options);
+gchar **g_regex_split (const GRegex *regex,
+ const gchar *string,
+ GRegexMatchFlags match_options);
+gchar **g_regex_split_full (const GRegex *regex,
+ const gchar *string,
+ gssize string_len,
+ gint start_position,
+ GRegexMatchFlags match_options,
+ gint max_tokens,
+ GError **error);
+gchar *g_regex_replace (const GRegex *regex,
+ const gchar *string,
+ gssize string_len,
+ gint start_position,
+ const gchar *replacement,
+ GRegexMatchFlags match_options,
+ GError **error);
+gchar *g_regex_replace_literal (const GRegex *regex,
+ const gchar *string,
+ gssize string_len,
+ gint start_position,
+ const gchar *replacement,
+ GRegexMatchFlags match_options,
+ GError **error);
+gchar *g_regex_replace_eval (const GRegex *regex,
+ const gchar *string,
+ gssize string_len,
+ gint start_position,
+ GRegexMatchFlags match_options,
+ GRegexEvalCallback eval,
+ gpointer user_data,
+ GError **error);
+gboolean g_regex_check_replacement (const gchar *replacement,
+ gboolean *has_references,
+ GError **error);
+GRegex *g_match_info_get_regex (const GMatchInfo *match_info);
+const gchar *g_match_info_get_string (const GMatchInfo *match_info);
+void g_match_info_free (GMatchInfo *match_info);
+gboolean g_match_info_next (GMatchInfo *match_info,
+ GError **error);
+gboolean g_match_info_matches (const GMatchInfo *match_info);
+gint g_match_info_get_match_count (const GMatchInfo *match_info);
+gboolean g_match_info_is_partial_match (const GMatchInfo *match_info);
+gchar *g_match_info_expand_references(const GMatchInfo *match_info,
+ const gchar *string_to_expand,
+ GError **error);
+gchar *g_match_info_fetch (const GMatchInfo *match_info,
+ gint match_num);
+gboolean g_match_info_fetch_pos (const GMatchInfo *match_info,
+ gint match_num,
+ gint *start_pos,
+ gint *end_pos);
+gchar *g_match_info_fetch_named (const GMatchInfo *match_info,
+ const gchar *name);
+gboolean g_match_info_fetch_named_pos (const GMatchInfo *match_info,
+ const gchar *name,
+ gint *start_pos,
+ gint *end_pos);
+gchar **g_match_info_fetch_all (const GMatchInfo *match_info);
+typedef struct _GScanner GScanner;
+typedef struct _GScannerConfig GScannerConfig;
+typedef union _GTokenValue GTokenValue;
+typedef void (*GScannerMsgFunc) (GScanner *scanner,
+ gchar *message,
+ gboolean error);
+typedef enum
+{
+ G_ERR_UNKNOWN,
+ G_ERR_UNEXP_EOF,
+ G_ERR_UNEXP_EOF_IN_STRING,
+ G_ERR_UNEXP_EOF_IN_COMMENT,
+ G_ERR_NON_DIGIT_IN_CONST,
+ G_ERR_DIGIT_RADIX,
+ G_ERR_FLOAT_RADIX,
+ G_ERR_FLOAT_MALFORMED
+} GErrorType;
+typedef enum
+{
+ G_TOKEN_EOF = 0,
+ G_TOKEN_LEFT_PAREN = '(',
+ G_TOKEN_RIGHT_PAREN = ')',
+ G_TOKEN_LEFT_CURLY = '{',
+ G_TOKEN_RIGHT_CURLY = '}',
+ G_TOKEN_LEFT_BRACE = '[',
+ G_TOKEN_RIGHT_BRACE = ']',
+ G_TOKEN_EQUAL_SIGN = '=',
+ G_TOKEN_COMMA = ',',
+ G_TOKEN_NONE = 256,
+ G_TOKEN_ERROR,
+ G_TOKEN_CHAR,
+ G_TOKEN_BINARY,
+ G_TOKEN_OCTAL,
+ G_TOKEN_INT,
+ G_TOKEN_HEX,
+ G_TOKEN_FLOAT,
+ G_TOKEN_STRING,
+ G_TOKEN_SYMBOL,
+ G_TOKEN_IDENTIFIER,
+ G_TOKEN_IDENTIFIER_NULL,
+ G_TOKEN_COMMENT_SINGLE,
+ G_TOKEN_COMMENT_MULTI,
+ G_TOKEN_LAST
+} GTokenType;
+union _GTokenValue
+{
+ gpointer v_symbol;
+ gchar *v_identifier;
+ gulong v_binary;
+ gulong v_octal;
+ gulong v_int;
+ guint64 v_int64;
+ gdouble v_float;
+ gulong v_hex;
+ gchar *v_string;
+ gchar *v_comment;
+ guchar v_char;
+ guint v_error;
+};
+struct _GScannerConfig
+{
+ gchar *cset_skip_characters;
+ gchar *cset_identifier_first;
+ gchar *cset_identifier_nth;
+ gchar *cpair_comment_single;
+ guint case_sensitive : 1;
+ guint skip_comment_multi : 1;
+ guint skip_comment_single : 1;
+ guint scan_comment_multi : 1;
+ guint scan_identifier : 1;
+ guint scan_identifier_1char : 1;
+ guint scan_identifier_NULL : 1;
+ guint scan_symbols : 1;
+ guint scan_binary : 1;
+ guint scan_octal : 1;
+ guint scan_float : 1;
+ guint scan_hex : 1;
+ guint scan_hex_dollar : 1;
+ guint scan_string_sq : 1;
+ guint scan_string_dq : 1;
+ guint numbers_2_int : 1;
+ guint int_2_float : 1;
+ guint identifier_2_string : 1;
+ guint char_2_token : 1;
+ guint symbol_2_token : 1;
+ guint scope_0_fallback : 1;
+ guint store_int64 : 1;
+ guint padding_dummy;
+};
+struct _GScanner
+{
+ gpointer user_data;
+ guint max_parse_errors;
+ guint parse_errors;
+ const gchar *input_name;
+ GData *qdata;
+ GScannerConfig *config;
+ GTokenType token;
+ GTokenValue value;
+ guint line;
+ guint position;
+ GTokenType next_token;
+ GTokenValue next_value;
+ guint next_line;
+ guint next_position;
+ GHashTable *symbol_table;
+ gint input_fd;
+ const gchar *text;
+ const gchar *text_end;
+ gchar *buffer;
+ guint scope_id;
+ GScannerMsgFunc msg_handler;
+};
+GScanner* g_scanner_new (const GScannerConfig *config_templ);
+void g_scanner_destroy (GScanner *scanner);
+void g_scanner_input_file (GScanner *scanner,
+ gint input_fd);
+void g_scanner_sync_file_offset (GScanner *scanner);
+void g_scanner_input_text (GScanner *scanner,
+ const gchar *text,
+ guint text_len);
+GTokenType g_scanner_get_next_token (GScanner *scanner);
+GTokenType g_scanner_peek_next_token (GScanner *scanner);
+GTokenType g_scanner_cur_token (GScanner *scanner);
+GTokenValue g_scanner_cur_value (GScanner *scanner);
+guint g_scanner_cur_line (GScanner *scanner);
+guint g_scanner_cur_position (GScanner *scanner);
+gboolean g_scanner_eof (GScanner *scanner);
+guint g_scanner_set_scope (GScanner *scanner,
+ guint scope_id);
+void g_scanner_scope_add_symbol (GScanner *scanner,
+ guint scope_id,
+ const gchar *symbol,
+ gpointer value);
+void g_scanner_scope_remove_symbol (GScanner *scanner,
+ guint scope_id,
+ const gchar *symbol);
+gpointer g_scanner_scope_lookup_symbol (GScanner *scanner,
+ guint scope_id,
+ const gchar *symbol);
+void g_scanner_scope_foreach_symbol (GScanner *scanner,
+ guint scope_id,
+ GHFunc func,
+ gpointer user_data);
+gpointer g_scanner_lookup_symbol (GScanner *scanner,
+ const gchar *symbol);
+void g_scanner_unexp_token (GScanner *scanner,
+ GTokenType expected_token,
+ const gchar *identifier_spec,
+ const gchar *symbol_spec,
+ const gchar *symbol_name,
+ const gchar *message,
+ gint is_error);
+void g_scanner_error (GScanner *scanner,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 2, 3)));
+void g_scanner_warn (GScanner *scanner,
+ const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 2, 3)));
+typedef struct _GSequence GSequence;
+typedef struct _GSequenceNode GSequenceIter;
+typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a,
+ GSequenceIter *b,
+ gpointer data);
+GSequence * g_sequence_new (GDestroyNotify data_destroy);
+void g_sequence_free (GSequence *seq);
+gint g_sequence_get_length (GSequence *seq);
+void g_sequence_foreach (GSequence *seq,
+ GFunc func,
+ gpointer user_data);
+void g_sequence_foreach_range (GSequenceIter *begin,
+ GSequenceIter *end,
+ GFunc func,
+ gpointer user_data);
+void g_sequence_sort (GSequence *seq,
+ GCompareDataFunc cmp_func,
+ gpointer cmp_data);
+void g_sequence_sort_iter (GSequence *seq,
+ GSequenceIterCompareFunc cmp_func,
+ gpointer cmp_data);
+GSequenceIter *g_sequence_get_begin_iter (GSequence *seq);
+GSequenceIter *g_sequence_get_end_iter (GSequence *seq);
+GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq,
+ gint pos);
+GSequenceIter *g_sequence_append (GSequence *seq,
+ gpointer data);
+GSequenceIter *g_sequence_prepend (GSequence *seq,
+ gpointer data);
+GSequenceIter *g_sequence_insert_before (GSequenceIter *iter,
+ gpointer data);
+void g_sequence_move (GSequenceIter *src,
+ GSequenceIter *dest);
+void g_sequence_swap (GSequenceIter *a,
+ GSequenceIter *b);
+GSequenceIter *g_sequence_insert_sorted (GSequence *seq,
+ gpointer data,
+ GCompareDataFunc cmp_func,
+ gpointer cmp_data);
+GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq,
+ gpointer data,
+ GSequenceIterCompareFunc iter_cmp,
+ gpointer cmp_data);
+void g_sequence_sort_changed (GSequenceIter *iter,
+ GCompareDataFunc cmp_func,
+ gpointer cmp_data);
+void g_sequence_sort_changed_iter (GSequenceIter *iter,
+ GSequenceIterCompareFunc iter_cmp,
+ gpointer cmp_data);
+void g_sequence_remove (GSequenceIter *iter);
+void g_sequence_remove_range (GSequenceIter *begin,
+ GSequenceIter *end);
+void g_sequence_move_range (GSequenceIter *dest,
+ GSequenceIter *begin,
+ GSequenceIter *end);
+GSequenceIter *g_sequence_search (GSequence *seq,
+ gpointer data,
+ GCompareDataFunc cmp_func,
+ gpointer cmp_data);
+GSequenceIter *g_sequence_search_iter (GSequence *seq,
+ gpointer data,
+ GSequenceIterCompareFunc iter_cmp,
+ gpointer cmp_data);
+gpointer g_sequence_get (GSequenceIter *iter);
+void g_sequence_set (GSequenceIter *iter,
+ gpointer data);
+gboolean g_sequence_iter_is_begin (GSequenceIter *iter);
+gboolean g_sequence_iter_is_end (GSequenceIter *iter);
+GSequenceIter *g_sequence_iter_next (GSequenceIter *iter);
+GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter);
+gint g_sequence_iter_get_position (GSequenceIter *iter);
+GSequenceIter *g_sequence_iter_move (GSequenceIter *iter,
+ gint delta);
+GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter);
+gint g_sequence_iter_compare (GSequenceIter *a,
+ GSequenceIter *b);
+GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin,
+ GSequenceIter *end);
+typedef enum
+{
+ G_SHELL_ERROR_BAD_QUOTING,
+ G_SHELL_ERROR_EMPTY_STRING,
+ G_SHELL_ERROR_FAILED
+} GShellError;
+GQuark g_shell_error_quark (void);
+gchar* g_shell_quote (const gchar *unquoted_string);
+gchar* g_shell_unquote (const gchar *quoted_string,
+ GError **error);
+gboolean g_shell_parse_argv (const gchar *command_line,
+ gint *argcp,
+ gchar ***argvp,
+ GError **error);
+typedef enum
+{
+ G_SPAWN_ERROR_FORK,
+ G_SPAWN_ERROR_READ,
+ G_SPAWN_ERROR_CHDIR,
+ G_SPAWN_ERROR_ACCES,
+ G_SPAWN_ERROR_PERM,
+ G_SPAWN_ERROR_2BIG,
+ G_SPAWN_ERROR_NOEXEC,
+ G_SPAWN_ERROR_NAMETOOLONG,
+ G_SPAWN_ERROR_NOENT,
+ G_SPAWN_ERROR_NOMEM,
+ G_SPAWN_ERROR_NOTDIR,
+ G_SPAWN_ERROR_LOOP,
+ G_SPAWN_ERROR_TXTBUSY,
+ G_SPAWN_ERROR_IO,
+ G_SPAWN_ERROR_NFILE,
+ G_SPAWN_ERROR_MFILE,
+ G_SPAWN_ERROR_INVAL,
+ G_SPAWN_ERROR_ISDIR,
+ G_SPAWN_ERROR_LIBBAD,
+ G_SPAWN_ERROR_FAILED
+} GSpawnError;
+typedef void (* GSpawnChildSetupFunc) (gpointer user_data);
+typedef enum
+{
+ G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
+ G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1,
+ G_SPAWN_SEARCH_PATH = 1 << 2,
+ G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3,
+ G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4,
+ G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5,
+ G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6
+} GSpawnFlags;
+GQuark g_spawn_error_quark (void);
+gboolean g_spawn_async (const gchar *working_directory,
+ gchar **argv,
+ gchar **envp,
+ GSpawnFlags flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer user_data,
+ GPid *child_pid,
+ GError **error);
+gboolean g_spawn_async_with_pipes (const gchar *working_directory,
+ gchar **argv,
+ gchar **envp,
+ GSpawnFlags flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer user_data,
+ GPid *child_pid,
+ gint *standard_input,
+ gint *standard_output,
+ gint *standard_error,
+ GError **error);
+gboolean g_spawn_sync (const gchar *working_directory,
+ gchar **argv,
+ gchar **envp,
+ GSpawnFlags flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer user_data,
+ gchar **standard_output,
+ gchar **standard_error,
+ gint *exit_status,
+ GError **error);
+gboolean g_spawn_command_line_sync (const gchar *command_line,
+ gchar **standard_output,
+ gchar **standard_error,
+ gint *exit_status,
+ GError **error);
+gboolean g_spawn_command_line_async (const gchar *command_line,
+ GError **error);
+void g_spawn_close_pid (GPid pid);
+typedef enum {
+ G_ASCII_ALNUM = 1 << 0,
+ G_ASCII_ALPHA = 1 << 1,
+ G_ASCII_CNTRL = 1 << 2,
+ G_ASCII_DIGIT = 1 << 3,
+ G_ASCII_GRAPH = 1 << 4,
+ G_ASCII_LOWER = 1 << 5,
+ G_ASCII_PRINT = 1 << 6,
+ G_ASCII_PUNCT = 1 << 7,
+ G_ASCII_SPACE = 1 << 8,
+ G_ASCII_UPPER = 1 << 9,
+ G_ASCII_XDIGIT = 1 << 10
+} GAsciiType;
+extern const guint16 * const g_ascii_table;
+gchar g_ascii_tolower (gchar c) __attribute__((__const__));
+gchar g_ascii_toupper (gchar c) __attribute__((__const__));
+gint g_ascii_digit_value (gchar c) __attribute__((__const__));
+gint g_ascii_xdigit_value (gchar c) __attribute__((__const__));
+gchar* g_strdelimit (gchar *string,
+ const gchar *delimiters,
+ gchar new_delimiter);
+gchar* g_strcanon (gchar *string,
+ const gchar *valid_chars,
+ gchar substitutor);
+const gchar* g_strerror (gint errnum) __attribute__((__const__));
+const gchar* g_strsignal (gint signum) __attribute__((__const__));
+gchar* g_strreverse (gchar *string);
+gsize g_strlcpy (gchar *dest,
+ const gchar *src,
+ gsize dest_size);
+gsize g_strlcat (gchar *dest,
+ const gchar *src,
+ gsize dest_size);
+gchar * g_strstr_len (const gchar *haystack,
+ gssize haystack_len,
+ const gchar *needle);
+gchar * g_strrstr (const gchar *haystack,
+ const gchar *needle);
+gchar * g_strrstr_len (const gchar *haystack,
+ gssize haystack_len,
+ const gchar *needle);
+gboolean g_str_has_suffix (const gchar *str,
+ const gchar *suffix);
+gboolean g_str_has_prefix (const gchar *str,
+ const gchar *prefix);
+gdouble g_strtod (const gchar *nptr,
+ gchar **endptr);
+gdouble g_ascii_strtod (const gchar *nptr,
+ gchar **endptr);
+guint64 g_ascii_strtoull (const gchar *nptr,
+ gchar **endptr,
+ guint base);
+gint64 g_ascii_strtoll (const gchar *nptr,
+ gchar **endptr,
+ guint base);
+gchar * g_ascii_dtostr (gchar *buffer,
+ gint buf_len,
+ gdouble d);
+gchar * g_ascii_formatd (gchar *buffer,
+ gint buf_len,
+ const gchar *format,
+ gdouble d);
+gchar* g_strchug (gchar *string);
+gchar* g_strchomp (gchar *string);
+gint g_ascii_strcasecmp (const gchar *s1,
+ const gchar *s2);
+gint g_ascii_strncasecmp (const gchar *s1,
+ const gchar *s2,
+ gsize n);
+gchar* g_ascii_strdown (const gchar *str,
+ gssize len) __attribute__((__malloc__));
+gchar* g_ascii_strup (const gchar *str,
+ gssize len) __attribute__((__malloc__));
+gint g_strcasecmp (const gchar *s1,
+ const gchar *s2);
+gint g_strncasecmp (const gchar *s1,
+ const gchar *s2,
+ guint n);
+gchar* g_strdown (gchar *string);
+gchar* g_strup (gchar *string);
+gchar* g_strdup (const gchar *str) __attribute__((__malloc__));
+gchar* g_strdup_printf (const gchar *format,
+ ...) __attribute__((__format__ (__printf__, 1, 2))) __attribute__((__malloc__));
+gchar* g_strdup_vprintf (const gchar *format,
+ va_list args) __attribute__((__malloc__));
+gchar* g_strndup (const gchar *str,
+ gsize n) __attribute__((__malloc__));
+gchar* g_strnfill (gsize length,
+ gchar fill_char) __attribute__((__malloc__));
+gchar* g_strconcat (const gchar *string1,
+ ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
+gchar* g_strjoin (const gchar *separator,
+ ...) __attribute__((__malloc__)) __attribute__((__sentinel__));
+gchar* g_strcompress (const gchar *source) __attribute__((__malloc__));
+gchar* g_strescape (const gchar *source,
+ const gchar *exceptions) __attribute__((__malloc__));
+gpointer g_memdup (gconstpointer mem,
+ guint byte_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(2)));
+gchar** g_strsplit (const gchar *string,
+ const gchar *delimiter,
+ gint max_tokens) __attribute__((__malloc__));
+gchar ** g_strsplit_set (const gchar *string,
+ const gchar *delimiters,
+ gint max_tokens) __attribute__((__malloc__));
+gchar* g_strjoinv (const gchar *separator,
+ gchar **str_array) __attribute__((__malloc__));
+void g_strfreev (gchar **str_array);
+gchar** g_strdupv (gchar **str_array) __attribute__((__malloc__));
+guint g_strv_length (gchar **str_array);
+gchar* g_stpcpy (gchar *dest,
+ const char *src);
+const gchar *g_strip_context (const gchar *msgid,
+ const gchar *msgval) __attribute__((__format_arg__ (1)));
+const gchar *g_dgettext (const gchar *domain,
+ const gchar *msgid) __attribute__((__format_arg__ (2)));
+const gchar *g_dngettext (const gchar *domain,
+ const gchar *msgid,
+ const gchar *msgid_plural,
+ gulong n) __attribute__((__format_arg__ (3)));
+const gchar *g_dpgettext (const gchar *domain,
+ const gchar *msgctxtid,
+ gsize msgidoffset) __attribute__((__format_arg__ (2)));
+const gchar *g_dpgettext2 (const gchar *domain,
+ const gchar *context,
+ const gchar *msgid) __attribute__((__format_arg__ (3)));
+typedef struct GTestCase GTestCase;
+typedef struct GTestSuite GTestSuite;
+int g_strcmp0 (const char *str1,
+ const char *str2);
+void g_test_minimized_result (double minimized_quantity,
+ const char *format,
+ ...) __attribute__((__format__ (__printf__, 2, 3)));
+void g_test_maximized_result (double maximized_quantity,
+ const char *format,
+ ...) __attribute__((__format__ (__printf__, 2, 3)));
+void g_test_init (int *argc,
+ char ***argv,
+ ...);
+int g_test_run (void);
+void g_test_add_func (const char *testpath,
+ void (*test_func) (void));
+void g_test_add_data_func (const char *testpath,
+ gconstpointer test_data,
+ void (*test_func) (gconstpointer));
+void g_test_message (const char *format,
+ ...) __attribute__((__format__ (__printf__, 1, 2)));
+void g_test_bug_base (const char *uri_pattern);
+void g_test_bug (const char *bug_uri_snippet);
+void g_test_timer_start (void);
+double g_test_timer_elapsed (void);
+double g_test_timer_last (void);
+void g_test_queue_free (gpointer gfree_pointer);
+void g_test_queue_destroy (GDestroyNotify destroy_func,
+ gpointer destroy_data);
+typedef enum {
+ G_TEST_TRAP_SILENCE_STDOUT = 1 << 7,
+ G_TEST_TRAP_SILENCE_STDERR = 1 << 8,
+ G_TEST_TRAP_INHERIT_STDIN = 1 << 9
+} GTestTrapFlags;
+gboolean g_test_trap_fork (guint64 usec_timeout,
+ GTestTrapFlags test_trap_flags);
+gboolean g_test_trap_has_passed (void);
+gboolean g_test_trap_reached_timeout (void);
+gint32 g_test_rand_int (void);
+gint32 g_test_rand_int_range (gint32 begin,
+ gint32 end);
+double g_test_rand_double (void);
+double g_test_rand_double_range (double range_start,
+ double range_end);
+GTestCase* g_test_create_case (const char *test_name,
+ gsize data_size,
+ gconstpointer test_data,
+ void (*data_setup) (void),
+ void (*data_test) (void),
+ void (*data_teardown) (void));
+GTestSuite* g_test_create_suite (const char *suite_name);
+GTestSuite* g_test_get_root (void);
+void g_test_suite_add (GTestSuite *suite,
+ GTestCase *test_case);
+void g_test_suite_add_suite (GTestSuite *suite,
+ GTestSuite *nestedsuite);
+int g_test_run_suite (GTestSuite *suite);
+void g_test_trap_assertions (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ guint64 assertion_flags,
+ const char *pattern);
+void g_assertion_message (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *message) __attribute__((__noreturn__));
+void g_assertion_message_expr (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *expr) __attribute__((__noreturn__));
+void g_assertion_message_cmpstr (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *expr,
+ const char *arg1,
+ const char *cmp,
+ const char *arg2) __attribute__((__noreturn__));
+void g_assertion_message_cmpnum (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *expr,
+ long double arg1,
+ const char *cmp,
+ long double arg2,
+ char numtype) __attribute__((__noreturn__));
+void g_assertion_message_error (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *expr,
+ GError *error,
+ GQuark error_domain,
+ int error_code) __attribute__((__noreturn__));
+void g_test_add_vtable (const char *testpath,
+ gsize data_size,
+ gconstpointer test_data,
+ void (*data_setup) (void),
+ void (*data_test) (void),
+ void (*data_teardown) (void));
+typedef struct {
+ gboolean test_initialized;
+ gboolean test_quick;
+ gboolean test_perf;
+ gboolean test_verbose;
+ gboolean test_quiet;
+} GTestConfig;
+extern const GTestConfig * const g_test_config_vars;
+typedef enum {
+ G_TEST_LOG_NONE,
+ G_TEST_LOG_ERROR,
+ G_TEST_LOG_START_BINARY,
+ G_TEST_LOG_LIST_CASE,
+ G_TEST_LOG_SKIP_CASE,
+ G_TEST_LOG_START_CASE,
+ G_TEST_LOG_STOP_CASE,
+ G_TEST_LOG_MIN_RESULT,
+ G_TEST_LOG_MAX_RESULT,
+ G_TEST_LOG_MESSAGE
+} GTestLogType;
+typedef struct {
+ GTestLogType log_type;
+ guint n_strings;
+ gchar **strings;
+ guint n_nums;
+ long double *nums;
+} GTestLogMsg;
+typedef struct {
+ GString *data;
+ GSList *msgs;
+} GTestLogBuffer;
+const char* g_test_log_type_name (GTestLogType log_type);
+GTestLogBuffer* g_test_log_buffer_new (void);
+void g_test_log_buffer_free (GTestLogBuffer *tbuffer);
+void g_test_log_buffer_push (GTestLogBuffer *tbuffer,
+ guint n_bytes,
+ const guint8 *bytes);
+GTestLogMsg* g_test_log_buffer_pop (GTestLogBuffer *tbuffer);
+void g_test_log_msg_free (GTestLogMsg *tmsg);
+typedef struct _GThreadPool GThreadPool;
+struct _GThreadPool
+{
+ GFunc func;
+ gpointer user_data;
+ gboolean exclusive;
+};
+GThreadPool* g_thread_pool_new (GFunc func,
+ gpointer user_data,
+ gint max_threads,
+ gboolean exclusive,
+ GError **error);
+void g_thread_pool_push (GThreadPool *pool,
+ gpointer data,
+ GError **error);
+void g_thread_pool_set_max_threads (GThreadPool *pool,
+ gint max_threads,
+ GError **error);
+gint g_thread_pool_get_max_threads (GThreadPool *pool);
+guint g_thread_pool_get_num_threads (GThreadPool *pool);
+guint g_thread_pool_unprocessed (GThreadPool *pool);
+void g_thread_pool_free (GThreadPool *pool,
+ gboolean immediate,
+ gboolean wait_);
+void g_thread_pool_set_max_unused_threads (gint max_threads);
+gint g_thread_pool_get_max_unused_threads (void);
+guint g_thread_pool_get_num_unused_threads (void);
+void g_thread_pool_stop_unused_threads (void);
+void g_thread_pool_set_sort_function (GThreadPool *pool,
+ GCompareDataFunc func,
+ gpointer user_data);
+void g_thread_pool_set_max_idle_time (guint interval);
+guint g_thread_pool_get_max_idle_time (void);
+typedef struct _GTimer GTimer;
+GTimer* g_timer_new (void);
+void g_timer_destroy (GTimer *timer);
+void g_timer_start (GTimer *timer);
+void g_timer_stop (GTimer *timer);
+void g_timer_reset (GTimer *timer);
+void g_timer_continue (GTimer *timer);
+gdouble g_timer_elapsed (GTimer *timer,
+ gulong *microseconds);
+void g_usleep (gulong microseconds);
+void g_time_val_add (GTimeVal *time_,
+ glong microseconds);
+gboolean g_time_val_from_iso8601 (const gchar *iso_date,
+ GTimeVal *time_);
+gchar* g_time_val_to_iso8601 (GTimeVal *time_) __attribute__((__malloc__));
+typedef struct _GTree GTree;
+typedef gboolean (*GTraverseFunc) (gpointer key,
+ gpointer value,
+ gpointer data);
+GTree* g_tree_new (GCompareFunc key_compare_func);
+GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func,
+ gpointer key_compare_data);
+GTree* g_tree_new_full (GCompareDataFunc key_compare_func,
+ gpointer key_compare_data,
+ GDestroyNotify key_destroy_func,
+ GDestroyNotify value_destroy_func);
+void g_tree_destroy (GTree *tree);
+void g_tree_insert (GTree *tree,
+ gpointer key,
+ gpointer value);
+void g_tree_replace (GTree *tree,
+ gpointer key,
+ gpointer value);
+gboolean g_tree_remove (GTree *tree,
+ gconstpointer key);
+gboolean g_tree_steal (GTree *tree,
+ gconstpointer key);
+gpointer g_tree_lookup (GTree *tree,
+ gconstpointer key);
+gboolean g_tree_lookup_extended (GTree *tree,
+ gconstpointer lookup_key,
+ gpointer *orig_key,
+ gpointer *value);
+void g_tree_foreach (GTree *tree,
+ GTraverseFunc func,
+ gpointer user_data);
+void g_tree_traverse (GTree *tree,
+ GTraverseFunc traverse_func,
+ GTraverseType traverse_type,
+ gpointer user_data);
+gpointer g_tree_search (GTree *tree,
+ GCompareFunc search_func,
+ gconstpointer user_data);
+gint g_tree_height (GTree *tree);
+gint g_tree_nnodes (GTree *tree);
+char * g_uri_unescape_string (const char *escaped_string,
+ const char *illegal_characters);
+char * g_uri_unescape_segment (const char *escaped_string,
+ const char *escaped_string_end,
+ const char *illegal_characters);
+char * g_uri_parse_scheme (const char *uri);
+char * g_uri_escape_string (const char *unescaped,
+ const char *reserved_chars_allowed,
+ gboolean allow_utf8);
+typedef gsize GType;
+typedef struct _GValue GValue;
+typedef union _GTypeCValue GTypeCValue;
+typedef struct _GTypePlugin GTypePlugin;
+typedef struct _GTypeClass GTypeClass;
+typedef struct _GTypeInterface GTypeInterface;
+typedef struct _GTypeInstance GTypeInstance;
+typedef struct _GTypeInfo GTypeInfo;
+typedef struct _GTypeFundamentalInfo GTypeFundamentalInfo;
+typedef struct _GInterfaceInfo GInterfaceInfo;
+typedef struct _GTypeValueTable GTypeValueTable;
+typedef struct _GTypeQuery GTypeQuery;
+struct _GTypeClass
+{
+ GType g_type;
+};
+struct _GTypeInstance
+{
+ GTypeClass *g_class;
+};
+struct _GTypeInterface
+{
+ GType g_type;
+ GType g_instance_type;
+};
+struct _GTypeQuery
+{
+ GType type;
+ const gchar *type_name;
+ guint class_size;
+ guint instance_size;
+};
+typedef enum
+{
+ G_TYPE_DEBUG_NONE = 0,
+ G_TYPE_DEBUG_OBJECTS = 1 << 0,
+ G_TYPE_DEBUG_SIGNALS = 1 << 1,
+ G_TYPE_DEBUG_MASK = 0x03
+} GTypeDebugFlags;
+void g_type_init (void);
+void g_type_init_with_debug_flags (GTypeDebugFlags debug_flags);
+const gchar* g_type_name (GType type);
+GQuark g_type_qname (GType type);
+GType g_type_from_name (const gchar *name);
+GType g_type_parent (GType type);
+guint g_type_depth (GType type);
+GType g_type_next_base (GType leaf_type,
+ GType root_type);
+gboolean g_type_is_a (GType type,
+ GType is_a_type);
+gpointer g_type_class_ref (GType type);
+gpointer g_type_class_peek (GType type);
+gpointer g_type_class_peek_static (GType type);
+void g_type_class_unref (gpointer g_class);
+gpointer g_type_class_peek_parent (gpointer g_class);
+gpointer g_type_interface_peek (gpointer instance_class,
+ GType iface_type);
+gpointer g_type_interface_peek_parent (gpointer g_iface);
+gpointer g_type_default_interface_ref (GType g_type);
+gpointer g_type_default_interface_peek (GType g_type);
+void g_type_default_interface_unref (gpointer g_iface);
+GType* g_type_children (GType type,
+ guint *n_children);
+GType* g_type_interfaces (GType type,
+ guint *n_interfaces);
+void g_type_set_qdata (GType type,
+ GQuark quark,
+ gpointer data);
+gpointer g_type_get_qdata (GType type,
+ GQuark quark);
+void g_type_query (GType type,
+ GTypeQuery *query);
+typedef void (*GBaseInitFunc) (gpointer g_class);
+typedef void (*GBaseFinalizeFunc) (gpointer g_class);
+typedef void (*GClassInitFunc) (gpointer g_class,
+ gpointer class_data);
+typedef void (*GClassFinalizeFunc) (gpointer g_class,
+ gpointer class_data);
+typedef void (*GInstanceInitFunc) (GTypeInstance *instance,
+ gpointer g_class);
+typedef void (*GInterfaceInitFunc) (gpointer g_iface,
+ gpointer iface_data);
+typedef void (*GInterfaceFinalizeFunc) (gpointer g_iface,
+ gpointer iface_data);
+typedef gboolean (*GTypeClassCacheFunc) (gpointer cache_data,
+ GTypeClass *g_class);
+typedef void (*GTypeInterfaceCheckFunc) (gpointer check_data,
+ gpointer g_iface);
+typedef enum
+{
+ G_TYPE_FLAG_CLASSED = (1 << 0),
+ G_TYPE_FLAG_INSTANTIATABLE = (1 << 1),
+ G_TYPE_FLAG_DERIVABLE = (1 << 2),
+ G_TYPE_FLAG_DEEP_DERIVABLE = (1 << 3)
+} GTypeFundamentalFlags;
+typedef enum
+{
+ G_TYPE_FLAG_ABSTRACT = (1 << 4),
+ G_TYPE_FLAG_VALUE_ABSTRACT = (1 << 5)
+} GTypeFlags;
+struct _GTypeInfo
+{
+ guint16 class_size;
+ GBaseInitFunc base_init;
+ GBaseFinalizeFunc base_finalize;
+ GClassInitFunc class_init;
+ GClassFinalizeFunc class_finalize;
+ gconstpointer class_data;
+ guint16 instance_size;
+ guint16 n_preallocs;
+ GInstanceInitFunc instance_init;
+ const GTypeValueTable *value_table;
+};
+struct _GTypeFundamentalInfo
+{
+ GTypeFundamentalFlags type_flags;
+};
+struct _GInterfaceInfo
+{
+ GInterfaceInitFunc interface_init;
+ GInterfaceFinalizeFunc interface_finalize;
+ gpointer interface_data;
+};
+struct _GTypeValueTable
+{
+ void (*value_init) (GValue *value);
+ void (*value_free) (GValue *value);
+ void (*value_copy) (const GValue *src_value,
+ GValue *dest_value);
+ gpointer (*value_peek_pointer) (const GValue *value);
+ gchar *collect_format;
+ gchar* (*collect_value) (GValue *value,
+ guint n_collect_values,
+ GTypeCValue *collect_values,
+ guint collect_flags);
+ gchar *lcopy_format;
+ gchar* (*lcopy_value) (const GValue *value,
+ guint n_collect_values,
+ GTypeCValue *collect_values,
+ guint collect_flags);
+};
+GType g_type_register_static (GType parent_type,
+ const gchar *type_name,
+ const GTypeInfo *info,
+ GTypeFlags flags);
+GType g_type_register_static_simple (GType parent_type,
+ const gchar *type_name,
+ guint class_size,
+ GClassInitFunc class_init,
+ guint instance_size,
+ GInstanceInitFunc instance_init,
+ GTypeFlags flags);
+GType g_type_register_dynamic (GType parent_type,
+ const gchar *type_name,
+ GTypePlugin *plugin,
+ GTypeFlags flags);
+GType g_type_register_fundamental (GType type_id,
+ const gchar *type_name,
+ const GTypeInfo *info,
+ const GTypeFundamentalInfo *finfo,
+ GTypeFlags flags);
+void g_type_add_interface_static (GType instance_type,
+ GType interface_type,
+ const GInterfaceInfo *info);
+void g_type_add_interface_dynamic (GType instance_type,
+ GType interface_type,
+ GTypePlugin *plugin);
+void g_type_interface_add_prerequisite (GType interface_type,
+ GType prerequisite_type);
+GType*g_type_interface_prerequisites (GType interface_type,
+ guint *n_prerequisites);
+void g_type_class_add_private (gpointer g_class,
+ gsize private_size);
+gpointer g_type_instance_get_private (GTypeInstance *instance,
+ GType private_type);
+GTypePlugin* g_type_get_plugin (GType type);
+GTypePlugin* g_type_interface_get_plugin (GType instance_type,
+ GType interface_type);
+GType g_type_fundamental_next (void);
+GType g_type_fundamental (GType type_id);
+GTypeInstance* g_type_create_instance (GType type);
+void g_type_free_instance (GTypeInstance *instance);
+void g_type_add_class_cache_func (gpointer cache_data,
+ GTypeClassCacheFunc cache_func);
+void g_type_remove_class_cache_func (gpointer cache_data,
+ GTypeClassCacheFunc cache_func);
+void g_type_class_unref_uncached (gpointer g_class);
+void g_type_add_interface_check (gpointer check_data,
+ GTypeInterfaceCheckFunc check_func);
+void g_type_remove_interface_check (gpointer check_data,
+ GTypeInterfaceCheckFunc check_func);
+GTypeValueTable* g_type_value_table_peek (GType type);
+gboolean g_type_check_instance (GTypeInstance *instance) __attribute__((__pure__));
+GTypeInstance* g_type_check_instance_cast (GTypeInstance *instance,
+ GType iface_type);
+gboolean g_type_check_instance_is_a (GTypeInstance *instance,
+ GType iface_type) __attribute__((__pure__));
+GTypeClass* g_type_check_class_cast (GTypeClass *g_class,
+ GType is_a_type);
+gboolean g_type_check_class_is_a (GTypeClass *g_class,
+ GType is_a_type) __attribute__((__pure__));
+gboolean g_type_check_is_value_type (GType type) __attribute__((__const__));
+gboolean g_type_check_value (GValue *value) __attribute__((__pure__));
+gboolean g_type_check_value_holds (GValue *value,
+ GType type) __attribute__((__pure__));
+gboolean g_type_test_flags (GType type,
+ guint flags) __attribute__((__const__));
+const gchar* g_type_name_from_instance (GTypeInstance *instance);
+const gchar* g_type_name_from_class (GTypeClass *g_class);
+__attribute__((visibility("hidden"))) void g_value_c_init (void);
+__attribute__((visibility("hidden"))) void g_value_types_init (void);
+__attribute__((visibility("hidden"))) void g_enum_types_init (void);
+__attribute__((visibility("hidden"))) void g_param_type_init (void);
+__attribute__((visibility("hidden"))) void g_boxed_type_init (void);
+__attribute__((visibility("hidden"))) void g_object_type_init (void);
+__attribute__((visibility("hidden"))) void g_param_spec_types_init (void);
+__attribute__((visibility("hidden"))) void g_value_transforms_init (void);
+__attribute__((visibility("hidden"))) void g_signal_init (void);
+extern GTypeDebugFlags _g_type_debug_flags;
+typedef gpointer (*GBoxedCopyFunc) (gpointer boxed);
+typedef void (*GBoxedFreeFunc) (gpointer boxed);
+gpointer g_boxed_copy (GType boxed_type,
+ gconstpointer src_boxed);
+void g_boxed_free (GType boxed_type,
+ gpointer boxed);
+void g_value_set_boxed (GValue *value,
+ gconstpointer v_boxed);
+void g_value_set_static_boxed (GValue *value,
+ gconstpointer v_boxed);
+gpointer g_value_get_boxed (const GValue *value);
+gpointer g_value_dup_boxed (const GValue *value);
+GType g_boxed_type_register_static (const gchar *name,
+ GBoxedCopyFunc boxed_copy,
+ GBoxedFreeFunc boxed_free);
+void g_value_take_boxed (GValue *value,
+ gconstpointer v_boxed);
+void g_value_set_boxed_take_ownership (GValue *value,
+ gconstpointer v_boxed);
+GType g_closure_get_type (void) __attribute__((__const__));
+GType g_value_get_type (void) __attribute__((__const__));
+GType g_value_array_get_type (void) __attribute__((__const__));
+GType g_date_get_type (void) __attribute__((__const__));
+GType g_strv_get_type (void) __attribute__((__const__));
+GType g_gstring_get_type (void) __attribute__((__const__));
+GType g_hash_table_get_type (void) __attribute__((__const__));
+GType g_regex_get_type (void) __attribute__((__const__));
+typedef gchar** GStrv;
+typedef struct _GEnumClass GEnumClass;
+typedef struct _GFlagsClass GFlagsClass;
+typedef struct _GEnumValue GEnumValue;
+typedef struct _GFlagsValue GFlagsValue;
+struct _GEnumClass
+{
+ GTypeClass g_type_class;
+ gint minimum;
+ gint maximum;
+ guint n_values;
+ GEnumValue *values;
+};
+struct _GFlagsClass
+{
+ GTypeClass g_type_class;
+ guint mask;
+ guint n_values;
+ GFlagsValue *values;
+};
+struct _GEnumValue
+{
+ gint value;
+ const gchar *value_name;
+ const gchar *value_nick;
+};
+struct _GFlagsValue
+{
+ guint value;
+ const gchar *value_name;
+ const gchar *value_nick;
+};
+GEnumValue* g_enum_get_value (GEnumClass *enum_class,
+ gint value);
+GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class,
+ const gchar *name);
+GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class,
+ const gchar *nick);
+GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class,
+ guint value);
+GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class,
+ const gchar *name);
+GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class,
+ const gchar *nick);
+void g_value_set_enum (GValue *value,
+ gint v_enum);
+gint g_value_get_enum (const GValue *value);
+void g_value_set_flags (GValue *value,
+ guint v_flags);
+guint g_value_get_flags (const GValue *value);
+GType g_enum_register_static (const gchar *name,
+ const GEnumValue *const_static_values);
+GType g_flags_register_static (const gchar *name,
+ const GFlagsValue *const_static_values);
+void g_enum_complete_type_info (GType g_enum_type,
+ GTypeInfo *info,
+ const GEnumValue *const_values);
+void g_flags_complete_type_info (GType g_flags_type,
+ GTypeInfo *info,
+ const GFlagsValue *const_values);
+typedef void (*GValueTransform) (const GValue *src_value,
+ GValue *dest_value);
+struct _GValue
+{
+ GType g_type;
+ union {
+ gint v_int;
+ guint v_uint;
+ glong v_long;
+ gulong v_ulong;
+ gint64 v_int64;
+ guint64 v_uint64;
+ gfloat v_float;
+ gdouble v_double;
+ gpointer v_pointer;
+ } data[2];
+};
+GValue* g_value_init (GValue *value,
+ GType g_type);
+void g_value_copy (const GValue *src_value,
+ GValue *dest_value);
+GValue* g_value_reset (GValue *value);
+void g_value_unset (GValue *value);
+void g_value_set_instance (GValue *value,
+ gpointer instance);
+gboolean g_value_fits_pointer (const GValue *value);
+gpointer g_value_peek_pointer (const GValue *value);
+gboolean g_value_type_compatible (GType src_type,
+ GType dest_type);
+gboolean g_value_type_transformable (GType src_type,
+ GType dest_type);
+gboolean g_value_transform (const GValue *src_value,
+ GValue *dest_value);
+void g_value_register_transform_func (GType src_type,
+ GType dest_type,
+ GValueTransform transform_func);
+typedef enum
+{
+ G_PARAM_READABLE = 1 << 0,
+ G_PARAM_WRITABLE = 1 << 1,
+ G_PARAM_CONSTRUCT = 1 << 2,
+ G_PARAM_CONSTRUCT_ONLY = 1 << 3,
+ G_PARAM_LAX_VALIDATION = 1 << 4,
+ G_PARAM_STATIC_NAME = 1 << 5,
+ G_PARAM_PRIVATE = G_PARAM_STATIC_NAME,
+ G_PARAM_STATIC_NICK = 1 << 6,
+ G_PARAM_STATIC_BLURB = 1 << 7
+} GParamFlags;
+typedef struct _GParamSpec GParamSpec;
+typedef struct _GParamSpecClass GParamSpecClass;
+typedef struct _GParameter GParameter;
+typedef struct _GParamSpecPool GParamSpecPool;
+struct _GParamSpec
+{
+ GTypeInstance g_type_instance;
+ gchar *name;
+ GParamFlags flags;
+ GType value_type;
+ GType owner_type;
+ gchar *_nick;
+ gchar *_blurb;
+ GData *qdata;
+ guint ref_count;
+ guint param_id;
+};
+struct _GParamSpecClass
+{
+ GTypeClass g_type_class;
+ GType value_type;
+ void (*finalize) (GParamSpec *pspec);
+ void (*value_set_default) (GParamSpec *pspec,
+ GValue *value);
+ gboolean (*value_validate) (GParamSpec *pspec,
+ GValue *value);
+ gint (*values_cmp) (GParamSpec *pspec,
+ const GValue *value1,
+ const GValue *value2);
+ gpointer dummy[4];
+};
+struct _GParameter
+{
+ const gchar *name;
+ GValue value;
+};
+GParamSpec* g_param_spec_ref (GParamSpec *pspec);
+void g_param_spec_unref (GParamSpec *pspec);
+void g_param_spec_sink (GParamSpec *pspec);
+GParamSpec* g_param_spec_ref_sink (GParamSpec *pspec);
+gpointer g_param_spec_get_qdata (GParamSpec *pspec,
+ GQuark quark);
+void g_param_spec_set_qdata (GParamSpec *pspec,
+ GQuark quark,
+ gpointer data);
+void g_param_spec_set_qdata_full (GParamSpec *pspec,
+ GQuark quark,
+ gpointer data,
+ GDestroyNotify destroy);
+gpointer g_param_spec_steal_qdata (GParamSpec *pspec,
+ GQuark quark);
+GParamSpec* g_param_spec_get_redirect_target (GParamSpec *pspec);
+void g_param_value_set_default (GParamSpec *pspec,
+ GValue *value);
+gboolean g_param_value_defaults (GParamSpec *pspec,
+ GValue *value);
+gboolean g_param_value_validate (GParamSpec *pspec,
+ GValue *value);
+gboolean g_param_value_convert (GParamSpec *pspec,
+ const GValue *src_value,
+ GValue *dest_value,
+ gboolean strict_validation);
+gint g_param_values_cmp (GParamSpec *pspec,
+ const GValue *value1,
+ const GValue *value2);
+const gchar* g_param_spec_get_name (GParamSpec *pspec);
+const gchar* g_param_spec_get_nick (GParamSpec *pspec);
+const gchar* g_param_spec_get_blurb (GParamSpec *pspec);
+void g_value_set_param (GValue *value,
+ GParamSpec *param);
+GParamSpec* g_value_get_param (const GValue *value);
+GParamSpec* g_value_dup_param (const GValue *value);
+void g_value_take_param (GValue *value,
+ GParamSpec *param);
+void g_value_set_param_take_ownership (GValue *value,
+ GParamSpec *param);
+typedef struct _GParamSpecTypeInfo GParamSpecTypeInfo;
+struct _GParamSpecTypeInfo
+{
+ guint16 instance_size;
+ guint16 n_preallocs;
+ void (*instance_init) (GParamSpec *pspec);
+ GType value_type;
+ void (*finalize) (GParamSpec *pspec);
+ void (*value_set_default) (GParamSpec *pspec,
+ GValue *value);
+ gboolean (*value_validate) (GParamSpec *pspec,
+ GValue *value);
+ gint (*values_cmp) (GParamSpec *pspec,
+ const GValue *value1,
+ const GValue *value2);
+};
+GType g_param_type_register_static (const gchar *name,
+ const GParamSpecTypeInfo *pspec_info);
+GType _g_param_type_register_static_constant (const gchar *name,
+ const GParamSpecTypeInfo *pspec_info,
+ GType opt_type);
+gpointer g_param_spec_internal (GType param_type,
+ const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GParamFlags flags);
+GParamSpecPool* g_param_spec_pool_new (gboolean type_prefixing);
+void g_param_spec_pool_insert (GParamSpecPool *pool,
+ GParamSpec *pspec,
+ GType owner_type);
+void g_param_spec_pool_remove (GParamSpecPool *pool,
+ GParamSpec *pspec);
+GParamSpec* g_param_spec_pool_lookup (GParamSpecPool *pool,
+ const gchar *param_name,
+ GType owner_type,
+ gboolean walk_ancestors);
+GList* g_param_spec_pool_list_owned (GParamSpecPool *pool,
+ GType owner_type);
+GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool,
+ GType owner_type,
+ guint *n_pspecs_p);
+typedef struct _GClosure GClosure;
+typedef struct _GClosureNotifyData GClosureNotifyData;
+typedef void (*GCallback) (void);
+typedef void (*GClosureNotify) (gpointer data,
+ GClosure *closure);
+typedef void (*GClosureMarshal) (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+typedef struct _GCClosure GCClosure;
+struct _GClosureNotifyData
+{
+ gpointer data;
+ GClosureNotify notify;
+};
+struct _GClosure
+{
+ volatile guint ref_count : 15;
+ volatile guint meta_marshal : 1;
+ volatile guint n_guards : 1;
+ volatile guint n_fnotifiers : 2;
+ volatile guint n_inotifiers : 8;
+ volatile guint in_inotify : 1;
+ volatile guint floating : 1;
+ volatile guint derivative_flag : 1;
+ volatile guint in_marshal : 1;
+ volatile guint is_invalid : 1;
+ void (*marshal) (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+ gpointer data;
+ GClosureNotifyData *notifiers;
+};
+struct _GCClosure
+{
+ GClosure closure;
+ gpointer callback;
+};
+GClosure* g_cclosure_new (GCallback callback_func,
+ gpointer user_data,
+ GClosureNotify destroy_data);
+GClosure* g_cclosure_new_swap (GCallback callback_func,
+ gpointer user_data,
+ GClosureNotify destroy_data);
+GClosure* g_signal_type_cclosure_new (GType itype,
+ guint struct_offset);
+GClosure* g_closure_ref (GClosure *closure);
+void g_closure_sink (GClosure *closure);
+void g_closure_unref (GClosure *closure);
+GClosure* g_closure_new_simple (guint sizeof_closure,
+ gpointer data);
+void g_closure_add_finalize_notifier (GClosure *closure,
+ gpointer notify_data,
+ GClosureNotify notify_func);
+void g_closure_remove_finalize_notifier (GClosure *closure,
+ gpointer notify_data,
+ GClosureNotify notify_func);
+void g_closure_add_invalidate_notifier (GClosure *closure,
+ gpointer notify_data,
+ GClosureNotify notify_func);
+void g_closure_remove_invalidate_notifier (GClosure *closure,
+ gpointer notify_data,
+ GClosureNotify notify_func);
+void g_closure_add_marshal_guards (GClosure *closure,
+ gpointer pre_marshal_data,
+ GClosureNotify pre_marshal_notify,
+ gpointer post_marshal_data,
+ GClosureNotify post_marshal_notify);
+void g_closure_set_marshal (GClosure *closure,
+ GClosureMarshal marshal);
+void g_closure_set_meta_marshal (GClosure *closure,
+ gpointer marshal_data,
+ GClosureMarshal meta_marshal);
+void g_closure_invalidate (GClosure *closure);
+void g_closure_invoke (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint);
+extern void g_cclosure_marshal_VOID__VOID (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__CHAR (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__UCHAR (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__UINT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__LONG (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__ULONG (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__ENUM (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__FLAGS (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__FLOAT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__DOUBLE (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__STRING (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__PARAM (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+typedef struct _GSignalQuery GSignalQuery;
+typedef struct _GSignalInvocationHint GSignalInvocationHint;
+typedef GClosureMarshal GSignalCMarshaller;
+typedef gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer data);
+typedef gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint,
+ GValue *return_accu,
+ const GValue *handler_return,
+ gpointer data);
+typedef enum
+{
+ G_SIGNAL_RUN_FIRST = 1 << 0,
+ G_SIGNAL_RUN_LAST = 1 << 1,
+ G_SIGNAL_RUN_CLEANUP = 1 << 2,
+ G_SIGNAL_NO_RECURSE = 1 << 3,
+ G_SIGNAL_DETAILED = 1 << 4,
+ G_SIGNAL_ACTION = 1 << 5,
+ G_SIGNAL_NO_HOOKS = 1 << 6
+} GSignalFlags;
+typedef enum
+{
+ G_CONNECT_AFTER = 1 << 0,
+ G_CONNECT_SWAPPED = 1 << 1
+} GConnectFlags;
+typedef enum
+{
+ G_SIGNAL_MATCH_ID = 1 << 0,
+ G_SIGNAL_MATCH_DETAIL = 1 << 1,
+ G_SIGNAL_MATCH_CLOSURE = 1 << 2,
+ G_SIGNAL_MATCH_FUNC = 1 << 3,
+ G_SIGNAL_MATCH_DATA = 1 << 4,
+ G_SIGNAL_MATCH_UNBLOCKED = 1 << 5
+} GSignalMatchType;
+struct _GSignalInvocationHint
+{
+ guint signal_id;
+ GQuark detail;
+ GSignalFlags run_type;
+};
+struct _GSignalQuery
+{
+ guint signal_id;
+ const gchar *signal_name;
+ GType itype;
+ GSignalFlags signal_flags;
+ GType return_type;
+ guint n_params;
+ const GType *param_types;
+};
+guint g_signal_newv (const gchar *signal_name,
+ GType itype,
+ GSignalFlags signal_flags,
+ GClosure *class_closure,
+ GSignalAccumulator accumulator,
+ gpointer accu_data,
+ GSignalCMarshaller c_marshaller,
+ GType return_type,
+ guint n_params,
+ GType *param_types);
+guint g_signal_new_valist (const gchar *signal_name,
+ GType itype,
+ GSignalFlags signal_flags,
+ GClosure *class_closure,
+ GSignalAccumulator accumulator,
+ gpointer accu_data,
+ GSignalCMarshaller c_marshaller,
+ GType return_type,
+ guint n_params,
+ va_list args);
+guint g_signal_new (const gchar *signal_name,
+ GType itype,
+ GSignalFlags signal_flags,
+ guint class_offset,
+ GSignalAccumulator accumulator,
+ gpointer accu_data,
+ GSignalCMarshaller c_marshaller,
+ GType return_type,
+ guint n_params,
+ ...);
+guint g_signal_new_class_handler (const gchar *signal_name,
+ GType itype,
+ GSignalFlags signal_flags,
+ GCallback class_handler,
+ GSignalAccumulator accumulator,
+ gpointer accu_data,
+ GSignalCMarshaller c_marshaller,
+ GType return_type,
+ guint n_params,
+ ...);
+void g_signal_emitv (const GValue *instance_and_params,
+ guint signal_id,
+ GQuark detail,
+ GValue *return_value);
+void g_signal_emit_valist (gpointer instance,
+ guint signal_id,
+ GQuark detail,
+ va_list var_args);
+void g_signal_emit (gpointer instance,
+ guint signal_id,
+ GQuark detail,
+ ...);
+void g_signal_emit_by_name (gpointer instance,
+ const gchar *detailed_signal,
+ ...);
+guint g_signal_lookup (const gchar *name,
+ GType itype);
+const gchar* g_signal_name (guint signal_id);
+void g_signal_query (guint signal_id,
+ GSignalQuery *query);
+guint* g_signal_list_ids (GType itype,
+ guint *n_ids);
+gboolean g_signal_parse_name (const gchar *detailed_signal,
+ GType itype,
+ guint *signal_id_p,
+ GQuark *detail_p,
+ gboolean force_detail_quark);
+GSignalInvocationHint* g_signal_get_invocation_hint (gpointer instance);
+void g_signal_stop_emission (gpointer instance,
+ guint signal_id,
+ GQuark detail);
+void g_signal_stop_emission_by_name (gpointer instance,
+ const gchar *detailed_signal);
+gulong g_signal_add_emission_hook (guint signal_id,
+ GQuark detail,
+ GSignalEmissionHook hook_func,
+ gpointer hook_data,
+ GDestroyNotify data_destroy);
+void g_signal_remove_emission_hook (guint signal_id,
+ gulong hook_id);
+gboolean g_signal_has_handler_pending (gpointer instance,
+ guint signal_id,
+ GQuark detail,
+ gboolean may_be_blocked);
+gulong g_signal_connect_closure_by_id (gpointer instance,
+ guint signal_id,
+ GQuark detail,
+ GClosure *closure,
+ gboolean after);
+gulong g_signal_connect_closure (gpointer instance,
+ const gchar *detailed_signal,
+ GClosure *closure,
+ gboolean after);
+gulong g_signal_connect_data (gpointer instance,
+ const gchar *detailed_signal,
+ GCallback c_handler,
+ gpointer data,
+ GClosureNotify destroy_data,
+ GConnectFlags connect_flags);
+void g_signal_handler_block (gpointer instance,
+ gulong handler_id);
+void g_signal_handler_unblock (gpointer instance,
+ gulong handler_id);
+void g_signal_handler_disconnect (gpointer instance,
+ gulong handler_id);
+gboolean g_signal_handler_is_connected (gpointer instance,
+ gulong handler_id);
+gulong g_signal_handler_find (gpointer instance,
+ GSignalMatchType mask,
+ guint signal_id,
+ GQuark detail,
+ GClosure *closure,
+ gpointer func,
+ gpointer data);
+guint g_signal_handlers_block_matched (gpointer instance,
+ GSignalMatchType mask,
+ guint signal_id,
+ GQuark detail,
+ GClosure *closure,
+ gpointer func,
+ gpointer data);
+guint g_signal_handlers_unblock_matched (gpointer instance,
+ GSignalMatchType mask,
+ guint signal_id,
+ GQuark detail,
+ GClosure *closure,
+ gpointer func,
+ gpointer data);
+guint g_signal_handlers_disconnect_matched (gpointer instance,
+ GSignalMatchType mask,
+ guint signal_id,
+ GQuark detail,
+ GClosure *closure,
+ gpointer func,
+ gpointer data);
+void g_signal_override_class_closure (guint signal_id,
+ GType instance_type,
+ GClosure *class_closure);
+void g_signal_override_class_handler (const gchar *signal_name,
+ GType instance_type,
+ GCallback class_handler);
+void g_signal_chain_from_overridden (const GValue *instance_and_params,
+ GValue *return_value);
+void g_signal_chain_from_overridden_handler (gpointer instance,
+ ...);
+gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint,
+ GValue *return_accu,
+ const GValue *handler_return,
+ gpointer dummy);
+void g_signal_handlers_destroy (gpointer instance);
+void _g_signals_destroy (GType itype);
+typedef struct _GObject GObject;
+typedef struct _GObjectClass GObjectClass;
+typedef struct _GObject GInitiallyUnowned;
+typedef struct _GObjectClass GInitiallyUnownedClass;
+typedef struct _GObjectConstructParam GObjectConstructParam;
+typedef void (*GObjectGetPropertyFunc) (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec);
+typedef void (*GObjectSetPropertyFunc) (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec);
+typedef void (*GObjectFinalizeFunc) (GObject *object);
+typedef void (*GWeakNotify) (gpointer data,
+ GObject *where_the_object_was);
+struct _GObject
+{
+ GTypeInstance g_type_instance;
+ volatile guint ref_count;
+ GData *qdata;
+};
+struct _GObjectClass
+{
+ GTypeClass g_type_class;
+ GSList *construct_properties;
+ GObject* (*constructor) (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties);
+ void (*set_property) (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec);
+ void (*get_property) (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec);
+ void (*dispose) (GObject *object);
+ void (*finalize) (GObject *object);
+ void (*dispatch_properties_changed) (GObject *object,
+ guint n_pspecs,
+ GParamSpec **pspecs);
+ void (*notify) (GObject *object,
+ GParamSpec *pspec);
+ void (*constructed) (GObject *object);
+ gpointer pdummy[7];
+};
+struct _GObjectConstructParam
+{
+ GParamSpec *pspec;
+ GValue *value;
+};
+GType g_initially_unowned_get_type (void);
+void g_object_class_install_property (GObjectClass *oclass,
+ guint property_id,
+ GParamSpec *pspec);
+GParamSpec* g_object_class_find_property (GObjectClass *oclass,
+ const gchar *property_name);
+GParamSpec**g_object_class_list_properties (GObjectClass *oclass,
+ guint *n_properties);
+void g_object_class_override_property (GObjectClass *oclass,
+ guint property_id,
+ const gchar *name);
+void g_object_interface_install_property (gpointer g_iface,
+ GParamSpec *pspec);
+GParamSpec* g_object_interface_find_property (gpointer g_iface,
+ const gchar *property_name);
+GParamSpec**g_object_interface_list_properties (gpointer g_iface,
+ guint *n_properties_p);
+GType g_object_get_type (void) __attribute__((__const__));
+gpointer g_object_new (GType object_type,
+ const gchar *first_property_name,
+ ...);
+gpointer g_object_newv (GType object_type,
+ guint n_parameters,
+ GParameter *parameters);
+GObject* g_object_new_valist (GType object_type,
+ const gchar *first_property_name,
+ va_list var_args);
+void g_object_set (gpointer object,
+ const gchar *first_property_name,
+ ...) __attribute__((__sentinel__));
+void g_object_get (gpointer object,
+ const gchar *first_property_name,
+ ...) __attribute__((__sentinel__));
+gpointer g_object_connect (gpointer object,
+ const gchar *signal_spec,
+ ...) __attribute__((__sentinel__));
+void g_object_disconnect (gpointer object,
+ const gchar *signal_spec,
+ ...) __attribute__((__sentinel__));
+void g_object_set_valist (GObject *object,
+ const gchar *first_property_name,
+ va_list var_args);
+void g_object_get_valist (GObject *object,
+ const gchar *first_property_name,
+ va_list var_args);
+void g_object_set_property (GObject *object,
+ const gchar *property_name,
+ const GValue *value);
+void g_object_get_property (GObject *object,
+ const gchar *property_name,
+ GValue *value);
+void g_object_freeze_notify (GObject *object);
+void g_object_notify (GObject *object,
+ const gchar *property_name);
+void g_object_thaw_notify (GObject *object);
+gboolean g_object_is_floating (gpointer object);
+gpointer g_object_ref_sink (gpointer object);
+gpointer g_object_ref (gpointer object);
+void g_object_unref (gpointer object);
+void g_object_weak_ref (GObject *object,
+ GWeakNotify notify,
+ gpointer data);
+void g_object_weak_unref (GObject *object,
+ GWeakNotify notify,
+ gpointer data);
+void g_object_add_weak_pointer (GObject *object,
+ gpointer *weak_pointer_location);
+void g_object_remove_weak_pointer (GObject *object,
+ gpointer *weak_pointer_location);
+typedef void (*GToggleNotify) (gpointer data,
+ GObject *object,
+ gboolean is_last_ref);
+void g_object_add_toggle_ref (GObject *object,
+ GToggleNotify notify,
+ gpointer data);
+void g_object_remove_toggle_ref (GObject *object,
+ GToggleNotify notify,
+ gpointer data);
+gpointer g_object_get_qdata (GObject *object,
+ GQuark quark);
+void g_object_set_qdata (GObject *object,
+ GQuark quark,
+ gpointer data);
+void g_object_set_qdata_full (GObject *object,
+ GQuark quark,
+ gpointer data,
+ GDestroyNotify destroy);
+gpointer g_object_steal_qdata (GObject *object,
+ GQuark quark);
+gpointer g_object_get_data (GObject *object,
+ const gchar *key);
+void g_object_set_data (GObject *object,
+ const gchar *key,
+ gpointer data);
+void g_object_set_data_full (GObject *object,
+ const gchar *key,
+ gpointer data,
+ GDestroyNotify destroy);
+gpointer g_object_steal_data (GObject *object,
+ const gchar *key);
+void g_object_watch_closure (GObject *object,
+ GClosure *closure);
+GClosure* g_cclosure_new_object (GCallback callback_func,
+ GObject *object);
+GClosure* g_cclosure_new_object_swap (GCallback callback_func,
+ GObject *object);
+GClosure* g_closure_new_object (guint sizeof_closure,
+ GObject *object);
+void g_value_set_object (GValue *value,
+ gpointer v_object);
+gpointer g_value_get_object (const GValue *value);
+gpointer g_value_dup_object (const GValue *value);
+gulong g_signal_connect_object (gpointer instance,
+ const gchar *detailed_signal,
+ GCallback c_handler,
+ gpointer gobject,
+ GConnectFlags connect_flags);
+void g_object_force_floating (GObject *object);
+void g_object_run_dispose (GObject *object);
+void g_value_take_object (GValue *value,
+ gpointer v_object);
+void g_value_set_object_take_ownership (GValue *value,
+ gpointer v_object);
+gsize g_object_compat_control (gsize what,
+ gpointer data);
+typedef struct _GParamSpecChar GParamSpecChar;
+typedef struct _GParamSpecUChar GParamSpecUChar;
+typedef struct _GParamSpecBoolean GParamSpecBoolean;
+typedef struct _GParamSpecInt GParamSpecInt;
+typedef struct _GParamSpecUInt GParamSpecUInt;
+typedef struct _GParamSpecLong GParamSpecLong;
+typedef struct _GParamSpecULong GParamSpecULong;
+typedef struct _GParamSpecInt64 GParamSpecInt64;
+typedef struct _GParamSpecUInt64 GParamSpecUInt64;
+typedef struct _GParamSpecUnichar GParamSpecUnichar;
+typedef struct _GParamSpecEnum GParamSpecEnum;
+typedef struct _GParamSpecFlags GParamSpecFlags;
+typedef struct _GParamSpecFloat GParamSpecFloat;
+typedef struct _GParamSpecDouble GParamSpecDouble;
+typedef struct _GParamSpecString GParamSpecString;
+typedef struct _GParamSpecParam GParamSpecParam;
+typedef struct _GParamSpecBoxed GParamSpecBoxed;
+typedef struct _GParamSpecPointer GParamSpecPointer;
+typedef struct _GParamSpecValueArray GParamSpecValueArray;
+typedef struct _GParamSpecObject GParamSpecObject;
+typedef struct _GParamSpecOverride GParamSpecOverride;
+typedef struct _GParamSpecGType GParamSpecGType;
+struct _GParamSpecChar
+{
+ GParamSpec parent_instance;
+ gint8 minimum;
+ gint8 maximum;
+ gint8 default_value;
+};
+struct _GParamSpecUChar
+{
+ GParamSpec parent_instance;
+ guint8 minimum;
+ guint8 maximum;
+ guint8 default_value;
+};
+struct _GParamSpecBoolean
+{
+ GParamSpec parent_instance;
+ gboolean default_value;
+};
+struct _GParamSpecInt
+{
+ GParamSpec parent_instance;
+ gint minimum;
+ gint maximum;
+ gint default_value;
+};
+struct _GParamSpecUInt
+{
+ GParamSpec parent_instance;
+ guint minimum;
+ guint maximum;
+ guint default_value;
+};
+struct _GParamSpecLong
+{
+ GParamSpec parent_instance;
+ glong minimum;
+ glong maximum;
+ glong default_value;
+};
+struct _GParamSpecULong
+{
+ GParamSpec parent_instance;
+ gulong minimum;
+ gulong maximum;
+ gulong default_value;
+};
+struct _GParamSpecInt64
+{
+ GParamSpec parent_instance;
+ gint64 minimum;
+ gint64 maximum;
+ gint64 default_value;
+};
+struct _GParamSpecUInt64
+{
+ GParamSpec parent_instance;
+ guint64 minimum;
+ guint64 maximum;
+ guint64 default_value;
+};
+struct _GParamSpecUnichar
+{
+ GParamSpec parent_instance;
+ gunichar default_value;
+};
+struct _GParamSpecEnum
+{
+ GParamSpec parent_instance;
+ GEnumClass *enum_class;
+ gint default_value;
+};
+struct _GParamSpecFlags
+{
+ GParamSpec parent_instance;
+ GFlagsClass *flags_class;
+ guint default_value;
+};
+struct _GParamSpecFloat
+{
+ GParamSpec parent_instance;
+ gfloat minimum;
+ gfloat maximum;
+ gfloat default_value;
+ gfloat epsilon;
+};
+struct _GParamSpecDouble
+{
+ GParamSpec parent_instance;
+ gdouble minimum;
+ gdouble maximum;
+ gdouble default_value;
+ gdouble epsilon;
+};
+struct _GParamSpecString
+{
+ GParamSpec parent_instance;
+ gchar *default_value;
+ gchar *cset_first;
+ gchar *cset_nth;
+ gchar substitutor;
+ guint null_fold_if_empty : 1;
+ guint ensure_non_null : 1;
+};
+struct _GParamSpecParam
+{
+ GParamSpec parent_instance;
+};
+struct _GParamSpecBoxed
+{
+ GParamSpec parent_instance;
+};
+struct _GParamSpecPointer
+{
+ GParamSpec parent_instance;
+};
+struct _GParamSpecValueArray
+{
+ GParamSpec parent_instance;
+ GParamSpec *element_spec;
+ guint fixed_n_elements;
+};
+struct _GParamSpecObject
+{
+ GParamSpec parent_instance;
+};
+struct _GParamSpecOverride
+{
+ GParamSpec parent_instance;
+ GParamSpec *overridden;
+};
+struct _GParamSpecGType
+{
+ GParamSpec parent_instance;
+ GType is_a_type;
+};
+GParamSpec* g_param_spec_char (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gint8 minimum,
+ gint8 maximum,
+ gint8 default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_uchar (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ guint8 minimum,
+ guint8 maximum,
+ guint8 default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_boolean (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gboolean default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_int (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gint minimum,
+ gint maximum,
+ gint default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_uint (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ guint minimum,
+ guint maximum,
+ guint default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_long (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ glong minimum,
+ glong maximum,
+ glong default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_ulong (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gulong minimum,
+ gulong maximum,
+ gulong default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_int64 (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gint64 minimum,
+ gint64 maximum,
+ gint64 default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_uint64 (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ guint64 minimum,
+ guint64 maximum,
+ guint64 default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_unichar (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gunichar default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_enum (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GType enum_type,
+ gint default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_flags (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GType flags_type,
+ guint default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_float (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gfloat minimum,
+ gfloat maximum,
+ gfloat default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_double (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ gdouble minimum,
+ gdouble maximum,
+ gdouble default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_string (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ const gchar *default_value,
+ GParamFlags flags);
+GParamSpec* g_param_spec_param (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GType param_type,
+ GParamFlags flags);
+GParamSpec* g_param_spec_boxed (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GType boxed_type,
+ GParamFlags flags);
+GParamSpec* g_param_spec_pointer (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GParamFlags flags);
+GParamSpec* g_param_spec_value_array (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GParamSpec *element_spec,
+ GParamFlags flags);
+GParamSpec* g_param_spec_object (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GType object_type,
+ GParamFlags flags);
+GParamSpec* g_param_spec_override (const gchar *name,
+ GParamSpec *overridden);
+GParamSpec* g_param_spec_gtype (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ GType is_a_type,
+ GParamFlags flags);
+extern GType *g_param_spec_types;
+void g_source_set_closure (GSource *source,
+ GClosure *closure);
+GType g_io_channel_get_type (void);
+GType g_io_condition_get_type (void);
+typedef struct _GTypeModule GTypeModule;
+typedef struct _GTypeModuleClass GTypeModuleClass;
+struct _GTypeModule
+{
+ GObject parent_instance;
+ guint use_count;
+ GSList *type_infos;
+ GSList *interface_infos;
+ gchar *name;
+};
+struct _GTypeModuleClass
+{
+ GObjectClass parent_class;
+ gboolean (* load) (GTypeModule *module);
+ void (* unload) (GTypeModule *module);
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+};
+GType g_type_module_get_type (void) __attribute__((__const__));
+gboolean g_type_module_use (GTypeModule *module);
+void g_type_module_unuse (GTypeModule *module);
+void g_type_module_set_name (GTypeModule *module,
+ const gchar *name);
+GType g_type_module_register_type (GTypeModule *module,
+ GType parent_type,
+ const gchar *type_name,
+ const GTypeInfo *type_info,
+ GTypeFlags flags);
+void g_type_module_add_interface (GTypeModule *module,
+ GType instance_type,
+ GType interface_type,
+ const GInterfaceInfo *interface_info);
+GType g_type_module_register_enum (GTypeModule *module,
+ const gchar *name,
+ const GEnumValue *const_static_values);
+GType g_type_module_register_flags (GTypeModule *module,
+ const gchar *name,
+ const GFlagsValue *const_static_values);
+typedef struct _GTypePluginClass GTypePluginClass;
+typedef void (*GTypePluginUse) (GTypePlugin *plugin);
+typedef void (*GTypePluginUnuse) (GTypePlugin *plugin);
+typedef void (*GTypePluginCompleteTypeInfo) (GTypePlugin *plugin,
+ GType g_type,
+ GTypeInfo *info,
+ GTypeValueTable *value_table);
+typedef void (*GTypePluginCompleteInterfaceInfo) (GTypePlugin *plugin,
+ GType instance_type,
+ GType interface_type,
+ GInterfaceInfo *info);
+struct _GTypePluginClass
+{
+ GTypeInterface base_iface;
+ GTypePluginUse use_plugin;
+ GTypePluginUnuse unuse_plugin;
+ GTypePluginCompleteTypeInfo complete_type_info;
+ GTypePluginCompleteInterfaceInfo complete_interface_info;
+};
+GType g_type_plugin_get_type (void) __attribute__((__const__));
+void g_type_plugin_use (GTypePlugin *plugin);
+void g_type_plugin_unuse (GTypePlugin *plugin);
+void g_type_plugin_complete_type_info (GTypePlugin *plugin,
+ GType g_type,
+ GTypeInfo *info,
+ GTypeValueTable *value_table);
+void g_type_plugin_complete_interface_info (GTypePlugin *plugin,
+ GType instance_type,
+ GType interface_type,
+ GInterfaceInfo *info);
+typedef struct _GValueArray GValueArray;
+struct _GValueArray
+{
+ guint n_values;
+ GValue *values;
+ guint n_prealloced;
+};
+GValue* g_value_array_get_nth (GValueArray *value_array,
+ guint index_);
+GValueArray* g_value_array_new (guint n_prealloced);
+void g_value_array_free (GValueArray *value_array);
+GValueArray* g_value_array_copy (const GValueArray *value_array);
+GValueArray* g_value_array_prepend (GValueArray *value_array,
+ const GValue *value);
+GValueArray* g_value_array_append (GValueArray *value_array,
+ const GValue *value);
+GValueArray* g_value_array_insert (GValueArray *value_array,
+ guint index_,
+ const GValue *value);
+GValueArray* g_value_array_remove (GValueArray *value_array,
+ guint index_);
+GValueArray* g_value_array_sort (GValueArray *value_array,
+ GCompareFunc compare_func);
+GValueArray* g_value_array_sort_with_data (GValueArray *value_array,
+ GCompareDataFunc compare_func,
+ gpointer user_data);
+void g_value_set_char (GValue *value,
+ gchar v_char);
+gchar g_value_get_char (const GValue *value);
+void g_value_set_uchar (GValue *value,
+ guchar v_uchar);
+guchar g_value_get_uchar (const GValue *value);
+void g_value_set_boolean (GValue *value,
+ gboolean v_boolean);
+gboolean g_value_get_boolean (const GValue *value);
+void g_value_set_int (GValue *value,
+ gint v_int);
+gint g_value_get_int (const GValue *value);
+void g_value_set_uint (GValue *value,
+ guint v_uint);
+guint g_value_get_uint (const GValue *value);
+void g_value_set_long (GValue *value,
+ glong v_long);
+glong g_value_get_long (const GValue *value);
+void g_value_set_ulong (GValue *value,
+ gulong v_ulong);
+gulong g_value_get_ulong (const GValue *value);
+void g_value_set_int64 (GValue *value,
+ gint64 v_int64);
+gint64 g_value_get_int64 (const GValue *value);
+void g_value_set_uint64 (GValue *value,
+ guint64 v_uint64);
+guint64 g_value_get_uint64 (const GValue *value);
+void g_value_set_float (GValue *value,
+ gfloat v_float);
+gfloat g_value_get_float (const GValue *value);
+void g_value_set_double (GValue *value,
+ gdouble v_double);
+gdouble g_value_get_double (const GValue *value);
+void g_value_set_string (GValue *value,
+ const gchar *v_string);
+void g_value_set_static_string (GValue *value,
+ const gchar *v_string);
+const gchar* g_value_get_string (const GValue *value);
+gchar* g_value_dup_string (const GValue *value);
+void g_value_set_pointer (GValue *value,
+ gpointer v_pointer);
+gpointer g_value_get_pointer (const GValue *value);
+GType g_gtype_get_type (void);
+void g_value_set_gtype (GValue *value,
+ GType v_gtype);
+GType g_value_get_gtype (const GValue *value);
+GType g_pointer_type_register_static (const gchar *name);
+gchar* g_strdup_value_contents (const GValue *value);
+void g_value_take_string (GValue *value,
+ gchar *v_string);
+void g_value_set_string_take_ownership (GValue *value,
+ gchar *v_string);
+typedef gchar* gchararray;
+GType gst_object_flags_get_type (void);
+GType gst_bin_flags_get_type (void);
+GType gst_buffer_flag_get_type (void);
+GType gst_buffer_copy_flags_get_type (void);
+GType gst_buffer_list_item_get_type (void);
+GType gst_bus_flags_get_type (void);
+GType gst_bus_sync_reply_get_type (void);
+GType gst_caps_flags_get_type (void);
+GType gst_clock_return_get_type (void);
+GType gst_clock_entry_type_get_type (void);
+GType gst_clock_flags_get_type (void);
+GType gst_debug_graph_details_get_type (void);
+GType gst_state_get_type (void);
+GType gst_state_change_return_get_type (void);
+GType gst_state_change_get_type (void);
+GType gst_element_flags_get_type (void);
+GType gst_core_error_get_type (void);
+GType gst_library_error_get_type (void);
+GType gst_resource_error_get_type (void);
+GType gst_stream_error_get_type (void);
+GType gst_event_type_flags_get_type (void);
+GType gst_event_type_get_type (void);
+GType gst_seek_type_get_type (void);
+GType gst_seek_flags_get_type (void);
+GType gst_format_get_type (void);
+GType gst_index_certainty_get_type (void);
+GType gst_index_entry_type_get_type (void);
+GType gst_index_lookup_method_get_type (void);
+GType gst_assoc_flags_get_type (void);
+GType gst_index_resolver_method_get_type (void);
+GType gst_index_flags_get_type (void);
+GType gst_debug_level_get_type (void);
+GType gst_debug_color_flags_get_type (void);
+GType gst_iterator_result_get_type (void);
+GType gst_iterator_item_get_type (void);
+GType gst_message_type_get_type (void);
+GType gst_structure_change_type_get_type (void);
+GType gst_stream_status_type_get_type (void);
+GType gst_mini_object_flags_get_type (void);
+GType gst_pad_link_return_get_type (void);
+GType gst_flow_return_get_type (void);
+GType gst_activate_mode_get_type (void);
+GType gst_pad_direction_get_type (void);
+GType gst_pad_flags_get_type (void);
+GType gst_pad_presence_get_type (void);
+GType gst_pad_template_flags_get_type (void);
+GType gst_pipeline_flags_get_type (void);
+GType gst_plugin_error_get_type (void);
+GType gst_plugin_flags_get_type (void);
+GType gst_plugin_dependency_flags_get_type (void);
+GType gst_rank_get_type (void);
+GType gst_query_type_get_type (void);
+GType gst_buffering_mode_get_type (void);
+GType gst_clock_type_get_type (void);
+GType gst_tag_merge_mode_get_type (void);
+GType gst_tag_flag_get_type (void);
+GType gst_task_state_get_type (void);
+GType gst_alloc_trace_flags_get_type (void);
+GType gst_type_find_probability_get_type (void);
+GType gst_uri_type_get_type (void);
+GType gst_search_mode_get_type (void);
+GType gst_parse_error_get_type (void);
+GType gst_parse_flags_get_type (void);
+typedef struct _GstElement GstElement;
+typedef struct _GstElementClass GstElementClass;
+typedef enum {
+ GST_STATE_VOID_PENDING = 0,
+ GST_STATE_NULL = 1,
+ GST_STATE_READY = 2,
+ GST_STATE_PAUSED = 3,
+ GST_STATE_PLAYING = 4
+} GstState;
+ void xmlCheckVersion(int version);
+typedef unsigned char xmlChar;
+ xmlChar *
+ xmlStrdup (const xmlChar *cur);
+ xmlChar *
+ xmlStrndup (const xmlChar *cur,
+ int len);
+ xmlChar *
+ xmlCharStrndup (const char *cur,
+ int len);
+ xmlChar *
+ xmlCharStrdup (const char *cur);
+ xmlChar *
+ xmlStrsub (const xmlChar *str,
+ int start,
+ int len);
+ const xmlChar *
+ xmlStrchr (const xmlChar *str,
+ xmlChar val);
+ const xmlChar *
+ xmlStrstr (const xmlChar *str,
+ const xmlChar *val);
+ const xmlChar *
+ xmlStrcasestr (const xmlChar *str,
+ const xmlChar *val);
+ int
+ xmlStrcmp (const xmlChar *str1,
+ const xmlChar *str2);
+ int
+ xmlStrncmp (const xmlChar *str1,
+ const xmlChar *str2,
+ int len);
+ int
+ xmlStrcasecmp (const xmlChar *str1,
+ const xmlChar *str2);
+ int
+ xmlStrncasecmp (const xmlChar *str1,
+ const xmlChar *str2,
+ int len);
+ int
+ xmlStrEqual (const xmlChar *str1,
+ const xmlChar *str2);
+ int
+ xmlStrQEqual (const xmlChar *pref,
+ const xmlChar *name,
+ const xmlChar *str);
+ int
+ xmlStrlen (const xmlChar *str);
+ xmlChar *
+ xmlStrcat (xmlChar *cur,
+ const xmlChar *add);
+ xmlChar *
+ xmlStrncat (xmlChar *cur,
+ const xmlChar *add,
+ int len);
+ xmlChar *
+ xmlStrncatNew (const xmlChar *str1,
+ const xmlChar *str2,
+ int len);
+ int
+ xmlStrPrintf (xmlChar *buf,
+ int len,
+ const xmlChar *msg,
+ ...);
+ int
+ xmlStrVPrintf (xmlChar *buf,
+ int len,
+ const xmlChar *msg,
+ va_list ap);
+ int
+ xmlGetUTF8Char (const unsigned char *utf,
+ int *len);
+ int
+ xmlCheckUTF8 (const unsigned char *utf);
+ int
+ xmlUTF8Strsize (const xmlChar *utf,
+ int len);
+ xmlChar *
+ xmlUTF8Strndup (const xmlChar *utf,
+ int len);
+ const xmlChar *
+ xmlUTF8Strpos (const xmlChar *utf,
+ int pos);
+ int
+ xmlUTF8Strloc (const xmlChar *utf,
+ const xmlChar *utfchar);
+ xmlChar *
+ xmlUTF8Strsub (const xmlChar *utf,
+ int start,
+ int len);
+ int
+ xmlUTF8Strlen (const xmlChar *utf);
+ int
+ xmlUTF8Size (const xmlChar *utf);
+ int
+ xmlUTF8Charcmp (const xmlChar *utf1,
+ const xmlChar *utf2);
+typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
+typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
+typedef struct _xmlOutputBuffer xmlOutputBuffer;
+typedef xmlOutputBuffer *xmlOutputBufferPtr;
+typedef struct _xmlParserInput xmlParserInput;
+typedef xmlParserInput *xmlParserInputPtr;
+typedef struct _xmlParserCtxt xmlParserCtxt;
+typedef xmlParserCtxt *xmlParserCtxtPtr;
+typedef struct _xmlSAXLocator xmlSAXLocator;
+typedef xmlSAXLocator *xmlSAXLocatorPtr;
+typedef struct _xmlSAXHandler xmlSAXHandler;
+typedef xmlSAXHandler *xmlSAXHandlerPtr;
+typedef struct _xmlEntity xmlEntity;
+typedef xmlEntity *xmlEntityPtr;
+typedef enum {
+ XML_BUFFER_ALLOC_DOUBLEIT,
+ XML_BUFFER_ALLOC_EXACT,
+ XML_BUFFER_ALLOC_IMMUTABLE,
+ XML_BUFFER_ALLOC_IO
+} xmlBufferAllocationScheme;
+typedef struct _xmlBuffer xmlBuffer;
+typedef xmlBuffer *xmlBufferPtr;
+struct _xmlBuffer {
+ xmlChar *content;
+ unsigned int use;
+ unsigned int size;
+ xmlBufferAllocationScheme alloc;
+ xmlChar *contentIO;
+};
+typedef enum {
+ XML_ELEMENT_NODE= 1,
+ XML_ATTRIBUTE_NODE= 2,
+ XML_TEXT_NODE= 3,
+ XML_CDATA_SECTION_NODE= 4,
+ XML_ENTITY_REF_NODE= 5,
+ XML_ENTITY_NODE= 6,
+ XML_PI_NODE= 7,
+ XML_COMMENT_NODE= 8,
+ XML_DOCUMENT_NODE= 9,
+ XML_DOCUMENT_TYPE_NODE= 10,
+ XML_DOCUMENT_FRAG_NODE= 11,
+ XML_NOTATION_NODE= 12,
+ XML_HTML_DOCUMENT_NODE= 13,
+ XML_DTD_NODE= 14,
+ XML_ELEMENT_DECL= 15,
+ XML_ATTRIBUTE_DECL= 16,
+ XML_ENTITY_DECL= 17,
+ XML_NAMESPACE_DECL= 18,
+ XML_XINCLUDE_START= 19,
+ XML_XINCLUDE_END= 20
+ ,XML_DOCB_DOCUMENT_NODE= 21
+} xmlElementType;
+typedef struct _xmlNotation xmlNotation;
+typedef xmlNotation *xmlNotationPtr;
+struct _xmlNotation {
+ const xmlChar *name;
+ const xmlChar *PublicID;
+ const xmlChar *SystemID;
+};
+typedef enum {
+ XML_ATTRIBUTE_CDATA = 1,
+ XML_ATTRIBUTE_ID,
+ XML_ATTRIBUTE_IDREF ,
+ XML_ATTRIBUTE_IDREFS,
+ XML_ATTRIBUTE_ENTITY,
+ XML_ATTRIBUTE_ENTITIES,
+ XML_ATTRIBUTE_NMTOKEN,
+ XML_ATTRIBUTE_NMTOKENS,
+ XML_ATTRIBUTE_ENUMERATION,
+ XML_ATTRIBUTE_NOTATION
+} xmlAttributeType;
+typedef enum {
+ XML_ATTRIBUTE_NONE = 1,
+ XML_ATTRIBUTE_REQUIRED,
+ XML_ATTRIBUTE_IMPLIED,
+ XML_ATTRIBUTE_FIXED
+} xmlAttributeDefault;
+typedef struct _xmlEnumeration xmlEnumeration;
+typedef xmlEnumeration *xmlEnumerationPtr;
+struct _xmlEnumeration {
+ struct _xmlEnumeration *next;
+ const xmlChar *name;
+};
+typedef struct _xmlAttribute xmlAttribute;
+typedef xmlAttribute *xmlAttributePtr;
+struct _xmlAttribute {
+ void *_private;
+ xmlElementType type;
+ const xmlChar *name;
+ struct _xmlNode *children;
+ struct _xmlNode *last;
+ struct _xmlDtd *parent;
+ struct _xmlNode *next;
+ struct _xmlNode *prev;
+ struct _xmlDoc *doc;
+ struct _xmlAttribute *nexth;
+ xmlAttributeType atype;
+ xmlAttributeDefault def;
+ const xmlChar *defaultValue;
+ xmlEnumerationPtr tree;
+ const xmlChar *prefix;
+ const xmlChar *elem;
+};
+typedef enum {
+ XML_ELEMENT_CONTENT_PCDATA = 1,
+ XML_ELEMENT_CONTENT_ELEMENT,
+ XML_ELEMENT_CONTENT_SEQ,
+ XML_ELEMENT_CONTENT_OR
+} xmlElementContentType;
+typedef enum {
+ XML_ELEMENT_CONTENT_ONCE = 1,
+ XML_ELEMENT_CONTENT_OPT,
+ XML_ELEMENT_CONTENT_MULT,
+ XML_ELEMENT_CONTENT_PLUS
+} xmlElementContentOccur;
+typedef struct _xmlElementContent xmlElementContent;
+typedef xmlElementContent *xmlElementContentPtr;
+struct _xmlElementContent {
+ xmlElementContentType type;
+ xmlElementContentOccur ocur;
+ const xmlChar *name;
+ struct _xmlElementContent *c1;
+ struct _xmlElementContent *c2;
+ struct _xmlElementContent *parent;
+ const xmlChar *prefix;
+};
+typedef enum {
+ XML_ELEMENT_TYPE_UNDEFINED = 0,
+ XML_ELEMENT_TYPE_EMPTY = 1,
+ XML_ELEMENT_TYPE_ANY,
+ XML_ELEMENT_TYPE_MIXED,
+ XML_ELEMENT_TYPE_ELEMENT
+} xmlElementTypeVal;
+typedef struct _xmlRegexp xmlRegexp;
+typedef xmlRegexp *xmlRegexpPtr;
+typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
+typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
+typedef struct _xmlDict xmlDict;
+typedef xmlDict *xmlDictPtr;
+ xmlDictPtr
+ xmlDictCreate (void);
+ xmlDictPtr
+ xmlDictCreateSub(xmlDictPtr sub);
+ int
+ xmlDictReference(xmlDictPtr dict);
+ void
+ xmlDictFree (xmlDictPtr dict);
+ const xmlChar *
+ xmlDictLookup (xmlDictPtr dict,
+ const xmlChar *name,
+ int len);
+ const xmlChar *
+ xmlDictExists (xmlDictPtr dict,
+ const xmlChar *name,
+ int len);
+ const xmlChar *
+ xmlDictQLookup (xmlDictPtr dict,
+ const xmlChar *prefix,
+ const xmlChar *name);
+ int
+ xmlDictOwns (xmlDictPtr dict,
+ const xmlChar *str);
+ int
+ xmlDictSize (xmlDictPtr dict);
+ void
+ xmlDictCleanup (void);
+ xmlRegexpPtr
+ xmlRegexpCompile (const xmlChar *regexp);
+ void xmlRegFreeRegexp(xmlRegexpPtr regexp);
+ int
+ xmlRegexpExec (xmlRegexpPtr comp,
+ const xmlChar *value);
+ void
+ xmlRegexpPrint (FILE *output,
+ xmlRegexpPtr regexp);
+ int
+ xmlRegexpIsDeterminist(xmlRegexpPtr comp);
+typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
+ const xmlChar *token,
+ void *transdata,
+ void *inputdata);
+ xmlRegExecCtxtPtr
+ xmlRegNewExecCtxt (xmlRegexpPtr comp,
+ xmlRegExecCallbacks callback,
+ void *data);
+ void
+ xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec);
+ int
+ xmlRegExecPushString(xmlRegExecCtxtPtr exec,
+ const xmlChar *value,
+ void *data);
+ int
+ xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
+ const xmlChar *value,
+ const xmlChar *value2,
+ void *data);
+ int
+ xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
+ int *nbval,
+ int *nbneg,
+ xmlChar **values,
+ int *terminal);
+ int
+ xmlRegExecErrInfo (xmlRegExecCtxtPtr exec,
+ const xmlChar **string,
+ int *nbval,
+ int *nbneg,
+ xmlChar **values,
+ int *terminal);
+typedef struct _xmlExpCtxt xmlExpCtxt;
+typedef xmlExpCtxt *xmlExpCtxtPtr;
+ void
+ xmlExpFreeCtxt (xmlExpCtxtPtr ctxt);
+ xmlExpCtxtPtr
+ xmlExpNewCtxt (int maxNodes,
+ xmlDictPtr dict);
+ int
+ xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
+ int
+ xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
+typedef struct _xmlExpNode xmlExpNode;
+typedef xmlExpNode *xmlExpNodePtr;
+typedef enum {
+ XML_EXP_EMPTY = 0,
+ XML_EXP_FORBID = 1,
+ XML_EXP_ATOM = 2,
+ XML_EXP_SEQ = 3,
+ XML_EXP_OR = 4,
+ XML_EXP_COUNT = 5
+} xmlExpNodeType;
+extern xmlExpNodePtr forbiddenExp;
+extern xmlExpNodePtr emptyExp;
+ void
+ xmlExpFree (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr);
+ void
+ xmlExpRef (xmlExpNodePtr expr);
+ xmlExpNodePtr
+ xmlExpParse (xmlExpCtxtPtr ctxt,
+ const char *expr);
+ xmlExpNodePtr
+ xmlExpNewAtom (xmlExpCtxtPtr ctxt,
+ const xmlChar *name,
+ int len);
+ xmlExpNodePtr
+ xmlExpNewOr (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr left,
+ xmlExpNodePtr right);
+ xmlExpNodePtr
+ xmlExpNewSeq (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr left,
+ xmlExpNodePtr right);
+ xmlExpNodePtr
+ xmlExpNewRange (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr subset,
+ int min,
+ int max);
+ int
+ xmlExpIsNillable(xmlExpNodePtr expr);
+ int
+ xmlExpMaxToken (xmlExpNodePtr expr);
+ int
+ xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ const xmlChar**langList,
+ int len);
+ int
+ xmlExpGetStart (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ const xmlChar**tokList,
+ int len);
+ xmlExpNodePtr
+ xmlExpStringDerive(xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ const xmlChar *str,
+ int len);
+ xmlExpNodePtr
+ xmlExpExpDerive (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ xmlExpNodePtr sub);
+ int
+ xmlExpSubsume (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ xmlExpNodePtr sub);
+ void
+ xmlExpDump (xmlBufferPtr buf,
+ xmlExpNodePtr expr);
+typedef struct _xmlElement xmlElement;
+typedef xmlElement *xmlElementPtr;
+struct _xmlElement {
+ void *_private;
+ xmlElementType type;
+ const xmlChar *name;
+ struct _xmlNode *children;
+ struct _xmlNode *last;
+ struct _xmlDtd *parent;
+ struct _xmlNode *next;
+ struct _xmlNode *prev;
+ struct _xmlDoc *doc;
+ xmlElementTypeVal etype;
+ xmlElementContentPtr content;
+ xmlAttributePtr attributes;
+ const xmlChar *prefix;
+ xmlRegexpPtr contModel;
+};
+typedef xmlElementType xmlNsType;
+typedef struct _xmlNs xmlNs;
+typedef xmlNs *xmlNsPtr;
+struct _xmlNs {
+ struct _xmlNs *next;
+ xmlNsType type;
+ const xmlChar *href;
+ const xmlChar *prefix;
+ void *_private;
+ struct _xmlDoc *context;
+};
+typedef struct _xmlDtd xmlDtd;
+typedef xmlDtd *xmlDtdPtr;
+struct _xmlDtd {
+ void *_private;
+ xmlElementType type;
+ const xmlChar *name;
+ struct _xmlNode *children;
+ struct _xmlNode *last;
+ struct _xmlDoc *parent;
+ struct _xmlNode *next;
+ struct _xmlNode *prev;
+ struct _xmlDoc *doc;
+ void *notations;
+ void *elements;
+ void *attributes;
+ void *entities;
+ const xmlChar *ExternalID;
+ const xmlChar *SystemID;
+ void *pentities;
+};
+typedef struct _xmlAttr xmlAttr;
+typedef xmlAttr *xmlAttrPtr;
+struct _xmlAttr {
+ void *_private;
+ xmlElementType type;
+ const xmlChar *name;
+ struct _xmlNode *children;
+ struct _xmlNode *last;
+ struct _xmlNode *parent;
+ struct _xmlAttr *next;
+ struct _xmlAttr *prev;
+ struct _xmlDoc *doc;
+ xmlNs *ns;
+ xmlAttributeType atype;
+ void *psvi;
+};
+typedef struct _xmlID xmlID;
+typedef xmlID *xmlIDPtr;
+struct _xmlID {
+ struct _xmlID *next;
+ const xmlChar *value;
+ xmlAttrPtr attr;
+ const xmlChar *name;
+ int lineno;
+ struct _xmlDoc *doc;
+};
+typedef struct _xmlRef xmlRef;
+typedef xmlRef *xmlRefPtr;
+struct _xmlRef {
+ struct _xmlRef *next;
+ const xmlChar *value;
+ xmlAttrPtr attr;
+ const xmlChar *name;
+ int lineno;
+};
+typedef struct _xmlNode xmlNode;
+typedef xmlNode *xmlNodePtr;
+struct _xmlNode {
+ void *_private;
+ xmlElementType type;
+ const xmlChar *name;
+ struct _xmlNode *children;
+ struct _xmlNode *last;
+ struct _xmlNode *parent;
+ struct _xmlNode *next;
+ struct _xmlNode *prev;
+ struct _xmlDoc *doc;
+ xmlNs *ns;
+ xmlChar *content;
+ struct _xmlAttr *properties;
+ xmlNs *nsDef;
+ void *psvi;
+ unsigned short line;
+ unsigned short extra;
+};
+typedef enum {
+ XML_DOC_WELLFORMED = 1<<0,
+ XML_DOC_NSVALID = 1<<1,
+ XML_DOC_OLD10 = 1<<2,
+ XML_DOC_DTDVALID = 1<<3,
+ XML_DOC_XINCLUDE = 1<<4,
+ XML_DOC_USERBUILT = 1<<5,
+ XML_DOC_INTERNAL = 1<<6,
+ XML_DOC_HTML = 1<<7
+} xmlDocProperties;
+typedef struct _xmlDoc xmlDoc;
+typedef xmlDoc *xmlDocPtr;
+struct _xmlDoc {
+ void *_private;
+ xmlElementType type;
+ char *name;
+ struct _xmlNode *children;
+ struct _xmlNode *last;
+ struct _xmlNode *parent;
+ struct _xmlNode *next;
+ struct _xmlNode *prev;
+ struct _xmlDoc *doc;
+ int compression;
+ int standalone;
+ struct _xmlDtd *intSubset;
+ struct _xmlDtd *extSubset;
+ struct _xmlNs *oldNs;
+ const xmlChar *version;
+ const xmlChar *encoding;
+ void *ids;
+ void *refs;
+ const xmlChar *URL;
+ int charset;
+ struct _xmlDict *dict;
+ void *psvi;
+ int parseFlags;
+ int properties;
+};
+typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
+typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
+typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
+ xmlNodePtr node,
+ const xmlChar *nsName,
+ const xmlChar *nsPrefix);
+struct _xmlDOMWrapCtxt {
+ void * _private;
+ int type;
+ void * namespaceMap;
+ xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
+};
+ int
+ xmlValidateNCName (const xmlChar *value,
+ int space);
+ int
+ xmlValidateQName (const xmlChar *value,
+ int space);
+ int
+ xmlValidateName (const xmlChar *value,
+ int space);
+ int
+ xmlValidateNMToken (const xmlChar *value,
+ int space);
+ xmlChar *
+ xmlBuildQName (const xmlChar *ncname,
+ const xmlChar *prefix,
+ xmlChar *memory,
+ int len);
+ xmlChar *
+ xmlSplitQName2 (const xmlChar *name,
+ xmlChar **prefix);
+ const xmlChar *
+ xmlSplitQName3 (const xmlChar *name,
+ int *len);
+ void
+ xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
+ xmlBufferAllocationScheme
+ xmlGetBufferAllocationScheme(void);
+ xmlBufferPtr
+ xmlBufferCreate (void);
+ xmlBufferPtr
+ xmlBufferCreateSize (size_t size);
+ xmlBufferPtr
+ xmlBufferCreateStatic (void *mem,
+ size_t size);
+ int
+ xmlBufferResize (xmlBufferPtr buf,
+ unsigned int size);
+ void
+ xmlBufferFree (xmlBufferPtr buf);
+ int
+ xmlBufferDump (FILE *file,
+ xmlBufferPtr buf);
+ int
+ xmlBufferAdd (xmlBufferPtr buf,
+ const xmlChar *str,
+ int len);
+ int
+ xmlBufferAddHead (xmlBufferPtr buf,
+ const xmlChar *str,
+ int len);
+ int
+ xmlBufferCat (xmlBufferPtr buf,
+ const xmlChar *str);
+ int
+ xmlBufferCCat (xmlBufferPtr buf,
+ const char *str);
+ int
+ xmlBufferShrink (xmlBufferPtr buf,
+ unsigned int len);
+ int
+ xmlBufferGrow (xmlBufferPtr buf,
+ unsigned int len);
+ void
+ xmlBufferEmpty (xmlBufferPtr buf);
+ const xmlChar*
+ xmlBufferContent (const xmlBufferPtr buf);
+ void
+ xmlBufferSetAllocationScheme(xmlBufferPtr buf,
+ xmlBufferAllocationScheme scheme);
+ int
+ xmlBufferLength (const xmlBufferPtr buf);
+ xmlDtdPtr
+ xmlCreateIntSubset (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ xmlDtdPtr
+ xmlNewDtd (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ xmlDtdPtr
+ xmlGetIntSubset (xmlDocPtr doc);
+ void
+ xmlFreeDtd (xmlDtdPtr cur);
+ xmlNsPtr
+ xmlNewGlobalNs (xmlDocPtr doc,
+ const xmlChar *href,
+ const xmlChar *prefix);
+ xmlNsPtr
+ xmlNewNs (xmlNodePtr node,
+ const xmlChar *href,
+ const xmlChar *prefix);
+ void
+ xmlFreeNs (xmlNsPtr cur);
+ void
+ xmlFreeNsList (xmlNsPtr cur);
+ xmlDocPtr
+ xmlNewDoc (const xmlChar *version);
+ void
+ xmlFreeDoc (xmlDocPtr cur);
+ xmlAttrPtr
+ xmlNewDocProp (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *value);
+ xmlAttrPtr
+ xmlNewProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *value);
+ xmlAttrPtr
+ xmlNewNsProp (xmlNodePtr node,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *value);
+ xmlAttrPtr
+ xmlNewNsPropEatName (xmlNodePtr node,
+ xmlNsPtr ns,
+ xmlChar *name,
+ const xmlChar *value);
+ void
+ xmlFreePropList (xmlAttrPtr cur);
+ void
+ xmlFreeProp (xmlAttrPtr cur);
+ xmlAttrPtr
+ xmlCopyProp (xmlNodePtr target,
+ xmlAttrPtr cur);
+ xmlAttrPtr
+ xmlCopyPropList (xmlNodePtr target,
+ xmlAttrPtr cur);
+ xmlDtdPtr
+ xmlCopyDtd (xmlDtdPtr dtd);
+ xmlDocPtr
+ xmlCopyDoc (xmlDocPtr doc,
+ int recursive);
+ xmlNodePtr
+ xmlNewDocNode (xmlDocPtr doc,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewDocNodeEatName (xmlDocPtr doc,
+ xmlNsPtr ns,
+ xmlChar *name,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewNode (xmlNsPtr ns,
+ const xmlChar *name);
+ xmlNodePtr
+ xmlNewNodeEatName (xmlNsPtr ns,
+ xmlChar *name);
+ xmlNodePtr
+ xmlNewChild (xmlNodePtr parent,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewDocText (xmlDocPtr doc,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewText (const xmlChar *content);
+ xmlNodePtr
+ xmlNewDocPI (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewPI (const xmlChar *name,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewDocTextLen (xmlDocPtr doc,
+ const xmlChar *content,
+ int len);
+ xmlNodePtr
+ xmlNewTextLen (const xmlChar *content,
+ int len);
+ xmlNodePtr
+ xmlNewDocComment (xmlDocPtr doc,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewComment (const xmlChar *content);
+ xmlNodePtr
+ xmlNewCDataBlock (xmlDocPtr doc,
+ const xmlChar *content,
+ int len);
+ xmlNodePtr
+ xmlNewCharRef (xmlDocPtr doc,
+ const xmlChar *name);
+ xmlNodePtr
+ xmlNewReference (xmlDocPtr doc,
+ const xmlChar *name);
+ xmlNodePtr
+ xmlCopyNode (const xmlNodePtr node,
+ int recursive);
+ xmlNodePtr
+ xmlDocCopyNode (const xmlNodePtr node,
+ xmlDocPtr doc,
+ int recursive);
+ xmlNodePtr
+ xmlDocCopyNodeList (xmlDocPtr doc,
+ const xmlNodePtr node);
+ xmlNodePtr
+ xmlCopyNodeList (const xmlNodePtr node);
+ xmlNodePtr
+ xmlNewTextChild (xmlNodePtr parent,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewDocRawNode (xmlDocPtr doc,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+ xmlNodePtr
+ xmlNewDocFragment (xmlDocPtr doc);
+ long
+ xmlGetLineNo (xmlNodePtr node);
+ xmlChar *
+ xmlGetNodePath (xmlNodePtr node);
+ xmlNodePtr
+ xmlDocGetRootElement (xmlDocPtr doc);
+ xmlNodePtr
+ xmlGetLastChild (xmlNodePtr parent);
+ int
+ xmlNodeIsText (xmlNodePtr node);
+ int
+ xmlIsBlankNode (xmlNodePtr node);
+ xmlNodePtr
+ xmlDocSetRootElement (xmlDocPtr doc,
+ xmlNodePtr root);
+ void
+ xmlNodeSetName (xmlNodePtr cur,
+ const xmlChar *name);
+ xmlNodePtr
+ xmlAddChild (xmlNodePtr parent,
+ xmlNodePtr cur);
+ xmlNodePtr
+ xmlAddChildList (xmlNodePtr parent,
+ xmlNodePtr cur);
+ xmlNodePtr
+ xmlReplaceNode (xmlNodePtr old,
+ xmlNodePtr cur);
+ xmlNodePtr
+ xmlAddPrevSibling (xmlNodePtr cur,
+ xmlNodePtr elem);
+ xmlNodePtr
+ xmlAddSibling (xmlNodePtr cur,
+ xmlNodePtr elem);
+ xmlNodePtr
+ xmlAddNextSibling (xmlNodePtr cur,
+ xmlNodePtr elem);
+ void
+ xmlUnlinkNode (xmlNodePtr cur);
+ xmlNodePtr
+ xmlTextMerge (xmlNodePtr first,
+ xmlNodePtr second);
+ int
+ xmlTextConcat (xmlNodePtr node,
+ const xmlChar *content,
+ int len);
+ void
+ xmlFreeNodeList (xmlNodePtr cur);
+ void
+ xmlFreeNode (xmlNodePtr cur);
+ void
+ xmlSetTreeDoc (xmlNodePtr tree,
+ xmlDocPtr doc);
+ void
+ xmlSetListDoc (xmlNodePtr list,
+ xmlDocPtr doc);
+ xmlNsPtr
+ xmlSearchNs (xmlDocPtr doc,
+ xmlNodePtr node,
+ const xmlChar *nameSpace);
+ xmlNsPtr
+ xmlSearchNsByHref (xmlDocPtr doc,
+ xmlNodePtr node,
+ const xmlChar *href);
+ xmlNsPtr *
+ xmlGetNsList (xmlDocPtr doc,
+ xmlNodePtr node);
+ void
+ xmlSetNs (xmlNodePtr node,
+ xmlNsPtr ns);
+ xmlNsPtr
+ xmlCopyNamespace (xmlNsPtr cur);
+ xmlNsPtr
+ xmlCopyNamespaceList (xmlNsPtr cur);
+ xmlAttrPtr
+ xmlSetProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *value);
+ xmlAttrPtr
+ xmlSetNsProp (xmlNodePtr node,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *value);
+ xmlChar *
+ xmlGetNoNsProp (xmlNodePtr node,
+ const xmlChar *name);
+ xmlChar *
+ xmlGetProp (xmlNodePtr node,
+ const xmlChar *name);
+ xmlAttrPtr
+ xmlHasProp (xmlNodePtr node,
+ const xmlChar *name);
+ xmlAttrPtr
+ xmlHasNsProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *nameSpace);
+ xmlChar *
+ xmlGetNsProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *nameSpace);
+ xmlNodePtr
+ xmlStringGetNodeList (xmlDocPtr doc,
+ const xmlChar *value);
+ xmlNodePtr
+ xmlStringLenGetNodeList (xmlDocPtr doc,
+ const xmlChar *value,
+ int len);
+ xmlChar *
+ xmlNodeListGetString (xmlDocPtr doc,
+ xmlNodePtr list,
+ int inLine);
+ xmlChar *
+ xmlNodeListGetRawString (xmlDocPtr doc,
+ xmlNodePtr list,
+ int inLine);
+ void
+ xmlNodeSetContent (xmlNodePtr cur,
+ const xmlChar *content);
+ void
+ xmlNodeSetContentLen (xmlNodePtr cur,
+ const xmlChar *content,
+ int len);
+ void
+ xmlNodeAddContent (xmlNodePtr cur,
+ const xmlChar *content);
+ void
+ xmlNodeAddContentLen (xmlNodePtr cur,
+ const xmlChar *content,
+ int len);
+ xmlChar *
+ xmlNodeGetContent (xmlNodePtr cur);
+ int
+ xmlNodeBufGetContent (xmlBufferPtr buffer,
+ xmlNodePtr cur);
+ xmlChar *
+ xmlNodeGetLang (xmlNodePtr cur);
+ int
+ xmlNodeGetSpacePreserve (xmlNodePtr cur);
+ void
+ xmlNodeSetLang (xmlNodePtr cur,
+ const xmlChar *lang);
+ void
+ xmlNodeSetSpacePreserve (xmlNodePtr cur,
+ int val);
+ xmlChar *
+ xmlNodeGetBase (xmlDocPtr doc,
+ xmlNodePtr cur);
+ void
+ xmlNodeSetBase (xmlNodePtr cur,
+ const xmlChar *uri);
+ int
+ xmlRemoveProp (xmlAttrPtr cur);
+ int
+ xmlUnsetNsProp (xmlNodePtr node,
+ xmlNsPtr ns,
+ const xmlChar *name);
+ int
+ xmlUnsetProp (xmlNodePtr node,
+ const xmlChar *name);
+ void
+ xmlBufferWriteCHAR (xmlBufferPtr buf,
+ const xmlChar *string);
+ void
+ xmlBufferWriteChar (xmlBufferPtr buf,
+ const char *string);
+ void
+ xmlBufferWriteQuotedString(xmlBufferPtr buf,
+ const xmlChar *string);
+ void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
+ xmlDocPtr doc,
+ xmlAttrPtr attr,
+ const xmlChar *string);
+ int
+ xmlReconciliateNs (xmlDocPtr doc,
+ xmlNodePtr tree);
+ void
+ xmlDocDumpFormatMemory (xmlDocPtr cur,
+ xmlChar **mem,
+ int *size,
+ int format);
+ void
+ xmlDocDumpMemory (xmlDocPtr cur,
+ xmlChar **mem,
+ int *size);
+ void
+ xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
+ xmlChar **doc_txt_ptr,
+ int * doc_txt_len,
+ const char *txt_encoding);
+ void
+ xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
+ xmlChar **doc_txt_ptr,
+ int * doc_txt_len,
+ const char *txt_encoding,
+ int format);
+ int
+ xmlDocFormatDump (FILE *f,
+ xmlDocPtr cur,
+ int format);
+ int
+ xmlDocDump (FILE *f,
+ xmlDocPtr cur);
+ void
+ xmlElemDump (FILE *f,
+ xmlDocPtr doc,
+ xmlNodePtr cur);
+ int
+ xmlSaveFile (const char *filename,
+ xmlDocPtr cur);
+ int
+ xmlSaveFormatFile (const char *filename,
+ xmlDocPtr cur,
+ int format);
+ int
+ xmlNodeDump (xmlBufferPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ int level,
+ int format);
+ int
+ xmlSaveFileTo (xmlOutputBufferPtr buf,
+ xmlDocPtr cur,
+ const char *encoding);
+ int
+ xmlSaveFormatFileTo (xmlOutputBufferPtr buf,
+ xmlDocPtr cur,
+ const char *encoding,
+ int format);
+ void
+ xmlNodeDumpOutput (xmlOutputBufferPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ int level,
+ int format,
+ const char *encoding);
+ int
+ xmlSaveFormatFileEnc (const char *filename,
+ xmlDocPtr cur,
+ const char *encoding,
+ int format);
+ int
+ xmlSaveFileEnc (const char *filename,
+ xmlDocPtr cur,
+ const char *encoding);
+ int
+ xmlIsXHTML (const xmlChar *systemID,
+ const xmlChar *publicID);
+ int
+ xmlGetDocCompressMode (xmlDocPtr doc);
+ void
+ xmlSetDocCompressMode (xmlDocPtr doc,
+ int mode);
+ int
+ xmlGetCompressMode (void);
+ void
+ xmlSetCompressMode (int mode);
+ xmlDOMWrapCtxtPtr
+ xmlDOMWrapNewCtxt (void);
+ void
+ xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt);
+ int
+ xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
+ xmlNodePtr elem,
+ int options);
+ int
+ xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt,
+ xmlDocPtr sourceDoc,
+ xmlNodePtr node,
+ xmlDocPtr destDoc,
+ xmlNodePtr destParent,
+ int options);
+ int
+ xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr node,
+ int options);
+ int
+ xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt,
+ xmlDocPtr sourceDoc,
+ xmlNodePtr node,
+ xmlNodePtr *clonedNode,
+ xmlDocPtr destDoc,
+ xmlNodePtr destParent,
+ int deep,
+ int options);
+ unsigned long
+ xmlChildElementCount (xmlNodePtr parent);
+ xmlNodePtr
+ xmlNextElementSibling (xmlNodePtr node);
+ xmlNodePtr
+ xmlFirstElementChild (xmlNodePtr parent);
+ xmlNodePtr
+ xmlLastElementChild (xmlNodePtr parent);
+ xmlNodePtr
+ xmlPreviousElementSibling (xmlNodePtr node);
+typedef struct _xmlHashTable xmlHashTable;
+typedef xmlHashTable *xmlHashTablePtr;
+typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
+typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
+typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
+typedef void (*xmlHashScannerFull)(void *payload, void *data,
+ const xmlChar *name, const xmlChar *name2,
+ const xmlChar *name3);
+ xmlHashTablePtr
+ xmlHashCreate (int size);
+ xmlHashTablePtr
+ xmlHashCreateDict(int size,
+ xmlDictPtr dict);
+ void
+ xmlHashFree (xmlHashTablePtr table,
+ xmlHashDeallocator f);
+ int
+ xmlHashAddEntry (xmlHashTablePtr table,
+ const xmlChar *name,
+ void *userdata);
+ int
+ xmlHashUpdateEntry(xmlHashTablePtr table,
+ const xmlChar *name,
+ void *userdata,
+ xmlHashDeallocator f);
+ int
+ xmlHashAddEntry2(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ void *userdata);
+ int
+ xmlHashUpdateEntry2(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ void *userdata,
+ xmlHashDeallocator f);
+ int
+ xmlHashAddEntry3(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ void *userdata);
+ int
+ xmlHashUpdateEntry3(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ void *userdata,
+ xmlHashDeallocator f);
+ int
+ xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,
+ xmlHashDeallocator f);
+ int
+ xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,
+ const xmlChar *name2, xmlHashDeallocator f);
+ int
+ xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
+ const xmlChar *name2, const xmlChar *name3,
+ xmlHashDeallocator f);
+ void *
+ xmlHashLookup (xmlHashTablePtr table,
+ const xmlChar *name);
+ void *
+ xmlHashLookup2 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2);
+ void *
+ xmlHashLookup3 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3);
+ void *
+ xmlHashQLookup (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *prefix);
+ void *
+ xmlHashQLookup2 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *prefix,
+ const xmlChar *name2,
+ const xmlChar *prefix2);
+ void *
+ xmlHashQLookup3 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *prefix,
+ const xmlChar *name2,
+ const xmlChar *prefix2,
+ const xmlChar *name3,
+ const xmlChar *prefix3);
+ xmlHashTablePtr
+ xmlHashCopy (xmlHashTablePtr table,
+ xmlHashCopier f);
+ int
+ xmlHashSize (xmlHashTablePtr table);
+ void
+ xmlHashScan (xmlHashTablePtr table,
+ xmlHashScanner f,
+ void *data);
+ void
+ xmlHashScan3 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ xmlHashScanner f,
+ void *data);
+ void
+ xmlHashScanFull (xmlHashTablePtr table,
+ xmlHashScannerFull f,
+ void *data);
+ void
+ xmlHashScanFull3(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ xmlHashScannerFull f,
+ void *data);
+typedef enum {
+ XML_ERR_NONE = 0,
+ XML_ERR_WARNING = 1,
+ XML_ERR_ERROR = 2,
+ XML_ERR_FATAL = 3
+} xmlErrorLevel;
+typedef enum {
+ XML_FROM_NONE = 0,
+ XML_FROM_PARSER,
+ XML_FROM_TREE,
+ XML_FROM_NAMESPACE,
+ XML_FROM_DTD,
+ XML_FROM_HTML,
+ XML_FROM_MEMORY,
+ XML_FROM_OUTPUT,
+ XML_FROM_IO,
+ XML_FROM_FTP,
+ XML_FROM_HTTP,
+ XML_FROM_XINCLUDE,
+ XML_FROM_XPATH,
+ XML_FROM_XPOINTER,
+ XML_FROM_REGEXP,
+ XML_FROM_DATATYPE,
+ XML_FROM_SCHEMASP,
+ XML_FROM_SCHEMASV,
+ XML_FROM_RELAXNGP,
+ XML_FROM_RELAXNGV,
+ XML_FROM_CATALOG,
+ XML_FROM_C14N,
+ XML_FROM_XSLT,
+ XML_FROM_VALID,
+ XML_FROM_CHECK,
+ XML_FROM_WRITER,
+ XML_FROM_MODULE,
+ XML_FROM_I18N,
+ XML_FROM_SCHEMATRONV
+} xmlErrorDomain;
+typedef struct _xmlError xmlError;
+typedef xmlError *xmlErrorPtr;
+struct _xmlError {
+ int domain;
+ int code;
+ char *message;
+ xmlErrorLevel level;
+ char *file;
+ int line;
+ char *str1;
+ char *str2;
+ char *str3;
+ int int1;
+ int int2;
+ void *ctxt;
+ void *node;
+};
+typedef enum {
+ XML_ERR_OK = 0,
+ XML_ERR_INTERNAL_ERROR,
+ XML_ERR_NO_MEMORY,
+ XML_ERR_DOCUMENT_START,
+ XML_ERR_DOCUMENT_EMPTY,
+ XML_ERR_DOCUMENT_END,
+ XML_ERR_INVALID_HEX_CHARREF,
+ XML_ERR_INVALID_DEC_CHARREF,
+ XML_ERR_INVALID_CHARREF,
+ XML_ERR_INVALID_CHAR,
+ XML_ERR_CHARREF_AT_EOF,
+ XML_ERR_CHARREF_IN_PROLOG,
+ XML_ERR_CHARREF_IN_EPILOG,
+ XML_ERR_CHARREF_IN_DTD,
+ XML_ERR_ENTITYREF_AT_EOF,
+ XML_ERR_ENTITYREF_IN_PROLOG,
+ XML_ERR_ENTITYREF_IN_EPILOG,
+ XML_ERR_ENTITYREF_IN_DTD,
+ XML_ERR_PEREF_AT_EOF,
+ XML_ERR_PEREF_IN_PROLOG,
+ XML_ERR_PEREF_IN_EPILOG,
+ XML_ERR_PEREF_IN_INT_SUBSET,
+ XML_ERR_ENTITYREF_NO_NAME,
+ XML_ERR_ENTITYREF_SEMICOL_MISSING,
+ XML_ERR_PEREF_NO_NAME,
+ XML_ERR_PEREF_SEMICOL_MISSING,
+ XML_ERR_UNDECLARED_ENTITY,
+ XML_WAR_UNDECLARED_ENTITY,
+ XML_ERR_UNPARSED_ENTITY,
+ XML_ERR_ENTITY_IS_EXTERNAL,
+ XML_ERR_ENTITY_IS_PARAMETER,
+ XML_ERR_UNKNOWN_ENCODING,
+ XML_ERR_UNSUPPORTED_ENCODING,
+ XML_ERR_STRING_NOT_STARTED,
+ XML_ERR_STRING_NOT_CLOSED,
+ XML_ERR_NS_DECL_ERROR,
+ XML_ERR_ENTITY_NOT_STARTED,
+ XML_ERR_ENTITY_NOT_FINISHED,
+ XML_ERR_LT_IN_ATTRIBUTE,
+ XML_ERR_ATTRIBUTE_NOT_STARTED,
+ XML_ERR_ATTRIBUTE_NOT_FINISHED,
+ XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
+ XML_ERR_ATTRIBUTE_REDEFINED,
+ XML_ERR_LITERAL_NOT_STARTED,
+ XML_ERR_LITERAL_NOT_FINISHED,
+ XML_ERR_COMMENT_NOT_FINISHED,
+ XML_ERR_PI_NOT_STARTED,
+ XML_ERR_PI_NOT_FINISHED,
+ XML_ERR_NOTATION_NOT_STARTED,
+ XML_ERR_NOTATION_NOT_FINISHED,
+ XML_ERR_ATTLIST_NOT_STARTED,
+ XML_ERR_ATTLIST_NOT_FINISHED,
+ XML_ERR_MIXED_NOT_STARTED,
+ XML_ERR_MIXED_NOT_FINISHED,
+ XML_ERR_ELEMCONTENT_NOT_STARTED,
+ XML_ERR_ELEMCONTENT_NOT_FINISHED,
+ XML_ERR_XMLDECL_NOT_STARTED,
+ XML_ERR_XMLDECL_NOT_FINISHED,
+ XML_ERR_CONDSEC_NOT_STARTED,
+ XML_ERR_CONDSEC_NOT_FINISHED,
+ XML_ERR_EXT_SUBSET_NOT_FINISHED,
+ XML_ERR_DOCTYPE_NOT_FINISHED,
+ XML_ERR_MISPLACED_CDATA_END,
+ XML_ERR_CDATA_NOT_FINISHED,
+ XML_ERR_RESERVED_XML_NAME,
+ XML_ERR_SPACE_REQUIRED,
+ XML_ERR_SEPARATOR_REQUIRED,
+ XML_ERR_NMTOKEN_REQUIRED,
+ XML_ERR_NAME_REQUIRED,
+ XML_ERR_PCDATA_REQUIRED,
+ XML_ERR_URI_REQUIRED,
+ XML_ERR_PUBID_REQUIRED,
+ XML_ERR_LT_REQUIRED,
+ XML_ERR_GT_REQUIRED,
+ XML_ERR_LTSLASH_REQUIRED,
+ XML_ERR_EQUAL_REQUIRED,
+ XML_ERR_TAG_NAME_MISMATCH,
+ XML_ERR_TAG_NOT_FINISHED,
+ XML_ERR_STANDALONE_VALUE,
+ XML_ERR_ENCODING_NAME,
+ XML_ERR_HYPHEN_IN_COMMENT,
+ XML_ERR_INVALID_ENCODING,
+ XML_ERR_EXT_ENTITY_STANDALONE,
+ XML_ERR_CONDSEC_INVALID,
+ XML_ERR_VALUE_REQUIRED,
+ XML_ERR_NOT_WELL_BALANCED,
+ XML_ERR_EXTRA_CONTENT,
+ XML_ERR_ENTITY_CHAR_ERROR,
+ XML_ERR_ENTITY_PE_INTERNAL,
+ XML_ERR_ENTITY_LOOP,
+ XML_ERR_ENTITY_BOUNDARY,
+ XML_ERR_INVALID_URI,
+ XML_ERR_URI_FRAGMENT,
+ XML_WAR_CATALOG_PI,
+ XML_ERR_NO_DTD,
+ XML_ERR_CONDSEC_INVALID_KEYWORD,
+ XML_ERR_VERSION_MISSING,
+ XML_WAR_UNKNOWN_VERSION,
+ XML_WAR_LANG_VALUE,
+ XML_WAR_NS_URI,
+ XML_WAR_NS_URI_RELATIVE,
+ XML_ERR_MISSING_ENCODING,
+ XML_WAR_SPACE_VALUE,
+ XML_ERR_NOT_STANDALONE,
+ XML_ERR_ENTITY_PROCESSING,
+ XML_ERR_NOTATION_PROCESSING,
+ XML_WAR_NS_COLUMN,
+ XML_WAR_ENTITY_REDEFINED,
+ XML_ERR_UNKNOWN_VERSION,
+ XML_ERR_VERSION_MISMATCH,
+ XML_NS_ERR_XML_NAMESPACE = 200,
+ XML_NS_ERR_UNDEFINED_NAMESPACE,
+ XML_NS_ERR_QNAME,
+ XML_NS_ERR_ATTRIBUTE_REDEFINED,
+ XML_NS_ERR_EMPTY,
+ XML_NS_ERR_COLON,
+ XML_DTD_ATTRIBUTE_DEFAULT = 500,
+ XML_DTD_ATTRIBUTE_REDEFINED,
+ XML_DTD_ATTRIBUTE_VALUE,
+ XML_DTD_CONTENT_ERROR,
+ XML_DTD_CONTENT_MODEL,
+ XML_DTD_CONTENT_NOT_DETERMINIST,
+ XML_DTD_DIFFERENT_PREFIX,
+ XML_DTD_ELEM_DEFAULT_NAMESPACE,
+ XML_DTD_ELEM_NAMESPACE,
+ XML_DTD_ELEM_REDEFINED,
+ XML_DTD_EMPTY_NOTATION,
+ XML_DTD_ENTITY_TYPE,
+ XML_DTD_ID_FIXED,
+ XML_DTD_ID_REDEFINED,
+ XML_DTD_ID_SUBSET,
+ XML_DTD_INVALID_CHILD,
+ XML_DTD_INVALID_DEFAULT,
+ XML_DTD_LOAD_ERROR,
+ XML_DTD_MISSING_ATTRIBUTE,
+ XML_DTD_MIXED_CORRUPT,
+ XML_DTD_MULTIPLE_ID,
+ XML_DTD_NO_DOC,
+ XML_DTD_NO_DTD,
+ XML_DTD_NO_ELEM_NAME,
+ XML_DTD_NO_PREFIX,
+ XML_DTD_NO_ROOT,
+ XML_DTD_NOTATION_REDEFINED,
+ XML_DTD_NOTATION_VALUE,
+ XML_DTD_NOT_EMPTY,
+ XML_DTD_NOT_PCDATA,
+ XML_DTD_NOT_STANDALONE,
+ XML_DTD_ROOT_NAME,
+ XML_DTD_STANDALONE_WHITE_SPACE,
+ XML_DTD_UNKNOWN_ATTRIBUTE,
+ XML_DTD_UNKNOWN_ELEM,
+ XML_DTD_UNKNOWN_ENTITY,
+ XML_DTD_UNKNOWN_ID,
+ XML_DTD_UNKNOWN_NOTATION,
+ XML_DTD_STANDALONE_DEFAULTED,
+ XML_DTD_XMLID_VALUE,
+ XML_DTD_XMLID_TYPE,
+ XML_DTD_DUP_TOKEN,
+ XML_HTML_STRUCURE_ERROR = 800,
+ XML_HTML_UNKNOWN_TAG,
+ XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000,
+ XML_RNGP_ATTR_CONFLICT,
+ XML_RNGP_ATTRIBUTE_CHILDREN,
+ XML_RNGP_ATTRIBUTE_CONTENT,
+ XML_RNGP_ATTRIBUTE_EMPTY,
+ XML_RNGP_ATTRIBUTE_NOOP,
+ XML_RNGP_CHOICE_CONTENT,
+ XML_RNGP_CHOICE_EMPTY,
+ XML_RNGP_CREATE_FAILURE,
+ XML_RNGP_DATA_CONTENT,
+ XML_RNGP_DEF_CHOICE_AND_INTERLEAVE,
+ XML_RNGP_DEFINE_CREATE_FAILED,
+ XML_RNGP_DEFINE_EMPTY,
+ XML_RNGP_DEFINE_MISSING,
+ XML_RNGP_DEFINE_NAME_MISSING,
+ XML_RNGP_ELEM_CONTENT_EMPTY,
+ XML_RNGP_ELEM_CONTENT_ERROR,
+ XML_RNGP_ELEMENT_EMPTY,
+ XML_RNGP_ELEMENT_CONTENT,
+ XML_RNGP_ELEMENT_NAME,
+ XML_RNGP_ELEMENT_NO_CONTENT,
+ XML_RNGP_ELEM_TEXT_CONFLICT,
+ XML_RNGP_EMPTY,
+ XML_RNGP_EMPTY_CONSTRUCT,
+ XML_RNGP_EMPTY_CONTENT,
+ XML_RNGP_EMPTY_NOT_EMPTY,
+ XML_RNGP_ERROR_TYPE_LIB,
+ XML_RNGP_EXCEPT_EMPTY,
+ XML_RNGP_EXCEPT_MISSING,
+ XML_RNGP_EXCEPT_MULTIPLE,
+ XML_RNGP_EXCEPT_NO_CONTENT,
+ XML_RNGP_EXTERNALREF_EMTPY,
+ XML_RNGP_EXTERNAL_REF_FAILURE,
+ XML_RNGP_EXTERNALREF_RECURSE,
+ XML_RNGP_FORBIDDEN_ATTRIBUTE,
+ XML_RNGP_FOREIGN_ELEMENT,
+ XML_RNGP_GRAMMAR_CONTENT,
+ XML_RNGP_GRAMMAR_EMPTY,
+ XML_RNGP_GRAMMAR_MISSING,
+ XML_RNGP_GRAMMAR_NO_START,
+ XML_RNGP_GROUP_ATTR_CONFLICT,
+ XML_RNGP_HREF_ERROR,
+ XML_RNGP_INCLUDE_EMPTY,
+ XML_RNGP_INCLUDE_FAILURE,
+ XML_RNGP_INCLUDE_RECURSE,
+ XML_RNGP_INTERLEAVE_ADD,
+ XML_RNGP_INTERLEAVE_CREATE_FAILED,
+ XML_RNGP_INTERLEAVE_EMPTY,
+ XML_RNGP_INTERLEAVE_NO_CONTENT,
+ XML_RNGP_INVALID_DEFINE_NAME,
+ XML_RNGP_INVALID_URI,
+ XML_RNGP_INVALID_VALUE,
+ XML_RNGP_MISSING_HREF,
+ XML_RNGP_NAME_MISSING,
+ XML_RNGP_NEED_COMBINE,
+ XML_RNGP_NOTALLOWED_NOT_EMPTY,
+ XML_RNGP_NSNAME_ATTR_ANCESTOR,
+ XML_RNGP_NSNAME_NO_NS,
+ XML_RNGP_PARAM_FORBIDDEN,
+ XML_RNGP_PARAM_NAME_MISSING,
+ XML_RNGP_PARENTREF_CREATE_FAILED,
+ XML_RNGP_PARENTREF_NAME_INVALID,
+ XML_RNGP_PARENTREF_NO_NAME,
+ XML_RNGP_PARENTREF_NO_PARENT,
+ XML_RNGP_PARENTREF_NOT_EMPTY,
+ XML_RNGP_PARSE_ERROR,
+ XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME,
+ XML_RNGP_PAT_ATTR_ATTR,
+ XML_RNGP_PAT_ATTR_ELEM,
+ XML_RNGP_PAT_DATA_EXCEPT_ATTR,
+ XML_RNGP_PAT_DATA_EXCEPT_ELEM,
+ XML_RNGP_PAT_DATA_EXCEPT_EMPTY,
+ XML_RNGP_PAT_DATA_EXCEPT_GROUP,
+ XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE,
+ XML_RNGP_PAT_DATA_EXCEPT_LIST,
+ XML_RNGP_PAT_DATA_EXCEPT_ONEMORE,
+ XML_RNGP_PAT_DATA_EXCEPT_REF,
+ XML_RNGP_PAT_DATA_EXCEPT_TEXT,
+ XML_RNGP_PAT_LIST_ATTR,
+ XML_RNGP_PAT_LIST_ELEM,
+ XML_RNGP_PAT_LIST_INTERLEAVE,
+ XML_RNGP_PAT_LIST_LIST,
+ XML_RNGP_PAT_LIST_REF,
+ XML_RNGP_PAT_LIST_TEXT,
+ XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME,
+ XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME,
+ XML_RNGP_PAT_ONEMORE_GROUP_ATTR,
+ XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR,
+ XML_RNGP_PAT_START_ATTR,
+ XML_RNGP_PAT_START_DATA,
+ XML_RNGP_PAT_START_EMPTY,
+ XML_RNGP_PAT_START_GROUP,
+ XML_RNGP_PAT_START_INTERLEAVE,
+ XML_RNGP_PAT_START_LIST,
+ XML_RNGP_PAT_START_ONEMORE,
+ XML_RNGP_PAT_START_TEXT,
+ XML_RNGP_PAT_START_VALUE,
+ XML_RNGP_PREFIX_UNDEFINED,
+ XML_RNGP_REF_CREATE_FAILED,
+ XML_RNGP_REF_CYCLE,
+ XML_RNGP_REF_NAME_INVALID,
+ XML_RNGP_REF_NO_DEF,
+ XML_RNGP_REF_NO_NAME,
+ XML_RNGP_REF_NOT_EMPTY,
+ XML_RNGP_START_CHOICE_AND_INTERLEAVE,
+ XML_RNGP_START_CONTENT,
+ XML_RNGP_START_EMPTY,
+ XML_RNGP_START_MISSING,
+ XML_RNGP_TEXT_EXPECTED,
+ XML_RNGP_TEXT_HAS_CHILD,
+ XML_RNGP_TYPE_MISSING,
+ XML_RNGP_TYPE_NOT_FOUND,
+ XML_RNGP_TYPE_VALUE,
+ XML_RNGP_UNKNOWN_ATTRIBUTE,
+ XML_RNGP_UNKNOWN_COMBINE,
+ XML_RNGP_UNKNOWN_CONSTRUCT,
+ XML_RNGP_UNKNOWN_TYPE_LIB,
+ XML_RNGP_URI_FRAGMENT,
+ XML_RNGP_URI_NOT_ABSOLUTE,
+ XML_RNGP_VALUE_EMPTY,
+ XML_RNGP_VALUE_NO_CONTENT,
+ XML_RNGP_XMLNS_NAME,
+ XML_RNGP_XML_NS,
+ XML_XPATH_EXPRESSION_OK = 1200,
+ XML_XPATH_NUMBER_ERROR,
+ XML_XPATH_UNFINISHED_LITERAL_ERROR,
+ XML_XPATH_START_LITERAL_ERROR,
+ XML_XPATH_VARIABLE_REF_ERROR,
+ XML_XPATH_UNDEF_VARIABLE_ERROR,
+ XML_XPATH_INVALID_PREDICATE_ERROR,
+ XML_XPATH_EXPR_ERROR,
+ XML_XPATH_UNCLOSED_ERROR,
+ XML_XPATH_UNKNOWN_FUNC_ERROR,
+ XML_XPATH_INVALID_OPERAND,
+ XML_XPATH_INVALID_TYPE,
+ XML_XPATH_INVALID_ARITY,
+ XML_XPATH_INVALID_CTXT_SIZE,
+ XML_XPATH_INVALID_CTXT_POSITION,
+ XML_XPATH_MEMORY_ERROR,
+ XML_XPTR_SYNTAX_ERROR,
+ XML_XPTR_RESOURCE_ERROR,
+ XML_XPTR_SUB_RESOURCE_ERROR,
+ XML_XPATH_UNDEF_PREFIX_ERROR,
+ XML_XPATH_ENCODING_ERROR,
+ XML_XPATH_INVALID_CHAR_ERROR,
+ XML_TREE_INVALID_HEX = 1300,
+ XML_TREE_INVALID_DEC,
+ XML_TREE_UNTERMINATED_ENTITY,
+ XML_TREE_NOT_UTF8,
+ XML_SAVE_NOT_UTF8 = 1400,
+ XML_SAVE_CHAR_INVALID,
+ XML_SAVE_NO_DOCTYPE,
+ XML_SAVE_UNKNOWN_ENCODING,
+ XML_REGEXP_COMPILE_ERROR = 1450,
+ XML_IO_UNKNOWN = 1500,
+ XML_IO_EACCES,
+ XML_IO_EAGAIN,
+ XML_IO_EBADF,
+ XML_IO_EBADMSG,
+ XML_IO_EBUSY,
+ XML_IO_ECANCELED,
+ XML_IO_ECHILD,
+ XML_IO_EDEADLK,
+ XML_IO_EDOM,
+ XML_IO_EEXIST,
+ XML_IO_EFAULT,
+ XML_IO_EFBIG,
+ XML_IO_EINPROGRESS,
+ XML_IO_EINTR,
+ XML_IO_EINVAL,
+ XML_IO_EIO,
+ XML_IO_EISDIR,
+ XML_IO_EMFILE,
+ XML_IO_EMLINK,
+ XML_IO_EMSGSIZE,
+ XML_IO_ENAMETOOLONG,
+ XML_IO_ENFILE,
+ XML_IO_ENODEV,
+ XML_IO_ENOENT,
+ XML_IO_ENOEXEC,
+ XML_IO_ENOLCK,
+ XML_IO_ENOMEM,
+ XML_IO_ENOSPC,
+ XML_IO_ENOSYS,
+ XML_IO_ENOTDIR,
+ XML_IO_ENOTEMPTY,
+ XML_IO_ENOTSUP,
+ XML_IO_ENOTTY,
+ XML_IO_ENXIO,
+ XML_IO_EPERM,
+ XML_IO_EPIPE,
+ XML_IO_ERANGE,
+ XML_IO_EROFS,
+ XML_IO_ESPIPE,
+ XML_IO_ESRCH,
+ XML_IO_ETIMEDOUT,
+ XML_IO_EXDEV,
+ XML_IO_NETWORK_ATTEMPT,
+ XML_IO_ENCODER,
+ XML_IO_FLUSH,
+ XML_IO_WRITE,
+ XML_IO_NO_INPUT,
+ XML_IO_BUFFER_FULL,
+ XML_IO_LOAD_ERROR,
+ XML_IO_ENOTSOCK,
+ XML_IO_EISCONN,
+ XML_IO_ECONNREFUSED,
+ XML_IO_ENETUNREACH,
+ XML_IO_EADDRINUSE,
+ XML_IO_EALREADY,
+ XML_IO_EAFNOSUPPORT,
+ XML_XINCLUDE_RECURSION=1600,
+ XML_XINCLUDE_PARSE_VALUE,
+ XML_XINCLUDE_ENTITY_DEF_MISMATCH,
+ XML_XINCLUDE_NO_HREF,
+ XML_XINCLUDE_NO_FALLBACK,
+ XML_XINCLUDE_HREF_URI,
+ XML_XINCLUDE_TEXT_FRAGMENT,
+ XML_XINCLUDE_TEXT_DOCUMENT,
+ XML_XINCLUDE_INVALID_CHAR,
+ XML_XINCLUDE_BUILD_FAILED,
+ XML_XINCLUDE_UNKNOWN_ENCODING,
+ XML_XINCLUDE_MULTIPLE_ROOT,
+ XML_XINCLUDE_XPTR_FAILED,
+ XML_XINCLUDE_XPTR_RESULT,
+ XML_XINCLUDE_INCLUDE_IN_INCLUDE,
+ XML_XINCLUDE_FALLBACKS_IN_INCLUDE,
+ XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE,
+ XML_XINCLUDE_DEPRECATED_NS,
+ XML_XINCLUDE_FRAGMENT_ID,
+ XML_CATALOG_MISSING_ATTR = 1650,
+ XML_CATALOG_ENTRY_BROKEN,
+ XML_CATALOG_PREFER_VALUE,
+ XML_CATALOG_NOT_CATALOG,
+ XML_CATALOG_RECURSION,
+ XML_SCHEMAP_PREFIX_UNDEFINED = 1700,
+ XML_SCHEMAP_ATTRFORMDEFAULT_VALUE,
+ XML_SCHEMAP_ATTRGRP_NONAME_NOREF,
+ XML_SCHEMAP_ATTR_NONAME_NOREF,
+ XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF,
+ XML_SCHEMAP_ELEMFORMDEFAULT_VALUE,
+ XML_SCHEMAP_ELEM_NONAME_NOREF,
+ XML_SCHEMAP_EXTENSION_NO_BASE,
+ XML_SCHEMAP_FACET_NO_VALUE,
+ XML_SCHEMAP_FAILED_BUILD_IMPORT,
+ XML_SCHEMAP_GROUP_NONAME_NOREF,
+ XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI,
+ XML_SCHEMAP_IMPORT_REDEFINE_NSNAME,
+ XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI,
+ XML_SCHEMAP_INVALID_BOOLEAN,
+ XML_SCHEMAP_INVALID_ENUM,
+ XML_SCHEMAP_INVALID_FACET,
+ XML_SCHEMAP_INVALID_FACET_VALUE,
+ XML_SCHEMAP_INVALID_MAXOCCURS,
+ XML_SCHEMAP_INVALID_MINOCCURS,
+ XML_SCHEMAP_INVALID_REF_AND_SUBTYPE,
+ XML_SCHEMAP_INVALID_WHITE_SPACE,
+ XML_SCHEMAP_NOATTR_NOREF,
+ XML_SCHEMAP_NOTATION_NO_NAME,
+ XML_SCHEMAP_NOTYPE_NOREF,
+ XML_SCHEMAP_REF_AND_SUBTYPE,
+ XML_SCHEMAP_RESTRICTION_NONAME_NOREF,
+ XML_SCHEMAP_SIMPLETYPE_NONAME,
+ XML_SCHEMAP_TYPE_AND_SUBTYPE,
+ XML_SCHEMAP_UNKNOWN_ALL_CHILD,
+ XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD,
+ XML_SCHEMAP_UNKNOWN_ATTR_CHILD,
+ XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD,
+ XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP,
+ XML_SCHEMAP_UNKNOWN_BASE_TYPE,
+ XML_SCHEMAP_UNKNOWN_CHOICE_CHILD,
+ XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD,
+ XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD,
+ XML_SCHEMAP_UNKNOWN_ELEM_CHILD,
+ XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD,
+ XML_SCHEMAP_UNKNOWN_FACET_CHILD,
+ XML_SCHEMAP_UNKNOWN_FACET_TYPE,
+ XML_SCHEMAP_UNKNOWN_GROUP_CHILD,
+ XML_SCHEMAP_UNKNOWN_IMPORT_CHILD,
+ XML_SCHEMAP_UNKNOWN_LIST_CHILD,
+ XML_SCHEMAP_UNKNOWN_NOTATION_CHILD,
+ XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD,
+ XML_SCHEMAP_UNKNOWN_REF,
+ XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD,
+ XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD,
+ XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD,
+ XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD,
+ XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD,
+ XML_SCHEMAP_UNKNOWN_TYPE,
+ XML_SCHEMAP_UNKNOWN_UNION_CHILD,
+ XML_SCHEMAP_ELEM_DEFAULT_FIXED,
+ XML_SCHEMAP_REGEXP_INVALID,
+ XML_SCHEMAP_FAILED_LOAD,
+ XML_SCHEMAP_NOTHING_TO_PARSE,
+ XML_SCHEMAP_NOROOT,
+ XML_SCHEMAP_REDEFINED_GROUP,
+ XML_SCHEMAP_REDEFINED_TYPE,
+ XML_SCHEMAP_REDEFINED_ELEMENT,
+ XML_SCHEMAP_REDEFINED_ATTRGROUP,
+ XML_SCHEMAP_REDEFINED_ATTR,
+ XML_SCHEMAP_REDEFINED_NOTATION,
+ XML_SCHEMAP_FAILED_PARSE,
+ XML_SCHEMAP_UNKNOWN_PREFIX,
+ XML_SCHEMAP_DEF_AND_PREFIX,
+ XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD,
+ XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI,
+ XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI,
+ XML_SCHEMAP_NOT_SCHEMA,
+ XML_SCHEMAP_UNKNOWN_MEMBER_TYPE,
+ XML_SCHEMAP_INVALID_ATTR_USE,
+ XML_SCHEMAP_RECURSIVE,
+ XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE,
+ XML_SCHEMAP_INVALID_ATTR_COMBINATION,
+ XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION,
+ XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD,
+ XML_SCHEMAP_INVALID_ATTR_NAME,
+ XML_SCHEMAP_REF_AND_CONTENT,
+ XML_SCHEMAP_CT_PROPS_CORRECT_1,
+ XML_SCHEMAP_CT_PROPS_CORRECT_2,
+ XML_SCHEMAP_CT_PROPS_CORRECT_3,
+ XML_SCHEMAP_CT_PROPS_CORRECT_4,
+ XML_SCHEMAP_CT_PROPS_CORRECT_5,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3,
+ XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER,
+ XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE,
+ XML_SCHEMAP_UNION_NOT_EXPRESSIBLE,
+ XML_SCHEMAP_SRC_IMPORT_3_1,
+ XML_SCHEMAP_SRC_IMPORT_3_2,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_3,
+ XML_SCHEMAV_NOROOT = 1801,
+ XML_SCHEMAV_UNDECLAREDELEM,
+ XML_SCHEMAV_NOTTOPLEVEL,
+ XML_SCHEMAV_MISSING,
+ XML_SCHEMAV_WRONGELEM,
+ XML_SCHEMAV_NOTYPE,
+ XML_SCHEMAV_NOROLLBACK,
+ XML_SCHEMAV_ISABSTRACT,
+ XML_SCHEMAV_NOTEMPTY,
+ XML_SCHEMAV_ELEMCONT,
+ XML_SCHEMAV_HAVEDEFAULT,
+ XML_SCHEMAV_NOTNILLABLE,
+ XML_SCHEMAV_EXTRACONTENT,
+ XML_SCHEMAV_INVALIDATTR,
+ XML_SCHEMAV_INVALIDELEM,
+ XML_SCHEMAV_NOTDETERMINIST,
+ XML_SCHEMAV_CONSTRUCT,
+ XML_SCHEMAV_INTERNAL,
+ XML_SCHEMAV_NOTSIMPLE,
+ XML_SCHEMAV_ATTRUNKNOWN,
+ XML_SCHEMAV_ATTRINVALID,
+ XML_SCHEMAV_VALUE,
+ XML_SCHEMAV_FACET,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2,
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3,
+ XML_SCHEMAV_CVC_TYPE_3_1_1,
+ XML_SCHEMAV_CVC_TYPE_3_1_2,
+ XML_SCHEMAV_CVC_FACET_VALID,
+ XML_SCHEMAV_CVC_LENGTH_VALID,
+ XML_SCHEMAV_CVC_MINLENGTH_VALID,
+ XML_SCHEMAV_CVC_MAXLENGTH_VALID,
+ XML_SCHEMAV_CVC_MININCLUSIVE_VALID,
+ XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID,
+ XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID,
+ XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID,
+ XML_SCHEMAV_CVC_TOTALDIGITS_VALID,
+ XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID,
+ XML_SCHEMAV_CVC_PATTERN_VALID,
+ XML_SCHEMAV_CVC_ENUMERATION_VALID,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4,
+ XML_SCHEMAV_CVC_ELT_1,
+ XML_SCHEMAV_CVC_ELT_2,
+ XML_SCHEMAV_CVC_ELT_3_1,
+ XML_SCHEMAV_CVC_ELT_3_2_1,
+ XML_SCHEMAV_CVC_ELT_3_2_2,
+ XML_SCHEMAV_CVC_ELT_4_1,
+ XML_SCHEMAV_CVC_ELT_4_2,
+ XML_SCHEMAV_CVC_ELT_4_3,
+ XML_SCHEMAV_CVC_ELT_5_1_1,
+ XML_SCHEMAV_CVC_ELT_5_1_2,
+ XML_SCHEMAV_CVC_ELT_5_2_1,
+ XML_SCHEMAV_CVC_ELT_5_2_2_1,
+ XML_SCHEMAV_CVC_ELT_5_2_2_2_1,
+ XML_SCHEMAV_CVC_ELT_5_2_2_2_2,
+ XML_SCHEMAV_CVC_ELT_6,
+ XML_SCHEMAV_CVC_ELT_7,
+ XML_SCHEMAV_CVC_ATTRIBUTE_1,
+ XML_SCHEMAV_CVC_ATTRIBUTE_2,
+ XML_SCHEMAV_CVC_ATTRIBUTE_3,
+ XML_SCHEMAV_CVC_ATTRIBUTE_4,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_4,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2,
+ XML_SCHEMAV_ELEMENT_CONTENT,
+ XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING,
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_1,
+ XML_SCHEMAV_CVC_AU,
+ XML_SCHEMAV_CVC_TYPE_1,
+ XML_SCHEMAV_CVC_TYPE_2,
+ XML_SCHEMAV_CVC_IDC,
+ XML_SCHEMAV_CVC_WILDCARD,
+ XML_SCHEMAV_MISC,
+ XML_XPTR_UNKNOWN_SCHEME = 1900,
+ XML_XPTR_CHILDSEQ_START,
+ XML_XPTR_EVAL_FAILED,
+ XML_XPTR_EXTRA_OBJECTS,
+ XML_C14N_CREATE_CTXT = 1950,
+ XML_C14N_REQUIRES_UTF8,
+ XML_C14N_CREATE_STACK,
+ XML_C14N_INVALID_NODE,
+ XML_C14N_UNKNOW_NODE,
+ XML_C14N_RELATIVE_NAMESPACE,
+ XML_FTP_PASV_ANSWER = 2000,
+ XML_FTP_EPSV_ANSWER,
+ XML_FTP_ACCNT,
+ XML_FTP_URL_SYNTAX,
+ XML_HTTP_URL_SYNTAX = 2020,
+ XML_HTTP_USE_IP,
+ XML_HTTP_UNKNOWN_HOST,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_2,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_3,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_4,
+ XML_SCHEMAP_SRC_RESOLVE,
+ XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE,
+ XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE,
+ XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES,
+ XML_SCHEMAP_ST_PROPS_CORRECT_1,
+ XML_SCHEMAP_ST_PROPS_CORRECT_2,
+ XML_SCHEMAP_ST_PROPS_CORRECT_3,
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_2,
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4,
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4,
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5,
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_1,
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_2,
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED,
+ XML_SCHEMAP_S4S_ELEM_MISSING,
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED,
+ XML_SCHEMAP_S4S_ATTR_MISSING,
+ XML_SCHEMAP_S4S_ATTR_INVALID_VALUE,
+ XML_SCHEMAP_SRC_ELEMENT_1,
+ XML_SCHEMAP_SRC_ELEMENT_2_1,
+ XML_SCHEMAP_SRC_ELEMENT_2_2,
+ XML_SCHEMAP_SRC_ELEMENT_3,
+ XML_SCHEMAP_P_PROPS_CORRECT_1,
+ XML_SCHEMAP_P_PROPS_CORRECT_2_1,
+ XML_SCHEMAP_P_PROPS_CORRECT_2_2,
+ XML_SCHEMAP_E_PROPS_CORRECT_2,
+ XML_SCHEMAP_E_PROPS_CORRECT_3,
+ XML_SCHEMAP_E_PROPS_CORRECT_4,
+ XML_SCHEMAP_E_PROPS_CORRECT_5,
+ XML_SCHEMAP_E_PROPS_CORRECT_6,
+ XML_SCHEMAP_SRC_INCLUDE,
+ XML_SCHEMAP_SRC_ATTRIBUTE_1,
+ XML_SCHEMAP_SRC_ATTRIBUTE_2,
+ XML_SCHEMAP_SRC_ATTRIBUTE_3_1,
+ XML_SCHEMAP_SRC_ATTRIBUTE_3_2,
+ XML_SCHEMAP_SRC_ATTRIBUTE_4,
+ XML_SCHEMAP_NO_XMLNS,
+ XML_SCHEMAP_NO_XSI,
+ XML_SCHEMAP_COS_VALID_DEFAULT_1,
+ XML_SCHEMAP_COS_VALID_DEFAULT_2_1,
+ XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1,
+ XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2,
+ XML_SCHEMAP_CVC_SIMPLE_TYPE,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1,
+ XML_SCHEMAP_SRC_IMPORT_1_1,
+ XML_SCHEMAP_SRC_IMPORT_1_2,
+ XML_SCHEMAP_SRC_IMPORT_2,
+ XML_SCHEMAP_SRC_IMPORT_2_1,
+ XML_SCHEMAP_SRC_IMPORT_2_2,
+ XML_SCHEMAP_INTERNAL,
+ XML_SCHEMAP_NOT_DETERMINISTIC,
+ XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1,
+ XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2,
+ XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3,
+ XML_SCHEMAP_MG_PROPS_CORRECT_1,
+ XML_SCHEMAP_MG_PROPS_CORRECT_2,
+ XML_SCHEMAP_SRC_CT_1,
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3,
+ XML_SCHEMAP_AU_PROPS_CORRECT_2,
+ XML_SCHEMAP_A_PROPS_CORRECT_2,
+ XML_SCHEMAP_C_PROPS_CORRECT,
+ XML_SCHEMAP_SRC_REDEFINE,
+ XML_SCHEMAP_SRC_IMPORT,
+ XML_SCHEMAP_WARN_SKIP_SCHEMA,
+ XML_SCHEMAP_WARN_UNLOCATED_SCHEMA,
+ XML_SCHEMAP_WARN_ATTR_REDECL_PROH,
+ XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH,
+ XML_SCHEMAP_AG_PROPS_CORRECT,
+ XML_SCHEMAP_COS_CT_EXTENDS_1_2,
+ XML_SCHEMAP_AU_PROPS_CORRECT,
+ XML_SCHEMAP_A_PROPS_CORRECT_3,
+ XML_SCHEMAP_COS_ALL_LIMITED,
+ XML_SCHEMATRONV_ASSERT = 4000,
+ XML_SCHEMATRONV_REPORT,
+ XML_MODULE_OPEN = 4900,
+ XML_MODULE_CLOSE,
+ XML_CHECK_FOUND_ELEMENT = 5000,
+ XML_CHECK_FOUND_ATTRIBUTE,
+ XML_CHECK_FOUND_TEXT,
+ XML_CHECK_FOUND_CDATA,
+ XML_CHECK_FOUND_ENTITYREF,
+ XML_CHECK_FOUND_ENTITY,
+ XML_CHECK_FOUND_PI,
+ XML_CHECK_FOUND_COMMENT,
+ XML_CHECK_FOUND_DOCTYPE,
+ XML_CHECK_FOUND_FRAGMENT,
+ XML_CHECK_FOUND_NOTATION,
+ XML_CHECK_UNKNOWN_NODE,
+ XML_CHECK_ENTITY_TYPE,
+ XML_CHECK_NO_PARENT,
+ XML_CHECK_NO_DOC,
+ XML_CHECK_NO_NAME,
+ XML_CHECK_NO_ELEM,
+ XML_CHECK_WRONG_DOC,
+ XML_CHECK_NO_PREV,
+ XML_CHECK_WRONG_PREV,
+ XML_CHECK_NO_NEXT,
+ XML_CHECK_WRONG_NEXT,
+ XML_CHECK_NOT_DTD,
+ XML_CHECK_NOT_ATTR,
+ XML_CHECK_NOT_ATTR_DECL,
+ XML_CHECK_NOT_ELEM_DECL,
+ XML_CHECK_NOT_ENTITY_DECL,
+ XML_CHECK_NOT_NS_DECL,
+ XML_CHECK_NO_HREF,
+ XML_CHECK_WRONG_PARENT,
+ XML_CHECK_NS_SCOPE,
+ XML_CHECK_NS_ANCESTOR,
+ XML_CHECK_NOT_UTF8,
+ XML_CHECK_NO_DICT,
+ XML_CHECK_NOT_NCNAME,
+ XML_CHECK_OUTSIDE_DICT,
+ XML_CHECK_WRONG_NAME,
+ XML_CHECK_NAME_NOT_NULL,
+ XML_I18N_NO_NAME = 6000,
+ XML_I18N_NO_HANDLER,
+ XML_I18N_EXCESS_HANDLER,
+ XML_I18N_CONV_FAILED,
+ XML_I18N_NO_OUTPUT
+} xmlParserErrors;
+typedef void ( *xmlGenericErrorFunc) (void *ctx,
+ const char *msg,
+ ...) __attribute__((__format__(__printf__,2,3)));
+typedef void ( *xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
+ void
+ xmlSetGenericErrorFunc (void *ctx,
+ xmlGenericErrorFunc handler);
+ void
+ initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler);
+ void
+ xmlSetStructuredErrorFunc (void *ctx,
+ xmlStructuredErrorFunc handler);
+ void
+ xmlParserError (void *ctx,
+ const char *msg,
+ ...) __attribute__((__format__(__printf__,2,3)));
+ void
+ xmlParserWarning (void *ctx,
+ const char *msg,
+ ...) __attribute__((__format__(__printf__,2,3)));
+ void
+ xmlParserValidityError (void *ctx,
+ const char *msg,
+ ...) __attribute__((__format__(__printf__,2,3)));
+ void
+ xmlParserValidityWarning (void *ctx,
+ const char *msg,
+ ...) __attribute__((__format__(__printf__,2,3)));
+ void
+ xmlParserPrintFileInfo (xmlParserInputPtr input);
+ void
+ xmlParserPrintFileContext (xmlParserInputPtr input);
+ xmlErrorPtr
+ xmlGetLastError (void);
+ void
+ xmlResetLastError (void);
+ xmlErrorPtr
+ xmlCtxtGetLastError (void *ctx);
+ void
+ xmlCtxtResetLastError (void *ctx);
+ void
+ xmlResetError (xmlErrorPtr err);
+ int
+ xmlCopyError (xmlErrorPtr from,
+ xmlErrorPtr to);
+typedef struct _xmlLink xmlLink;
+typedef xmlLink *xmlLinkPtr;
+typedef struct _xmlList xmlList;
+typedef xmlList *xmlListPtr;
+typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
+typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
+typedef int (*xmlListWalker) (const void *data, const void *user);
+ xmlListPtr
+ xmlListCreate (xmlListDeallocator deallocator,
+ xmlListDataCompare compare);
+ void
+ xmlListDelete (xmlListPtr l);
+ void *
+ xmlListSearch (xmlListPtr l,
+ void *data);
+ void *
+ xmlListReverseSearch (xmlListPtr l,
+ void *data);
+ int
+ xmlListInsert (xmlListPtr l,
+ void *data) ;
+ int
+ xmlListAppend (xmlListPtr l,
+ void *data) ;
+ int
+ xmlListRemoveFirst (xmlListPtr l,
+ void *data);
+ int
+ xmlListRemoveLast (xmlListPtr l,
+ void *data);
+ int
+ xmlListRemoveAll (xmlListPtr l,
+ void *data);
+ void
+ xmlListClear (xmlListPtr l);
+ int
+ xmlListEmpty (xmlListPtr l);
+ xmlLinkPtr
+ xmlListFront (xmlListPtr l);
+ xmlLinkPtr
+ xmlListEnd (xmlListPtr l);
+ int
+ xmlListSize (xmlListPtr l);
+ void
+ xmlListPopFront (xmlListPtr l);
+ void
+ xmlListPopBack (xmlListPtr l);
+ int
+ xmlListPushFront (xmlListPtr l,
+ void *data);
+ int
+ xmlListPushBack (xmlListPtr l,
+ void *data);
+ void
+ xmlListReverse (xmlListPtr l);
+ void
+ xmlListSort (xmlListPtr l);
+ void
+ xmlListWalk (xmlListPtr l,
+ xmlListWalker walker,
+ const void *user);
+ void
+ xmlListReverseWalk (xmlListPtr l,
+ xmlListWalker walker,
+ const void *user);
+ void
+ xmlListMerge (xmlListPtr l1,
+ xmlListPtr l2);
+ xmlListPtr
+ xmlListDup (const xmlListPtr old);
+ int
+ xmlListCopy (xmlListPtr cur,
+ const xmlListPtr old);
+ void *
+ xmlLinkGetData (xmlLinkPtr lk);
+typedef struct _xmlAutomata xmlAutomata;
+typedef xmlAutomata *xmlAutomataPtr;
+typedef struct _xmlAutomataState xmlAutomataState;
+typedef xmlAutomataState *xmlAutomataStatePtr;
+ xmlAutomataPtr
+ xmlNewAutomata (void);
+ void
+ xmlFreeAutomata (xmlAutomataPtr am);
+ xmlAutomataStatePtr
+ xmlAutomataGetInitState (xmlAutomataPtr am);
+ int
+ xmlAutomataSetFinalState (xmlAutomataPtr am,
+ xmlAutomataStatePtr state);
+ xmlAutomataStatePtr
+ xmlAutomataNewState (xmlAutomataPtr am);
+ xmlAutomataStatePtr
+ xmlAutomataNewTransition (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ void *data);
+ xmlAutomataStatePtr
+ xmlAutomataNewTransition2 (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ void *data);
+ xmlAutomataStatePtr
+ xmlAutomataNewNegTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ void *data);
+ xmlAutomataStatePtr
+ xmlAutomataNewCountTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ int min,
+ int max,
+ void *data);
+ xmlAutomataStatePtr
+ xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ int min,
+ int max,
+ void *data);
+ xmlAutomataStatePtr
+ xmlAutomataNewOnceTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ int min,
+ int max,
+ void *data);
+ xmlAutomataStatePtr
+ xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ int min,
+ int max,
+ void *data);
+ xmlAutomataStatePtr
+ xmlAutomataNewAllTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ int lax);
+ xmlAutomataStatePtr
+ xmlAutomataNewEpsilon (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to);
+ xmlAutomataStatePtr
+ xmlAutomataNewCountedTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ int counter);
+ xmlAutomataStatePtr
+ xmlAutomataNewCounterTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ int counter);
+ int
+ xmlAutomataNewCounter (xmlAutomataPtr am,
+ int min,
+ int max);
+ xmlRegexpPtr
+ xmlAutomataCompile (xmlAutomataPtr am);
+ int
+ xmlAutomataIsDeterminist (xmlAutomataPtr am);
+typedef struct _xmlValidState xmlValidState;
+typedef xmlValidState *xmlValidStatePtr;
+typedef void ( *xmlValidityErrorFunc) (void *ctx,
+ const char *msg,
+ ...) __attribute__((__format__(__printf__,2,3)));
+typedef void ( *xmlValidityWarningFunc) (void *ctx,
+ const char *msg,
+ ...) __attribute__((__format__(__printf__,2,3)));
+typedef struct _xmlValidCtxt xmlValidCtxt;
+typedef xmlValidCtxt *xmlValidCtxtPtr;
+struct _xmlValidCtxt {
+ void *userData;
+ xmlValidityErrorFunc error;
+ xmlValidityWarningFunc warning;
+ xmlNodePtr node;
+ int nodeNr;
+ int nodeMax;
+ xmlNodePtr *nodeTab;
+ unsigned int finishDtd;
+ xmlDocPtr doc;
+ int valid;
+ xmlValidState *vstate;
+ int vstateNr;
+ int vstateMax;
+ xmlValidState *vstateTab;
+ xmlAutomataPtr am;
+ xmlAutomataStatePtr state;
+};
+typedef struct _xmlHashTable xmlNotationTable;
+typedef xmlNotationTable *xmlNotationTablePtr;
+typedef struct _xmlHashTable xmlElementTable;
+typedef xmlElementTable *xmlElementTablePtr;
+typedef struct _xmlHashTable xmlAttributeTable;
+typedef xmlAttributeTable *xmlAttributeTablePtr;
+typedef struct _xmlHashTable xmlIDTable;
+typedef xmlIDTable *xmlIDTablePtr;
+typedef struct _xmlHashTable xmlRefTable;
+typedef xmlRefTable *xmlRefTablePtr;
+ xmlNotationPtr
+ xmlAddNotationDecl (xmlValidCtxtPtr ctxt,
+ xmlDtdPtr dtd,
+ const xmlChar *name,
+ const xmlChar *PublicID,
+ const xmlChar *SystemID);
+ xmlNotationTablePtr
+ xmlCopyNotationTable (xmlNotationTablePtr table);
+ void
+ xmlFreeNotationTable (xmlNotationTablePtr table);
+ void
+ xmlDumpNotationDecl (xmlBufferPtr buf,
+ xmlNotationPtr nota);
+ void
+ xmlDumpNotationTable (xmlBufferPtr buf,
+ xmlNotationTablePtr table);
+ xmlElementContentPtr
+ xmlNewElementContent (const xmlChar *name,
+ xmlElementContentType type);
+ xmlElementContentPtr
+ xmlCopyElementContent (xmlElementContentPtr content);
+ void
+ xmlFreeElementContent (xmlElementContentPtr cur);
+ xmlElementContentPtr
+ xmlNewDocElementContent (xmlDocPtr doc,
+ const xmlChar *name,
+ xmlElementContentType type);
+ xmlElementContentPtr
+ xmlCopyDocElementContent(xmlDocPtr doc,
+ xmlElementContentPtr content);
+ void
+ xmlFreeDocElementContent(xmlDocPtr doc,
+ xmlElementContentPtr cur);
+ void
+ xmlSnprintfElementContent(char *buf,
+ int size,
+ xmlElementContentPtr content,
+ int englob);
+ void
+ xmlSprintfElementContent(char *buf,
+ xmlElementContentPtr content,
+ int englob);
+ xmlElementPtr
+ xmlAddElementDecl (xmlValidCtxtPtr ctxt,
+ xmlDtdPtr dtd,
+ const xmlChar *name,
+ xmlElementTypeVal type,
+ xmlElementContentPtr content);
+ xmlElementTablePtr
+ xmlCopyElementTable (xmlElementTablePtr table);
+ void
+ xmlFreeElementTable (xmlElementTablePtr table);
+ void
+ xmlDumpElementTable (xmlBufferPtr buf,
+ xmlElementTablePtr table);
+ void
+ xmlDumpElementDecl (xmlBufferPtr buf,
+ xmlElementPtr elem);
+ xmlEnumerationPtr
+ xmlCreateEnumeration (const xmlChar *name);
+ void
+ xmlFreeEnumeration (xmlEnumerationPtr cur);
+ xmlEnumerationPtr
+ xmlCopyEnumeration (xmlEnumerationPtr cur);
+ xmlAttributePtr
+ xmlAddAttributeDecl (xmlValidCtxtPtr ctxt,
+ xmlDtdPtr dtd,
+ const xmlChar *elem,
+ const xmlChar *name,
+ const xmlChar *ns,
+ xmlAttributeType type,
+ xmlAttributeDefault def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+ xmlAttributeTablePtr
+ xmlCopyAttributeTable (xmlAttributeTablePtr table);
+ void
+ xmlFreeAttributeTable (xmlAttributeTablePtr table);
+ void
+ xmlDumpAttributeTable (xmlBufferPtr buf,
+ xmlAttributeTablePtr table);
+ void
+ xmlDumpAttributeDecl (xmlBufferPtr buf,
+ xmlAttributePtr attr);
+ xmlIDPtr
+ xmlAddID (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ const xmlChar *value,
+ xmlAttrPtr attr);
+ void
+ xmlFreeIDTable (xmlIDTablePtr table);
+ xmlAttrPtr
+ xmlGetID (xmlDocPtr doc,
+ const xmlChar *ID);
+ int
+ xmlIsID (xmlDocPtr doc,
+ xmlNodePtr elem,
+ xmlAttrPtr attr);
+ int
+ xmlRemoveID (xmlDocPtr doc,
+ xmlAttrPtr attr);
+ xmlRefPtr
+ xmlAddRef (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ const xmlChar *value,
+ xmlAttrPtr attr);
+ void
+ xmlFreeRefTable (xmlRefTablePtr table);
+ int
+ xmlIsRef (xmlDocPtr doc,
+ xmlNodePtr elem,
+ xmlAttrPtr attr);
+ int
+ xmlRemoveRef (xmlDocPtr doc,
+ xmlAttrPtr attr);
+ xmlListPtr
+ xmlGetRefs (xmlDocPtr doc,
+ const xmlChar *ID);
+ xmlValidCtxtPtr
+ xmlNewValidCtxt(void);
+ void
+ xmlFreeValidCtxt(xmlValidCtxtPtr);
+ int
+ xmlValidateRoot (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+ int
+ xmlValidateElementDecl (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlElementPtr elem);
+ xmlChar *
+ xmlValidNormalizeAttributeValue(xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *name,
+ const xmlChar *value);
+ xmlChar *
+ xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *name,
+ const xmlChar *value);
+ int
+ xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlAttributePtr attr);
+ int
+ xmlValidateAttributeValue(xmlAttributeType type,
+ const xmlChar *value);
+ int
+ xmlValidateNotationDecl (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNotationPtr nota);
+ int
+ xmlValidateDtd (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlDtdPtr dtd);
+ int
+ xmlValidateDtdFinal (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+ int
+ xmlValidateDocument (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+ int
+ xmlValidateElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem);
+ int
+ xmlValidateOneElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem);
+ int
+ xmlValidateOneAttribute (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ xmlAttrPtr attr,
+ const xmlChar *value);
+ int
+ xmlValidateOneNamespace (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *prefix,
+ xmlNsPtr ns,
+ const xmlChar *value);
+ int
+ xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+ int
+ xmlValidateNotationUse (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ const xmlChar *notationName);
+ int
+ xmlIsMixedElement (xmlDocPtr doc,
+ const xmlChar *name);
+ xmlAttributePtr
+ xmlGetDtdAttrDesc (xmlDtdPtr dtd,
+ const xmlChar *elem,
+ const xmlChar *name);
+ xmlAttributePtr
+ xmlGetDtdQAttrDesc (xmlDtdPtr dtd,
+ const xmlChar *elem,
+ const xmlChar *name,
+ const xmlChar *prefix);
+ xmlNotationPtr
+ xmlGetDtdNotationDesc (xmlDtdPtr dtd,
+ const xmlChar *name);
+ xmlElementPtr
+ xmlGetDtdQElementDesc (xmlDtdPtr dtd,
+ const xmlChar *name,
+ const xmlChar *prefix);
+ xmlElementPtr
+ xmlGetDtdElementDesc (xmlDtdPtr dtd,
+ const xmlChar *name);
+ int
+ xmlValidGetPotentialChildren(xmlElementContent *ctree,
+ const xmlChar **names,
+ int *len,
+ int max);
+ int
+ xmlValidGetValidElements(xmlNode *prev,
+ xmlNode *next,
+ const xmlChar **names,
+ int max);
+ int
+ xmlValidateNameValue (const xmlChar *value);
+ int
+ xmlValidateNamesValue (const xmlChar *value);
+ int
+ xmlValidateNmtokenValue (const xmlChar *value);
+ int
+ xmlValidateNmtokensValue(const xmlChar *value);
+ int
+ xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
+ xmlElementPtr elem);
+ int
+ xmlValidatePushElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *qname);
+ int
+ xmlValidatePushCData (xmlValidCtxtPtr ctxt,
+ const xmlChar *data,
+ int len);
+ int
+ xmlValidatePopElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *qname);
+typedef enum {
+ XML_INTERNAL_GENERAL_ENTITY = 1,
+ XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
+ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
+ XML_INTERNAL_PARAMETER_ENTITY = 4,
+ XML_EXTERNAL_PARAMETER_ENTITY = 5,
+ XML_INTERNAL_PREDEFINED_ENTITY = 6
+} xmlEntityType;
+struct _xmlEntity {
+ void *_private;
+ xmlElementType type;
+ const xmlChar *name;
+ struct _xmlNode *children;
+ struct _xmlNode *last;
+ struct _xmlDtd *parent;
+ struct _xmlNode *next;
+ struct _xmlNode *prev;
+ struct _xmlDoc *doc;
+ xmlChar *orig;
+ xmlChar *content;
+ int length;
+ xmlEntityType etype;
+ const xmlChar *ExternalID;
+ const xmlChar *SystemID;
+ struct _xmlEntity *nexte;
+ const xmlChar *URI;
+ int owner;
+ int checked;
+};
+typedef struct _xmlHashTable xmlEntitiesTable;
+typedef xmlEntitiesTable *xmlEntitiesTablePtr;
+ void
+ xmlInitializePredefinedEntities (void);
+ xmlEntityPtr
+ xmlNewEntity (xmlDocPtr doc,
+ const xmlChar *name,
+ int type,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID,
+ const xmlChar *content);
+ xmlEntityPtr
+ xmlAddDocEntity (xmlDocPtr doc,
+ const xmlChar *name,
+ int type,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID,
+ const xmlChar *content);
+ xmlEntityPtr
+ xmlAddDtdEntity (xmlDocPtr doc,
+ const xmlChar *name,
+ int type,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID,
+ const xmlChar *content);
+ xmlEntityPtr
+ xmlGetPredefinedEntity (const xmlChar *name);
+ xmlEntityPtr
+ xmlGetDocEntity (xmlDocPtr doc,
+ const xmlChar *name);
+ xmlEntityPtr
+ xmlGetDtdEntity (xmlDocPtr doc,
+ const xmlChar *name);
+ xmlEntityPtr
+ xmlGetParameterEntity (xmlDocPtr doc,
+ const xmlChar *name);
+ const xmlChar *
+ xmlEncodeEntities (xmlDocPtr doc,
+ const xmlChar *input);
+ xmlChar *
+ xmlEncodeEntitiesReentrant(xmlDocPtr doc,
+ const xmlChar *input);
+ xmlChar *
+ xmlEncodeSpecialChars (xmlDocPtr doc,
+ const xmlChar *input);
+ xmlEntitiesTablePtr
+ xmlCreateEntitiesTable (void);
+ xmlEntitiesTablePtr
+ xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
+ void
+ xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
+ void
+ xmlDumpEntitiesTable (xmlBufferPtr buf,
+ xmlEntitiesTablePtr table);
+ void
+ xmlDumpEntityDecl (xmlBufferPtr buf,
+ xmlEntityPtr ent);
+ void
+ xmlCleanupPredefinedEntities(void);
+typedef void (* xmlParserInputDeallocate)(xmlChar *str);
+struct _xmlParserInput {
+ xmlParserInputBufferPtr buf;
+ const char *filename;
+ const char *directory;
+ const xmlChar *base;
+ const xmlChar *cur;
+ const xmlChar *end;
+ int length;
+ int line;
+ int col;
+ unsigned long consumed;
+ xmlParserInputDeallocate free;
+ const xmlChar *encoding;
+ const xmlChar *version;
+ int standalone;
+ int id;
+};
+typedef struct _xmlParserNodeInfo xmlParserNodeInfo;
+typedef xmlParserNodeInfo *xmlParserNodeInfoPtr;
+struct _xmlParserNodeInfo {
+ const struct _xmlNode* node;
+ unsigned long begin_pos;
+ unsigned long begin_line;
+ unsigned long end_pos;
+ unsigned long end_line;
+};
+typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq;
+typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;
+struct _xmlParserNodeInfoSeq {
+ unsigned long maximum;
+ unsigned long length;
+ xmlParserNodeInfo* buffer;
+};
+typedef enum {
+ XML_PARSER_EOF = -1,
+ XML_PARSER_START = 0,
+ XML_PARSER_MISC,
+ XML_PARSER_PI,
+ XML_PARSER_DTD,
+ XML_PARSER_PROLOG,
+ XML_PARSER_COMMENT,
+ XML_PARSER_START_TAG,
+ XML_PARSER_CONTENT,
+ XML_PARSER_CDATA_SECTION,
+ XML_PARSER_END_TAG,
+ XML_PARSER_ENTITY_DECL,
+ XML_PARSER_ENTITY_VALUE,
+ XML_PARSER_ATTRIBUTE_VALUE,
+ XML_PARSER_SYSTEM_LITERAL,
+ XML_PARSER_EPILOG,
+ XML_PARSER_IGNORE,
+ XML_PARSER_PUBLIC_LITERAL
+} xmlParserInputState;
+typedef enum {
+ XML_PARSE_UNKNOWN = 0,
+ XML_PARSE_DOM = 1,
+ XML_PARSE_SAX = 2,
+ XML_PARSE_PUSH_DOM = 3,
+ XML_PARSE_PUSH_SAX = 4,
+ XML_PARSE_READER = 5
+} xmlParserMode;
+struct _xmlParserCtxt {
+ struct _xmlSAXHandler *sax;
+ void *userData;
+ xmlDocPtr myDoc;
+ int wellFormed;
+ int replaceEntities;
+ const xmlChar *version;
+ const xmlChar *encoding;
+ int standalone;
+ int html;
+ xmlParserInputPtr input;
+ int inputNr;
+ int inputMax;
+ xmlParserInputPtr *inputTab;
+ xmlNodePtr node;
+ int nodeNr;
+ int nodeMax;
+ xmlNodePtr *nodeTab;
+ int record_info;
+ xmlParserNodeInfoSeq node_seq;
+ int errNo;
+ int hasExternalSubset;
+ int hasPErefs;
+ int external;
+ int valid;
+ int validate;
+ xmlValidCtxt vctxt;
+ xmlParserInputState instate;
+ int token;
+ char *directory;
+ const xmlChar *name;
+ int nameNr;
+ int nameMax;
+ const xmlChar * *nameTab;
+ long nbChars;
+ long checkIndex;
+ int keepBlanks;
+ int disableSAX;
+ int inSubset;
+ const xmlChar * intSubName;
+ xmlChar * extSubURI;
+ xmlChar * extSubSystem;
+ int * space;
+ int spaceNr;
+ int spaceMax;
+ int * spaceTab;
+ int depth;
+ xmlParserInputPtr entity;
+ int charset;
+ int nodelen;
+ int nodemem;
+ int pedantic;
+ void *_private;
+ int loadsubset;
+ int linenumbers;
+ void *catalogs;
+ int recovery;
+ int progressive;
+ xmlDictPtr dict;
+ const xmlChar * *atts;
+ int maxatts;
+ int docdict;
+ const xmlChar *str_xml;
+ const xmlChar *str_xmlns;
+ const xmlChar *str_xml_ns;
+ int sax2;
+ int nsNr;
+ int nsMax;
+ const xmlChar * *nsTab;
+ int *attallocs;
+ void * *pushTab;
+ xmlHashTablePtr attsDefault;
+ xmlHashTablePtr attsSpecial;
+ int nsWellFormed;
+ int options;
+ int dictNames;
+ int freeElemsNr;
+ xmlNodePtr freeElems;
+ int freeAttrsNr;
+ xmlAttrPtr freeAttrs;
+ xmlError lastError;
+ xmlParserMode parseMode;
+ unsigned long nbentities;
+ unsigned long sizeentities;
+};
+struct _xmlSAXLocator {
+ const xmlChar *(*getPublicId)(void *ctx);
+ const xmlChar *(*getSystemId)(void *ctx);
+ int (*getLineNumber)(void *ctx);
+ int (*getColumnNumber)(void *ctx);
+};
+typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+typedef void (*internalSubsetSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+typedef void (*externalSubsetSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
+ const xmlChar *name);
+typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx,
+ const xmlChar *name);
+typedef void (*entityDeclSAXFunc) (void *ctx,
+ const xmlChar *name,
+ int type,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ xmlChar *content);
+typedef void (*notationDeclSAXFunc)(void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+typedef void (*attributeDeclSAXFunc)(void *ctx,
+ const xmlChar *elem,
+ const xmlChar *fullname,
+ int type,
+ int def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+typedef void (*elementDeclSAXFunc)(void *ctx,
+ const xmlChar *name,
+ int type,
+ xmlElementContentPtr content);
+typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ const xmlChar *notationName);
+typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
+ xmlSAXLocatorPtr loc);
+typedef void (*startDocumentSAXFunc) (void *ctx);
+typedef void (*endDocumentSAXFunc) (void *ctx);
+typedef void (*startElementSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar **atts);
+typedef void (*endElementSAXFunc) (void *ctx,
+ const xmlChar *name);
+typedef void (*attributeSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar *value);
+typedef void (*referenceSAXFunc) (void *ctx,
+ const xmlChar *name);
+typedef void (*charactersSAXFunc) (void *ctx,
+ const xmlChar *ch,
+ int len);
+typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
+ const xmlChar *ch,
+ int len);
+typedef void (*processingInstructionSAXFunc) (void *ctx,
+ const xmlChar *target,
+ const xmlChar *data);
+typedef void (*commentSAXFunc) (void *ctx,
+ const xmlChar *value);
+typedef void (*cdataBlockSAXFunc) (
+ void *ctx,
+ const xmlChar *value,
+ int len);
+typedef void ( *warningSAXFunc) (void *ctx,
+ const char *msg, ...) __attribute__((__format__(__printf__,2,3)));
+typedef void ( *errorSAXFunc) (void *ctx,
+ const char *msg, ...) __attribute__((__format__(__printf__,2,3)));
+typedef void ( *fatalErrorSAXFunc) (void *ctx,
+ const char *msg, ...) __attribute__((__format__(__printf__,2,3)));
+typedef int (*isStandaloneSAXFunc) (void *ctx);
+typedef int (*hasInternalSubsetSAXFunc) (void *ctx);
+typedef int (*hasExternalSubsetSAXFunc) (void *ctx);
+typedef void (*startElementNsSAX2Func) (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI,
+ int nb_namespaces,
+ const xmlChar **namespaces,
+ int nb_attributes,
+ int nb_defaulted,
+ const xmlChar **attributes);
+typedef void (*endElementNsSAX2Func) (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI);
+struct _xmlSAXHandler {
+ internalSubsetSAXFunc internalSubset;
+ isStandaloneSAXFunc isStandalone;
+ hasInternalSubsetSAXFunc hasInternalSubset;
+ hasExternalSubsetSAXFunc hasExternalSubset;
+ resolveEntitySAXFunc resolveEntity;
+ getEntitySAXFunc getEntity;
+ entityDeclSAXFunc entityDecl;
+ notationDeclSAXFunc notationDecl;
+ attributeDeclSAXFunc attributeDecl;
+ elementDeclSAXFunc elementDecl;
+ unparsedEntityDeclSAXFunc unparsedEntityDecl;
+ setDocumentLocatorSAXFunc setDocumentLocator;
+ startDocumentSAXFunc startDocument;
+ endDocumentSAXFunc endDocument;
+ startElementSAXFunc startElement;
+ endElementSAXFunc endElement;
+ referenceSAXFunc reference;
+ charactersSAXFunc characters;
+ ignorableWhitespaceSAXFunc ignorableWhitespace;
+ processingInstructionSAXFunc processingInstruction;
+ commentSAXFunc comment;
+ warningSAXFunc warning;
+ errorSAXFunc error;
+ fatalErrorSAXFunc fatalError;
+ getParameterEntitySAXFunc getParameterEntity;
+ cdataBlockSAXFunc cdataBlock;
+ externalSubsetSAXFunc externalSubset;
+ unsigned int initialized;
+ void *_private;
+ startElementNsSAX2Func startElementNs;
+ endElementNsSAX2Func endElementNs;
+ xmlStructuredErrorFunc serror;
+};
+typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1;
+typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr;
+struct _xmlSAXHandlerV1 {
+ internalSubsetSAXFunc internalSubset;
+ isStandaloneSAXFunc isStandalone;
+ hasInternalSubsetSAXFunc hasInternalSubset;
+ hasExternalSubsetSAXFunc hasExternalSubset;
+ resolveEntitySAXFunc resolveEntity;
+ getEntitySAXFunc getEntity;
+ entityDeclSAXFunc entityDecl;
+ notationDeclSAXFunc notationDecl;
+ attributeDeclSAXFunc attributeDecl;
+ elementDeclSAXFunc elementDecl;
+ unparsedEntityDeclSAXFunc unparsedEntityDecl;
+ setDocumentLocatorSAXFunc setDocumentLocator;
+ startDocumentSAXFunc startDocument;
+ endDocumentSAXFunc endDocument;
+ startElementSAXFunc startElement;
+ endElementSAXFunc endElement;
+ referenceSAXFunc reference;
+ charactersSAXFunc characters;
+ ignorableWhitespaceSAXFunc ignorableWhitespace;
+ processingInstructionSAXFunc processingInstruction;
+ commentSAXFunc comment;
+ warningSAXFunc warning;
+ errorSAXFunc error;
+ fatalErrorSAXFunc fatalError;
+ getParameterEntitySAXFunc getParameterEntity;
+ cdataBlockSAXFunc cdataBlock;
+ externalSubsetSAXFunc externalSubset;
+ unsigned int initialized;
+};
+typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL,
+ const char *ID,
+ xmlParserCtxtPtr context);
+typedef void *iconv_t;
+extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
+extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
+ size_t *__restrict __inbytesleft,
+ char **__restrict __outbuf,
+ size_t *__restrict __outbytesleft);
+extern int iconv_close (iconv_t __cd);
+typedef enum {
+ XML_CHAR_ENCODING_ERROR= -1,
+ XML_CHAR_ENCODING_NONE= 0,
+ XML_CHAR_ENCODING_UTF8= 1,
+ XML_CHAR_ENCODING_UTF16LE= 2,
+ XML_CHAR_ENCODING_UTF16BE= 3,
+ XML_CHAR_ENCODING_UCS4LE= 4,
+ XML_CHAR_ENCODING_UCS4BE= 5,
+ XML_CHAR_ENCODING_EBCDIC= 6,
+ XML_CHAR_ENCODING_UCS4_2143=7,
+ XML_CHAR_ENCODING_UCS4_3412=8,
+ XML_CHAR_ENCODING_UCS2= 9,
+ XML_CHAR_ENCODING_8859_1= 10,
+ XML_CHAR_ENCODING_8859_2= 11,
+ XML_CHAR_ENCODING_8859_3= 12,
+ XML_CHAR_ENCODING_8859_4= 13,
+ XML_CHAR_ENCODING_8859_5= 14,
+ XML_CHAR_ENCODING_8859_6= 15,
+ XML_CHAR_ENCODING_8859_7= 16,
+ XML_CHAR_ENCODING_8859_8= 17,
+ XML_CHAR_ENCODING_8859_9= 18,
+ XML_CHAR_ENCODING_2022_JP= 19,
+ XML_CHAR_ENCODING_SHIFT_JIS=20,
+ XML_CHAR_ENCODING_EUC_JP= 21,
+ XML_CHAR_ENCODING_ASCII= 22
+} xmlCharEncoding;
+typedef int (* xmlCharEncodingInputFunc)(unsigned char *out, int *outlen,
+ const unsigned char *in, int *inlen);
+typedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen,
+ const unsigned char *in, int *inlen);
+typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
+typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
+struct _xmlCharEncodingHandler {
+ char *name;
+ xmlCharEncodingInputFunc input;
+ xmlCharEncodingOutputFunc output;
+ iconv_t iconv_in;
+ iconv_t iconv_out;
+};
+ void
+ xmlInitCharEncodingHandlers (void);
+ void
+ xmlCleanupCharEncodingHandlers (void);
+ void
+ xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler);
+ xmlCharEncodingHandlerPtr
+ xmlGetCharEncodingHandler (xmlCharEncoding enc);
+ xmlCharEncodingHandlerPtr
+ xmlFindCharEncodingHandler (const char *name);
+ xmlCharEncodingHandlerPtr
+ xmlNewCharEncodingHandler (const char *name,
+ xmlCharEncodingInputFunc input,
+ xmlCharEncodingOutputFunc output);
+ int
+ xmlAddEncodingAlias (const char *name,
+ const char *alias);
+ int
+ xmlDelEncodingAlias (const char *alias);
+ const char *
+ xmlGetEncodingAlias (const char *alias);
+ void
+ xmlCleanupEncodingAliases (void);
+ xmlCharEncoding
+ xmlParseCharEncoding (const char *name);
+ const char *
+ xmlGetCharEncodingName (xmlCharEncoding enc);
+ xmlCharEncoding
+ xmlDetectCharEncoding (const unsigned char *in,
+ int len);
+ int
+ xmlCharEncOutFunc (xmlCharEncodingHandler *handler,
+ xmlBufferPtr out,
+ xmlBufferPtr in);
+ int
+ xmlCharEncInFunc (xmlCharEncodingHandler *handler,
+ xmlBufferPtr out,
+ xmlBufferPtr in);
+ int
+ xmlCharEncFirstLine (xmlCharEncodingHandler *handler,
+ xmlBufferPtr out,
+ xmlBufferPtr in);
+ int
+ xmlCharEncCloseFunc (xmlCharEncodingHandler *handler);
+ int
+ UTF8Toisolat1 (unsigned char *out,
+ int *outlen,
+ const unsigned char *in,
+ int *inlen);
+ int
+ isolat1ToUTF8 (unsigned char *out,
+ int *outlen,
+ const unsigned char *in,
+ int *inlen);
+typedef int ( *xmlInputMatchCallback) (char const *filename);
+typedef void * ( *xmlInputOpenCallback) (char const *filename);
+typedef int ( *xmlInputReadCallback) (void * context, char * buffer, int len);
+typedef int ( *xmlInputCloseCallback) (void * context);
+typedef int ( *xmlOutputMatchCallback) (char const *filename);
+typedef void * ( *xmlOutputOpenCallback) (char const *filename);
+typedef int ( *xmlOutputWriteCallback) (void * context, const char * buffer,
+ int len);
+typedef int ( *xmlOutputCloseCallback) (void * context);
+typedef xmlChar *xlinkHRef;
+typedef xmlChar *xlinkRole;
+typedef xmlChar *xlinkTitle;
+typedef enum {
+ XLINK_TYPE_NONE = 0,
+ XLINK_TYPE_SIMPLE,
+ XLINK_TYPE_EXTENDED,
+ XLINK_TYPE_EXTENDED_SET
+} xlinkType;
+typedef enum {
+ XLINK_SHOW_NONE = 0,
+ XLINK_SHOW_NEW,
+ XLINK_SHOW_EMBED,
+ XLINK_SHOW_REPLACE
+} xlinkShow;
+typedef enum {
+ XLINK_ACTUATE_NONE = 0,
+ XLINK_ACTUATE_AUTO,
+ XLINK_ACTUATE_ONREQUEST
+} xlinkActuate;
+typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
+typedef void
+(*xlinkSimpleLinkFunk) (void *ctx,
+ xmlNodePtr node,
+ const xlinkHRef href,
+ const xlinkRole role,
+ const xlinkTitle title);
+typedef void
+(*xlinkExtendedLinkFunk)(void *ctx,
+ xmlNodePtr node,
+ int nbLocators,
+ const xlinkHRef *hrefs,
+ const xlinkRole *roles,
+ int nbArcs,
+ const xlinkRole *from,
+ const xlinkRole *to,
+ xlinkShow *show,
+ xlinkActuate *actuate,
+ int nbTitles,
+ const xlinkTitle *titles,
+ const xmlChar **langs);
+typedef void
+(*xlinkExtendedLinkSetFunk) (void *ctx,
+ xmlNodePtr node,
+ int nbLocators,
+ const xlinkHRef *hrefs,
+ const xlinkRole *roles,
+ int nbTitles,
+ const xlinkTitle *titles,
+ const xmlChar **langs);
+typedef struct _xlinkHandler xlinkHandler;
+typedef xlinkHandler *xlinkHandlerPtr;
+struct _xlinkHandler {
+ xlinkSimpleLinkFunk simple;
+ xlinkExtendedLinkFunk extended;
+ xlinkExtendedLinkSetFunk set;
+};
+ xlinkNodeDetectFunc
+ xlinkGetDefaultDetect (void);
+ void
+ xlinkSetDefaultDetect (xlinkNodeDetectFunc func);
+ xlinkHandlerPtr
+ xlinkGetDefaultHandler (void);
+ void
+ xlinkSetDefaultHandler (xlinkHandlerPtr handler);
+ xlinkType
+ xlinkIsLink (xmlDocPtr doc,
+ xmlNodePtr node);
+ const xmlChar *
+ getPublicId (void *ctx);
+ const xmlChar *
+ getSystemId (void *ctx);
+ void
+ setDocumentLocator (void *ctx,
+ xmlSAXLocatorPtr loc);
+ int
+ getLineNumber (void *ctx);
+ int
+ getColumnNumber (void *ctx);
+ int
+ isStandalone (void *ctx);
+ int
+ hasInternalSubset (void *ctx);
+ int
+ hasExternalSubset (void *ctx);
+ void
+ internalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ void
+ externalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ xmlEntityPtr
+ getEntity (void *ctx,
+ const xmlChar *name);
+ xmlEntityPtr
+ getParameterEntity (void *ctx,
+ const xmlChar *name);
+ xmlParserInputPtr
+ resolveEntity (void *ctx,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+ void
+ entityDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ xmlChar *content);
+ void
+ attributeDecl (void *ctx,
+ const xmlChar *elem,
+ const xmlChar *fullname,
+ int type,
+ int def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+ void
+ elementDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ xmlElementContentPtr content);
+ void
+ notationDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+ void
+ unparsedEntityDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ const xmlChar *notationName);
+ void
+ startDocument (void *ctx);
+ void
+ endDocument (void *ctx);
+ void
+ attribute (void *ctx,
+ const xmlChar *fullname,
+ const xmlChar *value);
+ void
+ startElement (void *ctx,
+ const xmlChar *fullname,
+ const xmlChar **atts);
+ void
+ endElement (void *ctx,
+ const xmlChar *name);
+ void
+ reference (void *ctx,
+ const xmlChar *name);
+ void
+ characters (void *ctx,
+ const xmlChar *ch,
+ int len);
+ void
+ ignorableWhitespace (void *ctx,
+ const xmlChar *ch,
+ int len);
+ void
+ processingInstruction (void *ctx,
+ const xmlChar *target,
+ const xmlChar *data);
+ void
+ globalNamespace (void *ctx,
+ const xmlChar *href,
+ const xmlChar *prefix);
+ void
+ setNamespace (void *ctx,
+ const xmlChar *name);
+ xmlNsPtr
+ getNamespace (void *ctx);
+ int
+ checkNamespace (void *ctx,
+ xmlChar *nameSpace);
+ void
+ namespaceDecl (void *ctx,
+ const xmlChar *href,
+ const xmlChar *prefix);
+ void
+ comment (void *ctx,
+ const xmlChar *value);
+ void
+ cdataBlock (void *ctx,
+ const xmlChar *value,
+ int len);
+ void
+ initxmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr,
+ int warning);
+ void
+ inithtmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr);
+ void
+ initdocbDefaultSAXHandler (xmlSAXHandlerV1 *hdlr);
+ const xmlChar *
+ xmlSAX2GetPublicId (void *ctx);
+ const xmlChar *
+ xmlSAX2GetSystemId (void *ctx);
+ void
+ xmlSAX2SetDocumentLocator (void *ctx,
+ xmlSAXLocatorPtr loc);
+ int
+ xmlSAX2GetLineNumber (void *ctx);
+ int
+ xmlSAX2GetColumnNumber (void *ctx);
+ int
+ xmlSAX2IsStandalone (void *ctx);
+ int
+ xmlSAX2HasInternalSubset (void *ctx);
+ int
+ xmlSAX2HasExternalSubset (void *ctx);
+ void
+ xmlSAX2InternalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ void
+ xmlSAX2ExternalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ xmlEntityPtr
+ xmlSAX2GetEntity (void *ctx,
+ const xmlChar *name);
+ xmlEntityPtr
+ xmlSAX2GetParameterEntity (void *ctx,
+ const xmlChar *name);
+ xmlParserInputPtr
+ xmlSAX2ResolveEntity (void *ctx,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+ void
+ xmlSAX2EntityDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ xmlChar *content);
+ void
+ xmlSAX2AttributeDecl (void *ctx,
+ const xmlChar *elem,
+ const xmlChar *fullname,
+ int type,
+ int def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+ void
+ xmlSAX2ElementDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ xmlElementContentPtr content);
+ void
+ xmlSAX2NotationDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+ void
+ xmlSAX2UnparsedEntityDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ const xmlChar *notationName);
+ void
+ xmlSAX2StartDocument (void *ctx);
+ void
+ xmlSAX2EndDocument (void *ctx);
+ void
+ xmlSAX2StartElement (void *ctx,
+ const xmlChar *fullname,
+ const xmlChar **atts);
+ void
+ xmlSAX2EndElement (void *ctx,
+ const xmlChar *name);
+ void
+ xmlSAX2StartElementNs (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI,
+ int nb_namespaces,
+ const xmlChar **namespaces,
+ int nb_attributes,
+ int nb_defaulted,
+ const xmlChar **attributes);
+ void
+ xmlSAX2EndElementNs (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI);
+ void
+ xmlSAX2Reference (void *ctx,
+ const xmlChar *name);
+ void
+ xmlSAX2Characters (void *ctx,
+ const xmlChar *ch,
+ int len);
+ void
+ xmlSAX2IgnorableWhitespace (void *ctx,
+ const xmlChar *ch,
+ int len);
+ void
+ xmlSAX2ProcessingInstruction (void *ctx,
+ const xmlChar *target,
+ const xmlChar *data);
+ void
+ xmlSAX2Comment (void *ctx,
+ const xmlChar *value);
+ void
+ xmlSAX2CDataBlock (void *ctx,
+ const xmlChar *value,
+ int len);
+ int
+ xmlSAXDefaultVersion (int version);
+ int
+ xmlSAXVersion (xmlSAXHandler *hdlr,
+ int version);
+ void
+ xmlSAX2InitDefaultSAXHandler (xmlSAXHandler *hdlr,
+ int warning);
+ void
+ xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr);
+ void
+ htmlDefaultSAXHandlerInit (void);
+ void
+ xmlSAX2InitDocbDefaultSAXHandler(xmlSAXHandler *hdlr);
+ void
+ docbDefaultSAXHandlerInit (void);
+ void
+ xmlDefaultSAXHandlerInit (void);
+typedef void ( *xmlFreeFunc)(void *mem);
+typedef void *(__attribute__((alloc_size(1))) *xmlMallocFunc)(size_t size);
+typedef void *( *xmlReallocFunc)(void *mem, size_t size);
+typedef char *( *xmlStrdupFunc)(const char *str);
+ int
+ xmlMemSetup (xmlFreeFunc freeFunc,
+ xmlMallocFunc mallocFunc,
+ xmlReallocFunc reallocFunc,
+ xmlStrdupFunc strdupFunc);
+ int
+ xmlMemGet (xmlFreeFunc *freeFunc,
+ xmlMallocFunc *mallocFunc,
+ xmlReallocFunc *reallocFunc,
+ xmlStrdupFunc *strdupFunc);
+ int
+ xmlGcMemSetup (xmlFreeFunc freeFunc,
+ xmlMallocFunc mallocFunc,
+ xmlMallocFunc mallocAtomicFunc,
+ xmlReallocFunc reallocFunc,
+ xmlStrdupFunc strdupFunc);
+ int
+ xmlGcMemGet (xmlFreeFunc *freeFunc,
+ xmlMallocFunc *mallocFunc,
+ xmlMallocFunc *mallocAtomicFunc,
+ xmlReallocFunc *reallocFunc,
+ xmlStrdupFunc *strdupFunc);
+ int
+ xmlInitMemory (void);
+ void
+ xmlCleanupMemory (void);
+ int
+ xmlMemUsed (void);
+ int
+ xmlMemBlocks (void);
+ void
+ xmlMemDisplay (FILE *fp);
+ void
+ xmlMemDisplayLast(FILE *fp, long nbBytes);
+ void
+ xmlMemShow (FILE *fp, int nr);
+ void
+ xmlMemoryDump (void);
+ void *
+ xmlMemMalloc (size_t size) __attribute__((alloc_size(1)));
+ void *
+ xmlMemRealloc (void *ptr,size_t size);
+ void
+ xmlMemFree (void *ptr);
+ char *
+ xmlMemoryStrdup (const char *str);
+ void *
+ xmlMallocLoc (size_t size, const char *file, int line) __attribute__((alloc_size(1)));
+ void *
+ xmlReallocLoc (void *ptr, size_t size, const char *file, int line);
+ void *
+ xmlMallocAtomicLoc (size_t size, const char *file, int line) __attribute__((alloc_size(1)));
+ char *
+ xmlMemStrdupLoc (const char *str, const char *file, int line);
+ void xmlInitGlobals(void);
+ void xmlCleanupGlobals(void);
+typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
+typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
+ xmlParserInputBufferCreateFilenameFunc
+ xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
+ xmlOutputBufferCreateFilenameFunc
+ xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
+typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
+typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
+typedef struct _xmlGlobalState xmlGlobalState;
+typedef xmlGlobalState *xmlGlobalStatePtr;
+struct _xmlGlobalState
+{
+ const char *xmlParserVersion;
+ xmlSAXLocator xmlDefaultSAXLocator;
+ xmlSAXHandlerV1 xmlDefaultSAXHandler;
+ xmlSAXHandlerV1 docbDefaultSAXHandler;
+ xmlSAXHandlerV1 htmlDefaultSAXHandler;
+ xmlFreeFunc xmlFree;
+ xmlMallocFunc xmlMalloc;
+ xmlStrdupFunc xmlMemStrdup;
+ xmlReallocFunc xmlRealloc;
+ xmlGenericErrorFunc xmlGenericError;
+ xmlStructuredErrorFunc xmlStructuredError;
+ void *xmlGenericErrorContext;
+ int oldXMLWDcompatibility;
+ xmlBufferAllocationScheme xmlBufferAllocScheme;
+ int xmlDefaultBufferSize;
+ int xmlSubstituteEntitiesDefaultValue;
+ int xmlDoValidityCheckingDefaultValue;
+ int xmlGetWarningsDefaultValue;
+ int xmlKeepBlanksDefaultValue;
+ int xmlLineNumbersDefaultValue;
+ int xmlLoadExtDtdDefaultValue;
+ int xmlParserDebugEntities;
+ int xmlPedanticParserDefaultValue;
+ int xmlSaveNoEmptyTags;
+ int xmlIndentTreeOutput;
+ const char *xmlTreeIndentString;
+ xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
+ xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
+ xmlMallocFunc xmlMallocAtomic;
+ xmlError xmlLastError;
+ xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
+ xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
+ void *xmlStructuredErrorContext;
+};
+typedef struct _xmlMutex xmlMutex;
+typedef xmlMutex *xmlMutexPtr;
+typedef struct _xmlRMutex xmlRMutex;
+typedef xmlRMutex *xmlRMutexPtr;
+ xmlMutexPtr
+ xmlNewMutex (void);
+ void
+ xmlMutexLock (xmlMutexPtr tok);
+ void
+ xmlMutexUnlock (xmlMutexPtr tok);
+ void
+ xmlFreeMutex (xmlMutexPtr tok);
+ xmlRMutexPtr
+ xmlNewRMutex (void);
+ void
+ xmlRMutexLock (xmlRMutexPtr tok);
+ void
+ xmlRMutexUnlock (xmlRMutexPtr tok);
+ void
+ xmlFreeRMutex (xmlRMutexPtr tok);
+ void
+ xmlInitThreads (void);
+ void
+ xmlLockLibrary (void);
+ void
+ xmlUnlockLibrary(void);
+ int
+ xmlGetThreadId (void);
+ int
+ xmlIsMainThread (void);
+ void
+ xmlCleanupThreads(void);
+ xmlGlobalStatePtr
+ xmlGetGlobalState(void);
+ void xmlInitializeGlobalState(xmlGlobalStatePtr gs);
+ void xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
+ void xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler);
+ xmlRegisterNodeFunc xmlRegisterNodeDefault(xmlRegisterNodeFunc func);
+ xmlRegisterNodeFunc xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
+ xmlDeregisterNodeFunc xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
+ xmlDeregisterNodeFunc xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
+ xmlOutputBufferCreateFilenameFunc
+ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
+ xmlParserInputBufferCreateFilenameFunc
+ xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
+extern xmlMallocFunc xmlMalloc;
+extern xmlMallocFunc xmlMallocAtomic;
+extern xmlReallocFunc xmlRealloc;
+extern xmlFreeFunc xmlFree;
+extern xmlStrdupFunc xmlMemStrdup;
+ xmlSAXHandlerV1 * __docbDefaultSAXHandler(void);
+ xmlSAXHandlerV1 * __htmlDefaultSAXHandler(void);
+ xmlError * __xmlLastError(void);
+ int * __oldXMLWDcompatibility(void);
+ xmlBufferAllocationScheme * __xmlBufferAllocScheme(void);
+ xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
+ int * __xmlDefaultBufferSize(void);
+ int xmlThrDefDefaultBufferSize(int v);
+ xmlSAXHandlerV1 * __xmlDefaultSAXHandler(void);
+ xmlSAXLocator * __xmlDefaultSAXLocator(void);
+ int * __xmlDoValidityCheckingDefaultValue(void);
+ int xmlThrDefDoValidityCheckingDefaultValue(int v);
+ xmlGenericErrorFunc * __xmlGenericError(void);
+ xmlStructuredErrorFunc * __xmlStructuredError(void);
+ void * * __xmlGenericErrorContext(void);
+ void * * __xmlStructuredErrorContext(void);
+ int * __xmlGetWarningsDefaultValue(void);
+ int xmlThrDefGetWarningsDefaultValue(int v);
+ int * __xmlIndentTreeOutput(void);
+ int xmlThrDefIndentTreeOutput(int v);
+ const char * * __xmlTreeIndentString(void);
+ const char * xmlThrDefTreeIndentString(const char * v);
+ int * __xmlKeepBlanksDefaultValue(void);
+ int xmlThrDefKeepBlanksDefaultValue(int v);
+ int * __xmlLineNumbersDefaultValue(void);
+ int xmlThrDefLineNumbersDefaultValue(int v);
+ int * __xmlLoadExtDtdDefaultValue(void);
+ int xmlThrDefLoadExtDtdDefaultValue(int v);
+ int * __xmlParserDebugEntities(void);
+ int xmlThrDefParserDebugEntities(int v);
+ const char * * __xmlParserVersion(void);
+ int * __xmlPedanticParserDefaultValue(void);
+ int xmlThrDefPedanticParserDefaultValue(int v);
+ int * __xmlSaveNoEmptyTags(void);
+ int xmlThrDefSaveNoEmptyTags(int v);
+ int * __xmlSubstituteEntitiesDefaultValue(void);
+ int xmlThrDefSubstituteEntitiesDefaultValue(int v);
+ xmlRegisterNodeFunc * __xmlRegisterNodeDefaultValue(void);
+ xmlDeregisterNodeFunc * __xmlDeregisterNodeDefaultValue(void);
+ xmlParserInputBufferCreateFilenameFunc * __xmlParserInputBufferCreateFilenameValue(void);
+ xmlOutputBufferCreateFilenameFunc * __xmlOutputBufferCreateFilenameValue(void);
+struct _xmlParserInputBuffer {
+ void* context;
+ xmlInputReadCallback readcallback;
+ xmlInputCloseCallback closecallback;
+ xmlCharEncodingHandlerPtr encoder;
+ xmlBufferPtr buffer;
+ xmlBufferPtr raw;
+ int compressed;
+ int error;
+ unsigned long rawconsumed;
+};
+struct _xmlOutputBuffer {
+ void* context;
+ xmlOutputWriteCallback writecallback;
+ xmlOutputCloseCallback closecallback;
+ xmlCharEncodingHandlerPtr encoder;
+ xmlBufferPtr buffer;
+ xmlBufferPtr conv;
+ int written;
+ int error;
+};
+ void
+ xmlCleanupInputCallbacks (void);
+ int
+ xmlPopInputCallbacks (void);
+ void
+ xmlRegisterDefaultInputCallbacks (void);
+ xmlParserInputBufferPtr
+ xmlAllocParserInputBuffer (xmlCharEncoding enc);
+ xmlParserInputBufferPtr
+ xmlParserInputBufferCreateFilename (const char *URI,
+ xmlCharEncoding enc);
+ xmlParserInputBufferPtr
+ xmlParserInputBufferCreateFile (FILE *file,
+ xmlCharEncoding enc);
+ xmlParserInputBufferPtr
+ xmlParserInputBufferCreateFd (int fd,
+ xmlCharEncoding enc);
+ xmlParserInputBufferPtr
+ xmlParserInputBufferCreateMem (const char *mem, int size,
+ xmlCharEncoding enc);
+ xmlParserInputBufferPtr
+ xmlParserInputBufferCreateStatic (const char *mem, int size,
+ xmlCharEncoding enc);
+ xmlParserInputBufferPtr
+ xmlParserInputBufferCreateIO (xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ xmlCharEncoding enc);
+ int
+ xmlParserInputBufferRead (xmlParserInputBufferPtr in,
+ int len);
+ int
+ xmlParserInputBufferGrow (xmlParserInputBufferPtr in,
+ int len);
+ int
+ xmlParserInputBufferPush (xmlParserInputBufferPtr in,
+ int len,
+ const char *buf);
+ void
+ xmlFreeParserInputBuffer (xmlParserInputBufferPtr in);
+ char *
+ xmlParserGetDirectory (const char *filename);
+ int
+ xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc,
+ xmlInputOpenCallback openFunc,
+ xmlInputReadCallback readFunc,
+ xmlInputCloseCallback closeFunc);
+xmlParserInputBufferPtr
+ __xmlParserInputBufferCreateFilename(const char *URI,
+ xmlCharEncoding enc);
+ void
+ xmlCleanupOutputCallbacks (void);
+ void
+ xmlRegisterDefaultOutputCallbacks(void);
+ xmlOutputBufferPtr
+ xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);
+ xmlOutputBufferPtr
+ xmlOutputBufferCreateFilename (const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression);
+ xmlOutputBufferPtr
+ xmlOutputBufferCreateFile (FILE *file,
+ xmlCharEncodingHandlerPtr encoder);
+ xmlOutputBufferPtr
+ xmlOutputBufferCreateBuffer (xmlBufferPtr buffer,
+ xmlCharEncodingHandlerPtr encoder);
+ xmlOutputBufferPtr
+ xmlOutputBufferCreateFd (int fd,
+ xmlCharEncodingHandlerPtr encoder);
+ xmlOutputBufferPtr
+ xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite,
+ xmlOutputCloseCallback ioclose,
+ void *ioctx,
+ xmlCharEncodingHandlerPtr encoder);
+ int
+ xmlOutputBufferWrite (xmlOutputBufferPtr out,
+ int len,
+ const char *buf);
+ int
+ xmlOutputBufferWriteString (xmlOutputBufferPtr out,
+ const char *str);
+ int
+ xmlOutputBufferWriteEscape (xmlOutputBufferPtr out,
+ const xmlChar *str,
+ xmlCharEncodingOutputFunc escaping);
+ int
+ xmlOutputBufferFlush (xmlOutputBufferPtr out);
+ int
+ xmlOutputBufferClose (xmlOutputBufferPtr out);
+ int
+ xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc,
+ xmlOutputOpenCallback openFunc,
+ xmlOutputWriteCallback writeFunc,
+ xmlOutputCloseCallback closeFunc);
+xmlOutputBufferPtr
+ __xmlOutputBufferCreateFilename(const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression);
+ void
+ xmlRegisterHTTPPostCallbacks (void );
+ xmlParserInputPtr
+ xmlCheckHTTPInput (xmlParserCtxtPtr ctxt,
+ xmlParserInputPtr ret);
+ xmlParserInputPtr
+ xmlNoNetExternalEntityLoader (const char *URL,
+ const char *ID,
+ xmlParserCtxtPtr ctxt);
+ xmlChar *
+ xmlNormalizeWindowsPath (const xmlChar *path);
+ int
+ xmlCheckFilename (const char *path);
+ int
+ xmlFileMatch (const char *filename);
+ void *
+ xmlFileOpen (const char *filename);
+ int
+ xmlFileRead (void * context,
+ char * buffer,
+ int len);
+ int
+ xmlFileClose (void * context);
+ int
+ xmlIOHTTPMatch (const char *filename);
+ void *
+ xmlIOHTTPOpen (const char *filename);
+ void *
+ xmlIOHTTPOpenW (const char * post_uri,
+ int compression );
+ int
+ xmlIOHTTPRead (void * context,
+ char * buffer,
+ int len);
+ int
+ xmlIOHTTPClose (void * context);
+ int
+ xmlIOFTPMatch (const char *filename);
+ void *
+ xmlIOFTPOpen (const char *filename);
+ int
+ xmlIOFTPRead (void * context,
+ char * buffer,
+ int len);
+ int
+ xmlIOFTPClose (void * context);
+ void
+ xmlInitParser (void);
+ void
+ xmlCleanupParser (void);
+ int
+ xmlParserInputRead (xmlParserInputPtr in,
+ int len);
+ int
+ xmlParserInputGrow (xmlParserInputPtr in,
+ int len);
+ xmlDocPtr
+ xmlParseDoc (const xmlChar *cur);
+ xmlDocPtr
+ xmlParseFile (const char *filename);
+ xmlDocPtr
+ xmlParseMemory (const char *buffer,
+ int size);
+ int
+ xmlSubstituteEntitiesDefault(int val);
+ int
+ xmlKeepBlanksDefault (int val);
+ void
+ xmlStopParser (xmlParserCtxtPtr ctxt);
+ int
+ xmlPedanticParserDefault(int val);
+ int
+ xmlLineNumbersDefault (int val);
+ xmlDocPtr
+ xmlRecoverDoc (const xmlChar *cur);
+ xmlDocPtr
+ xmlRecoverMemory (const char *buffer,
+ int size);
+ xmlDocPtr
+ xmlRecoverFile (const char *filename);
+ int
+ xmlParseDocument (xmlParserCtxtPtr ctxt);
+ int
+ xmlParseExtParsedEnt (xmlParserCtxtPtr ctxt);
+ int
+ xmlSAXUserParseFile (xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *filename);
+ int
+ xmlSAXUserParseMemory (xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *buffer,
+ int size);
+ xmlDocPtr
+ xmlSAXParseDoc (xmlSAXHandlerPtr sax,
+ const xmlChar *cur,
+ int recovery);
+ xmlDocPtr
+ xmlSAXParseMemory (xmlSAXHandlerPtr sax,
+ const char *buffer,
+ int size,
+ int recovery);
+ xmlDocPtr
+ xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax,
+ const char *buffer,
+ int size,
+ int recovery,
+ void *data);
+ xmlDocPtr
+ xmlSAXParseFile (xmlSAXHandlerPtr sax,
+ const char *filename,
+ int recovery);
+ xmlDocPtr
+ xmlSAXParseFileWithData (xmlSAXHandlerPtr sax,
+ const char *filename,
+ int recovery,
+ void *data);
+ xmlDocPtr
+ xmlSAXParseEntity (xmlSAXHandlerPtr sax,
+ const char *filename);
+ xmlDocPtr
+ xmlParseEntity (const char *filename);
+ xmlDtdPtr
+ xmlSAXParseDTD (xmlSAXHandlerPtr sax,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ xmlDtdPtr
+ xmlParseDTD (const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+ xmlDtdPtr
+ xmlIOParseDTD (xmlSAXHandlerPtr sax,
+ xmlParserInputBufferPtr input,
+ xmlCharEncoding enc);
+ int
+ xmlParseBalancedChunkMemory(xmlDocPtr doc,
+ xmlSAXHandlerPtr sax,
+ void *user_data,
+ int depth,
+ const xmlChar *string,
+ xmlNodePtr *lst);
+ xmlParserErrors
+ xmlParseInNodeContext (xmlNodePtr node,
+ const char *data,
+ int datalen,
+ int options,
+ xmlNodePtr *lst);
+ int
+ xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc,
+ xmlSAXHandlerPtr sax,
+ void *user_data,
+ int depth,
+ const xmlChar *string,
+ xmlNodePtr *lst,
+ int recover);
+ int
+ xmlParseExternalEntity (xmlDocPtr doc,
+ xmlSAXHandlerPtr sax,
+ void *user_data,
+ int depth,
+ const xmlChar *URL,
+ const xmlChar *ID,
+ xmlNodePtr *lst);
+ int
+ xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx,
+ const xmlChar *URL,
+ const xmlChar *ID,
+ xmlNodePtr *lst);
+ xmlParserCtxtPtr
+ xmlNewParserCtxt (void);
+ int
+ xmlInitParserCtxt (xmlParserCtxtPtr ctxt);
+ void
+ xmlClearParserCtxt (xmlParserCtxtPtr ctxt);
+ void
+ xmlFreeParserCtxt (xmlParserCtxtPtr ctxt);
+ void
+ xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt,
+ const xmlChar* buffer,
+ const char *filename);
+ xmlParserCtxtPtr
+ xmlCreateDocParserCtxt (const xmlChar *cur);
+ int
+ xmlGetFeaturesList (int *len,
+ const char **result);
+ int
+ xmlGetFeature (xmlParserCtxtPtr ctxt,
+ const char *name,
+ void *result);
+ int
+ xmlSetFeature (xmlParserCtxtPtr ctxt,
+ const char *name,
+ void *value);
+ xmlParserCtxtPtr
+ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *chunk,
+ int size,
+ const char *filename);
+ int
+ xmlParseChunk (xmlParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ int terminate);
+ xmlParserCtxtPtr
+ xmlCreateIOParserCtxt (xmlSAXHandlerPtr sax,
+ void *user_data,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ xmlCharEncoding enc);
+ xmlParserInputPtr
+ xmlNewIOInputStream (xmlParserCtxtPtr ctxt,
+ xmlParserInputBufferPtr input,
+ xmlCharEncoding enc);
+ const xmlParserNodeInfo*
+ xmlParserFindNodeInfo (const xmlParserCtxtPtr ctxt,
+ const xmlNodePtr node);
+ void
+ xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
+ void
+ xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
+ unsigned long
+ xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq,
+ const xmlNodePtr node);
+ void
+ xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt,
+ const xmlParserNodeInfoPtr info);
+ void
+ xmlSetExternalEntityLoader(xmlExternalEntityLoader f);
+ xmlExternalEntityLoader
+ xmlGetExternalEntityLoader(void);
+ xmlParserInputPtr
+ xmlLoadExternalEntity (const char *URL,
+ const char *ID,
+ xmlParserCtxtPtr ctxt);
+ long
+ xmlByteConsumed (xmlParserCtxtPtr ctxt);
+typedef enum {
+ XML_PARSE_RECOVER = 1<<0,
+ XML_PARSE_NOENT = 1<<1,
+ XML_PARSE_DTDLOAD = 1<<2,
+ XML_PARSE_DTDATTR = 1<<3,
+ XML_PARSE_DTDVALID = 1<<4,
+ XML_PARSE_NOERROR = 1<<5,
+ XML_PARSE_NOWARNING = 1<<6,
+ XML_PARSE_PEDANTIC = 1<<7,
+ XML_PARSE_NOBLANKS = 1<<8,
+ XML_PARSE_SAX1 = 1<<9,
+ XML_PARSE_XINCLUDE = 1<<10,
+ XML_PARSE_NONET = 1<<11,
+ XML_PARSE_NODICT = 1<<12,
+ XML_PARSE_NSCLEAN = 1<<13,
+ XML_PARSE_NOCDATA = 1<<14,
+ XML_PARSE_NOXINCNODE= 1<<15,
+ XML_PARSE_COMPACT = 1<<16,
+ XML_PARSE_OLD10 = 1<<17,
+ XML_PARSE_NOBASEFIX = 1<<18,
+ XML_PARSE_HUGE = 1<<19,
+ XML_PARSE_OLDSAX = 1<<20
+} xmlParserOption;
+ void
+ xmlCtxtReset (xmlParserCtxtPtr ctxt);
+ int
+ xmlCtxtResetPush (xmlParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ const char *filename,
+ const char *encoding);
+ int
+ xmlCtxtUseOptions (xmlParserCtxtPtr ctxt,
+ int options);
+ xmlDocPtr
+ xmlReadDoc (const xmlChar *cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlReadFile (const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlReadMemory (const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlReadFd (int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlReadIO (xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlCtxtReadDoc (xmlParserCtxtPtr ctxt,
+ const xmlChar *cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlCtxtReadFile (xmlParserCtxtPtr ctxt,
+ const char *filename,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlCtxtReadMemory (xmlParserCtxtPtr ctxt,
+ const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlCtxtReadFd (xmlParserCtxtPtr ctxt,
+ int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+ xmlDocPtr
+ xmlCtxtReadIO (xmlParserCtxtPtr ctxt,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+typedef enum {
+ XML_WITH_THREAD = 1,
+ XML_WITH_TREE = 2,
+ XML_WITH_OUTPUT = 3,
+ XML_WITH_PUSH = 4,
+ XML_WITH_READER = 5,
+ XML_WITH_PATTERN = 6,
+ XML_WITH_WRITER = 7,
+ XML_WITH_SAX1 = 8,
+ XML_WITH_FTP = 9,
+ XML_WITH_HTTP = 10,
+ XML_WITH_VALID = 11,
+ XML_WITH_HTML = 12,
+ XML_WITH_LEGACY = 13,
+ XML_WITH_C14N = 14,
+ XML_WITH_CATALOG = 15,
+ XML_WITH_XPATH = 16,
+ XML_WITH_XPTR = 17,
+ XML_WITH_XINCLUDE = 18,
+ XML_WITH_ICONV = 19,
+ XML_WITH_ISO8859X = 20,
+ XML_WITH_UNICODE = 21,
+ XML_WITH_REGEXP = 22,
+ XML_WITH_AUTOMATA = 23,
+ XML_WITH_EXPR = 24,
+ XML_WITH_SCHEMAS = 25,
+ XML_WITH_SCHEMATRON = 26,
+ XML_WITH_MODULES = 27,
+ XML_WITH_DEBUG = 28,
+ XML_WITH_DEBUG_MEM = 29,
+ XML_WITH_DEBUG_RUN = 30,
+ XML_WITH_ZLIB = 31,
+ XML_WITH_NONE = 99999
+} xmlFeature;
+ int
+ xmlHasFeature (xmlFeature feature);
+typedef enum
+{
+ GST_OBJECT_DISPOSING = (1<<0),
+ GST_OBJECT_FLOATING = (1<<1),
+ GST_OBJECT_FLAG_LAST = (1<<4)
+} GstObjectFlags;
+typedef struct _GstObject GstObject;
+typedef struct _GstObjectClass GstObjectClass;
+struct _GstObject {
+ GObject object;
+ gint refcount;
+ GMutex *lock;
+ gchar *name;
+ gchar *name_prefix;
+ GstObject *parent;
+ guint32 flags;
+ gpointer _gst_reserved;
+};
+struct _GstObjectClass {
+ GObjectClass parent_class;
+ gchar *path_string_separator;
+ GObject *signal_object;
+ GStaticRecMutex *lock;
+ void (*parent_set) (GstObject * object, GstObject * parent);
+ void (*parent_unset) (GstObject * object, GstObject * parent);
+ void (*object_saved) (GstObject * object, xmlNodePtr parent);
+ void (*deep_notify) (GstObject * object, GstObject * orig, GParamSpec * pspec);
+ xmlNodePtr (*save_thyself) (GstObject * object, xmlNodePtr parent);
+ void (*restore_thyself) (GstObject * object, xmlNodePtr self);
+ gpointer _gst_reserved[4];
+};
+GType gst_object_get_type (void);
+gboolean gst_object_set_name (GstObject *object, const gchar *name);
+gchar* gst_object_get_name (GstObject *object);
+void gst_object_set_name_prefix (GstObject *object, const gchar *name_prefix);
+gchar* gst_object_get_name_prefix (GstObject *object);
+gboolean gst_object_set_parent (GstObject *object, GstObject *parent);
+GstObject* gst_object_get_parent (GstObject *object);
+void gst_object_unparent (GstObject *object);
+gboolean gst_object_has_ancestor (GstObject *object, GstObject *ancestor);
+void gst_object_default_deep_notify (GObject *object, GstObject *orig,
+ GParamSpec *pspec, gchar **excluded_props);
+gpointer gst_object_ref (gpointer object);
+void gst_object_unref (gpointer object);
+void gst_object_ref_sink (gpointer object);
+void gst_object_sink (gpointer object);
+void gst_object_replace (GstObject **oldobj, GstObject *newobj);
+gchar * gst_object_get_path_string (GstObject *object);
+gboolean gst_object_check_uniqueness (GList *list, const gchar *name);
+xmlNodePtr gst_object_save_thyself (GstObject *object, xmlNodePtr parent);
+void gst_object_restore_thyself (GstObject *object, xmlNodePtr self);
+guint gst_class_signal_connect (GstObjectClass *klass,
+ const gchar *name,
+ gpointer func,
+ gpointer func_data);
+void gst_class_signal_emit_by_name (GstObject * object,
+ const gchar * name,
+ xmlNodePtr self);
+typedef struct _GstMiniObject GstMiniObject;
+typedef struct _GstMiniObjectClass GstMiniObjectClass;
+typedef GstMiniObject * (*GstMiniObjectCopyFunction) (const GstMiniObject *obj);
+typedef void (*GstMiniObjectFinalizeFunction) (GstMiniObject *obj);
+typedef enum
+{
+ GST_MINI_OBJECT_FLAG_READONLY = (1<<0),
+ GST_MINI_OBJECT_FLAG_LAST = (1<<4)
+} GstMiniObjectFlags;
+struct _GstMiniObject {
+ GTypeInstance instance;
+ gint refcount;
+ guint flags;
+ gpointer _gst_reserved;
+};
+struct _GstMiniObjectClass {
+ GTypeClass type_class;
+ GstMiniObjectCopyFunction copy;
+ GstMiniObjectFinalizeFunction finalize;
+ gpointer _gst_reserved;
+};
+GType gst_mini_object_get_type (void);
+GstMiniObject* gst_mini_object_new (GType type);
+GstMiniObject* gst_mini_object_copy (const GstMiniObject *mini_object);
+gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object);
+GstMiniObject* gst_mini_object_make_writable (GstMiniObject *mini_object);
+GstMiniObject* gst_mini_object_ref (GstMiniObject *mini_object);
+void gst_mini_object_unref (GstMiniObject *mini_object);
+void gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata);
+typedef struct _GstParamSpecMiniObject GstParamSpecMiniObject;
+struct _GstParamSpecMiniObject
+{
+ GParamSpec parent_instance;
+};
+GType gst_param_spec_mini_object_get_type (void);
+GParamSpec* gst_param_spec_mini_object (const char *name, const char *nick,
+ const char *blurb, GType object_type,
+ GParamFlags flags);
+void gst_value_set_mini_object (GValue *value, GstMiniObject *mini_object);
+void gst_value_take_mini_object (GValue *value, GstMiniObject *mini_object);
+GstMiniObject* gst_value_get_mini_object (const GValue *value);
+GstMiniObject* gst_value_dup_mini_object (const GValue *value);
+typedef guint64 GstClockTime;
+typedef gint64 GstClockTimeDiff;
+typedef gpointer GstClockID;
+typedef struct _GstClockEntry GstClockEntry;
+typedef struct _GstClock GstClock;
+typedef struct _GstClockClass GstClockClass;
+typedef struct _GstClockPrivate GstClockPrivate;
+typedef gboolean (*GstClockCallback) (GstClock *clock, GstClockTime time,
+ GstClockID id, gpointer user_data);
+typedef enum
+{
+ GST_CLOCK_OK = 0,
+ GST_CLOCK_EARLY = 1,
+ GST_CLOCK_UNSCHEDULED = 2,
+ GST_CLOCK_BUSY = 3,
+ GST_CLOCK_BADTIME = 4,
+ GST_CLOCK_ERROR = 5,
+ GST_CLOCK_UNSUPPORTED = 6
+} GstClockReturn;
+typedef enum {
+ GST_CLOCK_ENTRY_SINGLE,
+ GST_CLOCK_ENTRY_PERIODIC
+} GstClockEntryType;
+struct _GstClockEntry {
+ gint refcount;
+ GstClock *clock;
+ GstClockEntryType type;
+ GstClockTime time;
+ GstClockTime interval;
+ GstClockReturn status;
+ GstClockCallback func;
+ gpointer user_data;
+};
+typedef enum {
+ GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC = (GST_OBJECT_FLAG_LAST << 0),
+ GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC = (GST_OBJECT_FLAG_LAST << 1),
+ GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC = (GST_OBJECT_FLAG_LAST << 2),
+ GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC = (GST_OBJECT_FLAG_LAST << 3),
+ GST_CLOCK_FLAG_CAN_SET_RESOLUTION = (GST_OBJECT_FLAG_LAST << 4),
+ GST_CLOCK_FLAG_CAN_SET_MASTER = (GST_OBJECT_FLAG_LAST << 5),
+ GST_CLOCK_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 8)
+} GstClockFlags;
+struct _GstClock {
+ GstObject object;
+ GMutex *slave_lock;
+ GstClockTime internal_calibration;
+ GstClockTime external_calibration;
+ GstClockTime rate_numerator;
+ GstClockTime rate_denominator;
+ GstClockTime last_time;
+ GList *entries;
+ GCond *entries_changed;
+ GstClockTime resolution;
+ gboolean stats;
+ GstClock *master;
+ gboolean filling;
+ gint window_size;
+ gint window_threshold;
+ gint time_index;
+ GstClockTime timeout;
+ GstClockTime *times;
+ GstClockID clockid;
+ union {
+ GstClockPrivate *priv;
+ GstClockTime _gst_reserved[4];
+ } ABI;
+};
+struct _GstClockClass {
+ GstObjectClass parent_class;
+ GstClockTime (*change_resolution) (GstClock *clock,
+ GstClockTime old_resolution,
+ GstClockTime new_resolution);
+ GstClockTime (*get_resolution) (GstClock *clock);
+ GstClockTime (*get_internal_time) (GstClock *clock);
+ GstClockReturn (*wait) (GstClock *clock, GstClockEntry *entry);
+ GstClockReturn (*wait_async) (GstClock *clock, GstClockEntry *entry);
+ void (*unschedule) (GstClock *clock, GstClockEntry *entry);
+ GstClockReturn (*wait_jitter) (GstClock *clock, GstClockEntry *entry,
+ GstClockTimeDiff *jitter);
+ gpointer _gst_reserved[4 - 1];
+};
+GType gst_clock_get_type (void);
+GstClockTime gst_clock_set_resolution (GstClock *clock,
+ GstClockTime resolution);
+GstClockTime gst_clock_get_resolution (GstClock *clock);
+GstClockTime gst_clock_get_time (GstClock *clock);
+void gst_clock_set_calibration (GstClock *clock, GstClockTime internal,
+ GstClockTime external,
+ GstClockTime rate_num,
+ GstClockTime rate_denom);
+void gst_clock_get_calibration (GstClock *clock, GstClockTime *internal,
+ GstClockTime *external,
+ GstClockTime *rate_num,
+ GstClockTime *rate_denom);
+gboolean gst_clock_set_master (GstClock *clock, GstClock *master);
+GstClock* gst_clock_get_master (GstClock *clock);
+gboolean gst_clock_add_observation (GstClock *clock, GstClockTime slave,
+ GstClockTime master, gdouble *r_squared);
+GstClockTime gst_clock_get_internal_time (GstClock *clock);
+GstClockTime gst_clock_adjust_unlocked (GstClock *clock, GstClockTime internal);
+GstClockTime gst_clock_unadjust_unlocked (GstClock * clock, GstClockTime external);
+GstClockID gst_clock_new_single_shot_id (GstClock *clock,
+ GstClockTime time);
+GstClockID gst_clock_new_periodic_id (GstClock *clock,
+ GstClockTime start_time,
+ GstClockTime interval);
+GstClockID gst_clock_id_ref (GstClockID id);
+void gst_clock_id_unref (GstClockID id);
+gint gst_clock_id_compare_func (gconstpointer id1, gconstpointer id2);
+GstClockTime gst_clock_id_get_time (GstClockID id);
+GstClockReturn gst_clock_id_wait (GstClockID id,
+ GstClockTimeDiff *jitter);
+GstClockReturn gst_clock_id_wait_async (GstClockID id,
+ GstClockCallback func,
+ gpointer user_data);
+void gst_clock_id_unschedule (GstClockID id);
+typedef struct _GstStructure GstStructure;
+typedef gboolean (*GstStructureForeachFunc) (GQuark field_id,
+ const GValue * value,
+ gpointer user_data);
+typedef gboolean (*GstStructureMapFunc) (GQuark field_id,
+ GValue * value,
+ gpointer user_data);
+struct _GstStructure {
+ GType type;
+ GQuark name;
+ gint *parent_refcount;
+ GArray *fields;
+ gpointer _gst_reserved;
+};
+GType gst_structure_get_type (void);
+GstStructure * gst_structure_empty_new (const gchar * name);
+GstStructure * gst_structure_id_empty_new (GQuark quark);
+GstStructure * gst_structure_new (const gchar * name,
+ const gchar * firstfield,
+ ...);
+GstStructure * gst_structure_new_valist (const gchar * name,
+ const gchar * firstfield,
+ va_list varargs);
+GstStructure * gst_structure_id_new (GQuark name_quark,
+ GQuark field_quark,
+ ...);
+GstStructure * gst_structure_copy (const GstStructure *structure);
+void gst_structure_set_parent_refcount (GstStructure *structure,
+ gint *refcount);
+void gst_structure_free (GstStructure *structure);
+const gchar * gst_structure_get_name (const GstStructure *structure);
+GQuark gst_structure_get_name_id (const GstStructure *structure);
+gboolean gst_structure_has_name (const GstStructure *structure,
+ const gchar *name);
+void gst_structure_set_name (GstStructure *structure,
+ const gchar *name);
+void gst_structure_id_set_value (GstStructure *structure,
+ GQuark field,
+ const GValue *value);
+void gst_structure_set_value (GstStructure *structure,
+ const gchar *fieldname,
+ const GValue *value);
+void gst_structure_set (GstStructure *structure,
+ const gchar *fieldname,
+ ...) __attribute__((__sentinel__));
+void gst_structure_set_valist (GstStructure *structure,
+ const gchar *fieldname,
+ va_list varargs);
+void gst_structure_id_set (GstStructure *structure,
+ GQuark fieldname,
+ ...) __attribute__((__sentinel__));
+void gst_structure_id_set_valist (GstStructure *structure,
+ GQuark fieldname,
+ va_list varargs);
+gboolean gst_structure_get_valist (GstStructure *structure,
+ const char *first_fieldname,
+ va_list args);
+gboolean gst_structure_get (GstStructure *structure,
+ const char *first_fieldname,
+ ...) __attribute__((__sentinel__));
+gboolean gst_structure_id_get_valist (GstStructure *structure,
+ GQuark first_field_id,
+ va_list args);
+gboolean gst_structure_id_get (GstStructure *structure,
+ GQuark first_field_id,
+ ...) __attribute__((__sentinel__));
+const GValue * gst_structure_id_get_value (const GstStructure *structure,
+ GQuark field);
+const GValue * gst_structure_get_value (const GstStructure *structure,
+ const gchar *fieldname);
+void gst_structure_remove_field (GstStructure *structure,
+ const gchar *fieldname);
+void gst_structure_remove_fields (GstStructure *structure,
+ const gchar *fieldname,
+ ...) __attribute__((__sentinel__));
+void gst_structure_remove_fields_valist (GstStructure *structure,
+ const gchar *fieldname,
+ va_list varargs);
+void gst_structure_remove_all_fields (GstStructure *structure);
+GType gst_structure_get_field_type (const GstStructure *structure,
+ const gchar *fieldname);
+gboolean gst_structure_foreach (const GstStructure *structure,
+ GstStructureForeachFunc func,
+ gpointer user_data);
+gboolean gst_structure_map_in_place (GstStructure *structure,
+ GstStructureMapFunc func,
+ gpointer user_data);
+gint gst_structure_n_fields (const GstStructure *structure);
+const gchar * gst_structure_nth_field_name (const GstStructure *structure, guint index);
+gboolean gst_structure_has_field (const GstStructure *structure,
+ const gchar *fieldname);
+gboolean gst_structure_has_field_typed (const GstStructure *structure,
+ const gchar *fieldname,
+ GType type);
+gboolean gst_structure_get_boolean (const GstStructure *structure,
+ const gchar *fieldname,
+ gboolean *value);
+gboolean gst_structure_get_int (const GstStructure *structure,
+ const gchar *fieldname,
+ gint *value);
+gboolean gst_structure_get_uint (const GstStructure *structure,
+ const gchar *fieldname,
+ guint *value);
+gboolean gst_structure_get_fourcc (const GstStructure *structure,
+ const gchar *fieldname,
+ guint32 *value);
+gboolean gst_structure_get_double (const GstStructure *structure,
+ const gchar *fieldname,
+ gdouble *value);
+gboolean gst_structure_get_date (const GstStructure *structure,
+ const gchar *fieldname,
+ GDate **value);
+gboolean gst_structure_get_clock_time (const GstStructure *structure,
+ const gchar *fieldname,
+ GstClockTime *value);
+const gchar * gst_structure_get_string (const GstStructure *structure,
+ const gchar *fieldname);
+gboolean gst_structure_get_enum (const GstStructure *structure,
+ const gchar *fieldname,
+ GType enumtype,
+ gint *value);
+gboolean gst_structure_get_fraction (const GstStructure *structure,
+ const gchar *fieldname,
+ gint *value_numerator,
+ gint *value_denominator);
+gchar * gst_structure_to_string (const GstStructure *structure);
+GstStructure * gst_structure_from_string (const gchar *string,
+ gchar **end);
+gboolean gst_structure_fixate_field_nearest_int (GstStructure *structure,
+ const char *field_name,
+ int target);
+gboolean gst_structure_fixate_field_nearest_double (GstStructure *structure,
+ const char *field_name,
+ double target);
+gboolean gst_structure_fixate_field_boolean (GstStructure *structure,
+ const char *field_name,
+ gboolean target);
+gboolean gst_structure_fixate_field_nearest_fraction (GstStructure *structure,
+ const char *field_name,
+ const gint target_numerator,
+ const gint target_denominator);
+typedef enum {
+ GST_CAPS_FLAGS_ANY = (1 << 0)
+} GstCapsFlags;
+typedef struct _GstCaps GstCaps;
+typedef struct _GstStaticCaps GstStaticCaps;
+struct _GstCaps {
+ GType type;
+ gint refcount;
+ GstCapsFlags flags;
+ GPtrArray *structs;
+ gpointer _gst_reserved[4];
+};
+struct _GstStaticCaps {
+ GstCaps caps;
+ const char *string;
+ gpointer _gst_reserved[4];
+};
+GType gst_caps_get_type (void);
+GstCaps * gst_caps_new_empty (void);
+GstCaps * gst_caps_new_any (void);
+GstCaps * gst_caps_new_simple (const char *media_type,
+ const char *fieldname,
+ ...);
+GstCaps * gst_caps_new_full (GstStructure *struct1, ...);
+GstCaps * gst_caps_new_full_valist (GstStructure *structure,
+ va_list var_args);
+GstCaps * gst_caps_ref (GstCaps *caps);
+GstCaps * gst_caps_copy (const GstCaps *caps);
+GstCaps * gst_caps_make_writable (GstCaps *caps);
+void gst_caps_unref (GstCaps *caps);
+GType gst_static_caps_get_type (void);
+GstCaps * gst_static_caps_get (GstStaticCaps *static_caps);
+void gst_caps_append (GstCaps *caps1,
+ GstCaps *caps2);
+void gst_caps_merge (GstCaps *caps1,
+ GstCaps *caps2);
+void gst_caps_append_structure (GstCaps *caps,
+ GstStructure *structure);
+void gst_caps_remove_structure (GstCaps *caps, guint idx);
+void gst_caps_merge_structure (GstCaps *caps,
+ GstStructure *structure);
+guint gst_caps_get_size (const GstCaps *caps);
+GstStructure * gst_caps_get_structure (const GstCaps *caps,
+ guint index);
+GstCaps * gst_caps_copy_nth (const GstCaps *caps, guint nth);
+void gst_caps_truncate (GstCaps *caps);
+void gst_caps_set_simple (GstCaps *caps,
+ const char *field, ...) __attribute__((__sentinel__));
+void gst_caps_set_simple_valist (GstCaps *caps,
+ const char *field,
+ va_list varargs);
+gboolean gst_caps_is_any (const GstCaps *caps);
+gboolean gst_caps_is_empty (const GstCaps *caps);
+gboolean gst_caps_is_fixed (const GstCaps *caps);
+gboolean gst_caps_is_always_compatible (const GstCaps *caps1,
+ const GstCaps *caps2);
+gboolean gst_caps_is_subset (const GstCaps *subset,
+ const GstCaps *superset);
+gboolean gst_caps_is_equal (const GstCaps *caps1,
+ const GstCaps *caps2);
+gboolean gst_caps_is_equal_fixed (const GstCaps *caps1,
+ const GstCaps *caps2);
+GstCaps * gst_caps_intersect (const GstCaps *caps1,
+ const GstCaps *caps2);
+GstCaps * gst_caps_subtract (const GstCaps *minuend,
+ const GstCaps *subtrahend);
+GstCaps * gst_caps_union (const GstCaps *caps1,
+ const GstCaps *caps2);
+GstCaps * gst_caps_normalize (const GstCaps *caps);
+gboolean gst_caps_do_simplify (GstCaps *caps);
+xmlNodePtr gst_caps_save_thyself (const GstCaps *caps,
+ xmlNodePtr parent);
+GstCaps * gst_caps_load_thyself (xmlNodePtr parent);
+void gst_caps_replace (GstCaps **caps,
+ GstCaps *newcaps);
+gchar * gst_caps_to_string (const GstCaps *caps);
+GstCaps * gst_caps_from_string (const gchar *string);
+typedef struct _GstBuffer GstBuffer;
+typedef struct _GstBufferClass GstBufferClass;
+typedef enum {
+ GST_BUFFER_FLAG_READONLY = GST_MINI_OBJECT_FLAG_READONLY,
+ GST_BUFFER_FLAG_PREROLL = (GST_MINI_OBJECT_FLAG_LAST << 0),
+ GST_BUFFER_FLAG_DISCONT = (GST_MINI_OBJECT_FLAG_LAST << 1),
+ GST_BUFFER_FLAG_IN_CAPS = (GST_MINI_OBJECT_FLAG_LAST << 2),
+ GST_BUFFER_FLAG_GAP = (GST_MINI_OBJECT_FLAG_LAST << 3),
+ GST_BUFFER_FLAG_DELTA_UNIT = (GST_MINI_OBJECT_FLAG_LAST << 4),
+ GST_BUFFER_FLAG_MEDIA1 = (GST_MINI_OBJECT_FLAG_LAST << 5),
+ GST_BUFFER_FLAG_MEDIA2 = (GST_MINI_OBJECT_FLAG_LAST << 6),
+ GST_BUFFER_FLAG_MEDIA3 = (GST_MINI_OBJECT_FLAG_LAST << 7),
+ GST_BUFFER_FLAG_LAST = (GST_MINI_OBJECT_FLAG_LAST << 8)
+} GstBufferFlag;
+struct _GstBuffer {
+ GstMiniObject mini_object;
+ guint8 *data;
+ guint size;
+ GstClockTime timestamp;
+ GstClockTime duration;
+ GstCaps *caps;
+ guint64 offset;
+ guint64 offset_end;
+ guint8 *malloc_data;
+ GFreeFunc free_func;
+ gpointer _gst_reserved[4 - 1];
+};
+struct _GstBufferClass {
+ GstMiniObjectClass mini_object_class;
+};
+GType gst_buffer_get_type (void);
+GstBuffer * gst_buffer_new (void);
+GstBuffer * gst_buffer_new_and_alloc (guint size);
+GstBuffer * gst_buffer_try_new_and_alloc (guint size);
+static inline GstBuffer *
+gst_buffer_ref (GstBuffer * buf)
+{
+ return (GstBuffer *) gst_mini_object_ref (((GstMiniObject*)(buf)));
+}
+static inline void
+gst_buffer_unref (GstBuffer * buf)
+{
+ gst_mini_object_unref (((GstMiniObject*)(buf)));
+}
+static inline GstBuffer *
+gst_buffer_copy (const GstBuffer * buf)
+{
+ return ((((GstBuffer*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(buf))))), ((gst_buffer_get_type()))))));
+}
+typedef enum {
+ GST_BUFFER_COPY_FLAGS = (1 << 0),
+ GST_BUFFER_COPY_TIMESTAMPS = (1 << 1),
+ GST_BUFFER_COPY_CAPS = (1 << 2)
+} GstBufferCopyFlags;
+void gst_buffer_copy_metadata (GstBuffer *dest, const GstBuffer *src,
+ GstBufferCopyFlags flags);
+gboolean gst_buffer_is_metadata_writable (GstBuffer *buf);
+GstBuffer* gst_buffer_make_metadata_writable (GstBuffer *buf);
+GstCaps* gst_buffer_get_caps (GstBuffer *buffer);
+void gst_buffer_set_caps (GstBuffer *buffer, GstCaps *caps);
+GstBuffer* gst_buffer_create_sub (GstBuffer *parent, guint offset, guint size);
+gboolean gst_buffer_is_span_fast (GstBuffer *buf1, GstBuffer *buf2);
+GstBuffer* gst_buffer_span (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, guint32 len);
+typedef struct _GstBufferList GstBufferList;
+typedef struct _GstBufferListClass GstBufferListClass;
+typedef struct _GstBufferListIterator GstBufferListIterator;
+typedef GstBuffer* (*GstBufferListDoFunction) (GstBuffer * buffer, gpointer user_data);
+typedef enum {
+ GST_BUFFER_LIST_CONTINUE,
+ GST_BUFFER_LIST_SKIP_GROUP,
+ GST_BUFFER_LIST_END
+} GstBufferListItem;
+typedef GstBufferListItem (*GstBufferListFunc) (GstBuffer **buffer, guint group, guint idx,
+ gpointer user_data);
+GType gst_buffer_list_get_type (void);
+GstBufferList *gst_buffer_list_new (void);
+static inline GstBufferList *
+gst_buffer_list_ref (GstBufferList * list)
+{
+ return ((GstBufferList *)gst_mini_object_ref (((GstMiniObject*)(list))));
+}
+static inline void
+gst_buffer_list_unref (GstBufferList * list)
+{
+ gst_mini_object_unref (((GstMiniObject*)(list)));
+}
+static inline GstBufferList *
+gst_buffer_list_copy (const GstBufferList * list)
+{
+ return ((((GstBufferList*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(list))))), ((gst_buffer_list_get_type ()))))));
+}
+guint gst_buffer_list_n_groups (GstBufferList *list);
+void gst_buffer_list_foreach (GstBufferList *list,
+ GstBufferListFunc func,
+ gpointer user_data);
+GstBuffer * gst_buffer_list_get (GstBufferList *list, guint group, guint idx);
+GstBufferListIterator * gst_buffer_list_iterate (GstBufferList *list);
+void gst_buffer_list_iterator_free (GstBufferListIterator *it);
+guint gst_buffer_list_iterator_n_buffers (const GstBufferListIterator *it);
+GstBuffer * gst_buffer_list_iterator_next (GstBufferListIterator *it);
+gboolean gst_buffer_list_iterator_next_group (GstBufferListIterator *it);
+void gst_buffer_list_iterator_add (GstBufferListIterator *it, GstBuffer *buffer);
+void gst_buffer_list_iterator_add_group (GstBufferListIterator *it);
+void gst_buffer_list_iterator_remove (GstBufferListIterator *it);
+GstBuffer * gst_buffer_list_iterator_steal (GstBufferListIterator *it);
+void gst_buffer_list_iterator_take (GstBufferListIterator *it, GstBuffer *buffer);
+GstBuffer * gst_buffer_list_iterator_do (GstBufferListIterator *it, GstBufferListDoFunction do_func,
+ gpointer user_data);
+GstBuffer * gst_buffer_list_iterator_merge_group (const GstBufferListIterator *it);
+typedef enum {
+ GST_ITERATOR_DONE = 0,
+ GST_ITERATOR_OK = 1,
+ GST_ITERATOR_RESYNC = 2,
+ GST_ITERATOR_ERROR = 3
+} GstIteratorResult;
+typedef struct _GstIterator GstIterator;
+typedef enum {
+ GST_ITERATOR_ITEM_SKIP = 0,
+ GST_ITERATOR_ITEM_PASS = 1,
+ GST_ITERATOR_ITEM_END = 2
+} GstIteratorItem;
+typedef void (*GstIteratorDisposeFunction) (gpointer owner);
+typedef GstIteratorResult (*GstIteratorNextFunction) (GstIterator *it, gpointer *result);
+typedef GstIteratorItem (*GstIteratorItemFunction) (GstIterator *it, gpointer item);
+typedef void (*GstIteratorResyncFunction) (GstIterator *it);
+typedef void (*GstIteratorFreeFunction) (GstIterator *it);
+typedef gboolean (*GstIteratorFoldFunction) (gpointer item, GValue *ret, gpointer user_data);
+struct _GstIterator {
+ GstIteratorNextFunction next;
+ GstIteratorItemFunction item;
+ GstIteratorResyncFunction resync;
+ GstIteratorFreeFunction free;
+ GstIterator *pushed;
+ GType type;
+ GMutex *lock;
+ guint32 cookie;
+ guint32 *master_cookie;
+ gpointer _gst_reserved[4];
+};
+GstIterator* gst_iterator_new (guint size,
+ GType type,
+ GMutex *lock,
+ guint32 *master_cookie,
+ GstIteratorNextFunction next,
+ GstIteratorItemFunction item,
+ GstIteratorResyncFunction resync,
+ GstIteratorFreeFunction free);
+GstIterator* gst_iterator_new_list (GType type,
+ GMutex *lock,
+ guint32 *master_cookie,
+ GList **list,
+ gpointer owner,
+ GstIteratorItemFunction item,
+ GstIteratorDisposeFunction free);
+GstIteratorResult gst_iterator_next (GstIterator *it, gpointer *elem);
+void gst_iterator_resync (GstIterator *it);
+void gst_iterator_free (GstIterator *it);
+void gst_iterator_push (GstIterator *it, GstIterator *other);
+GstIterator* gst_iterator_filter (GstIterator *it, GCompareFunc func,
+ gpointer user_data);
+GstIteratorResult gst_iterator_fold (GstIterator *it,
+ GstIteratorFoldFunction func,
+ GValue *ret, gpointer user_data);
+GstIteratorResult gst_iterator_foreach (GstIterator *it,
+ GFunc func, gpointer user_data);
+gpointer gst_iterator_find_custom (GstIterator *it, GCompareFunc func,
+ gpointer user_data);
+typedef enum {
+ GST_FORMAT_UNDEFINED = 0,
+ GST_FORMAT_DEFAULT = 1,
+ GST_FORMAT_BYTES = 2,
+ GST_FORMAT_TIME = 3,
+ GST_FORMAT_BUFFERS = 4,
+ GST_FORMAT_PERCENT = 5
+} GstFormat;
+typedef struct _GstFormatDefinition GstFormatDefinition;
+struct _GstFormatDefinition
+{
+ GstFormat value;
+ gchar *nick;
+ gchar *description;
+ GQuark quark;
+};
+const gchar* gst_format_get_name (GstFormat format);
+GQuark gst_format_to_quark (GstFormat format);
+GstFormat gst_format_register (const gchar *nick,
+ const gchar *description);
+GstFormat gst_format_get_by_nick (const gchar *nick);
+gboolean gst_formats_contains (const GstFormat *formats, GstFormat format);
+const GstFormatDefinition*
+ gst_format_get_details (GstFormat format);
+GstIterator* gst_format_iterate_definitions (void);
+typedef enum {
+ GST_TAG_MERGE_UNDEFINED,
+ GST_TAG_MERGE_REPLACE_ALL,
+ GST_TAG_MERGE_REPLACE,
+ GST_TAG_MERGE_APPEND,
+ GST_TAG_MERGE_PREPEND,
+ GST_TAG_MERGE_KEEP,
+ GST_TAG_MERGE_KEEP_ALL,
+ GST_TAG_MERGE_COUNT
+} GstTagMergeMode;
+typedef enum {
+ GST_TAG_FLAG_UNDEFINED,
+ GST_TAG_FLAG_META,
+ GST_TAG_FLAG_ENCODED,
+ GST_TAG_FLAG_DECODED,
+ GST_TAG_FLAG_COUNT
+} GstTagFlag;
+typedef GstStructure GstTagList;
+typedef void (*GstTagForeachFunc) (const GstTagList * list,
+ const gchar * tag,
+ gpointer user_data);
+typedef void (* GstTagMergeFunc) (GValue *dest, const GValue *src);
+GType gst_tag_list_get_type (void);
+void gst_tag_register (const gchar * name,
+ GstTagFlag flag,
+ GType type,
+ const gchar * nick,
+ const gchar * blurb,
+ GstTagMergeFunc func);
+void gst_tag_merge_use_first (GValue * dest, const GValue * src);
+void gst_tag_merge_strings_with_comma (GValue * dest, const GValue * src);
+gboolean gst_tag_exists (const gchar * tag);
+GType gst_tag_get_type (const gchar * tag);
+const gchar * gst_tag_get_nick (const gchar * tag);
+const gchar * gst_tag_get_description (const gchar * tag);
+GstTagFlag gst_tag_get_flag (const gchar * tag);
+gboolean gst_tag_is_fixed (const gchar * tag);
+GstTagList * gst_tag_list_new (void);
+GstTagList * gst_tag_list_new_full (const gchar * tag, ...);
+GstTagList * gst_tag_list_new_full_valist (va_list var_args);
+gboolean gst_is_tag_list (gconstpointer p);
+GstTagList * gst_tag_list_copy (const GstTagList * list);
+gboolean gst_tag_list_is_empty (const GstTagList * list);
+void gst_tag_list_insert (GstTagList * into,
+ const GstTagList * from,
+ GstTagMergeMode mode);
+GstTagList * gst_tag_list_merge (const GstTagList * list1,
+ const GstTagList * list2,
+ GstTagMergeMode mode);
+void gst_tag_list_free (GstTagList * list);
+guint gst_tag_list_get_tag_size (const GstTagList * list,
+ const gchar * tag);
+void gst_tag_list_add (GstTagList * list,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ ...) __attribute__((__sentinel__));
+void gst_tag_list_add_values (GstTagList * list,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ ...) __attribute__((__sentinel__));
+void gst_tag_list_add_valist (GstTagList * list,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ va_list var_args);
+void gst_tag_list_add_valist_values (GstTagList * list,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ va_list var_args);
+void gst_tag_list_add_value (GstTagList * list,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ const GValue * value);
+void gst_tag_list_remove_tag (GstTagList * list,
+ const gchar * tag);
+void gst_tag_list_foreach (const GstTagList * list,
+ GstTagForeachFunc func,
+ gpointer user_data);
+const GValue *
+ gst_tag_list_get_value_index (const GstTagList * list,
+ const gchar * tag,
+ guint index);
+gboolean gst_tag_list_copy_value (GValue * dest,
+ const GstTagList * list,
+ const gchar * tag);
+gboolean gst_tag_list_get_char (const GstTagList * list,
+ const gchar * tag,
+ gchar * value);
+gboolean gst_tag_list_get_char_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gchar * value);
+gboolean gst_tag_list_get_uchar (const GstTagList * list,
+ const gchar * tag,
+ guchar * value);
+gboolean gst_tag_list_get_uchar_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ guchar * value);
+gboolean gst_tag_list_get_boolean (const GstTagList * list,
+ const gchar * tag,
+ gboolean * value);
+gboolean gst_tag_list_get_boolean_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gboolean * value);
+gboolean gst_tag_list_get_int (const GstTagList * list,
+ const gchar * tag,
+ gint * value);
+gboolean gst_tag_list_get_int_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gint * value);
+gboolean gst_tag_list_get_uint (const GstTagList * list,
+ const gchar * tag,
+ guint * value);
+gboolean gst_tag_list_get_uint_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ guint * value);
+gboolean gst_tag_list_get_long (const GstTagList * list,
+ const gchar * tag,
+ glong * value);
+gboolean gst_tag_list_get_long_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ glong * value);
+gboolean gst_tag_list_get_ulong (const GstTagList * list,
+ const gchar * tag,
+ gulong * value);
+gboolean gst_tag_list_get_ulong_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gulong * value);
+gboolean gst_tag_list_get_int64 (const GstTagList * list,
+ const gchar * tag,
+ gint64 * value);
+gboolean gst_tag_list_get_int64_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gint64 * value);
+gboolean gst_tag_list_get_uint64 (const GstTagList * list,
+ const gchar * tag,
+ guint64 * value);
+gboolean gst_tag_list_get_uint64_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ guint64 * value);
+gboolean gst_tag_list_get_float (const GstTagList * list,
+ const gchar * tag,
+ gfloat * value);
+gboolean gst_tag_list_get_float_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gfloat * value);
+gboolean gst_tag_list_get_double (const GstTagList * list,
+ const gchar * tag,
+ gdouble * value);
+gboolean gst_tag_list_get_double_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gdouble * value);
+gboolean gst_tag_list_get_string (const GstTagList * list,
+ const gchar * tag,
+ gchar ** value);
+gboolean gst_tag_list_get_string_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gchar ** value);
+gboolean gst_tag_list_get_pointer (const GstTagList * list,
+ const gchar * tag,
+ gpointer * value);
+gboolean gst_tag_list_get_pointer_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ gpointer * value);
+gboolean gst_tag_list_get_date (const GstTagList * list,
+ const gchar * tag,
+ GDate ** value);
+gboolean gst_tag_list_get_date_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ GDate ** value);
+gboolean gst_tag_list_get_buffer (const GstTagList * list,
+ const gchar * tag,
+ GstBuffer ** value);
+gboolean gst_tag_list_get_buffer_index (const GstTagList * list,
+ const gchar * tag,
+ guint index,
+ GstBuffer ** value);
+typedef enum {
+ GST_EVENT_TYPE_UPSTREAM = 1 << 0,
+ GST_EVENT_TYPE_DOWNSTREAM = 1 << 1,
+ GST_EVENT_TYPE_SERIALIZED = 1 << 2
+} GstEventTypeFlags;
+typedef enum {
+ GST_EVENT_UNKNOWN = (((0) << 4) | (0)),
+ GST_EVENT_FLUSH_START = (((1) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM))),
+ GST_EVENT_FLUSH_STOP = (((2) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM) | GST_EVENT_TYPE_SERIALIZED)),
+ GST_EVENT_EOS = (((5) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
+ GST_EVENT_NEWSEGMENT = (((6) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
+ GST_EVENT_TAG = (((7) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
+ GST_EVENT_BUFFERSIZE = (((8) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
+ GST_EVENT_QOS = (((15) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
+ GST_EVENT_SEEK = (((16) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
+ GST_EVENT_NAVIGATION = (((17) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
+ GST_EVENT_LATENCY = (((18) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
+ GST_EVENT_STEP = (((19) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
+ GST_EVENT_CUSTOM_UPSTREAM = (((32) << 4) | (GST_EVENT_TYPE_UPSTREAM)),
+ GST_EVENT_CUSTOM_DOWNSTREAM = (((32) << 4) | (GST_EVENT_TYPE_DOWNSTREAM | GST_EVENT_TYPE_SERIALIZED)),
+ GST_EVENT_CUSTOM_DOWNSTREAM_OOB = (((32) << 4) | (GST_EVENT_TYPE_DOWNSTREAM)),
+ GST_EVENT_CUSTOM_BOTH = (((32) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM) | GST_EVENT_TYPE_SERIALIZED)),
+ GST_EVENT_CUSTOM_BOTH_OOB = (((32) << 4) | ((GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM)))
+} GstEventType;
+typedef struct _GstEvent GstEvent;
+typedef struct _GstEventClass GstEventClass;
+typedef enum {
+ GST_SEEK_TYPE_NONE = 0,
+ GST_SEEK_TYPE_CUR = 1,
+ GST_SEEK_TYPE_SET = 2,
+ GST_SEEK_TYPE_END = 3
+} GstSeekType;
+typedef enum {
+ GST_SEEK_FLAG_NONE = 0,
+ GST_SEEK_FLAG_FLUSH = (1 << 0),
+ GST_SEEK_FLAG_ACCURATE = (1 << 1),
+ GST_SEEK_FLAG_KEY_UNIT = (1 << 2),
+ GST_SEEK_FLAG_SEGMENT = (1 << 3),
+ GST_SEEK_FLAG_SKIP = (1 << 4)
+} GstSeekFlags;
+struct _GstEvent {
+ GstMiniObject mini_object;
+ GstEventType type;
+ guint64 timestamp;
+ GstObject *src;
+ GstStructure *structure;
+ union {
+ guint32 seqnum;
+ gpointer _gst_reserved;
+ } abidata;
+};
+struct _GstEventClass {
+ GstMiniObjectClass mini_object_class;
+ gpointer _gst_reserved[4];
+};
+const gchar* gst_event_type_get_name (GstEventType type);
+GQuark gst_event_type_to_quark (GstEventType type);
+GstEventTypeFlags
+ gst_event_type_get_flags (GstEventType type);
+GType gst_event_get_type (void);
+static inline GstEvent *
+gst_event_ref (GstEvent * event)
+{
+ return (GstEvent *) gst_mini_object_ref (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((event)), ((gst_mini_object_get_type())))))));
+}
+static inline void
+gst_event_unref (GstEvent * event)
+{
+ gst_mini_object_unref (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((event)), ((gst_mini_object_get_type())))))));
+}
+static inline GstEvent *
+gst_event_copy (const GstEvent * event)
+{
+ return ((GstEvent *)(gst_mini_object_copy (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((event)), ((gst_mini_object_get_type())))))))));
+}
+GstEvent* gst_event_new_custom (GstEventType type, GstStructure *structure);
+const GstStructure *
+ gst_event_get_structure (GstEvent *event);
+gboolean gst_event_has_name (GstEvent *event, const gchar *name);
+guint32 gst_event_get_seqnum (GstEvent *event);
+void gst_event_set_seqnum (GstEvent *event, guint32 seqnum);
+GstEvent * gst_event_new_flush_start (void);
+GstEvent * gst_event_new_flush_stop (void);
+GstEvent * gst_event_new_eos (void);
+GstEvent* gst_event_new_new_segment (gboolean update, gdouble rate,
+ GstFormat format,
+ gint64 start, gint64 stop,
+ gint64 position);
+GstEvent* gst_event_new_new_segment_full (gboolean update, gdouble rate,
+ gdouble applied_rate,
+ GstFormat format,
+ gint64 start, gint64 stop,
+ gint64 position);
+void gst_event_parse_new_segment (GstEvent *event,
+ gboolean *update,
+ gdouble *rate,
+ GstFormat *format,
+ gint64 *start, gint64 *stop,
+ gint64 *position);
+void gst_event_parse_new_segment_full (GstEvent *event,
+ gboolean *update,
+ gdouble *rate,
+ gdouble *applied_rate,
+ GstFormat *format,
+ gint64 *start, gint64 *stop,
+ gint64 *position);
+GstEvent* gst_event_new_tag (GstTagList *taglist);
+void gst_event_parse_tag (GstEvent *event, GstTagList **taglist);
+GstEvent * gst_event_new_buffer_size (GstFormat format, gint64 minsize, gint64 maxsize,
+ gboolean async);
+void gst_event_parse_buffer_size (GstEvent *event, GstFormat *format, gint64 *minsize,
+ gint64 *maxsize, gboolean *async);
+GstEvent* gst_event_new_qos (gdouble proportion, GstClockTimeDiff diff,
+ GstClockTime timestamp);
+void gst_event_parse_qos (GstEvent *event, gdouble *proportion, GstClockTimeDiff *diff,
+ GstClockTime *timestamp);
+GstEvent* gst_event_new_seek (gdouble rate, GstFormat format, GstSeekFlags flags,
+ GstSeekType start_type, gint64 start,
+ GstSeekType stop_type, gint64 stop);
+void gst_event_parse_seek (GstEvent *event, gdouble *rate, GstFormat *format,
+ GstSeekFlags *flags,
+ GstSeekType *start_type, gint64 *start,
+ GstSeekType *stop_type, gint64 *stop);
+GstEvent* gst_event_new_navigation (GstStructure *structure);
+GstEvent* gst_event_new_latency (GstClockTime latency);
+void gst_event_parse_latency (GstEvent *event, GstClockTime *latency);
+GstEvent* gst_event_new_step (GstFormat format, guint64 amount, gdouble rate,
+ gboolean flush, gboolean intermediate);
+void gst_event_parse_step (GstEvent *event, GstFormat *format, guint64 *amount,
+ gdouble *rate, gboolean *flush, gboolean *intermediate);
+typedef enum {
+ GST_QUERY_NONE = 0,
+ GST_QUERY_POSITION,
+ GST_QUERY_DURATION,
+ GST_QUERY_LATENCY,
+ GST_QUERY_JITTER,
+ GST_QUERY_RATE,
+ GST_QUERY_SEEKING,
+ GST_QUERY_SEGMENT,
+ GST_QUERY_CONVERT,
+ GST_QUERY_FORMATS,
+ GST_QUERY_BUFFERING,
+ GST_QUERY_CUSTOM,
+ GST_QUERY_URI
+} GstQueryType;
+typedef enum {
+ GST_BUFFERING_STREAM,
+ GST_BUFFERING_DOWNLOAD,
+ GST_BUFFERING_TIMESHIFT,
+ GST_BUFFERING_LIVE
+} GstBufferingMode;
+typedef struct _GstQueryTypeDefinition GstQueryTypeDefinition;
+typedef struct _GstQuery GstQuery;
+typedef struct _GstQueryClass GstQueryClass;
+struct _GstQueryTypeDefinition
+{
+ GstQueryType value;
+ gchar *nick;
+ gchar *description;
+ GQuark quark;
+};
+struct _GstQuery
+{
+ GstMiniObject mini_object;
+ GstQueryType type;
+ GstStructure *structure;
+ gpointer _gst_reserved;
+};
+struct _GstQueryClass {
+ GstMiniObjectClass mini_object_class;
+ gpointer _gst_reserved[4];
+};
+const gchar* gst_query_type_get_name (GstQueryType query);
+GQuark gst_query_type_to_quark (GstQueryType query);
+GType gst_query_get_type (void);
+GstQueryType gst_query_type_register (const gchar *nick,
+ const gchar *description);
+GstQueryType gst_query_type_get_by_nick (const gchar *nick);
+gboolean gst_query_types_contains (const GstQueryType *types,
+ GstQueryType type);
+const GstQueryTypeDefinition*
+ gst_query_type_get_details (GstQueryType type);
+GstIterator* gst_query_type_iterate_definitions (void);
+static inline GstQuery *
+gst_query_ref (GstQuery * q)
+{
+ return ((((GstQuery*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_ref (((GstMiniObject*)(q))))), ((gst_query_get_type()))))));
+}
+static inline void
+gst_query_unref (GstQuery * q)
+{
+ gst_mini_object_unref (((GstMiniObject*)(q)));
+}
+static inline GstQuery *
+gst_query_copy (const GstQuery * q)
+{
+ return ((((GstQuery*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(q))))), ((gst_query_get_type()))))));
+}
+GstQuery* gst_query_new_position (GstFormat format);
+void gst_query_set_position (GstQuery *query, GstFormat format, gint64 cur);
+void gst_query_parse_position (GstQuery *query, GstFormat *format, gint64 *cur);
+GstQuery* gst_query_new_duration (GstFormat format);
+void gst_query_set_duration (GstQuery *query, GstFormat format, gint64 duration);
+void gst_query_parse_duration (GstQuery *query, GstFormat *format, gint64 *duration);
+GstQuery* gst_query_new_latency (void);
+void gst_query_set_latency (GstQuery *query, gboolean live, GstClockTime min_latency,
+ GstClockTime max_latency);
+void gst_query_parse_latency (GstQuery *query, gboolean *live, GstClockTime *min_latency,
+ GstClockTime *max_latency);
+GstQuery* gst_query_new_convert (GstFormat src_format, gint64 value, GstFormat dest_format);
+void gst_query_set_convert (GstQuery *query, GstFormat src_format, gint64 src_value,
+ GstFormat dest_format, gint64 dest_value);
+void gst_query_parse_convert (GstQuery *query, GstFormat *src_format, gint64 *src_value,
+ GstFormat *dest_format, gint64 *dest_value);
+GstQuery* gst_query_new_segment (GstFormat format);
+void gst_query_set_segment (GstQuery *query, gdouble rate, GstFormat format,
+ gint64 start_value, gint64 stop_value);
+void gst_query_parse_segment (GstQuery *query, gdouble *rate, GstFormat *format,
+ gint64 *start_value, gint64 *stop_value);
+GstQuery * gst_query_new_application (GstQueryType type,
+ GstStructure *structure);
+GstStructure * gst_query_get_structure (GstQuery *query);
+GstQuery* gst_query_new_seeking (GstFormat format);
+void gst_query_set_seeking (GstQuery *query, GstFormat format,
+ gboolean seekable,
+ gint64 segment_start,
+ gint64 segment_end);
+void gst_query_parse_seeking (GstQuery *query, GstFormat *format,
+ gboolean *seekable,
+ gint64 *segment_start,
+ gint64 *segment_end);
+GstQuery* gst_query_new_formats (void);
+void gst_query_set_formats (GstQuery *query, gint n_formats, ...);
+void gst_query_set_formatsv (GstQuery *query, gint n_formats, GstFormat *formats);
+void gst_query_parse_formats_length (GstQuery *query, guint *n_formats);
+void gst_query_parse_formats_nth (GstQuery *query, guint nth, GstFormat *format);
+GstQuery* gst_query_new_buffering (GstFormat format);
+void gst_query_set_buffering_percent (GstQuery *query, gboolean busy, gint percent);
+void gst_query_parse_buffering_percent (GstQuery *query, gboolean *busy, gint *percent);
+void gst_query_set_buffering_stats (GstQuery *query, GstBufferingMode mode,
+ gint avg_in, gint avg_out,
+ gint64 buffering_left);
+void gst_query_parse_buffering_stats (GstQuery *query, GstBufferingMode *mode,
+ gint *avg_in, gint *avg_out,
+ gint64 *buffering_left);
+void gst_query_set_buffering_range (GstQuery *query, GstFormat format,
+ gint64 start, gint64 stop,
+ gint64 estimated_total);
+void gst_query_parse_buffering_range (GstQuery *query, GstFormat *format,
+ gint64 *start, gint64 *stop,
+ gint64 *estimated_total);
+GstQuery * gst_query_new_uri (void);
+void gst_query_parse_uri (GstQuery *query, gchar **uri);
+void gst_query_set_uri (GstQuery *query, const gchar *uri);
+typedef struct _GstTaskPool GstTaskPool;
+typedef struct _GstTaskPoolClass GstTaskPoolClass;
+typedef void (*GstTaskPoolFunction) (void *data);
+struct _GstTaskPool {
+ GstObject object;
+ GThreadPool *pool;
+ gpointer _gst_reserved[4];
+};
+struct _GstTaskPoolClass {
+ GstObjectClass parent_class;
+ void (*prepare) (GstTaskPool *pool, GError **error);
+ void (*cleanup) (GstTaskPool *pool);
+ gpointer (*push) (GstTaskPool *pool, GstTaskPoolFunction func,
+ gpointer user_data, GError **error);
+ void (*join) (GstTaskPool *pool, gpointer id);
+ gpointer _gst_reserved[4];
+};
+GType gst_task_pool_get_type (void);
+GstTaskPool * gst_task_pool_new (void);
+void gst_task_pool_prepare (GstTaskPool *pool, GError **error);
+gpointer gst_task_pool_push (GstTaskPool *pool, GstTaskPoolFunction func,
+ gpointer user_data, GError **error);
+void gst_task_pool_join (GstTaskPool *pool, gpointer id);
+void gst_task_pool_cleanup (GstTaskPool *pool);
+typedef void (*GstTaskFunction) (void *data);
+typedef struct _GstTask GstTask;
+typedef struct _GstTaskClass GstTaskClass;
+typedef struct _GstTaskPrivate GstTaskPrivate;
+typedef enum {
+ GST_TASK_STARTED,
+ GST_TASK_STOPPED,
+ GST_TASK_PAUSED
+} GstTaskState;
+typedef struct {
+ void (*enter_thread) (GstTask *task, GThread *thread, gpointer user_data);
+ void (*leave_thread) (GstTask *task, GThread *thread, gpointer user_data);
+ gpointer _gst_reserved[4];
+} GstTaskThreadCallbacks;
+struct _GstTask {
+ GstObject object;
+ GstTaskState state;
+ GCond *cond;
+ GStaticRecMutex *lock;
+ GstTaskFunction func;
+ gpointer data;
+ gboolean running;
+ union {
+ struct {
+ GThread *thread;
+ } ABI;
+ gpointer _gst_reserved[4 - 1];
+ } abidata;
+ GstTaskPrivate *priv;
+};
+struct _GstTaskClass {
+ GstObjectClass parent_class;
+ GstTaskPool *pool;
+ gpointer _gst_reserved[4];
+};
+void gst_task_cleanup_all (void);
+GType gst_task_get_type (void);
+GstTask* gst_task_create (GstTaskFunction func, gpointer data);
+void gst_task_set_lock (GstTask *task, GStaticRecMutex *mutex);
+void gst_task_set_priority (GstTask *task, GThreadPriority priority);
+GstTaskPool * gst_task_get_pool (GstTask *task);
+void gst_task_set_pool (GstTask *task, GstTaskPool *pool);
+void gst_task_set_thread_callbacks (GstTask *task,
+ GstTaskThreadCallbacks *callbacks,
+ gpointer user_data,
+ GDestroyNotify notify);
+GstTaskState gst_task_get_state (GstTask *task);
+gboolean gst_task_set_state (GstTask *task, GstTaskState state);
+gboolean gst_task_start (GstTask *task);
+gboolean gst_task_stop (GstTask *task);
+gboolean gst_task_pause (GstTask *task);
+gboolean gst_task_join (GstTask *task);
+typedef struct _GstPad GstPad;
+typedef struct _GstPadPrivate GstPadPrivate;
+typedef struct _GstPadClass GstPadClass;
+typedef enum {
+ GST_PAD_LINK_OK = 0,
+ GST_PAD_LINK_WRONG_HIERARCHY = -1,
+ GST_PAD_LINK_WAS_LINKED = -2,
+ GST_PAD_LINK_WRONG_DIRECTION = -3,
+ GST_PAD_LINK_NOFORMAT = -4,
+ GST_PAD_LINK_NOSCHED = -5,
+ GST_PAD_LINK_REFUSED = -6
+} GstPadLinkReturn;
+typedef enum {
+ GST_FLOW_CUSTOM_SUCCESS = 100,
+ GST_FLOW_RESEND = 1,
+ GST_FLOW_OK = 0,
+ GST_FLOW_NOT_LINKED = -1,
+ GST_FLOW_WRONG_STATE = -2,
+ GST_FLOW_UNEXPECTED = -3,
+ GST_FLOW_NOT_NEGOTIATED = -4,
+ GST_FLOW_ERROR = -5,
+ GST_FLOW_NOT_SUPPORTED = -6,
+ GST_FLOW_CUSTOM_ERROR = -100
+} GstFlowReturn;
+const gchar* gst_flow_get_name (GstFlowReturn ret);
+GQuark gst_flow_to_quark (GstFlowReturn ret);
+typedef enum {
+ GST_ACTIVATE_NONE,
+ GST_ACTIVATE_PUSH,
+ GST_ACTIVATE_PULL
+} GstActivateMode;
+typedef gboolean (*GstPadActivateFunction) (GstPad *pad);
+typedef gboolean (*GstPadActivateModeFunction) (GstPad *pad, gboolean active);
+typedef GstFlowReturn (*GstPadChainFunction) (GstPad *pad, GstBuffer *buffer);
+typedef GstFlowReturn (*GstPadChainListFunction) (GstPad *pad, GstBufferList *list);
+typedef GstFlowReturn (*GstPadGetRangeFunction) (GstPad *pad, guint64 offset,
+ guint length, GstBuffer **buffer);
+typedef gboolean (*GstPadEventFunction) (GstPad *pad, GstEvent *event);
+typedef gboolean (*GstPadCheckGetRangeFunction) (GstPad *pad);
+typedef GList* (*GstPadIntLinkFunction) (GstPad *pad);
+typedef GstIterator* (*GstPadIterIntLinkFunction) (GstPad *pad);
+typedef const GstQueryType* (*GstPadQueryTypeFunction) (GstPad *pad);
+typedef gboolean (*GstPadQueryFunction) (GstPad *pad, GstQuery *query);
+typedef GstPadLinkReturn (*GstPadLinkFunction) (GstPad *pad, GstPad *peer);
+typedef void (*GstPadUnlinkFunction) (GstPad *pad);
+typedef GstCaps* (*GstPadGetCapsFunction) (GstPad *pad);
+typedef gboolean (*GstPadSetCapsFunction) (GstPad *pad, GstCaps *caps);
+typedef gboolean (*GstPadAcceptCapsFunction) (GstPad *pad, GstCaps *caps);
+typedef void (*GstPadFixateCapsFunction) (GstPad *pad, GstCaps *caps);
+typedef GstFlowReturn (*GstPadBufferAllocFunction) (GstPad *pad, guint64 offset, guint size,
+ GstCaps *caps, GstBuffer **buf);
+typedef gboolean (*GstPadDispatcherFunction) (GstPad *pad, gpointer data);
+typedef void (*GstPadBlockCallback) (GstPad *pad, gboolean blocked, gpointer user_data);
+typedef enum {
+ GST_PAD_UNKNOWN,
+ GST_PAD_SRC,
+ GST_PAD_SINK
+} GstPadDirection;
+typedef enum {
+ GST_PAD_BLOCKED = (GST_OBJECT_FLAG_LAST << 0),
+ GST_PAD_FLUSHING = (GST_OBJECT_FLAG_LAST << 1),
+ GST_PAD_IN_GETCAPS = (GST_OBJECT_FLAG_LAST << 2),
+ GST_PAD_IN_SETCAPS = (GST_OBJECT_FLAG_LAST << 3),
+ GST_PAD_BLOCKING = (GST_OBJECT_FLAG_LAST << 4),
+ GST_PAD_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 8)
+} GstPadFlags;
+typedef struct _GstPadTemplate GstPadTemplate;
+struct _GstPad {
+ GstObject object;
+ gpointer element_private;
+ GstPadTemplate *padtemplate;
+ GstPadDirection direction;
+ GStaticRecMutex *stream_rec_lock;
+ GstTask *task;
+ GMutex *preroll_lock;
+ GCond *preroll_cond;
+ GCond *block_cond;
+ GstPadBlockCallback block_callback;
+ gpointer block_data;
+ GstCaps *caps;
+ GstPadGetCapsFunction getcapsfunc;
+ GstPadSetCapsFunction setcapsfunc;
+ GstPadAcceptCapsFunction acceptcapsfunc;
+ GstPadFixateCapsFunction fixatecapsfunc;
+ GstPadActivateFunction activatefunc;
+ GstPadActivateModeFunction activatepushfunc;
+ GstPadActivateModeFunction activatepullfunc;
+ GstPadLinkFunction linkfunc;
+ GstPadUnlinkFunction unlinkfunc;
+ GstPad *peer;
+ gpointer sched_private;
+ GstPadChainFunction chainfunc;
+ GstPadCheckGetRangeFunction checkgetrangefunc;
+ GstPadGetRangeFunction getrangefunc;
+ GstPadEventFunction eventfunc;
+ GstActivateMode mode;
+ GstPadQueryTypeFunction querytypefunc;
+ GstPadQueryFunction queryfunc;
+ GstPadIntLinkFunction intlinkfunc;
+ GstPadBufferAllocFunction bufferallocfunc;
+ gint do_buffer_signals;
+ gint do_event_signals;
+ GstPadIterIntLinkFunction iterintlinkfunc;
+ GDestroyNotify block_destroy_data;
+ union {
+ struct {
+ gboolean block_callback_called;
+ GstPadPrivate *priv;
+ } ABI;
+ gpointer _gst_reserved[4 - 2];
+ } abidata;
+};
+struct _GstPadClass {
+ GstObjectClass parent_class;
+ void (*linked) (GstPad *pad, GstPad *peer);
+ void (*unlinked) (GstPad *pad, GstPad *peer);
+ void (*request_link) (GstPad *pad);
+ gboolean (*have_data) (GstPad *pad, GstMiniObject *data);
+ gpointer _gst_reserved[4];
+};
+typedef struct _GstPadTemplateClass GstPadTemplateClass;
+typedef struct _GstStaticPadTemplate GstStaticPadTemplate;
+typedef enum {
+ GST_PAD_ALWAYS,
+ GST_PAD_SOMETIMES,
+ GST_PAD_REQUEST
+} GstPadPresence;
+typedef enum {
+ GST_PAD_TEMPLATE_FIXED = (GST_OBJECT_FLAG_LAST << 0),
+ GST_PAD_TEMPLATE_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 4)
+} GstPadTemplateFlags;
+struct _GstPadTemplate {
+ GstObject object;
+ gchar *name_template;
+ GstPadDirection direction;
+ GstPadPresence presence;
+ GstCaps *caps;
+ gpointer _gst_reserved[4];
+};
+struct _GstPadTemplateClass {
+ GstObjectClass parent_class;
+ void (*pad_created) (GstPadTemplate *templ, GstPad *pad);
+ gpointer _gst_reserved[4];
+};
+struct _GstStaticPadTemplate {
+ const gchar *name_template;
+ GstPadDirection direction;
+ GstPadPresence presence;
+ GstStaticCaps static_caps;
+};
+GType gst_pad_template_get_type (void);
+GType gst_static_pad_template_get_type (void);
+GstPadTemplate* gst_pad_template_new (const gchar *name_template,
+ GstPadDirection direction, GstPadPresence presence,
+ GstCaps *caps);
+GstPadTemplate * gst_static_pad_template_get (GstStaticPadTemplate *pad_template);
+GstCaps* gst_static_pad_template_get_caps (GstStaticPadTemplate *templ);
+GstCaps* gst_pad_template_get_caps (GstPadTemplate *templ);
+void gst_pad_template_pad_created (GstPadTemplate * templ, GstPad * pad);
+GType gst_pad_get_type (void);
+GstPad* gst_pad_new (const gchar *name, GstPadDirection direction);
+GstPad* gst_pad_new_from_template (GstPadTemplate *templ, const gchar *name);
+GstPad* gst_pad_new_from_static_template (GstStaticPadTemplate *templ, const gchar *name);
+GstPadDirection gst_pad_get_direction (GstPad *pad);
+gboolean gst_pad_set_active (GstPad *pad, gboolean active);
+gboolean gst_pad_is_active (GstPad *pad);
+gboolean gst_pad_activate_pull (GstPad *pad, gboolean active);
+gboolean gst_pad_activate_push (GstPad *pad, gboolean active);
+gboolean gst_pad_set_blocked (GstPad *pad, gboolean blocked);
+gboolean gst_pad_set_blocked_async (GstPad *pad, gboolean blocked,
+ GstPadBlockCallback callback, gpointer user_data);
+gboolean gst_pad_set_blocked_async_full (GstPad *pad, gboolean blocked,
+ GstPadBlockCallback callback, gpointer user_data,
+ GDestroyNotify destroy_data);
+gboolean gst_pad_is_blocked (GstPad *pad);
+gboolean gst_pad_is_blocking (GstPad *pad);
+void gst_pad_set_element_private (GstPad *pad, gpointer priv);
+gpointer gst_pad_get_element_private (GstPad *pad);
+GstPadTemplate* gst_pad_get_pad_template (GstPad *pad);
+void gst_pad_set_bufferalloc_function (GstPad *pad, GstPadBufferAllocFunction bufalloc);
+GstFlowReturn gst_pad_alloc_buffer (GstPad *pad, guint64 offset, gint size,
+ GstCaps *caps, GstBuffer **buf);
+GstFlowReturn gst_pad_alloc_buffer_and_set_caps (GstPad *pad, guint64 offset, gint size,
+ GstCaps *caps, GstBuffer **buf);
+void gst_pad_set_activate_function (GstPad *pad, GstPadActivateFunction activate);
+void gst_pad_set_activatepull_function (GstPad *pad, GstPadActivateModeFunction activatepull);
+void gst_pad_set_activatepush_function (GstPad *pad, GstPadActivateModeFunction activatepush);
+void gst_pad_set_chain_function (GstPad *pad, GstPadChainFunction chain);
+void gst_pad_set_chain_list_function (GstPad *pad, GstPadChainListFunction chainlist);
+void gst_pad_set_getrange_function (GstPad *pad, GstPadGetRangeFunction get);
+void gst_pad_set_checkgetrange_function (GstPad *pad, GstPadCheckGetRangeFunction check);
+void gst_pad_set_event_function (GstPad *pad, GstPadEventFunction event);
+void gst_pad_set_link_function (GstPad *pad, GstPadLinkFunction link);
+void gst_pad_set_unlink_function (GstPad *pad, GstPadUnlinkFunction unlink);
+gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad);
+GstPadLinkReturn gst_pad_link (GstPad *srcpad, GstPad *sinkpad);
+gboolean gst_pad_unlink (GstPad *srcpad, GstPad *sinkpad);
+gboolean gst_pad_is_linked (GstPad *pad);
+GstPad* gst_pad_get_peer (GstPad *pad);
+void gst_pad_set_getcaps_function (GstPad *pad, GstPadGetCapsFunction getcaps);
+void gst_pad_set_acceptcaps_function (GstPad *pad, GstPadAcceptCapsFunction acceptcaps);
+void gst_pad_set_fixatecaps_function (GstPad *pad, GstPadFixateCapsFunction fixatecaps);
+void gst_pad_set_setcaps_function (GstPad *pad, GstPadSetCapsFunction setcaps);
+const GstCaps* gst_pad_get_pad_template_caps (GstPad *pad);
+GstCaps * gst_pad_get_caps (GstPad * pad);
+void gst_pad_fixate_caps (GstPad * pad, GstCaps *caps);
+gboolean gst_pad_accept_caps (GstPad * pad, GstCaps *caps);
+gboolean gst_pad_set_caps (GstPad * pad, GstCaps *caps);
+GstCaps * gst_pad_peer_get_caps (GstPad * pad);
+gboolean gst_pad_peer_accept_caps (GstPad * pad, GstCaps *caps);
+GstCaps * gst_pad_get_allowed_caps (GstPad * pad);
+GstCaps * gst_pad_get_negotiated_caps (GstPad * pad);
+GstFlowReturn gst_pad_push (GstPad *pad, GstBuffer *buffer);
+GstFlowReturn gst_pad_push_list (GstPad *pad, GstBufferList *list);
+gboolean gst_pad_check_pull_range (GstPad *pad);
+GstFlowReturn gst_pad_pull_range (GstPad *pad, guint64 offset, guint size,
+ GstBuffer **buffer);
+gboolean gst_pad_push_event (GstPad *pad, GstEvent *event);
+gboolean gst_pad_event_default (GstPad *pad, GstEvent *event);
+GstFlowReturn gst_pad_chain (GstPad *pad, GstBuffer *buffer);
+GstFlowReturn gst_pad_chain_list (GstPad *pad, GstBufferList *list);
+GstFlowReturn gst_pad_get_range (GstPad *pad, guint64 offset, guint size,
+ GstBuffer **buffer);
+gboolean gst_pad_send_event (GstPad *pad, GstEvent *event);
+gboolean gst_pad_start_task (GstPad *pad, GstTaskFunction func,
+ gpointer data);
+gboolean gst_pad_pause_task (GstPad *pad);
+gboolean gst_pad_stop_task (GstPad *pad);
+void gst_pad_set_internal_link_function (GstPad *pad, GstPadIntLinkFunction intlink);
+GList* gst_pad_get_internal_links (GstPad *pad);
+GList* gst_pad_get_internal_links_default (GstPad *pad);
+void gst_pad_set_iterate_internal_links_function (GstPad * pad,
+ GstPadIterIntLinkFunction iterintlink);
+GstIterator * gst_pad_iterate_internal_links (GstPad * pad);
+GstIterator * gst_pad_iterate_internal_links_default (GstPad * pad);
+void gst_pad_set_query_type_function (GstPad *pad, GstPadQueryTypeFunction type_func);
+const GstQueryType*
+ gst_pad_get_query_types (GstPad *pad);
+const GstQueryType*
+ gst_pad_get_query_types_default (GstPad *pad);
+gboolean gst_pad_query (GstPad *pad, GstQuery *query);
+gboolean gst_pad_peer_query (GstPad *pad, GstQuery *query);
+void gst_pad_set_query_function (GstPad *pad, GstPadQueryFunction query);
+gboolean gst_pad_query_default (GstPad *pad, GstQuery *query);
+gboolean gst_pad_dispatcher (GstPad *pad, GstPadDispatcherFunction dispatch,
+ gpointer data);
+void gst_pad_load_and_link (xmlNodePtr self, GstObject *parent);
+typedef struct _GstBus GstBus;
+typedef struct _GstBusPrivate GstBusPrivate;
+typedef struct _GstBusClass GstBusClass;
+typedef struct _GstMessage GstMessage;
+typedef struct _GstMessageClass GstMessageClass;
+typedef enum
+{
+ GST_MESSAGE_UNKNOWN = 0,
+ GST_MESSAGE_EOS = (1 << 0),
+ GST_MESSAGE_ERROR = (1 << 1),
+ GST_MESSAGE_WARNING = (1 << 2),
+ GST_MESSAGE_INFO = (1 << 3),
+ GST_MESSAGE_TAG = (1 << 4),
+ GST_MESSAGE_BUFFERING = (1 << 5),
+ GST_MESSAGE_STATE_CHANGED = (1 << 6),
+ GST_MESSAGE_STATE_DIRTY = (1 << 7),
+ GST_MESSAGE_STEP_DONE = (1 << 8),
+ GST_MESSAGE_CLOCK_PROVIDE = (1 << 9),
+ GST_MESSAGE_CLOCK_LOST = (1 << 10),
+ GST_MESSAGE_NEW_CLOCK = (1 << 11),
+ GST_MESSAGE_STRUCTURE_CHANGE = (1 << 12),
+ GST_MESSAGE_STREAM_STATUS = (1 << 13),
+ GST_MESSAGE_APPLICATION = (1 << 14),
+ GST_MESSAGE_ELEMENT = (1 << 15),
+ GST_MESSAGE_SEGMENT_START = (1 << 16),
+ GST_MESSAGE_SEGMENT_DONE = (1 << 17),
+ GST_MESSAGE_DURATION = (1 << 18),
+ GST_MESSAGE_LATENCY = (1 << 19),
+ GST_MESSAGE_ASYNC_START = (1 << 20),
+ GST_MESSAGE_ASYNC_DONE = (1 << 21),
+ GST_MESSAGE_REQUEST_STATE = (1 << 22),
+ GST_MESSAGE_STEP_START = (1 << 23),
+ GST_MESSAGE_ANY = ~0
+} GstMessageType;
+typedef enum {
+ GST_STRUCTURE_CHANGE_TYPE_PAD_LINK = 0,
+ GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK = 1
+} GstStructureChangeType;
+typedef enum {
+ GST_STREAM_STATUS_TYPE_CREATE = 0,
+ GST_STREAM_STATUS_TYPE_ENTER = 1,
+ GST_STREAM_STATUS_TYPE_LEAVE = 2,
+ GST_STREAM_STATUS_TYPE_DESTROY = 3,
+ GST_STREAM_STATUS_TYPE_START = 8,
+ GST_STREAM_STATUS_TYPE_PAUSE = 9,
+ GST_STREAM_STATUS_TYPE_STOP = 10
+} GstStreamStatusType;
+struct _GstMessage
+{
+ GstMiniObject mini_object;
+ GMutex *lock;
+ GCond *cond;
+ GstMessageType type;
+ guint64 timestamp;
+ GstObject *src;
+ GstStructure *structure;
+ union {
+ struct {
+ guint32 seqnum;
+ } ABI;
+ gpointer _gst_reserved[4 + 0];
+ } abidata;
+};
+struct _GstMessageClass {
+ GstMiniObjectClass mini_object_class;
+ gpointer _gst_reserved[4];
+};
+GType gst_message_get_type (void);
+const gchar* gst_message_type_get_name (GstMessageType type);
+GQuark gst_message_type_to_quark (GstMessageType type);
+static inline GstMessage *
+gst_message_ref (GstMessage * msg)
+{
+ return (GstMessage *) gst_mini_object_ref (((((GstMiniObject*) g_type_check_instance_cast ((GTypeInstance*) ((msg)), ((gst_mini_object_get_type())))))));
+}
+static inline void
+gst_message_unref (GstMessage * msg)
+{
+ gst_mini_object_unref (((GstMiniObject*)(msg)));
+}
+static inline GstMessage *
+gst_message_copy (const GstMessage * msg)
+{
+ return ((((GstMessage*) g_type_check_instance_cast ((GTypeInstance*) ((gst_mini_object_copy (((GstMiniObject*)(msg))))), ((gst_message_get_type()))))));
+}
+guint32 gst_message_get_seqnum (GstMessage *message);
+void gst_message_set_seqnum (GstMessage *message, guint32 seqnum);
+GstMessage * gst_message_new_eos (GstObject * src);
+GstMessage * gst_message_new_error (GstObject * src, GError * error, const gchar * debug);
+void gst_message_parse_error (GstMessage *message, GError **gerror, gchar **debug);
+GstMessage * gst_message_new_warning (GstObject * src, GError * error, const gchar * debug);
+void gst_message_parse_warning (GstMessage *message, GError **gerror, gchar **debug);
+GstMessage * gst_message_new_info (GstObject * src, GError * error, const gchar * debug);
+void gst_message_parse_info (GstMessage *message, GError **gerror, gchar **debug);
+GstMessage * gst_message_new_tag (GstObject * src, GstTagList * tag_list);
+GstMessage * gst_message_new_tag_full (GstObject * src, GstPad *pad, GstTagList * tag_list);
+void gst_message_parse_tag (GstMessage *message, GstTagList **tag_list);
+void gst_message_parse_tag_full (GstMessage *message, GstPad **pad, GstTagList **tag_list);
+GstMessage * gst_message_new_buffering (GstObject * src, gint percent);
+void gst_message_parse_buffering (GstMessage *message, gint *percent);
+void gst_message_set_buffering_stats (GstMessage *message, GstBufferingMode mode,
+ gint avg_in, gint avg_out,
+ gint64 buffering_left);
+void gst_message_parse_buffering_stats (GstMessage *message, GstBufferingMode *mode,
+ gint *avg_in, gint *avg_out,
+ gint64 *buffering_left);
+GstMessage * gst_message_new_state_changed (GstObject * src, GstState oldstate,
+ GstState newstate, GstState pending);
+void gst_message_parse_state_changed (GstMessage *message, GstState *oldstate,
+ GstState *newstate, GstState *pending);
+GstMessage * gst_message_new_state_dirty (GstObject * src);
+GstMessage * gst_message_new_step_done (GstObject * src, GstFormat format, guint64 amount,
+ gdouble rate, gboolean flush, gboolean intermediate,
+ guint64 duration, gboolean eos);
+void gst_message_parse_step_done (GstMessage * message, GstFormat *format, guint64 *amount,
+ gdouble *rate, gboolean *flush, gboolean *intermediate,
+ guint64 *duration, gboolean *eos);
+GstMessage * gst_message_new_clock_provide (GstObject * src, GstClock *clock, gboolean ready);
+void gst_message_parse_clock_provide (GstMessage *message, GstClock **clock,
+ gboolean *ready);
+GstMessage * gst_message_new_clock_lost (GstObject * src, GstClock *clock);
+void gst_message_parse_clock_lost (GstMessage *message, GstClock **clock);
+GstMessage * gst_message_new_new_clock (GstObject * src, GstClock *clock);
+void gst_message_parse_new_clock (GstMessage *message, GstClock **clock);
+GstMessage * gst_message_new_application (GstObject * src, GstStructure * structure);
+GstMessage * gst_message_new_element (GstObject * src, GstStructure * structure);
+GstMessage * gst_message_new_segment_start (GstObject * src, GstFormat format, gint64 position);
+void gst_message_parse_segment_start (GstMessage *message, GstFormat *format,
+ gint64 *position);
+GstMessage * gst_message_new_segment_done (GstObject * src, GstFormat format, gint64 position);
+void gst_message_parse_segment_done (GstMessage *message, GstFormat *format,
+ gint64 *position);
+GstMessage * gst_message_new_duration (GstObject * src, GstFormat format, gint64 duration);
+void gst_message_parse_duration (GstMessage *message, GstFormat *format,
+ gint64 *duration);
+GstMessage * gst_message_new_latency (GstObject * src);
+GstMessage * gst_message_new_async_start (GstObject * src, gboolean new_base_time);
+void gst_message_parse_async_start (GstMessage *message, gboolean *new_base_time);
+GstMessage * gst_message_new_async_done (GstObject * src);
+GstMessage * gst_message_new_structure_change (GstObject * src, GstStructureChangeType type,
+ GstElement *owner, gboolean busy);
+void gst_message_parse_structure_change (GstMessage *message, GstStructureChangeType *type,
+ GstElement **owner, gboolean *busy);
+GstMessage * gst_message_new_stream_status (GstObject * src, GstStreamStatusType type,
+ GstElement *owner);
+void gst_message_parse_stream_status (GstMessage *message, GstStreamStatusType *type,
+ GstElement **owner);
+void gst_message_set_stream_status_object (GstMessage *message, const GValue *object);
+const GValue * gst_message_get_stream_status_object (GstMessage *message);
+GstMessage * gst_message_new_request_state (GstObject * src, GstState state);
+void gst_message_parse_request_state (GstMessage * message, GstState *state);
+GstMessage * gst_message_new_step_start (GstObject * src, gboolean active, GstFormat format,
+ guint64 amount, gdouble rate, gboolean flush,
+ gboolean intermediate);
+void gst_message_parse_step_start (GstMessage * message, gboolean *active, GstFormat *format,
+ guint64 *amount, gdouble *rate, gboolean *flush,
+ gboolean *intermediate);
+GstMessage * gst_message_new_custom (GstMessageType type,
+ GstObject * src,
+ GstStructure * structure);
+const GstStructure * gst_message_get_structure (GstMessage *message);
+typedef enum {
+ GST_BUS_FLUSHING = (GST_OBJECT_FLAG_LAST << 0),
+ GST_BUS_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 1)
+} GstBusFlags;
+typedef enum
+{
+ GST_BUS_DROP = 0,
+ GST_BUS_PASS = 1,
+ GST_BUS_ASYNC = 2
+} GstBusSyncReply;
+typedef GstBusSyncReply (*GstBusSyncHandler) (GstBus * bus, GstMessage * message, gpointer data);
+typedef gboolean (*GstBusFunc) (GstBus * bus, GstMessage * message, gpointer data);
+struct _GstBus
+{
+ GstObject object;
+ GQueue *queue;
+ GMutex *queue_lock;
+ GstBusSyncHandler sync_handler;
+ gpointer sync_handler_data;
+ guint signal_watch_id;
+ guint num_signal_watchers;
+ GstBusPrivate *priv;
+ gpointer _gst_reserved[4 - 1];
+};
+struct _GstBusClass
+{
+ GstObjectClass parent_class;
+ void (*message) (GstBus *bus, GstMessage *message);
+ void (*sync_message) (GstBus *bus, GstMessage *message);
+ gpointer _gst_reserved[4];
+};
+GType gst_bus_get_type (void);
+GstBus* gst_bus_new (void);
+gboolean gst_bus_post (GstBus * bus, GstMessage * message);
+gboolean gst_bus_have_pending (GstBus * bus);
+GstMessage * gst_bus_peek (GstBus * bus);
+GstMessage * gst_bus_pop (GstBus * bus);
+GstMessage * gst_bus_pop_filtered (GstBus * bus, GstMessageType types);
+GstMessage * gst_bus_timed_pop (GstBus * bus, GstClockTime timeout);
+GstMessage * gst_bus_timed_pop_filtered (GstBus * bus, GstClockTime timeout, GstMessageType types);
+void gst_bus_set_flushing (GstBus * bus, gboolean flushing);
+void gst_bus_set_sync_handler (GstBus * bus, GstBusSyncHandler func,
+ gpointer data);
+GSource * gst_bus_create_watch (GstBus * bus);
+guint gst_bus_add_watch_full (GstBus * bus,
+ gint priority,
+ GstBusFunc func,
+ gpointer user_data,
+ GDestroyNotify notify);
+guint gst_bus_add_watch (GstBus * bus,
+ GstBusFunc func,
+ gpointer user_data);
+GstMessage* gst_bus_poll (GstBus *bus, GstMessageType events,
+ GstClockTimeDiff timeout);
+gboolean gst_bus_async_signal_func (GstBus *bus, GstMessage *message,
+ gpointer data);
+GstBusSyncReply gst_bus_sync_signal_handler (GstBus *bus, GstMessage *message,
+ gpointer data);
+void gst_bus_add_signal_watch (GstBus * bus);
+void gst_bus_add_signal_watch_full (GstBus * bus, gint priority);
+void gst_bus_remove_signal_watch (GstBus * bus);
+void gst_bus_enable_sync_message_emission (GstBus * bus);
+void gst_bus_disable_sync_message_emission (GstBus * bus);
+typedef struct _GstElementFactory GstElementFactory;
+typedef struct _GstElementFactoryClass GstElementFactoryClass;
+typedef enum
+{
+ G_MODULE_BIND_LAZY = 1 << 0,
+ G_MODULE_BIND_LOCAL = 1 << 1,
+ G_MODULE_BIND_MASK = 0x03
+} GModuleFlags;
+typedef struct _GModule GModule;
+typedef const gchar* (*GModuleCheckInit) (GModule *module);
+typedef void (*GModuleUnload) (GModule *module);
+gboolean g_module_supported (void) __attribute__((__const__));
+GModule* g_module_open (const gchar *file_name,
+ GModuleFlags flags);
+gboolean g_module_close (GModule *module);
+void g_module_make_resident (GModule *module);
+const gchar* g_module_error (void);
+gboolean g_module_symbol (GModule *module,
+ const gchar *symbol_name,
+ gpointer *symbol);
+const gchar* g_module_name (GModule *module);
+gchar* g_module_build_path (const gchar *directory,
+ const gchar *module_name);
+typedef struct _GstPlugin GstPlugin;
+typedef struct _GstPluginClass GstPluginClass;
+typedef struct _GstPluginPrivate GstPluginPrivate;
+typedef struct _GstPluginDesc GstPluginDesc;
+GQuark gst_plugin_error_quark (void);
+typedef enum
+{
+ GST_PLUGIN_ERROR_MODULE,
+ GST_PLUGIN_ERROR_DEPENDENCIES,
+ GST_PLUGIN_ERROR_NAME_MISMATCH
+} GstPluginError;
+typedef enum
+{
+ GST_PLUGIN_FLAG_CACHED = (1<<0)
+} GstPluginFlags;
+typedef enum {
+ GST_PLUGIN_DEPENDENCY_FLAG_NONE = 0,
+ GST_PLUGIN_DEPENDENCY_FLAG_RECURSE = (1 << 0),
+ GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY = (1 << 1),
+ GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX = (1 << 2)
+} GstPluginDependencyFlags;
+typedef gboolean (*GstPluginInitFunc) (GstPlugin *plugin);
+typedef gboolean (*GstPluginInitFullFunc) (GstPlugin *plugin, gpointer user_data);
+struct _GstPluginDesc {
+ gint major_version;
+ gint minor_version;
+ const gchar *name;
+ gchar *description;
+ GstPluginInitFunc plugin_init;
+ const gchar *version;
+ const gchar *license;
+ const gchar *source;
+ const gchar *package;
+ const gchar *origin;
+ gpointer _gst_reserved[4];
+};
+struct _GstPlugin {
+ GstObject object;
+ GstPluginDesc desc;
+ GstPluginDesc *orig_desc;
+ unsigned int flags;
+ gchar * filename;
+ gchar * basename;
+ GModule * module;
+ off_t file_size;
+ time_t file_mtime;
+ gboolean registered;
+ GstPluginPrivate *priv;
+ gpointer _gst_reserved[4 - 1];
+};
+struct _GstPluginClass {
+ GstObjectClass object_class;
+ gpointer _gst_reserved[4];
+};
+typedef gboolean (*GstPluginFilter) (GstPlugin *plugin,
+ gpointer user_data);
+GType gst_plugin_get_type (void);
+void _gst_plugin_register_static (GstPluginDesc *desc);
+gboolean gst_plugin_register_static (gint major_version,
+ gint minor_version,
+ const gchar *name,
+ gchar *description,
+ GstPluginInitFunc init_func,
+ const gchar *version,
+ const gchar *license,
+ const gchar *source,
+ const gchar *package,
+ const gchar *origin);
+gboolean gst_plugin_register_static_full (gint major_version,
+ gint minor_version,
+ const gchar *name,
+ gchar *description,
+ GstPluginInitFullFunc init_full_func,
+ const gchar *version,
+ const gchar *license,
+ const gchar *source,
+ const gchar *package,
+ const gchar *origin,
+ gpointer user_data);
+const gchar* gst_plugin_get_name (GstPlugin *plugin);
+const gchar* gst_plugin_get_description (GstPlugin *plugin);
+const gchar* gst_plugin_get_filename (GstPlugin *plugin);
+const gchar* gst_plugin_get_version (GstPlugin *plugin);
+const gchar* gst_plugin_get_license (GstPlugin *plugin);
+const gchar* gst_plugin_get_source (GstPlugin *plugin);
+const gchar* gst_plugin_get_package (GstPlugin *plugin);
+const gchar* gst_plugin_get_origin (GstPlugin *plugin);
+const GstStructure* gst_plugin_get_cache_data (GstPlugin * plugin);
+void gst_plugin_set_cache_data (GstPlugin * plugin, GstStructure *cache_data);
+GModule * gst_plugin_get_module (GstPlugin *plugin);
+gboolean gst_plugin_is_loaded (GstPlugin *plugin);
+gboolean gst_plugin_name_filter (GstPlugin *plugin, const gchar *name);
+GstPlugin * gst_plugin_load_file (const gchar *filename, GError** error);
+GstPlugin * gst_plugin_load (GstPlugin *plugin);
+GstPlugin * gst_plugin_load_by_name (const gchar *name);
+void gst_plugin_add_dependency (GstPlugin * plugin,
+ const gchar ** env_vars,
+ const gchar ** paths,
+ const gchar ** names,
+ GstPluginDependencyFlags flags);
+void gst_plugin_add_dependency_simple (GstPlugin * plugin,
+ const gchar * env_vars,
+ const gchar * paths,
+ const gchar * names,
+ GstPluginDependencyFlags flags);
+void gst_plugin_list_free (GList *list);
+typedef struct _GstPluginFeature GstPluginFeature;
+typedef struct _GstPluginFeatureClass GstPluginFeatureClass;
+typedef enum {
+ GST_RANK_NONE = 0,
+ GST_RANK_MARGINAL = 64,
+ GST_RANK_SECONDARY = 128,
+ GST_RANK_PRIMARY = 256
+} GstRank;
+struct _GstPluginFeature {
+ GstObject object;
+ gboolean loaded;
+ gchar *name;
+ guint rank;
+ const gchar *plugin_name;
+ gpointer _gst_reserved[4];
+};
+struct _GstPluginFeatureClass {
+ GstObjectClass parent_class;
+ gpointer _gst_reserved[4];
+};
+typedef struct {
+ const gchar *name;
+ GType type;
+} GstTypeNameData;
+typedef gboolean (*GstPluginFeatureFilter) (GstPluginFeature *feature,
+ gpointer user_data);
+GType gst_plugin_feature_get_type (void);
+GstPluginFeature *
+ gst_plugin_feature_load (GstPluginFeature *feature);
+gboolean gst_plugin_feature_type_name_filter (GstPluginFeature *feature,
+ GstTypeNameData *data);
+void gst_plugin_feature_set_rank (GstPluginFeature *feature, guint rank);
+void gst_plugin_feature_set_name (GstPluginFeature *feature, const gchar *name);
+guint gst_plugin_feature_get_rank (GstPluginFeature *feature);
+const gchar *gst_plugin_feature_get_name (GstPluginFeature *feature);
+void gst_plugin_feature_list_free (GList *list);
+gboolean gst_plugin_feature_check_version (GstPluginFeature *feature,
+ guint min_major,
+ guint min_minor,
+ guint min_micro);
+typedef struct _GstElementDetails GstElementDetails;
+struct _GstElementDetails
+{
+ gchar *longname;
+ gchar *klass;
+ gchar *description;
+ gchar *author;
+ gpointer _gst_reserved[4];
+};
+struct _GstElementFactory {
+ GstPluginFeature parent;
+ GType type;
+ GstElementDetails details;
+ GList * staticpadtemplates;
+ guint numpadtemplates;
+ guint uri_type;
+ gchar ** uri_protocols;
+ GList * interfaces;
+ gpointer _gst_reserved[4];
+};
+struct _GstElementFactoryClass {
+ GstPluginFeatureClass parent_class;
+ gpointer _gst_reserved[4];
+};
+GType gst_element_factory_get_type (void);
+GstElementFactory * gst_element_factory_find (const gchar *name);
+GType gst_element_factory_get_element_type (GstElementFactory *factory);
+const gchar * gst_element_factory_get_longname (GstElementFactory *factory);
+const gchar * gst_element_factory_get_klass (GstElementFactory *factory);
+const gchar * gst_element_factory_get_description (GstElementFactory *factory);
+const gchar * gst_element_factory_get_author (GstElementFactory *factory);
+guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
+const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
+gint gst_element_factory_get_uri_type (GstElementFactory *factory);
+gchar ** gst_element_factory_get_uri_protocols (GstElementFactory *factory);
+gboolean gst_element_factory_has_interface (GstElementFactory *factory,
+ const gchar *interfacename);
+GstElement* gst_element_factory_create (GstElementFactory *factory,
+ const gchar *name);
+GstElement* gst_element_factory_make (const gchar *factoryname, const gchar *name);
+void __gst_element_factory_add_static_pad_template (GstElementFactory *elementfactory,
+ GstStaticPadTemplate *templ);
+void __gst_element_factory_add_interface (GstElementFactory *elementfactory,
+ const gchar *interfacename);
+gboolean gst_element_register (GstPlugin *plugin, const gchar *name,
+ guint rank, GType type);
+typedef struct _GstIndexEntry GstIndexEntry;
+typedef struct _GstIndexGroup GstIndexGroup;
+typedef struct _GstIndex GstIndex;
+typedef struct _GstIndexClass GstIndexClass;
+typedef enum {
+ GST_INDEX_UNKNOWN,
+ GST_INDEX_CERTAIN,
+ GST_INDEX_FUZZY
+} GstIndexCertainty;
+typedef enum {
+ GST_INDEX_ENTRY_ID,
+ GST_INDEX_ENTRY_ASSOCIATION,
+ GST_INDEX_ENTRY_OBJECT,
+ GST_INDEX_ENTRY_FORMAT
+} GstIndexEntryType;
+typedef enum {
+ GST_INDEX_LOOKUP_EXACT,
+ GST_INDEX_LOOKUP_BEFORE,
+ GST_INDEX_LOOKUP_AFTER
+} GstIndexLookupMethod;
+typedef struct _GstIndexAssociation GstIndexAssociation;
+struct _GstIndexAssociation {
+ GstFormat format;
+ gint64 value;
+};
+typedef enum {
+ GST_ASSOCIATION_FLAG_NONE = 0,
+ GST_ASSOCIATION_FLAG_KEY_UNIT = (1 << 0),
+ GST_ASSOCIATION_FLAG_DELTA_UNIT = (1 << 1),
+ GST_ASSOCIATION_FLAG_LAST = (1 << 8)
+} GstAssocFlags;
+struct _GstIndexEntry {
+ GstIndexEntryType type;
+ gint id;
+ union {
+ struct {
+ gchar *description;
+ } id;
+ struct {
+ gint nassocs;
+ GstIndexAssociation
+ *assocs;
+ GstAssocFlags flags;
+ } assoc;
+ struct {
+ gchar *key;
+ GType type;
+ gpointer object;
+ } object;
+ struct {
+ GstFormat format;
+ const gchar *key;
+ } format;
+ } data;
+};
+struct _GstIndexGroup {
+ gint groupnum;
+ GList *entries;
+ GstIndexCertainty certainty;
+ gint peergroup;
+};
+typedef gboolean (*GstIndexFilter) (GstIndex *index,
+ GstIndexEntry *entry,
+ gpointer user_data);
+typedef enum {
+ GST_INDEX_RESOLVER_CUSTOM,
+ GST_INDEX_RESOLVER_GTYPE,
+ GST_INDEX_RESOLVER_PATH
+} GstIndexResolverMethod;
+typedef gboolean (*GstIndexResolver) (GstIndex *index,
+ GstObject *writer,
+ gchar **writer_string,
+ gpointer user_data);
+typedef enum {
+ GST_INDEX_WRITABLE = (GST_OBJECT_FLAG_LAST << 0),
+ GST_INDEX_READABLE = (GST_OBJECT_FLAG_LAST << 1),
+ GST_INDEX_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 8)
+} GstIndexFlags;
+struct _GstIndex {
+ GstObject object;
+ GList *groups;
+ GstIndexGroup *curgroup;
+ gint maxgroup;
+ GstIndexResolverMethod method;
+ GstIndexResolver resolver;
+ gpointer resolver_user_data;
+ GstIndexFilter filter;
+ gpointer filter_user_data;
+ GDestroyNotify filter_user_data_destroy;
+ GHashTable *writers;
+ gint last_id;
+ GDestroyNotify resolver_user_data_destroy;
+ gpointer _gst_reserved[4 - 1];
+};
+struct _GstIndexClass {
+ GstObjectClass parent_class;
+ gboolean (*get_writer_id) (GstIndex *index, gint *writer_id, gchar *writer_string);
+ void (*commit) (GstIndex *index, gint id);
+ void (*add_entry) (GstIndex *index, GstIndexEntry *entry);
+ GstIndexEntry* (*get_assoc_entry) (GstIndex *index, gint id,
+ GstIndexLookupMethod method, GstAssocFlags flags,
+ GstFormat format, gint64 value,
+ GCompareDataFunc func,
+ gpointer user_data);
+ void (*entry_added) (GstIndex *index, GstIndexEntry *entry);
+ gpointer _gst_reserved[4];
+};
+GType gst_index_get_type (void);
+GstIndex* gst_index_new (void);
+void gst_index_commit (GstIndex *index, gint id);
+gint gst_index_get_group (GstIndex *index);
+gint gst_index_new_group (GstIndex *index);
+gboolean gst_index_set_group (GstIndex *index, gint groupnum);
+void gst_index_set_certainty (GstIndex *index,
+ GstIndexCertainty certainty);
+GstIndexCertainty gst_index_get_certainty (GstIndex *index);
+void gst_index_set_filter (GstIndex *index,
+ GstIndexFilter filter, gpointer user_data);
+void gst_index_set_filter_full (GstIndex *index,
+ GstIndexFilter filter, gpointer user_data,
+ GDestroyNotify user_data_destroy);
+void gst_index_set_resolver (GstIndex *index,
+ GstIndexResolver resolver, gpointer user_data);
+void gst_index_set_resolver_full (GstIndex *index, GstIndexResolver resolver,
+ gpointer user_data,
+ GDestroyNotify user_data_destroy);
+gboolean gst_index_get_writer_id (GstIndex *index, GstObject *writer, gint *id);
+GstIndexEntry* gst_index_add_format (GstIndex *index, gint id, GstFormat format);
+GstIndexEntry* gst_index_add_associationv (GstIndex * index, gint id, GstAssocFlags flags,
+ gint n, const GstIndexAssociation * list);
+GstIndexEntry* gst_index_add_association (GstIndex *index, gint id, GstAssocFlags flags,
+ GstFormat format, gint64 value, ...);
+GstIndexEntry* gst_index_add_object (GstIndex *index, gint id, gchar *key,
+ GType type, gpointer object);
+GstIndexEntry* gst_index_add_id (GstIndex *index, gint id,
+ gchar *description);
+GstIndexEntry* gst_index_get_assoc_entry (GstIndex *index, gint id,
+ GstIndexLookupMethod method, GstAssocFlags flags,
+ GstFormat format, gint64 value);
+GstIndexEntry* gst_index_get_assoc_entry_full (GstIndex *index, gint id,
+ GstIndexLookupMethod method, GstAssocFlags flags,
+ GstFormat format, gint64 value,
+ GCompareDataFunc func,
+ gpointer user_data);
+GType gst_index_entry_get_type (void);
+GstIndexEntry * gst_index_entry_copy (GstIndexEntry *entry);
+void gst_index_entry_free (GstIndexEntry *entry);
+gboolean gst_index_entry_assoc_map (GstIndexEntry *entry,
+ GstFormat format, gint64 *value);
+typedef struct _GstIndexFactory GstIndexFactory;
+typedef struct _GstIndexFactoryClass GstIndexFactoryClass;
+struct _GstIndexFactory {
+ GstPluginFeature feature;
+ gchar *longdesc;
+ GType type;
+ gpointer _gst_reserved[4];
+};
+struct _GstIndexFactoryClass {
+ GstPluginFeatureClass parent;
+ gpointer _gst_reserved[4];
+};
+GType gst_index_factory_get_type (void);
+GstIndexFactory* gst_index_factory_new (const gchar *name,
+ const gchar *longdesc, GType type);
+void gst_index_factory_destroy (GstIndexFactory *factory);
+GstIndexFactory* gst_index_factory_find (const gchar *name);
+GstIndex* gst_index_factory_create (GstIndexFactory *factory);
+GstIndex* gst_index_factory_make (const gchar *name);
+typedef enum {
+ GST_STATE_CHANGE_FAILURE = 0,
+ GST_STATE_CHANGE_SUCCESS = 1,
+ GST_STATE_CHANGE_ASYNC = 2,
+ GST_STATE_CHANGE_NO_PREROLL = 3
+} GstStateChangeReturn;
+typedef enum
+{
+ GST_STATE_CHANGE_NULL_TO_READY = (GST_STATE_NULL<<3) | GST_STATE_READY,
+ GST_STATE_CHANGE_READY_TO_PAUSED = (GST_STATE_READY<<3) | GST_STATE_PAUSED,
+ GST_STATE_CHANGE_PAUSED_TO_PLAYING = (GST_STATE_PAUSED<<3) | GST_STATE_PLAYING,
+ GST_STATE_CHANGE_PLAYING_TO_PAUSED = (GST_STATE_PLAYING<<3) | GST_STATE_PAUSED,
+ GST_STATE_CHANGE_PAUSED_TO_READY = (GST_STATE_PAUSED<<3) | GST_STATE_READY,
+ GST_STATE_CHANGE_READY_TO_NULL = (GST_STATE_READY<<3) | GST_STATE_NULL
+} GstStateChange;
+typedef enum
+{
+ GST_ELEMENT_LOCKED_STATE = (GST_OBJECT_FLAG_LAST << 0),
+ GST_ELEMENT_IS_SINK = (GST_OBJECT_FLAG_LAST << 1),
+ GST_ELEMENT_UNPARENTING = (GST_OBJECT_FLAG_LAST << 2),
+ GST_ELEMENT_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 16)
+} GstElementFlags;
+struct _GstElement
+{
+ GstObject object;
+ GStaticRecMutex *state_lock;
+ GCond *state_cond;
+ guint32 state_cookie;
+ GstState current_state;
+ GstState next_state;
+ GstState pending_state;
+ GstStateChangeReturn last_return;
+ GstBus *bus;
+ GstClock *clock;
+ GstClockTimeDiff base_time;
+ guint16 numpads;
+ GList *pads;
+ guint16 numsrcpads;
+ GList *srcpads;
+ guint16 numsinkpads;
+ GList *sinkpads;
+ guint32 pads_cookie;
+ union {
+ struct {
+ GstState target_state;
+ GstClockTime start_time;
+ } ABI;
+ gpointer _gst_reserved[4 + 0];
+ } abidata;
+};
+struct _GstElementClass
+{
+ GstObjectClass parent_class;
+ GstElementDetails details;
+ GstElementFactory *elementfactory;
+ GList *padtemplates;
+ gint numpadtemplates;
+ guint32 pad_templ_cookie;
+ void (*pad_added) (GstElement *element, GstPad *pad);
+ void (*pad_removed) (GstElement *element, GstPad *pad);
+ void (*no_more_pads) (GstElement *element);
+ GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ, const gchar* name);
+ void (*release_pad) (GstElement *element, GstPad *pad);
+ GstStateChangeReturn (*get_state) (GstElement * element, GstState * state,
+ GstState * pending, GstClockTime timeout);
+ GstStateChangeReturn (*set_state) (GstElement *element, GstState state);
+ GstStateChangeReturn (*change_state) (GstElement *element, GstStateChange transition);
+ void (*set_bus) (GstElement * element, GstBus * bus);
+ GstClock* (*provide_clock) (GstElement *element);
+ gboolean (*set_clock) (GstElement *element, GstClock *clock);
+ GstIndex* (*get_index) (GstElement *element);
+ void (*set_index) (GstElement *element, GstIndex *index);
+ gboolean (*send_event) (GstElement *element, GstEvent *event);
+ const GstQueryType* (*get_query_types) (GstElement *element);
+ gboolean (*query) (GstElement *element, GstQuery *query);
+ gpointer _gst_reserved[4];
+};
+void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *templ);
+GstPadTemplate* gst_element_class_get_pad_template (GstElementClass *element_class, const gchar *name);
+GList* gst_element_class_get_pad_template_list (GstElementClass *element_class);
+void gst_element_class_set_details (GstElementClass *klass, const GstElementDetails *details);
+void gst_element_class_set_details_simple (GstElementClass *klass,
+ const gchar *longname,
+ const gchar *classification,
+ const gchar *description,
+ const gchar *author);
+GType gst_element_get_type (void);
+gboolean gst_element_requires_clock (GstElement *element);
+gboolean gst_element_provides_clock (GstElement *element);
+GstClock* gst_element_provide_clock (GstElement *element);
+GstClock* gst_element_get_clock (GstElement *element);
+gboolean gst_element_set_clock (GstElement *element, GstClock *clock);
+void gst_element_set_base_time (GstElement *element, GstClockTime time);
+GstClockTime gst_element_get_base_time (GstElement *element);
+void gst_element_set_start_time (GstElement *element, GstClockTime time);
+GstClockTime gst_element_get_start_time (GstElement *element);
+gboolean gst_element_is_indexable (GstElement *element);
+void gst_element_set_index (GstElement *element, GstIndex *index);
+GstIndex* gst_element_get_index (GstElement *element);
+void gst_element_set_bus (GstElement * element, GstBus * bus);
+GstBus * gst_element_get_bus (GstElement * element);
+gboolean gst_element_add_pad (GstElement *element, GstPad *pad);
+gboolean gst_element_remove_pad (GstElement *element, GstPad *pad);
+void gst_element_no_more_pads (GstElement *element);
+GstPad* gst_element_get_pad (GstElement *element, const gchar *name);
+GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name);
+GstPad* gst_element_get_request_pad (GstElement *element, const gchar *name);
+void gst_element_release_request_pad (GstElement *element, GstPad *pad);
+GstIterator * gst_element_iterate_pads (GstElement * element);
+GstIterator * gst_element_iterate_src_pads (GstElement * element);
+GstIterator * gst_element_iterate_sink_pads (GstElement * element);
+gboolean gst_element_send_event (GstElement *element, GstEvent *event);
+gboolean gst_element_seek (GstElement *element, gdouble rate,
+ GstFormat format, GstSeekFlags flags,
+ GstSeekType cur_type, gint64 cur,
+ GstSeekType stop_type, gint64 stop);
+const GstQueryType*
+ gst_element_get_query_types (GstElement *element);
+gboolean gst_element_query (GstElement *element, GstQuery *query);
+gboolean gst_element_post_message (GstElement * element, GstMessage * message);
+gchar * _gst_element_error_printf (const gchar *format, ...);
+void gst_element_message_full (GstElement * element, GstMessageType type,
+ GQuark domain, gint code, gchar * text,
+ gchar * debug, const gchar * file,
+ const gchar * function, gint line);
+gboolean gst_element_is_locked_state (GstElement *element);
+gboolean gst_element_set_locked_state (GstElement *element, gboolean locked_state);
+gboolean gst_element_sync_state_with_parent (GstElement *element);
+GstStateChangeReturn gst_element_get_state (GstElement * element,
+ GstState * state,
+ GstState * pending,
+ GstClockTime timeout);
+GstStateChangeReturn gst_element_set_state (GstElement *element, GstState state);
+void gst_element_abort_state (GstElement * element);
+GstStateChangeReturn gst_element_change_state (GstElement * element,
+ GstStateChange transition);
+GstStateChangeReturn gst_element_continue_state (GstElement * element,
+ GstStateChangeReturn ret);
+void gst_element_lost_state (GstElement * element);
+void gst_element_lost_state_full (GstElement * element, gboolean new_base_time);
+GstElementFactory* gst_element_get_factory (GstElement *element);
+typedef enum {
+ GST_BIN_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 5)
+} GstBinFlags;
+typedef struct _GstBin GstBin;
+typedef struct _GstBinClass GstBinClass;
+typedef struct _GstBinPrivate GstBinPrivate;
+struct _GstBin {
+ GstElement element;
+ gint numchildren;
+ GList *children;
+ guint32 children_cookie;
+ GstBus *child_bus;
+ GList *messages;
+ gboolean polling;
+ gboolean state_dirty;
+ gboolean clock_dirty;
+ GstClock *provided_clock;
+ GstElement *clock_provider;
+ GstBinPrivate *priv;
+ gpointer _gst_reserved[4 - 1];
+};
+struct _GstBinClass {
+ GstElementClass parent_class;
+ GThreadPool *pool;
+ void (*element_added) (GstBin *bin, GstElement *child);
+ void (*element_removed) (GstBin *bin, GstElement *child);
+ gboolean (*add_element) (GstBin *bin, GstElement *element);
+ gboolean (*remove_element) (GstBin *bin, GstElement *element);
+ void (*handle_message) (GstBin *bin, GstMessage *message);
+ gboolean (*do_latency) (GstBin *bin);
+ gpointer _gst_reserved[4 -1];
+};
+GType gst_bin_get_type (void);
+GstElement* gst_bin_new (const gchar *name);
+gboolean gst_bin_add (GstBin *bin, GstElement *element);
+gboolean gst_bin_remove (GstBin *bin, GstElement *element);
+GstElement* gst_bin_get_by_name (GstBin *bin, const gchar *name);
+GstElement* gst_bin_get_by_name_recurse_up (GstBin *bin, const gchar *name);
+GstElement* gst_bin_get_by_interface (GstBin *bin, GType iface);
+GstIterator* gst_bin_iterate_elements (GstBin *bin);
+GstIterator* gst_bin_iterate_sorted (GstBin *bin);
+GstIterator* gst_bin_iterate_recurse (GstBin *bin);
+GstIterator* gst_bin_iterate_sinks (GstBin *bin);
+GstIterator* gst_bin_iterate_sources (GstBin *bin);
+GstIterator* gst_bin_iterate_all_by_interface (GstBin *bin, GType iface);
+gboolean gst_bin_recalculate_latency (GstBin * bin);
+typedef struct _GstChildProxy GstChildProxy;
+typedef struct _GstChildProxyInterface GstChildProxyInterface;
+struct _GstChildProxyInterface
+{
+ GTypeInterface parent;
+ GstObject *(*get_child_by_index) (GstChildProxy * parent, guint index);
+ guint (*get_children_count) (GstChildProxy * parent);
+ void (*child_added) (GstChildProxy * parent, GstObject * child);
+ void (*child_removed) (GstChildProxy * parent, GstObject * child);
+ gpointer _gst_reserved[4];
+};
+GType gst_child_proxy_get_type (void);
+GstObject *gst_child_proxy_get_child_by_name (GstChildProxy * parent, const gchar * name);
+GstObject *gst_child_proxy_get_child_by_index (GstChildProxy * parent, guint index);
+guint gst_child_proxy_get_children_count (GstChildProxy * parent);
+gboolean gst_child_proxy_lookup (GstObject *object, const gchar *name,
+ GstObject **target, GParamSpec **pspec);
+void gst_child_proxy_get_property (GstObject * object, const gchar *name, GValue *value);
+void gst_child_proxy_get_valist (GstObject * object,
+ const gchar * first_property_name, va_list var_args);
+void gst_child_proxy_get (GstObject * object, const gchar * first_property_name,
+ ...) __attribute__((__sentinel__));
+void gst_child_proxy_set_property (GstObject * object, const gchar *name, const GValue *value);
+void gst_child_proxy_set_valist (GstObject* object,
+ const gchar * first_property_name, va_list var_args);
+void gst_child_proxy_set (GstObject * object, const gchar * first_property_name,
+ ...) __attribute__((__sentinel__));
+void gst_child_proxy_child_added (GstObject * object, GstObject * child);
+void gst_child_proxy_child_removed (GstObject * object, GstObject * child);
+typedef enum {
+ GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE = (1<<0),
+ GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS = (1<<1),
+ GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS = (1<<2),
+ GST_DEBUG_GRAPH_SHOW_STATES = (1<<3),
+ GST_DEBUG_GRAPH_SHOW_ALL = ((1<<4)-1)
+} GstDebugGraphDetails;
+void _gst_debug_bin_to_dot_file (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
+void _gst_debug_bin_to_dot_file_with_ts (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
+typedef enum
+{
+ GST_CORE_ERROR_FAILED = 1,
+ GST_CORE_ERROR_TOO_LAZY,
+ GST_CORE_ERROR_NOT_IMPLEMENTED,
+ GST_CORE_ERROR_STATE_CHANGE,
+ GST_CORE_ERROR_PAD,
+ GST_CORE_ERROR_THREAD,
+ GST_CORE_ERROR_NEGOTIATION,
+ GST_CORE_ERROR_EVENT,
+ GST_CORE_ERROR_SEEK,
+ GST_CORE_ERROR_CAPS,
+ GST_CORE_ERROR_TAG,
+ GST_CORE_ERROR_MISSING_PLUGIN,
+ GST_CORE_ERROR_CLOCK,
+ GST_CORE_ERROR_DISABLED,
+ GST_CORE_ERROR_NUM_ERRORS
+} GstCoreError;
+typedef enum
+{
+ GST_LIBRARY_ERROR_FAILED = 1,
+ GST_LIBRARY_ERROR_TOO_LAZY,
+ GST_LIBRARY_ERROR_INIT,
+ GST_LIBRARY_ERROR_SHUTDOWN,
+ GST_LIBRARY_ERROR_SETTINGS,
+ GST_LIBRARY_ERROR_ENCODE,
+ GST_LIBRARY_ERROR_NUM_ERRORS
+} GstLibraryError;
+typedef enum
+{
+ GST_RESOURCE_ERROR_FAILED = 1,
+ GST_RESOURCE_ERROR_TOO_LAZY,
+ GST_RESOURCE_ERROR_NOT_FOUND,
+ GST_RESOURCE_ERROR_BUSY,
+ GST_RESOURCE_ERROR_OPEN_READ,
+ GST_RESOURCE_ERROR_OPEN_WRITE,
+ GST_RESOURCE_ERROR_OPEN_READ_WRITE,
+ GST_RESOURCE_ERROR_CLOSE,
+ GST_RESOURCE_ERROR_READ,
+ GST_RESOURCE_ERROR_WRITE,
+ GST_RESOURCE_ERROR_SEEK,
+ GST_RESOURCE_ERROR_SYNC,
+ GST_RESOURCE_ERROR_SETTINGS,
+ GST_RESOURCE_ERROR_NO_SPACE_LEFT,
+ GST_RESOURCE_ERROR_NUM_ERRORS
+} GstResourceError;
+typedef enum
+{
+ GST_STREAM_ERROR_FAILED = 1,
+ GST_STREAM_ERROR_TOO_LAZY,
+ GST_STREAM_ERROR_NOT_IMPLEMENTED,
+ GST_STREAM_ERROR_TYPE_NOT_FOUND,
+ GST_STREAM_ERROR_WRONG_TYPE,
+ GST_STREAM_ERROR_CODEC_NOT_FOUND,
+ GST_STREAM_ERROR_DECODE,
+ GST_STREAM_ERROR_ENCODE,
+ GST_STREAM_ERROR_DEMUX,
+ GST_STREAM_ERROR_MUX,
+ GST_STREAM_ERROR_FORMAT,
+ GST_STREAM_ERROR_DECRYPT,
+ GST_STREAM_ERROR_DECRYPT_NOKEY,
+ GST_STREAM_ERROR_NUM_ERRORS
+} GstStreamError;
+GType gst_g_error_get_type (void);
+gchar *gst_error_get_message (GQuark domain, gint code);
+GQuark gst_stream_error_quark (void);
+GQuark gst_core_error_quark (void);
+GQuark gst_resource_error_quark (void);
+GQuark gst_library_error_quark (void);
+typedef struct _GstProxyPad GstProxyPad;
+typedef struct _GstProxyPadPrivate GstProxyPadPrivate;
+typedef struct _GstProxyPadClass GstProxyPadClass;
+struct _GstProxyPad
+{
+ GstPad pad;
+ GstProxyPadPrivate *priv;
+};
+struct _GstProxyPadClass
+{
+ GstPadClass parent_class;
+ gpointer _gst_reserved[1];
+};
+GType gst_proxy_pad_get_type (void);
+typedef struct _GstGhostPad GstGhostPad;
+typedef struct _GstGhostPadPrivate GstGhostPadPrivate;
+typedef struct _GstGhostPadClass GstGhostPadClass;
+struct _GstGhostPad
+{
+ GstProxyPad pad;
+ GstGhostPadPrivate *priv;
+};
+struct _GstGhostPadClass
+{
+ GstProxyPadClass parent_class;
+ gpointer _gst_reserved[4];
+};
+GType gst_ghost_pad_get_type (void);
+GstPad* gst_ghost_pad_new (const gchar *name, GstPad *target);
+GstPad* gst_ghost_pad_new_no_target (const gchar *name, GstPadDirection dir);
+GstPad* gst_ghost_pad_new_from_template (const gchar *name, GstPad * target, GstPadTemplate * templ);
+GstPad* gst_ghost_pad_new_no_target_from_template (const gchar *name, GstPadTemplate * templ);
+GstPad* gst_ghost_pad_get_target (GstGhostPad *gpad);
+gboolean gst_ghost_pad_set_target (GstGhostPad *gpad, GstPad *newtarget);
+gboolean gst_ghost_pad_construct (GstGhostPad *gpad);
+typedef enum {
+ GST_LEVEL_NONE = 0,
+ GST_LEVEL_ERROR,
+ GST_LEVEL_WARNING,
+ GST_LEVEL_INFO,
+ GST_LEVEL_DEBUG,
+ GST_LEVEL_LOG,
+ GST_LEVEL_FIXME = 6,
+ GST_LEVEL_MEMDUMP = 9,
+ GST_LEVEL_COUNT
+} GstDebugLevel;
+typedef enum {
+ GST_DEBUG_FG_BLACK = 0x0000,
+ GST_DEBUG_FG_RED = 0x0001,
+ GST_DEBUG_FG_GREEN = 0x0002,
+ GST_DEBUG_FG_YELLOW = 0x0003,
+ GST_DEBUG_FG_BLUE = 0x0004,
+ GST_DEBUG_FG_MAGENTA = 0x0005,
+ GST_DEBUG_FG_CYAN = 0x0006,
+ GST_DEBUG_FG_WHITE = 0x0007,
+ GST_DEBUG_BG_BLACK = 0x0000,
+ GST_DEBUG_BG_RED = 0x0010,
+ GST_DEBUG_BG_GREEN = 0x0020,
+ GST_DEBUG_BG_YELLOW = 0x0030,
+ GST_DEBUG_BG_BLUE = 0x0040,
+ GST_DEBUG_BG_MAGENTA = 0x0050,
+ GST_DEBUG_BG_CYAN = 0x0060,
+ GST_DEBUG_BG_WHITE = 0x0070,
+ GST_DEBUG_BOLD = 0x0100,
+ GST_DEBUG_UNDERLINE = 0x0200
+} GstDebugColorFlags;
+typedef struct _GstDebugCategory GstDebugCategory;
+struct _GstDebugCategory {
+ gint threshold;
+ guint color;
+ const gchar * name;
+ const gchar * description;
+};
+typedef struct _GstDebugMessage GstDebugMessage;
+typedef void (*GstLogFunction) (GstDebugCategory * category,
+ GstDebugLevel level,
+ const gchar * file,
+ const gchar * function,
+ gint line,
+ GObject * object,
+ GstDebugMessage * message,
+ gpointer data);
+void _gst_debug_init (void);
+void gst_debug_log (GstDebugCategory * category,
+ GstDebugLevel level,
+ const gchar * file,
+ const gchar * function,
+ gint line,
+ GObject * object,
+ const gchar * format,
+ ...) __attribute__((__no_instrument_function__));
+void gst_debug_log_valist (GstDebugCategory * category,
+ GstDebugLevel level,
+ const gchar * file,
+ const gchar * function,
+ gint line,
+ GObject * object,
+ const gchar * format,
+ va_list args) __attribute__((__no_instrument_function__));
+const gchar * gst_debug_message_get (GstDebugMessage * message);
+void gst_debug_log_default (GstDebugCategory * category,
+ GstDebugLevel level,
+ const gchar * file,
+ const gchar * function,
+ gint line,
+ GObject * object,
+ GstDebugMessage * message,
+ gpointer unused) __attribute__((__no_instrument_function__));
+const gchar *
+ gst_debug_level_get_name (GstDebugLevel level);
+void gst_debug_add_log_function (GstLogFunction func,
+ gpointer data);
+guint gst_debug_remove_log_function (GstLogFunction func);
+guint gst_debug_remove_log_function_by_data (gpointer data);
+void gst_debug_set_active (gboolean active);
+gboolean gst_debug_is_active (void);
+void gst_debug_set_colored (gboolean colored);
+gboolean gst_debug_is_colored (void);
+void gst_debug_set_default_threshold (GstDebugLevel level);
+GstDebugLevel gst_debug_get_default_threshold (void);
+void gst_debug_set_threshold_for_name (const gchar * name,
+ GstDebugLevel level);
+void gst_debug_unset_threshold_for_name (const gchar * name);
+GstDebugCategory *_gst_debug_category_new (const gchar * name,
+ guint color,
+ const gchar * description);
+void gst_debug_category_free (GstDebugCategory * category);
+void gst_debug_category_set_threshold (GstDebugCategory * category,
+ GstDebugLevel level);
+void gst_debug_category_reset_threshold(GstDebugCategory * category);
+GstDebugLevel
+ gst_debug_category_get_threshold (GstDebugCategory * category);
+const gchar *
+ gst_debug_category_get_name (GstDebugCategory * category);
+guint gst_debug_category_get_color (GstDebugCategory * category);
+const gchar *
+ gst_debug_category_get_description (GstDebugCategory * category);
+GSList *
+ gst_debug_get_all_categories (void);
+GstDebugCategory *_gst_debug_get_category (const gchar *name);
+gchar * gst_debug_construct_term_color (guint colorinfo);
+gint gst_debug_construct_win_color (guint colorinfo);
+extern GstDebugCategory * GST_CAT_DEFAULT;
+extern gboolean __gst_debug_enabled;
+extern GstDebugLevel __gst_debug_min;
+void _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file,
+ const gchar * func, gint line, GObject * obj, const gchar * msg,
+ const guint8 * data, guint length);
+typedef void (* GstDebugFuncPtr) (void);
+void _gst_debug_register_funcptr (GstDebugFuncPtr func,
+ const gchar * ptrname);
+const gchar *
+ _gst_debug_nameof_funcptr (GstDebugFuncPtr func);
+void gst_debug_print_stack_trace (void);
+typedef struct _GstImplementsInterface GstImplementsInterface;
+typedef struct _GstImplementsInterfaceClass GstImplementsInterfaceClass;
+struct _GstImplementsInterfaceClass {
+ GTypeInterface parent;
+ gboolean (* supported) (GstImplementsInterface *iface,
+ GType iface_type);
+ gpointer _gst_reserved[4];
+};
+GType gst_implements_interface_get_type (void);
+gboolean gst_element_implements_interface (GstElement *element,
+ GType iface_type);
+gpointer gst_implements_interface_cast (gpointer from,
+ GType type);
+gboolean gst_implements_interface_check (gpointer from,
+ GType type);
+extern void gst_marshal_VOID__BOXED_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__POINTER_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__OBJECT_PARAM (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__OBJECT_POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__OBJECT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__OBJECT_BOXED_STRING (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__OBJECT_OBJECT_STRING (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__OBJECT_STRING (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__INT_INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__INT64 (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_VOID__UINT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_BOOLEAN__VOID (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_BOOLEAN__POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_POINTER__POINTER (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+extern void gst_marshal_BOXED__BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+typedef gint (* GstValueCompareFunc) (const GValue *value1,
+ const GValue *value2);
+typedef gchar * (* GstValueSerializeFunc) (const GValue *value1);
+typedef gboolean (* GstValueDeserializeFunc) (GValue *dest,
+ const gchar *s);
+typedef gboolean (* GstValueUnionFunc) (GValue *dest,
+ const GValue *value1,
+ const GValue *value2);
+typedef gboolean (* GstValueIntersectFunc) (GValue *dest,
+ const GValue *value1,
+ const GValue *value2);
+typedef gboolean (* GstValueSubtractFunc) (GValue *dest,
+ const GValue *minuend,
+ const GValue *subtrahend);
+typedef struct _GstValueTable GstValueTable;
+struct _GstValueTable {
+ GType type;
+ GstValueCompareFunc compare;
+ GstValueSerializeFunc serialize;
+ GstValueDeserializeFunc deserialize;
+ void *_gst_reserved [4];
+};
+GType gst_int_range_get_type (void);
+GType gst_double_range_get_type (void);
+GType gst_fraction_range_get_type (void);
+GType gst_fourcc_get_type (void);
+GType gst_fraction_get_type (void);
+GType gst_value_list_get_type (void);
+GType gst_value_array_get_type (void);
+GType gst_date_get_type (void);
+void gst_value_register (const GstValueTable *table);
+void gst_value_init_and_copy (GValue *dest,
+ const GValue *src);
+gchar * gst_value_serialize (const GValue *value);
+gboolean gst_value_deserialize (GValue *dest,
+ const gchar *src);
+void gst_value_list_append_value (GValue *value,
+ const GValue *append_value);
+void gst_value_list_prepend_value (GValue *value,
+ const GValue *prepend_value);
+void gst_value_list_concat (GValue *dest,
+ const GValue *value1,
+ const GValue *value2);
+guint gst_value_list_get_size (const GValue *value);
+const GValue *
+ gst_value_list_get_value (const GValue *value,
+ guint index);
+void gst_value_array_append_value (GValue *value,
+ const GValue *append_value);
+void gst_value_array_prepend_value (GValue *value,
+ const GValue *prepend_value);
+guint gst_value_array_get_size (const GValue *value);
+const GValue *
+ gst_value_array_get_value (const GValue *value,
+ guint index);
+void gst_value_set_fourcc (GValue *value,
+ guint32 fourcc);
+guint32 gst_value_get_fourcc (const GValue *value);
+void gst_value_set_int_range (GValue *value,
+ gint start,
+ gint end);
+gint gst_value_get_int_range_min (const GValue *value);
+gint gst_value_get_int_range_max (const GValue *value);
+void gst_value_set_double_range (GValue *value,
+ gdouble start,
+ gdouble end);
+gdouble gst_value_get_double_range_min (const GValue *value);
+gdouble gst_value_get_double_range_max (const GValue *value);
+const GstCaps *
+ gst_value_get_caps (const GValue *value);
+void gst_value_set_caps (GValue *value,
+ const GstCaps *caps);
+const GstStructure *
+ gst_value_get_structure (const GValue *value);
+void gst_value_set_structure (GValue *value,
+ const GstStructure *structure);
+void gst_value_set_fraction (GValue *value,
+ gint numerator,
+ gint denominator);
+gint gst_value_get_fraction_numerator (const GValue *value);
+gint gst_value_get_fraction_denominator(const GValue *value);
+gboolean gst_value_fraction_multiply (GValue *product,
+ const GValue *factor1,
+ const GValue *factor2);
+gboolean gst_value_fraction_subtract (GValue * dest,
+ const GValue * minuend,
+ const GValue * subtrahend);
+void gst_value_set_fraction_range (GValue *value,
+ const GValue *start,
+ const GValue *end);
+void gst_value_set_fraction_range_full (GValue *value,
+ gint numerator_start,
+ gint denominator_start,
+ gint numerator_end,
+ gint denominator_end);
+const GValue *gst_value_get_fraction_range_min (const GValue *value);
+const GValue *gst_value_get_fraction_range_max (const GValue *value);
+const GDate *
+ gst_value_get_date (const GValue *value);
+void gst_value_set_date (GValue *value,
+ const GDate *date);
+gint gst_value_compare (const GValue *value1,
+ const GValue *value2);
+gboolean gst_value_can_compare (const GValue *value1,
+ const GValue *value2);
+gboolean gst_value_union (GValue *dest,
+ const GValue *value1,
+ const GValue *value2);
+gboolean gst_value_can_union (const GValue *value1,
+ const GValue *value2);
+void gst_value_register_union_func (GType type1,
+ GType type2,
+ GstValueUnionFunc func);
+gboolean gst_value_intersect (GValue *dest,
+ const GValue *value1,
+ const GValue *value2);
+gboolean gst_value_can_intersect (const GValue *value1,
+ const GValue *value2);
+void gst_value_register_intersect_func (GType type1,
+ GType type2,
+ GstValueIntersectFunc func);
+gboolean gst_value_subtract (GValue *dest,
+ const GValue *minuend,
+ const GValue *subtrahend);
+gboolean gst_value_can_subtract (const GValue *minuend,
+ const GValue *subtrahend);
+void gst_value_register_subtract_func (GType minuend_type,
+ GType subtrahend_type,
+ GstValueSubtractFunc func);
+gboolean gst_value_is_fixed (const GValue *value);
+GType gst_param_spec_fraction_get_type (void);
+typedef struct _GstParamSpecFraction GstParamSpecFraction;
+struct _GstParamSpecFraction {
+ GParamSpec parent_instance;
+ gint min_num, min_den;
+ gint max_num, max_den;
+ gint def_num, def_den;
+};
+GParamSpec * gst_param_spec_fraction (const gchar * name,
+ const gchar * nick,
+ const gchar * blurb,
+ gint min_num, gint min_denom,
+ gint max_num, gint max_denom,
+ gint default_num, gint default_denom,
+ GParamFlags flags);
+typedef struct _GstPipeline GstPipeline;
+typedef struct _GstPipelineClass GstPipelineClass;
+typedef struct _GstPipelinePrivate GstPipelinePrivate;
+typedef enum {
+ GST_PIPELINE_FLAG_FIXED_CLOCK = (GST_BIN_FLAG_LAST << 0),
+ GST_PIPELINE_FLAG_LAST = (GST_BIN_FLAG_LAST << 4)
+} GstPipelineFlags;
+struct _GstPipeline {
+ GstBin bin;
+ GstClock *fixed_clock;
+ GstClockTime stream_time;
+ GstClockTime delay;
+ GstPipelinePrivate *priv;
+ gpointer _gst_reserved[4 -1];
+};
+struct _GstPipelineClass {
+ GstBinClass parent_class;
+ gpointer _gst_reserved[4];
+};
+GType gst_pipeline_get_type (void);
+GstElement* gst_pipeline_new (const gchar *name);
+GstBus* gst_pipeline_get_bus (GstPipeline *pipeline);
+void gst_pipeline_set_new_stream_time (GstPipeline *pipeline, GstClockTime time);
+GstClockTime gst_pipeline_get_last_stream_time (GstPipeline *pipeline);
+void gst_pipeline_use_clock (GstPipeline *pipeline, GstClock *clock);
+gboolean gst_pipeline_set_clock (GstPipeline *pipeline, GstClock *clock);
+GstClock* gst_pipeline_get_clock (GstPipeline *pipeline);
+void gst_pipeline_auto_clock (GstPipeline *pipeline);
+void gst_pipeline_set_delay (GstPipeline *pipeline, GstClockTime delay);
+GstClockTime gst_pipeline_get_delay (GstPipeline *pipeline);
+void gst_pipeline_set_auto_flush_bus (GstPipeline *pipeline, gboolean auto_flush);
+gboolean gst_pipeline_get_auto_flush_bus (GstPipeline *pipeline);
+typedef struct _GstPoll GstPoll;
+typedef struct {
+ int fd;
+ gint idx;
+} GstPollFD;
+GstPoll* gst_poll_new (gboolean controllable);
+GstPoll* gst_poll_new_timer (void);
+void gst_poll_free (GstPoll *set);
+void gst_poll_fd_init (GstPollFD *fd);
+gboolean gst_poll_add_fd (GstPoll *set, GstPollFD *fd);
+gboolean gst_poll_remove_fd (GstPoll *set, GstPollFD *fd);
+gboolean gst_poll_fd_ctl_write (GstPoll *set, GstPollFD *fd, gboolean active);
+gboolean gst_poll_fd_ctl_read (GstPoll *set, GstPollFD *fd, gboolean active);
+void gst_poll_fd_ignored (GstPoll *set, GstPollFD *fd);
+gboolean gst_poll_fd_has_closed (const GstPoll *set, GstPollFD *fd);
+gboolean gst_poll_fd_has_error (const GstPoll *set, GstPollFD *fd);
+gboolean gst_poll_fd_can_read (const GstPoll *set, GstPollFD *fd);
+gboolean gst_poll_fd_can_write (const GstPoll *set, GstPollFD *fd);
+gint gst_poll_wait (GstPoll *set, GstClockTime timeout);
+gboolean gst_poll_set_controllable (GstPoll *set, gboolean controllable);
+void gst_poll_restart (GstPoll *set);
+void gst_poll_set_flushing (GstPoll *set, gboolean flushing);
+gboolean gst_poll_write_control (GstPoll *set);
+gboolean gst_poll_read_control (GstPoll *set);
+typedef struct _GstPreset GstPreset;
+typedef struct _GstPresetInterface GstPresetInterface;
+struct _GstPresetInterface
+{
+ GTypeInterface parent;
+ gchar** (*get_preset_names) (GstPreset *preset);
+ gchar** (*get_property_names) (GstPreset *preset);
+ gboolean (*load_preset) (GstPreset *preset, const gchar *name);
+ gboolean (*save_preset) (GstPreset *preset, const gchar *name);
+ gboolean (*rename_preset) (GstPreset *preset, const gchar *old_name,
+ const gchar *new_name);
+ gboolean (*delete_preset) (GstPreset *preset, const gchar *name);
+ gboolean (*set_meta) (GstPreset *preset, const gchar *name,
+ const gchar *tag, const gchar *value);
+ gboolean (*get_meta) (GstPreset *preset, const gchar *name,
+ const gchar *tag, gchar **value);
+ gpointer _gst_reserved[4];
+};
+GType gst_preset_get_type(void);
+gchar** gst_preset_get_preset_names (GstPreset *preset);
+gchar** gst_preset_get_property_names (GstPreset *preset);
+gboolean gst_preset_load_preset (GstPreset *preset, const gchar *name);
+gboolean gst_preset_save_preset (GstPreset *preset, const gchar *name);
+gboolean gst_preset_rename_preset (GstPreset *preset, const gchar *old_name,
+ const gchar *new_name);
+gboolean gst_preset_delete_preset (GstPreset *preset, const gchar *name);
+gboolean gst_preset_set_meta (GstPreset *preset, const gchar *name,
+ const gchar *tag, const gchar *value);
+gboolean gst_preset_get_meta (GstPreset *preset, const gchar *name,
+ const gchar *tag, gchar **value);
+typedef struct _GstRegistry GstRegistry;
+typedef struct _GstRegistryClass GstRegistryClass;
+struct _GstRegistry {
+ GstObject object;
+ GList *plugins;
+ GList *features;
+ GList *paths;
+ int cache_file;
+ GHashTable *feature_hash;
+ gpointer _gst_reserved[4 -1];
+};
+struct _GstRegistryClass {
+ GstObjectClass parent_class;
+ void (*plugin_added) (GstRegistry *registry, GstPlugin *plugin);
+ void (*feature_added) (GstRegistry *registry, GstPluginFeature *feature);
+ gpointer _gst_reserved[4];
+};
+GType gst_registry_get_type (void);
+GstRegistry * gst_registry_get_default (void);
+gboolean gst_registry_scan_path (GstRegistry *registry, const gchar *path);
+void gst_registry_add_path (GstRegistry * registry, const gchar * path);
+GList* gst_registry_get_path_list (GstRegistry *registry);
+gboolean gst_registry_add_plugin (GstRegistry *registry, GstPlugin *plugin);
+void gst_registry_remove_plugin (GstRegistry *registry, GstPlugin *plugin);
+gboolean gst_registry_add_feature (GstRegistry * registry, GstPluginFeature * feature);
+void gst_registry_remove_feature (GstRegistry * registry, GstPluginFeature * feature);
+GList* gst_registry_get_plugin_list (GstRegistry *registry);
+GList* gst_registry_plugin_filter (GstRegistry *registry,
+ GstPluginFilter filter,
+ gboolean first,
+ gpointer user_data);
+GList* gst_registry_feature_filter (GstRegistry *registry,
+ GstPluginFeatureFilter filter,
+ gboolean first,
+ gpointer user_data);
+GList * gst_registry_get_feature_list (GstRegistry *registry,
+ GType type);
+GList * gst_registry_get_feature_list_by_plugin (GstRegistry *registry, const gchar *name);
+GstPlugin* gst_registry_find_plugin (GstRegistry *registry, const gchar *name);
+GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type);
+GstPlugin * gst_registry_lookup (GstRegistry *registry, const char *filename);
+GstPluginFeature * gst_registry_lookup_feature (GstRegistry *registry, const char *name);
+gboolean gst_registry_xml_read_cache (GstRegistry * registry, const char *location);
+gboolean gst_registry_xml_write_cache (GstRegistry * registry, const char *location);
+gboolean gst_default_registry_check_feature_version (const gchar *feature_name,
+ guint min_major,
+ guint min_minor,
+ guint min_micro);
+typedef struct _GstSegment GstSegment;
+struct _GstSegment {
+ gdouble rate;
+ gdouble abs_rate;
+ GstFormat format;
+ GstSeekFlags flags;
+ gint64 start;
+ gint64 stop;
+ gint64 time;
+ gint64 accum;
+ gint64 last_stop;
+ gint64 duration;
+ gdouble applied_rate;
+ guint8 _gst_reserved[(sizeof (gpointer) * 4) - sizeof (gdouble)];
+};
+GType gst_segment_get_type (void);
+GstSegment * gst_segment_new (void);
+GstSegment * gst_segment_copy (GstSegment *segment);
+void gst_segment_free (GstSegment *segment);
+void gst_segment_init (GstSegment *segment, GstFormat format);
+void gst_segment_set_duration (GstSegment *segment, GstFormat format, gint64 duration);
+void gst_segment_set_last_stop (GstSegment *segment, GstFormat format, gint64 position);
+void gst_segment_set_seek (GstSegment *segment, gdouble rate,
+ GstFormat format, GstSeekFlags flags,
+ GstSeekType start_type, gint64 start,
+ GstSeekType stop_type, gint64 stop,
+ gboolean *update);
+void gst_segment_set_newsegment (GstSegment *segment, gboolean update, gdouble rate,
+ GstFormat format, gint64 start, gint64 stop, gint64 time);
+void gst_segment_set_newsegment_full (GstSegment *segment, gboolean update, gdouble rate,
+ gdouble applied_rate, GstFormat format, gint64 start,
+ gint64 stop, gint64 time);
+gint64 gst_segment_to_stream_time (GstSegment *segment, GstFormat format, gint64 position);
+gint64 gst_segment_to_running_time (GstSegment *segment, GstFormat format, gint64 position);
+gint64 gst_segment_to_position (GstSegment *segment, GstFormat format, gint64 running_time);
+gboolean gst_segment_clip (GstSegment *segment, GstFormat format, gint64 start,
+ gint64 stop, gint64 *clip_start, gint64 *clip_stop);
+gboolean gst_segment_set_running_time (GstSegment *segment, GstFormat format, gint64 running_time);
+typedef struct _GstSystemClock GstSystemClock;
+typedef struct _GstSystemClockClass GstSystemClockClass;
+typedef struct _GstSystemClockPrivate GstSystemClockPrivate;
+typedef enum {
+ GST_CLOCK_TYPE_REALTIME = 0,
+ GST_CLOCK_TYPE_MONOTONIC = 1
+} GstClockType;
+struct _GstSystemClock {
+ GstClock clock;
+ GThread *thread;
+ gboolean stopping;
+ GstSystemClockPrivate *priv;
+ gpointer _gst_reserved[4 - 1];
+};
+struct _GstSystemClockClass {
+ GstClockClass parent_class;
+ gpointer _gst_reserved[4];
+};
+GType gst_system_clock_get_type (void);
+GstClock* gst_system_clock_obtain (void);
+typedef struct _GstTagSetter GstTagSetter;
+typedef struct _GstTagSetterIFace GstTagSetterIFace;
+struct _GstTagSetterIFace
+{
+ GTypeInterface g_iface;
+};
+GType gst_tag_setter_get_type (void);
+void gst_tag_setter_reset_tags (GstTagSetter * setter);
+void gst_tag_setter_merge_tags (GstTagSetter * setter,
+ const GstTagList * list,
+ GstTagMergeMode mode);
+void gst_tag_setter_add_tags (GstTagSetter * setter,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ ...) __attribute__((__sentinel__));
+void gst_tag_setter_add_tag_values (GstTagSetter * setter,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ ...) __attribute__((__sentinel__));
+void gst_tag_setter_add_tag_valist (GstTagSetter * setter,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ va_list var_args);
+void gst_tag_setter_add_tag_valist_values(GstTagSetter * setter,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ va_list var_args);
+void gst_tag_setter_add_tag_value (GstTagSetter * setter,
+ GstTagMergeMode mode,
+ const gchar * tag,
+ const GValue * value);
+const GstTagList *
+ gst_tag_setter_get_tag_list (GstTagSetter * setter);
+void gst_tag_setter_set_tag_merge_mode (GstTagSetter * setter,
+ GstTagMergeMode mode);
+GstTagMergeMode gst_tag_setter_get_tag_merge_mode (GstTagSetter * setter);
+typedef enum {
+ GST_ALLOC_TRACE_LIVE = (1 << 0),
+ GST_ALLOC_TRACE_MEM_LIVE = (1 << 1)
+} GstAllocTraceFlags;
+typedef struct _GstAllocTrace GstAllocTrace;
+struct _GstAllocTrace {
+ gchar *name;
+ gint flags;
+ gint live;
+ GSList *mem_live;
+};
+typedef struct _GstTrace GstTrace;
+typedef struct _GstTraceEntry GstTraceEntry;
+struct _GstTrace {
+ gchar *filename;
+ int fd;
+ GstTraceEntry *buf;
+ gint bufsize;
+ gint bufoffset;
+};
+struct _GstTraceEntry {
+ gint64 timestamp;
+ guint32 sequence;
+ guint32 data;
+ gchar message[112];
+};
+GstTrace* gst_trace_new (gchar *filename, gint size);
+void gst_trace_destroy (GstTrace *trace);
+void gst_trace_flush (GstTrace *trace);
+void gst_trace_text_flush (GstTrace *trace);
+void gst_trace_set_default (GstTrace *trace);
+void _gst_trace_add_entry (GstTrace *trace, guint32 seq,
+ guint32 data, gchar *msg);
+void gst_trace_read_tsc (gint64 *dst);
+extern GStaticMutex _gst_trace_mutex;
+gboolean gst_alloc_trace_available (void);
+const GList* gst_alloc_trace_list (void);
+GstAllocTrace* _gst_alloc_trace_register (const gchar *name);
+int gst_alloc_trace_live_all (void);
+void gst_alloc_trace_print_all (void);
+void gst_alloc_trace_print_live (void);
+void gst_alloc_trace_set_flags_all (GstAllocTraceFlags flags);
+GstAllocTrace* gst_alloc_trace_get (const gchar *name);
+void gst_alloc_trace_print (const GstAllocTrace *trace);
+void gst_alloc_trace_set_flags (GstAllocTrace *trace, GstAllocTraceFlags flags);
+extern gint _gst_trace_on;
+typedef struct _GstTypeFind GstTypeFind;
+typedef void (* GstTypeFindFunction) (GstTypeFind *find, gpointer data);
+typedef enum {
+ GST_TYPE_FIND_MINIMUM = 1,
+ GST_TYPE_FIND_POSSIBLE = 50,
+ GST_TYPE_FIND_LIKELY = 80,
+ GST_TYPE_FIND_NEARLY_CERTAIN = 99,
+ GST_TYPE_FIND_MAXIMUM = 100
+} GstTypeFindProbability;
+struct _GstTypeFind {
+ guint8 * (* peek) (gpointer data,
+ gint64 offset,
+ guint size);
+ void (* suggest) (gpointer data,
+ guint probability,
+ const GstCaps * caps);
+ gpointer data;
+ guint64 (* get_length) (gpointer data);
+ gpointer _gst_reserved[4];
+};
+GType gst_type_find_get_type (void);
+guint8 * gst_type_find_peek (GstTypeFind * find,
+ gint64 offset,
+ guint size);
+void gst_type_find_suggest (GstTypeFind * find,
+ guint probability,
+ const GstCaps * caps);
+void gst_type_find_suggest_simple (GstTypeFind * find,
+ guint probability,
+ const char * media_type,
+ const char * fieldname, ...);
+guint64 gst_type_find_get_length (GstTypeFind * find);
+gboolean gst_type_find_register (GstPlugin * plugin,
+ const gchar * name,
+ guint rank,
+ GstTypeFindFunction func,
+ gchar ** extensions,
+ const GstCaps * possible_caps,
+ gpointer data,
+ GDestroyNotify data_notify);
+typedef struct _GstTypeFindFactory GstTypeFindFactory;
+typedef struct _GstTypeFindFactoryClass GstTypeFindFactoryClass;
+struct _GstTypeFindFactory {
+ GstPluginFeature feature;
+ GstTypeFindFunction function;
+ gchar ** extensions;
+ GstCaps * caps;
+ gpointer user_data;
+ GDestroyNotify user_data_notify;
+ gpointer _gst_reserved[4];
+};
+struct _GstTypeFindFactoryClass {
+ GstPluginFeatureClass parent;
+ gpointer _gst_reserved[4];
+};
+GType gst_type_find_factory_get_type (void);
+GList * gst_type_find_factory_get_list (void);
+gchar ** gst_type_find_factory_get_extensions (GstTypeFindFactory *factory);
+GstCaps * gst_type_find_factory_get_caps (GstTypeFindFactory *factory);
+void gst_type_find_factory_call_function (GstTypeFindFactory *factory,
+ GstTypeFind *find);
+typedef enum {
+ GST_URI_UNKNOWN,
+ GST_URI_SINK,
+ GST_URI_SRC
+} GstURIType;
+typedef struct _GstURIHandler GstURIHandler;
+typedef struct _GstURIHandlerInterface GstURIHandlerInterface;
+struct _GstURIHandlerInterface {
+ GTypeInterface parent;
+ void (* new_uri) (GstURIHandler * handler,
+ const gchar * uri);
+ GstURIType (* get_type) (void);
+ gchar ** (* get_protocols) (void);
+ const gchar *(* get_uri) (GstURIHandler * handler);
+ gboolean (* set_uri) (GstURIHandler * handler,
+ const gchar * uri);
+ GstURIType (* get_type_full) (GType type);
+ gchar ** (* get_protocols_full) (GType type);
+ gpointer _gst_reserved[4 - 2];
+};
+gboolean gst_uri_protocol_is_valid (const gchar * protocol);
+gboolean gst_uri_protocol_is_supported (const GstURIType type,
+ const gchar *protocol);
+gboolean gst_uri_is_valid (const gchar * uri);
+gchar * gst_uri_get_protocol (const gchar * uri);
+gboolean gst_uri_has_protocol (const gchar * uri,
+ const gchar * protocol);
+gchar * gst_uri_get_location (const gchar * uri);
+gchar * gst_uri_construct (const gchar * protocol,
+ const gchar * location);
+GstElement * gst_element_make_from_uri (const GstURIType type,
+ const gchar * uri,
+ const gchar * elementname);
+GType gst_uri_handler_get_type (void);
+guint gst_uri_handler_get_uri_type (GstURIHandler * handler);
+gchar ** gst_uri_handler_get_protocols (GstURIHandler * handler);
+const
+gchar * gst_uri_handler_get_uri (GstURIHandler * handler);
+gboolean gst_uri_handler_set_uri (GstURIHandler * handler,
+ const gchar * uri);
+void gst_uri_handler_new_uri (GstURIHandler * handler,
+ const gchar * uri);
+GQuark gst_parse_error_quark (void);
+typedef enum
+{
+ GST_PARSE_ERROR_SYNTAX,
+ GST_PARSE_ERROR_NO_SUCH_ELEMENT,
+ GST_PARSE_ERROR_NO_SUCH_PROPERTY,
+ GST_PARSE_ERROR_LINK,
+ GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY,
+ GST_PARSE_ERROR_EMPTY_BIN,
+ GST_PARSE_ERROR_EMPTY
+} GstParseError;
+typedef enum
+{
+ GST_PARSE_FLAG_NONE = 0,
+ GST_PARSE_FLAG_FATAL_ERRORS = (1 << 0)
+} GstParseFlags;
+typedef struct _GstParseContext GstParseContext;
+GstParseContext * gst_parse_context_new (void);
+gchar ** gst_parse_context_get_missing_elements (GstParseContext * context);
+void gst_parse_context_free (GstParseContext * context);
+GstElement * gst_parse_launch (const gchar * pipeline_description,
+ GError ** error);
+GstElement * gst_parse_launchv (const gchar ** argv,
+ GError ** error);
+GstElement * gst_parse_launch_full (const gchar * pipeline_description,
+ GstParseContext * context,
+ GstParseFlags flags,
+ GError ** error);
+GstElement * gst_parse_launchv_full (const gchar ** argv,
+ GstParseContext * context,
+ GstParseFlags flags,
+ GError ** error);
+void gst_util_set_value_from_string (GValue *value, const gchar *value_str);
+void gst_util_set_object_arg (GObject *object, const gchar *name, const gchar *value);
+void gst_util_dump_mem (const guchar *mem, guint size);
+guint64 gst_util_gdouble_to_guint64 (gdouble value) __attribute__((__pure__));
+gdouble gst_util_guint64_to_gdouble (guint64 value) __attribute__((__pure__));
+guint64 gst_util_uint64_scale (guint64 val, guint64 num, guint64 denom) __attribute__((__pure__));
+guint64 gst_util_uint64_scale_int (guint64 val, gint num, gint denom) __attribute__((__pure__));
+guint32 gst_util_seqnum_next (void);
+gint32 gst_util_seqnum_compare (guint32 s1, guint32 s2);
+void gst_print_pad_caps (GString *buf, gint indent, GstPad *pad);
+void gst_print_element_args (GString *buf, gint indent, GstElement *element);
+GType gst_type_register_static_full (GType parent_type,
+ const gchar *type_name,
+ guint class_size,
+ GBaseInitFunc base_init,
+ GBaseFinalizeFunc base_finalize,
+ GClassInitFunc class_init,
+ GClassFinalizeFunc class_finalize,
+ gconstpointer class_data,
+ guint instance_size,
+ guint16 n_preallocs,
+ GInstanceInitFunc instance_init,
+ const GTypeValueTable *value_table,
+ GTypeFlags flags);
+inline static gfloat
+GFLOAT_SWAP_LE_BE(gfloat in)
+{
+ union
+ {
+ guint32 i;
+ gfloat f;
+ } u;
+ u.f = in;
+ 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))));
+ return u.f;
+}
+inline static gdouble
+GDOUBLE_SWAP_LE_BE(gdouble in)
+{
+ union
+ {
+ guint64 i;
+ gdouble d;
+ } u;
+ u.d = in;
+ 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))));
+ return u.d;
+}
+inline static gfloat
+GST_READ_FLOAT_LE(const guint8 *data)
+{
+ union
+ {
+ guint32 i;
+ gfloat f;
+ } u;
+ u.i = ((((guint32) (((guint8 *) (data))[3])) << (24)) | (((guint32) (((guint8 *) (data))[2])) << (16)) | (((guint32) (((guint8 *) (data))[1])) << (8)) | (((guint32) (((guint8 *) (data))[0])) << (0)));
+ return u.f;
+}
+inline static gfloat
+GST_READ_FLOAT_BE(const guint8 *data)
+{
+ union
+ {
+ guint32 i;
+ gfloat f;
+ } u;
+ u.i = ((((guint32) (((guint8 *) (data))[0])) << (24)) | (((guint32) (((guint8 *) (data))[1])) << (16)) | (((guint32) (((guint8 *) (data))[2])) << (8)) | (((guint32) (((guint8 *) (data))[3])) << (0)));
+ return u.f;
+}
+inline static gdouble
+GST_READ_DOUBLE_LE(const guint8 *data)
+{
+ union
+ {
+ guint64 i;
+ gdouble d;
+ } u;
+ 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)));
+ return u.d;
+}
+inline static gdouble
+GST_READ_DOUBLE_BE(const guint8 *data)
+{
+ union
+ {
+ guint64 i;
+ gdouble d;
+ } u;
+ 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)));
+ return u.d;
+}
+inline static void
+GST_WRITE_FLOAT_LE(guint8 *data, gfloat num)
+{
+ union
+ {
+ guint32 i;
+ gfloat f;
+ } u;
+ u.f = num;
+ 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);
+}
+inline static void
+GST_WRITE_FLOAT_BE(guint8 *data, gfloat num)
+{
+ union
+ {
+ guint32 i;
+ gfloat f;
+ } u;
+ u.f = num;
+ 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);
+}
+inline static void
+GST_WRITE_DOUBLE_LE(guint8 *data, gdouble num)
+{
+ union
+ {
+ guint64 i;
+ gdouble d;
+ } u;
+ u.d = num;
+ 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);
+}
+inline static void
+GST_WRITE_DOUBLE_BE(guint8 *data, gdouble num)
+{
+ union
+ {
+ guint64 i;
+ gdouble d;
+ } u;
+ u.d = num;
+ 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);
+}
+void gst_object_default_error (GstObject * source,
+ GError * error, gchar * debug);
+void gst_element_create_all_pads (GstElement *element);
+GstPad* gst_element_get_compatible_pad (GstElement *element, GstPad *pad,
+ const GstCaps *caps);
+GstPadTemplate* gst_element_get_compatible_pad_template (GstElement *element, GstPadTemplate *compattempl);
+const gchar* gst_element_state_get_name (GstState state);
+const gchar * gst_element_state_change_return_get_name (GstStateChangeReturn state_ret);
+gboolean gst_element_link (GstElement *src, GstElement *dest);
+gboolean gst_element_link_many (GstElement *element_1,
+ GstElement *element_2, ...) __attribute__((__sentinel__));
+gboolean gst_element_link_filtered (GstElement * src,
+ GstElement * dest,
+ GstCaps *filter);
+void gst_element_unlink (GstElement *src, GstElement *dest);
+void gst_element_unlink_many (GstElement *element_1,
+ GstElement *element_2, ...) __attribute__((__sentinel__));
+gboolean gst_element_link_pads (GstElement *src, const gchar *srcpadname,
+ GstElement *dest, const gchar *destpadname);
+void gst_element_unlink_pads (GstElement *src, const gchar *srcpadname,
+ GstElement *dest, const gchar *destpadname);
+gboolean gst_element_link_pads_filtered (GstElement * src, const gchar * srcpadname,
+ GstElement * dest, const gchar * destpadname,
+ GstCaps *filter);
+gboolean gst_element_seek_simple (GstElement *element,
+ GstFormat format,
+ GstSeekFlags seek_flags,
+ gint64 seek_pos);
+gboolean gst_element_factory_can_src_caps(GstElementFactory *factory, const GstCaps *caps);
+gboolean gst_element_factory_can_sink_caps(GstElementFactory *factory, const GstCaps *caps);
+gboolean gst_element_query_position (GstElement *element, GstFormat *format,
+ gint64 *cur);
+gboolean gst_element_query_duration (GstElement *element, GstFormat *format,
+ gint64 *duration);
+gboolean gst_element_query_convert (GstElement *element, GstFormat src_format, gint64 src_val,
+ GstFormat *dest_format, gint64 *dest_val);
+void gst_element_class_install_std_props (GstElementClass * klass,
+ const gchar * first_name, ...) __attribute__((__sentinel__));
+void gst_pad_use_fixed_caps (GstPad *pad);
+GstCaps* gst_pad_get_fixed_caps_func (GstPad *pad);
+GstCaps* gst_pad_proxy_getcaps (GstPad * pad);
+gboolean gst_pad_proxy_setcaps (GstPad * pad, GstCaps * caps);
+GstElement* gst_pad_get_parent_element (GstPad *pad);
+gboolean gst_pad_query_position (GstPad *pad, GstFormat *format,
+ gint64 *cur);
+gboolean gst_pad_query_duration (GstPad *pad, GstFormat *format,
+ gint64 *duration);
+gboolean gst_pad_query_convert (GstPad *pad, GstFormat src_format, gint64 src_val,
+ GstFormat *dest_format, gint64 *dest_val);
+gboolean gst_pad_query_peer_position (GstPad *pad, GstFormat *format,
+ gint64 *cur);
+gboolean gst_pad_query_peer_duration (GstPad *pad, GstFormat *format,
+ gint64 *duration);
+gboolean gst_pad_query_peer_convert (GstPad *pad, GstFormat src_format, gint64 src_val,
+ GstFormat *dest_format, gint64 *dest_val);
+void gst_bin_add_many (GstBin *bin, GstElement *element_1, ...) __attribute__((__sentinel__));
+void gst_bin_remove_many (GstBin *bin, GstElement *element_1, ...) __attribute__((__sentinel__));
+GstPad * gst_bin_find_unlinked_pad (GstBin *bin, GstPadDirection direction);
+GstPad * gst_bin_find_unconnected_pad (GstBin *bin, GstPadDirection direction);
+GstBuffer * gst_buffer_merge (GstBuffer * buf1, GstBuffer * buf2);
+GstBuffer * gst_buffer_join (GstBuffer * buf1, GstBuffer * buf2);
+void gst_buffer_stamp (GstBuffer * dest, const GstBuffer * src);
+void gst_atomic_int_set (gint * atomic_int, gint value);
+gulong gst_pad_add_data_probe (GstPad * pad,
+ GCallback handler,
+ gpointer data);
+gulong gst_pad_add_data_probe_full (GstPad * pad,
+ GCallback handler,
+ gpointer data,
+ GDestroyNotify notify);
+void gst_pad_remove_data_probe (GstPad * pad, guint handler_id);
+gulong gst_pad_add_event_probe (GstPad * pad,
+ GCallback handler,
+ gpointer data);
+gulong gst_pad_add_event_probe_full (GstPad * pad,
+ GCallback handler,
+ gpointer data,
+ GDestroyNotify notify);
+void gst_pad_remove_event_probe (GstPad * pad, guint handler_id);
+gulong gst_pad_add_buffer_probe (GstPad * pad,
+ GCallback handler,
+ gpointer data);
+gulong gst_pad_add_buffer_probe_full (GstPad * pad,
+ GCallback handler,
+ gpointer data,
+ GDestroyNotify notify);
+void gst_pad_remove_buffer_probe (GstPad * pad, guint handler_id);
+void gst_element_found_tags_for_pad (GstElement * element,
+ GstPad * pad,
+ GstTagList * list);
+void gst_element_found_tags (GstElement * element,
+ GstTagList * list);
+GstElement * gst_parse_bin_from_description (const gchar * bin_description,
+ gboolean ghost_unlinked_pads,
+ GError ** err);
+GstElement * gst_parse_bin_from_description_full (const gchar * bin_description,
+ gboolean ghost_unlinked_pads,
+ GstParseContext * context,
+ GstParseFlags flags,
+ GError ** err);
+GstClockTime gst_util_get_timestamp (void);
+typedef enum {
+ GST_SEARCH_MODE_EXACT = 0,
+ GST_SEARCH_MODE_BEFORE,
+ GST_SEARCH_MODE_AFTER
+} GstSearchMode;
+gpointer gst_util_array_binary_search (gpointer array, guint num_elements,
+ gsize element_size, GCompareDataFunc search_func,
+ GstSearchMode mode, gconstpointer search_data,
+ gpointer user_data);
+typedef struct _GstXML GstXML;
+typedef struct _GstXMLClass GstXMLClass;
+struct _GstXML {
+ GstObject object;
+ GList *topelements;
+ xmlNsPtr ns;
+ gpointer _gst_reserved[4];
+};
+struct _GstXMLClass {
+ GstObjectClass parent_class;
+ void (*object_loaded) (GstXML *xml, GstObject *object, xmlNodePtr self);
+ void (*object_saved) (GstXML *xml, GstObject *object, xmlNodePtr self);
+ gpointer _gst_reserved[4];
+};
+GType gst_xml_get_type (void);
+xmlDocPtr gst_xml_write (GstElement *element);
+gint gst_xml_write_file (GstElement *element, FILE *out);
+GstXML* gst_xml_new (void);
+gboolean gst_xml_parse_doc (GstXML *xml, xmlDocPtr doc, const guchar *root);
+gboolean gst_xml_parse_file (GstXML *xml, const guchar *fname, const guchar *root);
+gboolean gst_xml_parse_memory (GstXML *xml, guchar *buffer, guint size, const gchar *root);
+GstElement* gst_xml_get_element (GstXML *xml, const guchar *name);
+GList* gst_xml_get_topelements (GstXML *xml);
+GstElement* gst_xml_make_element (xmlNodePtr cur, GstObject *parent);
+void gst_init (int *argc, char **argv[]);
+gboolean gst_init_check (int *argc, char **argv[],
+ GError ** err);
+GOptionGroup * gst_init_get_option_group (void);
+void gst_deinit (void);
+void gst_version (guint *major, guint *minor,
+ guint *micro, guint *nano);
+gchar * gst_version_string (void);
+gboolean gst_segtrap_is_enabled (void);
+void gst_segtrap_set_enabled (gboolean enabled);
+gboolean gst_registry_fork_is_enabled (void);
+void gst_registry_fork_set_enabled (gboolean enabled);
+gboolean gst_update_registry (void);
+extern obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
+extern obj_t BGl_mainz00zzrecettez00(obj_t);
+static obj_t BGl_cnstzd2initzd2zzrecettez00();
+extern obj_t BGl_exitz00zz__errorz00(obj_t);
+extern obj_t BGl_modulezd2initializa7ationz75zzrecettez00(long, char *);
+extern obj_t BGl_modulezd2initializa7ationz75zz__gstreamer_gstreamerz00(long, char *);
+extern obj_t BGl_modulezd2initializa7ationz75zz__pth_threadz00(long, char *);
+extern obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
+extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
+static obj_t BGl_toplevelzd2initzd2zzrecettez00();
+extern obj_t BGl_modulezd2initzd2errorz00zz__errorz00(char *, char *);
+extern obj_t bigloo_main(obj_t);
+static obj_t BGl_methodzd2initzd2zzrecettez00();
+static obj_t BGl__mainz00zzrecettez00(obj_t, obj_t);
+extern obj_t BGl_bigloozd2typezd2errorz00zz__errorz00(obj_t, obj_t, obj_t);
+static obj_t BGl_requirezd2initializa7ationz75zzrecettez00 = ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));
+static obj_t BGl_genericzd2initzd2zzrecettez00();
+extern obj_t BGl_bigloozd2initializa7edz12z67zz__paramz00();
+extern long BGl_bitzd2andzd2zz__bitz00(long, long);
+extern obj_t bgl_open_input_string(obj_t, int);
+extern bool_t BGl_zd3fxzd3zz__r4_numbers_6_5_fixnumz00(long, long);
+static obj_t BGl_libraryzd2moduleszd2initz00zzrecettez00();
+static obj_t __cnst[ 1 ] ;
+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));
+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));
+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));
+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)));
+extern void bglpth_setup(int, char *[], char *[]);
+long bigloo_abort(long n) { return n; }
+int main(int argc, char *argv[], char *env[])
+{
+bglpth_setup(argc, argv, env);
+return _bigloo_main(argc, argv, env, &bigloo_main);}
+ obj_t BGl_modulezd2initializa7ationz75zzrecettez00(long BgL_checksumz00_509, char * BgL_fromz00_510)
+{ ;
+{
+{
+bool_t BgL_test2176z00_511;
+{
+obj_t BgL_arg2181z00_513;
+BgL_arg2181z00_513 =
+(obj_t)((long)(((long)(BGl_bitzd2andzd2zz__bitz00(BgL_checksumz00_509, ((long)67281932))) << 3) | 1));
+BgL_test2176z00_511 =
+BGl_zd3fxzd3zz__r4_numbers_6_5_fixnumz00(
+(long)(long)((long)((long)(BgL_arg2181z00_513) >> 3)), BgL_checksumz00_509); }
+if(BgL_test2176z00_511)
+{
+if(
+(BGl_requirezd2initializa7ationz75zzrecettez00 != ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2)))))
+{
+BGl_requirezd2initializa7ationz75zzrecettez00 =
+(((bool_t)0) ? ((obj_t)(obj_t)((long)(((long)(2) << 3) | 2))) : ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2))));
+BGl_libraryzd2moduleszd2initz00zzrecettez00();
+BGl_cnstzd2initzd2zzrecettez00();
+BGl_genericzd2initzd2zzrecettez00();
+BGl_methodzd2initzd2zzrecettez00();
+BGl_toplevelzd2initzd2zzrecettez00();
+return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));} else
+{
+return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));} } else
+{
+char * BgL_sz00_512;
+BgL_sz00_512 =
+"recette";
+return
+BGl_modulezd2initzd2errorz00zz__errorz00(BgL_sz00_512, BgL_fromz00_510);} } }
+}
+ obj_t bigloo_main(obj_t BgL_argvz00_514)
+{ ;
+{
+BGl_modulezd2initializa7ationz75zzrecettez00(((long)0), "recette");
+BGl_bigloozd2initializa7edz12z67zz__paramz00();
+{
+obj_t BgL_arg2188z00_515;
+BgL_arg2188z00_515 =
+BGl_mainz00zzrecettez00(BgL_argvz00_514);
+return
+bigloo_exit(BgL_arg2188z00_515);} }
+}
+obj_t BGl_libraryzd2moduleszd2initz00zzrecettez00()
+{ ;
+{
+BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "recette");
+BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "recette");
+BGl_modulezd2initializa7ationz75zz__gstreamer_gstreamerz00(((long)0), "recette");
+BGl_modulezd2initializa7ationz75zz__pth_threadz00(((long)0), "recette");
+return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));}
+}
+obj_t BGl_cnstzd2initzd2zzrecettez00()
+{ ;
+{
+{
+obj_t BgL_cportz00_501;
+BgL_cportz00_501 =
+bgl_open_input_string(BGl_string2168z00zzrecettez00,
+(int)(((long)0)));
+{
+long BgL_iz00_502;
+BgL_iz00_502 = ((long)0);
+BgL_loopz00_503:
+{
+bool_t BgL_test2169z00_504;
+BgL_test2169z00_504 =
+(BgL_iz00_502==((long)-1));
+if(BgL_test2169z00_504)
+{
+return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));} else
+{
+{
+obj_t BgL_arg2175z00_505;
+{
+{
+obj_t BgL_iportz00_506;
+BgL_iportz00_506 = BgL_cportz00_501;
+{
+obj_t BgL_locationz00_507;
+BgL_locationz00_507 =
+(((bool_t)0) ? ((obj_t)(obj_t)((long)(((long)(2) << 3) | 2))) : ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2))));
+{
+BgL_arg2175z00_505 =
+BGl_readz00zz__readerz00(BgL_iportz00_506, BgL_locationz00_507); } } } }
+{
+int BgL_auxz00_545;
+BgL_auxz00_545 =
+(int)(BgL_iz00_502);
+( __cnst[ BgL_auxz00_545 ] = BgL_arg2175z00_505, ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2))) ); } }
+{
+int BgL_auxz00_508;
+BgL_auxz00_508 =
+(int)(
+(BgL_iz00_502-((long)1)));
+{
+long BgL_iz00_550;
+BgL_iz00_550 =
+(long)(BgL_auxz00_508);
+BgL_iz00_502 = BgL_iz00_550;
+goto BgL_loopz00_503;} } } } } } }
+}
+obj_t BGl_toplevelzd2initzd2zzrecettez00()
+{ ;
+{
+BGl_modulezd2initializa7ationz75zz__gstreamer_gstreamerz00(((long)0),
+((char *)(&((((obj_t)((long)BGl_string2166z00zzrecettez00 - 7))->string_t).char0))));
+BGl_modulezd2initializa7ationz75zz__pth_threadz00(((long)0),
+((char *)(&((((obj_t)((long)BGl_string2166z00zzrecettez00 - 7))->string_t).char0))));
+return ((obj_t)(obj_t)((long)(((long)(1) << 3) | 2)));}
+}
+ obj_t BGl_mainz00zzrecettez00(obj_t BgL_argvz00_1)
+{ ;
+{
+{
+obj_t BgL_list2163z00_496;
+BgL_list2163z00_496 =
+({ 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)) ); });
+return
+BGl_exitz00zz__errorz00(BgL_list2163z00_496);} }
+}
+obj_t BGl__mainz00zzrecettez00(obj_t BgL_envz00_497, obj_t BgL_argvz00_498)
+{ ;
+{
+{
+obj_t BgL_auxz00_559;
+{
+obj_t BgL_aux2164z00_499;
+BgL_aux2164z00_499 = BgL_argvz00_498;
+{
+bool_t BgL_test2165z00_500;
+BgL_test2165z00_500 =
+((((long)BgL_aux2164z00_499) & ((1 << 3) - 1)) == 3);
+if(BgL_test2165z00_500)
+{
+BgL_auxz00_559 = BgL_aux2164z00_499
+; } else
+{
+BGl_bigloozd2typezd2errorz00zz__errorz00(
+__cnst[ ((long)0) ], BGl_string2167z00zzrecettez00, BgL_aux2164z00_499);
+exit( -1 );} } }
+return
+BGl_mainz00zzrecettez00(BgL_auxz00_559);} }
+}
+obj_t BGl_genericzd2initzd2zzrecettez00()
+{ ;
+{
+return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));}
+}
+obj_t BGl_methodzd2initzd2zzrecettez00()
+{ ;
+{
+return ((obj_t)(obj_t)((long)(((long)(3) << 3) | 2)));}
+}