// /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/cc1 -quiet -I. -I. -I../.. -I../.. -I../../app -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include -MD gimp-composite-sse.d -MF .deps/gimp-composite-sse.Tpo -MP -MT gimp-composite-sse.o -MQ gimp-composite-sse.o -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3 -DHAVE_CONFIG_H -DG_LOG_DOMAIN="Gimp-Composite" -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE gimp-composite-sse.c -fPIE -fstack-protector -fstack-protector-all -quiet -dumpbase gimp-composite-sse.c -march=pentium3 -auxbase-strip gimp-composite-sse.o -O2 -Wall -fomit-frame-pointer -o - -frandom-seed=0 # 1 "gimp-composite-sse.c" # 1 "" # 1 "" # 1 "gimp-composite-sse.c" # 33 "gimp-composite-sse.c" # 1 "../../config.h" 1 # 34 "gimp-composite-sse.c" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 28 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 295 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 296 "/usr/include/features.h" 2 3 4 # 318 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 319 "/usr/include/features.h" 2 3 4 # 29 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 213 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef unsigned int size_t; # 35 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 28 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 29 "/usr/include/bits/types.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 32 "/usr/include/bits/types.h" 2 3 4 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; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 129 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 130 "/usr/include/bits/types.h" 2 3 4 __extension__ typedef unsigned long long int __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef unsigned long long int __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef long long int __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef unsigned long long int __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef int __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef long long int __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef unsigned long long int __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef unsigned long long int __fsfilcnt64_t; __extension__ typedef int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 37 "/usr/include/stdio.h" 2 3 4 typedef struct _IO_FILE FILE; # 62 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 72 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 32 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 14 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 325 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef long int wchar_t; # 354 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef unsigned int wint_t; # 15 "/usr/include/_G_config.h" 2 3 4 # 24 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 51 "/usr/include/wchar.h" 2 3 4 # 76 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { wint_t __wch; char __wchb[4]; } __value; } __mbstate_t; # 25 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 44 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/gconv.h" 1 3 4 # 28 "/usr/include/gconv.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 29 "/usr/include/gconv.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 32 "/usr/include/gconv.h" 2 3 4 enum { __GCONV_OK = 0, __GCONV_NOCONV, __GCONV_NODB, __GCONV_NOMEM, __GCONV_EMPTY_INPUT, __GCONV_FULL_OUTPUT, __GCONV_ILLEGAL_INPUT, __GCONV_INCOMPLETE_INPUT, __GCONV_ILLEGAL_DESCRIPTOR, __GCONV_INTERNAL_ERROR }; enum { __GCONV_IS_LAST = 0x0001, __GCONV_IGNORE_ERRORS = 0x0002 }; struct __gconv_step; struct __gconv_step_data; struct __gconv_loaded_object; struct __gconv_trans_data; typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *, int, int); typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); typedef int (*__gconv_init_fct) (struct __gconv_step *); typedef void (*__gconv_end_fct) (struct __gconv_step *); typedef int (*__gconv_trans_fct) (struct __gconv_step *, struct __gconv_step_data *, void *, __const unsigned char *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *); typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, __const unsigned char *, unsigned char *, unsigned char *); typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, size_t *); typedef int (*__gconv_trans_init_fct) (void **, const char *); typedef void (*__gconv_trans_end_fct) (void *); struct __gconv_trans_data { __gconv_trans_fct __trans_fct; __gconv_trans_context_fct __trans_context_fct; __gconv_trans_end_fct __trans_end_fct; void *__data; struct __gconv_trans_data *__next; }; struct __gconv_step { struct __gconv_loaded_object *__shlib_handle; __const char *__modname; int __counter; char *__from_name; char *__to_name; __gconv_fct __fct; __gconv_btowc_fct __btowc_fct; __gconv_init_fct __init_fct; __gconv_end_fct __end_fct; int __min_needed_from; int __max_needed_from; int __min_needed_to; int __max_needed_to; int __stateful; void *__data; }; struct __gconv_step_data { unsigned char *__outbuf; unsigned char *__outbufend; int __flags; int __invocation_counter; int __internal_use; __mbstate_t *__statep; __mbstate_t __state; struct __gconv_trans_data *__trans; }; typedef struct __gconv_info { size_t __nsteps; struct __gconv_step *__steps; __extension__ struct __gconv_step_data __data []; } *__gconv_t; # 45 "/usr/include/_G_config.h" 2 3 4 typedef union { struct __gconv_info __cd; struct { struct __gconv_info __cd; struct __gconv_step_data __data; } __combined; } _G_iconv_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__))); # 33 "/usr/include/libio.h" 2 3 4 # 53 "/usr/include/libio.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stdarg.h" 1 3 4 # 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 54 "/usr/include/libio.h" 2 3 4 # 163 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 173 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 196 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 264 "/usr/include/libio.h" 3 4 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; # 312 "/usr/include/libio.h" 3 4 __off64_t _offset; void *__pad1; void *__pad2; int _mode; char _unused2[15 * sizeof (int) - 2 * sizeof (void *)]; }; 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_; # 351 "/usr/include/libio.h" 3 4 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); # 403 "/usr/include/libio.h" 3 4 extern int __underflow (_IO_FILE *) ; extern int __uflow (_IO_FILE *) ; extern int __overflow (_IO_FILE *, int) ; extern wint_t __wunderflow (_IO_FILE *) ; extern wint_t __wuflow (_IO_FILE *) ; extern wint_t __woverflow (_IO_FILE *, wint_t) ; # 441 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp) ; extern int _IO_putc (int __c, _IO_FILE *__fp) ; extern int _IO_feof (_IO_FILE *__fp) ; extern int _IO_ferror (_IO_FILE *__fp) ; extern int _IO_peekc_locked (_IO_FILE *__fp) ; extern void _IO_flockfile (_IO_FILE *) ; extern void _IO_funlockfile (_IO_FILE *) ; extern int _IO_ftrylockfile (_IO_FILE *) ; # 471 "/usr/include/libio.h" 3 4 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 *) ; # 73 "/usr/include/stdio.h" 2 3 4 # 86 "/usr/include/stdio.h" 3 4 typedef _G_fpos64_t fpos_t; # 138 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 139 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (__const char *__filename) ; extern int rename (__const char *__old, __const char *__new) ; # 167 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile (void) __asm__ ("" "tmpfile64"); # 178 "/usr/include/stdio.h" 3 4 extern char *tmpnam (char *__s) ; extern char *tmpnam_r (char *__s) ; # 196 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) __attribute__ ((__malloc__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 221 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 235 "/usr/include/stdio.h" 3 4 # 252 "/usr/include/stdio.h" 3 4 extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64"); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64"); # 273 "/usr/include/stdio.h" 3 4 extern FILE *fdopen (int __fd, __const char *__modes) ; # 294 "/usr/include/stdio.h" 3 4 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ; extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) ; extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) ; extern void setlinebuf (FILE *__stream) ; 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, ...) ; 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) ; extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 3, 0))); # 388 "/usr/include/stdio.h" 3 4 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, ...) ; # 430 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 454 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 465 "/usr/include/stdio.h" 3 4 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); # 498 "/usr/include/stdio.h" 3 4 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); # 578 "/usr/include/stdio.h" 3 4 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); # 631 "/usr/include/stdio.h" 3 4 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); # 686 "/usr/include/stdio.h" 3 4 # 700 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64"); extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64"); # 718 "/usr/include/stdio.h" 3 4 extern void clearerr (FILE *__stream) ; extern int feof (FILE *__stream) ; extern int ferror (FILE *__stream) ; extern void clearerr_unlocked (FILE *__stream) ; extern int feof_unlocked (FILE *__stream) ; extern int ferror_unlocked (FILE *__stream) ; extern void perror (__const char *__s); # 1 "/usr/include/bits/sys_errlist.h" 1 3 4 # 27 "/usr/include/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern __const char *__const sys_errlist[]; # 748 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) ; extern int fileno_unlocked (FILE *__stream) ; # 767 "/usr/include/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes); extern int pclose (FILE *__stream); extern char *ctermid (char *__s) ; # 807 "/usr/include/stdio.h" 3 4 extern void flockfile (FILE *__stream) ; extern int ftrylockfile (FILE *__stream) ; extern void funlockfile (FILE *__stream) ; # 828 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio.h" 1 3 4 # 33 "/usr/include/bits/stdio.h" 3 4 extern __inline int vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) { return vfprintf (stdout, __fmt, __arg); } extern __inline int getchar (void) { return _IO_getc (stdin); } extern __inline int getc_unlocked (FILE *__fp) { return (__builtin_expect ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end, 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline int getchar_unlocked (void) { return (__builtin_expect ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end, 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); } extern __inline int putchar (int __c) { return _IO_putc (__c, stdout); } extern __inline int fputc_unlocked (int __c, FILE *__stream) { return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline int putc_unlocked (int __c, FILE *__stream) { return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline int putchar_unlocked (int __c) { return (__builtin_expect ((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end, 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); } # 111 "/usr/include/bits/stdio.h" 3 4 extern __inline int feof_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x10) != 0); } extern __inline int ferror_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x20) != 0); } # 829 "/usr/include/stdio.h" 2 3 4 # 36 "gimp-composite-sse.c" 2 # 1 "/usr/include/glib-2.0/glib-object.h" 1 # 25 "/usr/include/glib-2.0/glib-object.h" # 1 "/usr/include/glib-2.0/gobject/gboxed.h" 1 # 26 "/usr/include/glib-2.0/gobject/gboxed.h" # 1 "/usr/include/glib-2.0/gobject/gtype.h" 1 # 26 "/usr/include/glib-2.0/gobject/gtype.h" # 1 "/usr/include/glib-2.0/glib.h" 1 # 30 "/usr/include/glib-2.0/glib.h" # 1 "/usr/include/glib-2.0/glib/galloca.h" 1 # 30 "/usr/include/glib-2.0/glib/galloca.h" # 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 # 30 "/usr/include/glib-2.0/glib/gtypes.h" # 1 "/usr/lib/glib-2.0/include/glibconfig.h" 1 # 9 "/usr/lib/glib-2.0/include/glibconfig.h" # 1 "/usr/include/glib-2.0/glib/gmacros.h" 1 # 36 "/usr/include/glib-2.0/glib/gmacros.h" # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 151 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef int ptrdiff_t; # 37 "/usr/include/glib-2.0/glib/gmacros.h" 2 # 10 "/usr/lib/glib-2.0/include/glibconfig.h" 2 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h" 1 3 4 # 11 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h" 1 3 4 # 122 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 144 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 # 130 "/usr/include/bits/posix1_lim.h" 3 4 # 1 "/usr/include/bits/local_lim.h" 1 3 4 # 36 "/usr/include/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 37 "/usr/include/bits/local_lim.h" 2 3 4 # 131 "/usr/include/bits/posix1_lim.h" 2 3 4 # 145 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 # 149 "/usr/include/limits.h" 2 3 4 # 123 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h" 2 3 4 # 8 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/syslimits.h" 2 3 4 # 12 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/limits.h" 2 3 4 # 12 "/usr/lib/glib-2.0/include/glibconfig.h" 2 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/float.h" 1 3 4 # 13 "/usr/lib/glib-2.0/include/glibconfig.h" 2 # 32 "/usr/lib/glib-2.0/include/glibconfig.h" typedef signed char gint8; typedef unsigned char guint8; typedef signed short gint16; typedef unsigned short guint16; typedef signed int gint32; typedef unsigned int guint32; __extension__ typedef signed long long gint64; __extension__ typedef unsigned long long guint64; # 58 "/usr/lib/glib-2.0/include/glibconfig.h" typedef signed int gssize; typedef unsigned int gsize; # 117 "/usr/lib/glib-2.0/include/glibconfig.h" typedef struct _GStaticMutex GStaticMutex; struct _GStaticMutex { struct _GMutex *runtime_mutex; union { char pad[24]; double dummy_double; void *dummy_pointer; long dummy_long; } static_mutex; }; # 136 "/usr/lib/glib-2.0/include/glibconfig.h" typedef union _GSystemThread GSystemThread; union _GSystemThread { char data[4]; double dummy_double; void *dummy_pointer; long dummy_long; }; # 176 "/usr/lib/glib-2.0/include/glibconfig.h" typedef int GPid; # 31 "/usr/include/glib-2.0/glib/gtypes.h" 2 # 41 "/usr/include/glib-2.0/glib/gtypes.h" 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; # 72 "/usr/include/glib-2.0/glib/gtypes.h" 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); # 335 "/usr/include/glib-2.0/glib/gtypes.h" 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; }; # 385 "/usr/include/glib-2.0/glib/gtypes.h" typedef struct _GTimeVal GTimeVal; struct _GTimeVal { glong tv_sec; glong tv_usec; }; # 31 "/usr/include/glib-2.0/glib/galloca.h" 2 # 31 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/garray.h" 1 # 32 "/usr/include/glib-2.0/glib/garray.h" 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; }; # 66 "/usr/include/glib-2.0/glib/garray.h" 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); # 32 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gasyncqueue.h" 1 # 30 "/usr/include/glib-2.0/glib/gasyncqueue.h" # 1 "/usr/include/glib-2.0/glib/gthread.h" 1 # 30 "/usr/include/glib-2.0/glib/gthread.h" # 1 "/usr/include/glib-2.0/glib/gerror.h" 1 # 24 "/usr/include/glib-2.0/glib/gerror.h" # 1 "/usr/include/glib-2.0/glib/gquark.h" 1 # 32 "/usr/include/glib-2.0/glib/gquark.h" 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__)); # 25 "/usr/include/glib-2.0/glib/gerror.h" 2 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_propagate_error (GError **dest, GError *src); void g_clear_error (GError **err); # 31 "/usr/include/glib-2.0/glib/gthread.h" 2 # 1 "/usr/include/glib-2.0/glib/gatomic.h" 1 # 35 "/usr/include/glib-2.0/glib/gatomic.h" gint g_atomic_int_exchange_and_add (gint *atomic, gint val); void g_atomic_int_add (gint *atomic, gint val); gboolean g_atomic_int_compare_and_exchange (gint *atomic, gint oldval, gint newval); gboolean g_atomic_pointer_compare_and_exchange (gpointer *atomic, gpointer oldval, gpointer newval); # 60 "/usr/include/glib-2.0/glib/gatomic.h" # 33 "/usr/include/glib-2.0/glib/gthread.h" 2 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; void g_thread_init (GThreadFunctions *vtable); # 128 "/usr/include/glib-2.0/glib/gthread.h" void g_thread_init_with_errorcheck_mutexes (GThreadFunctions* vtable); # 138 "/usr/include/glib-2.0/glib/gthread.h" GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex); # 208 "/usr/include/glib-2.0/glib/gthread.h" 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); # 233 "/usr/include/glib-2.0/glib/gthread.h" 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); 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); # 328 "/usr/include/glib-2.0/glib/gthread.h" extern void glib_dummy_decl (void); # 370 "/usr/include/glib-2.0/glib/gthread.h" # 31 "/usr/include/glib-2.0/glib/gasyncqueue.h" 2 typedef struct _GAsyncQueue GAsyncQueue; GAsyncQueue* g_async_queue_new (void); void g_async_queue_lock (GAsyncQueue *queue); void g_async_queue_unlock (GAsyncQueue *queue); void 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); 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); # 33 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gbacktrace.h" 1 # 32 "/usr/include/glib-2.0/glib/gbacktrace.h" # 43 "/usr/include/glib-2.0/glib/gbacktrace.h" void g_on_error_query (const gchar *prg_name); void g_on_error_stack_trace (const gchar *prg_name); # 59 "/usr/include/glib-2.0/glib/gbacktrace.h" # 35 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gcache.h" 1 # 30 "/usr/include/glib-2.0/glib/gcache.h" # 1 "/usr/include/glib-2.0/glib/glist.h" 1 # 30 "/usr/include/glib-2.0/glib/glist.h" # 1 "/usr/include/glib-2.0/glib/gmem.h" 1 # 32 "/usr/include/glib-2.0/glib/gmem.h" typedef struct _GAllocator GAllocator; typedef struct _GMemChunk GMemChunk; typedef struct _GMemVTable GMemVTable; # 48 "/usr/include/glib-2.0/glib/gmem.h" gpointer g_malloc (gulong n_bytes); gpointer g_malloc0 (gulong n_bytes); gpointer g_realloc (gpointer mem, gulong n_bytes); void g_free (gpointer mem); gpointer g_try_malloc (gulong n_bytes); gpointer g_try_realloc (gpointer mem, gulong n_bytes); # 72 "/usr/include/glib-2.0/glib/gmem.h" 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 GMemVTable *glib_mem_profiler_table; void g_mem_profile (void); # 135 "/usr/include/glib-2.0/glib/gmem.h" GMemChunk* g_mem_chunk_new (const gchar *name, gint atom_size, gulong 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); # 157 "/usr/include/glib-2.0/glib/gmem.h" void g_blow_chunks (void); GAllocator* g_allocator_new (const gchar *name, guint n_preallocs); void g_allocator_free (GAllocator *allocator); # 31 "/usr/include/glib-2.0/glib/glist.h" 2 typedef struct _GList GList; struct _GList { gpointer data; GList *next; GList *prev; }; void g_list_push_allocator (GAllocator *allocator); void g_list_pop_allocator (void); GList* g_list_alloc (void); void g_list_free (GList *list); void g_list_free_1 (GList *list); GList* g_list_append (GList *list, gpointer data); GList* g_list_prepend (GList *list, gpointer data); GList* g_list_insert (GList *list, gpointer data, gint position); GList* g_list_insert_sorted (GList *list, gpointer data, GCompareFunc func); GList* g_list_insert_before (GList *list, GList *sibling, gpointer data); GList* g_list_concat (GList *list1, GList *list2); GList* g_list_remove (GList *list, gconstpointer data); GList* g_list_remove_all (GList *list, gconstpointer data); GList* g_list_remove_link (GList *list, GList *llink); GList* g_list_delete_link (GList *list, GList *link_); GList* g_list_reverse (GList *list); GList* g_list_copy (GList *list); 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); GList* g_list_sort_with_data (GList *list, GCompareDataFunc compare_func, gpointer user_data); gpointer g_list_nth_data (GList *list, guint n); # 31 "/usr/include/glib-2.0/glib/gcache.h" 2 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); # 36 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gcompletion.h" 1 # 32 "/usr/include/glib-2.0/glib/gcompletion.h" 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); # 37 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gconvert.h" 1 # 30 "/usr/include/glib-2.0/glib/gconvert.h" # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 31 "/usr/include/glib-2.0/glib/gconvert.h" 2 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); size_t 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); gchar* g_convert_with_iconv (const gchar *str, gssize len, GIConv converter, gsize *bytes_read, gsize *bytes_written, GError **error); 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); gchar* g_locale_to_utf8 (const gchar *opsysstring, gssize len, gsize *bytes_read, gsize *bytes_written, GError **error); gchar* g_locale_from_utf8 (const gchar *utf8string, gssize len, gsize *bytes_read, gsize *bytes_written, GError **error); gchar* g_filename_to_utf8 (const gchar *opsysstring, gssize len, gsize *bytes_read, gsize *bytes_written, GError **error); gchar* g_filename_from_utf8 (const gchar *utf8string, gssize len, gsize *bytes_read, gsize *bytes_written, GError **error); gchar *g_filename_from_uri (const gchar *uri, gchar **hostname, GError **error); gchar *g_filename_to_uri (const gchar *filename, const gchar *hostname, GError **error); # 38 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gdataset.h" 1 # 32 "/usr/include/glib-2.0/glib/gdataset.h" 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); # 73 "/usr/include/glib-2.0/glib/gdataset.h" 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); # 100 "/usr/include/glib-2.0/glib/gdataset.h" # 39 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gdate.h" 1 # 32 "/usr/include/glib-2.0/glib/gdate.h" # 43 "/usr/include/glib-2.0/glib/gdate.h" typedef gint32 GTime; typedef guint16 GDateYear; typedef guint8 GDateDay; typedef struct _GDate GDate; struct tm; 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; # 96 "/usr/include/glib-2.0/glib/gdate.h" 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); void g_date_clear (GDate *date, guint n_dates); void g_date_set_parse (GDate *date, const gchar *str); 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); # 249 "/usr/include/glib-2.0/glib/gdate.h" # 40 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gdir.h" 1 # 28 "/usr/include/glib-2.0/glib/gdir.h" 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); # 41 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gfileutils.h" 1 # 26 "/usr/include/glib-2.0/glib/gfileutils.h" 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_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); 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); gchar *g_build_path (const gchar *separator, const gchar *first_element, ...); gchar *g_build_filename (const gchar *first_element, ...); # 43 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/ghash.h" 1 # 32 "/usr/include/glib-2.0/glib/ghash.h" typedef struct _GHashTable GHashTable; typedef gboolean (*GHRFunc) (gpointer key, gpointer value, gpointer user_data); 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); gboolean g_hash_table_steal (GHashTable *hash_table, gconstpointer key); 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); # 90 "/usr/include/glib-2.0/glib/ghash.h" gboolean g_str_equal (gconstpointer v, gconstpointer v2); guint g_str_hash (gconstpointer v); gboolean g_int_equal (gconstpointer v, gconstpointer v2); guint g_int_hash (gconstpointer v); guint g_direct_hash (gconstpointer v) __attribute__((__const__)); gboolean g_direct_equal (gconstpointer v, gconstpointer v2) __attribute__((__const__)); # 44 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/ghook.h" 1 # 32 "/usr/include/glib-2.0/glib/ghook.h" 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; GMemChunk *hook_memchunk; 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; }; # 102 "/usr/include/glib-2.0/glib/ghook.h" 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); void 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); # 45 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/giochannel.h" 1 # 31 "/usr/include/glib-2.0/glib/giochannel.h" # 1 "/usr/include/glib-2.0/glib/gmain.h" 1 # 23 "/usr/include/glib-2.0/glib/gmain.h" # 1 "/usr/include/glib-2.0/glib/gslist.h" 1 # 32 "/usr/include/glib-2.0/glib/gslist.h" typedef struct _GSList GSList; struct _GSList { gpointer data; GSList *next; }; void g_slist_push_allocator (GAllocator *allocator); void g_slist_pop_allocator (void); GSList* g_slist_alloc (void); void g_slist_free (GSList *list); void g_slist_free_1 (GSList *list); GSList* g_slist_append (GSList *list, gpointer data); GSList* g_slist_prepend (GSList *list, gpointer data); GSList* g_slist_insert (GSList *list, gpointer data, gint position); GSList* g_slist_insert_sorted (GSList *list, gpointer data, GCompareFunc func); GSList* g_slist_insert_before (GSList *slist, GSList *sibling, gpointer data); GSList* g_slist_concat (GSList *list1, GSList *list2); GSList* g_slist_remove (GSList *list, gconstpointer data); GSList* g_slist_remove_all (GSList *list, gconstpointer data); GSList* g_slist_remove_link (GSList *list, GSList *link_); GSList* g_slist_delete_link (GSList *list, GSList *link_); GSList* g_slist_reverse (GSList *list); GSList* g_slist_copy (GSList *list); 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); GSList* g_slist_sort_with_data (GSList *list, GCompareDataFunc compare_func, gpointer user_data); gpointer g_slist_nth_data (GSList *list, guint n); # 24 "/usr/include/glib-2.0/glib/gmain.h" 2 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; }; # 116 "/usr/include/glib-2.0/glib/gmain.h" typedef struct _GPollFD GPollFD; typedef gint (*GPollFunc) (GPollFD *ufds, guint nfsd, gint timeout_); struct _GPollFD { gint fd; gushort events; gushort revents; }; # 138 "/usr/include/glib-2.0/glib/gmain.h" GMainContext *g_main_context_new (void); void 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_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); int g_main_depth (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_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); void g_get_current_time (GTimeVal *result); # 281 "/usr/include/glib-2.0/glib/gmain.h" 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_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; # 32 "/usr/include/glib-2.0/glib/giochannel.h" 2 # 1 "/usr/include/glib-2.0/glib/gstring.h" 1 # 31 "/usr/include/glib-2.0/glib/gstring.h" # 1 "/usr/include/glib-2.0/glib/gunicode.h" 1 # 28 "/usr/include/glib-2.0/glib/gunicode.h" 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 } GUnicodeBreakType; 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__)); 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__)); void g_unicode_canonical_ordering (gunichar *string, gsize len); gunichar *g_unicode_canonical_decomposition (gunichar ch, gsize *result_len); extern const gchar * const g_utf8_skip; gunichar g_utf8_get_char (const gchar *p); gunichar g_utf8_get_char_validated (const gchar *p, gssize max_len); gchar* g_utf8_offset_to_pointer (const gchar *str, glong offset); glong g_utf8_pointer_to_offset (const gchar *str, const gchar *pos); gchar* g_utf8_prev_char (const gchar *p); gchar* g_utf8_find_next_char (const gchar *p, const gchar *end); gchar* g_utf8_find_prev_char (const gchar *str, const gchar *p); glong g_utf8_strlen (const gchar *p, gssize max); 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); gunichar * g_utf8_to_ucs4 (const gchar *str, glong len, glong *items_read, glong *items_written, GError **error); gunichar * g_utf8_to_ucs4_fast (const gchar *str, glong len, glong *items_written); gunichar * g_utf16_to_ucs4 (const gunichar2 *str, glong len, glong *items_read, glong *items_written, GError **error); gchar* g_utf16_to_utf8 (const gunichar2 *str, glong len, glong *items_read, glong *items_written, GError **error); gunichar2 *g_ucs4_to_utf16 (const gunichar *str, glong len, glong *items_read, glong *items_written, GError **error); gchar* g_ucs4_to_utf8 (const gunichar *str, glong len, glong *items_read, glong *items_written, GError **error); 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); gchar *g_utf8_strup (const gchar *str, gssize len); gchar *g_utf8_strdown (const gchar *str, gssize len); gchar *g_utf8_casefold (const gchar *str, gssize len); 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); gint g_utf8_collate (const gchar *str1, const gchar *str2); gchar *g_utf8_collate_key (const gchar *str, gssize len); gboolean g_unichar_get_mirror_char (gunichar ch, gunichar *mirrored_ch); # 32 "/usr/include/glib-2.0/glib/gstring.h" 2 # 1 "/usr/include/glib-2.0/glib/gutils.h" 1 # 31 "/usr/include/glib-2.0/glib/gutils.h" # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stdarg.h" 1 3 4 # 105 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 32 "/usr/include/glib-2.0/glib/gutils.h" 2 # 116 "/usr/include/glib-2.0/glib/gutils.h" 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); 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); typedef struct _GDebugKey GDebugKey; struct _GDebugKey { 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); gchar* g_path_get_dirname (const gchar *file_name); 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); typedef void (*GVoidFunc) (void); # 201 "/usr/include/glib-2.0/glib/gutils.h" void g_atexit (GVoidFunc func); gchar* g_find_program_in_path (const gchar *program); extern inline gint g_bit_nth_lsf (gulong mask, gint nth_bit); extern inline gint g_bit_nth_msf (gulong mask, gint nth_bit); extern inline guint g_bit_storage (gulong number); typedef struct _GTrashStack GTrashStack; struct _GTrashStack { GTrashStack *next; }; extern inline void g_trash_stack_push (GTrashStack **stack_p, gpointer data_p); extern inline gpointer g_trash_stack_pop (GTrashStack **stack_p); extern inline gpointer g_trash_stack_peek (GTrashStack **stack_p); extern inline guint g_trash_stack_height (GTrashStack **stack_p); extern inline gint g_bit_nth_lsf (gulong mask, gint nth_bit) { do { nth_bit++; if (mask & (1UL << nth_bit)) return nth_bit; } while (nth_bit < ((4 * 8) - 1)); return -1; } extern inline gint g_bit_nth_msf (gulong mask, gint nth_bit) { if (nth_bit < 0) nth_bit = 4 * 8; do { nth_bit--; if (mask & (1UL << nth_bit)) return nth_bit; } while (nth_bit > 0); return -1; } extern inline guint g_bit_storage (gulong number) { register guint n_bits = 0; do { n_bits++; number >>= 1; } while (number); return n_bits; } extern inline void g_trash_stack_push (GTrashStack **stack_p, gpointer data_p) { GTrashStack *data = (GTrashStack *) data_p; data->next = *stack_p; *stack_p = data; } extern inline 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; } extern inline gpointer g_trash_stack_peek (GTrashStack **stack_p) { GTrashStack *data; data = *stack_p; return data; } extern inline 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; # 33 "/usr/include/glib-2.0/glib/gstring.h" 2 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); 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_erase (GString *string, gssize pos, gssize len); GString* g_string_ascii_down (GString *string); GString* g_string_ascii_up (GString *string); void g_string_printf (GString *string, const gchar *format, ...) __attribute__((__format__ (__printf__, 2, 3))); void g_string_append_printf (GString *string, const gchar *format, ...) __attribute__((__format__ (__printf__, 2, 3))); static inline GString* g_string_append_c_inline (GString *gstring, gchar c) { if (gstring->len < gstring->allocated_len && 0) { gstring->str[gstring->len++] = c; gstring->str[gstring->len] = 0; } else g_string_insert_c (gstring, -1, c); return gstring; } # 145 "/usr/include/glib-2.0/glib/gstring.h" GString* g_string_down (GString *string); GString* g_string_up (GString *string); # 33 "/usr/include/glib-2.0/glib/giochannel.h" 2 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 { guint 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); void 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); # 290 "/usr/include/glib-2.0/glib/giochannel.h" GIOChannel* g_io_channel_unix_new (int fd); gint g_io_channel_unix_get_fd (GIOChannel *channel); extern GSourceFuncs g_io_watch_funcs; # 348 "/usr/include/glib-2.0/glib/giochannel.h" # 46 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gmarkup.h" 1 # 28 "/usr/include/glib-2.0/glib/gmarkup.h" 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 } GMarkupError; GQuark g_markup_error_quark (void); typedef enum { G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0 } 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); gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context, GError **error); const gchar *g_markup_parse_context_get_element (GMarkupParseContext *context); void g_markup_parse_context_get_position (GMarkupParseContext *context, gint *line_number, gint *char_number); 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); # 50 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gmessages.h" 1 # 37 "/usr/include/glib-2.0/glib/gmessages.h" # 38 "/usr/include/glib-2.0/glib/gmessages.h" 3 gsize g_printf_string_upper_bound (const gchar* format, va_list args); # 54 "/usr/include/glib-2.0/glib/gmessages.h" 3 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); 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); void _g_log_fallback_handler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data); # 178 "/usr/include/glib-2.0/glib/gmessages.h" 3 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); # 345 "/usr/include/glib-2.0/glib/gmessages.h" 3 # 52 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gnode.h" 1 # 32 "/usr/include/glib-2.0/glib/gnode.h" typedef struct _GNode GNode; typedef enum { G_TRAVERSE_LEAFS = 1 << 0, G_TRAVERSE_NON_LEAFS = 1 << 1, G_TRAVERSE_ALL = G_TRAVERSE_LEAFS | G_TRAVERSE_NON_LEAFS, G_TRAVERSE_MASK = 0x03 } 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; }; void g_node_push_allocator (GAllocator *allocator); void g_node_pop_allocator (void); 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); # 125 "/usr/include/glib-2.0/glib/gnode.h" 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); # 166 "/usr/include/glib-2.0/glib/gnode.h" # 53 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gpattern.h" 1 # 24 "/usr/include/glib-2.0/glib/gpattern.h" 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); # 54 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gprimes.h" 1 # 32 "/usr/include/glib-2.0/glib/gprimes.h" # 43 "/usr/include/glib-2.0/glib/gprimes.h" guint g_spaced_primes_closest (guint num) __attribute__((__const__)); # 55 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gqsort.h" 1 # 33 "/usr/include/glib-2.0/glib/gqsort.h" void g_qsort_with_data (gconstpointer pbase, gint total_elems, gsize size, GCompareDataFunc compare_func, gpointer user_data); # 56 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gqueue.h" 1 # 32 "/usr/include/glib-2.0/glib/gqueue.h" typedef struct _GQueue GQueue; struct _GQueue { GList *head; GList *tail; guint length; }; GQueue* g_queue_new (void); void g_queue_free (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_); # 58 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/grand.h" 1 # 32 "/usr/include/glib-2.0/glib/grand.h" typedef struct _GRand GRand; # 45 "/usr/include/glib-2.0/glib/grand.h" 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); # 59 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/grel.h" 1 # 32 "/usr/include/glib-2.0/glib/grel.h" typedef struct _GRelation GRelation; typedef struct _GTuples GTuples; struct _GTuples { guint len; }; # 65 "/usr/include/glib-2.0/glib/grel.h" 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); # 60 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gscanner.h" 1 # 32 "/usr/include/glib-2.0/glib/gscanner.h" typedef struct _GScanner GScanner; typedef struct _GScannerConfig GScannerConfig; typedef union _GTokenValue GTokenValue; typedef void (*GScannerMsgFunc) (GScanner *scanner, gchar *message, gboolean error); # 59 "/usr/include/glib-2.0/glib/gscanner.h" 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))); # 271 "/usr/include/glib-2.0/glib/gscanner.h" # 61 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gshell.h" 1 # 26 "/usr/include/glib-2.0/glib/gshell.h" 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); # 62 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gspawn.h" 1 # 26 "/usr/include/glib-2.0/glib/gspawn.h" 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); # 64 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gstrfuncs.h" 1 # 33 "/usr/include/glib-2.0/glib/gstrfuncs.h" 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; # 85 "/usr/include/glib-2.0/glib/gstrfuncs.h" 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); 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); gchar* g_ascii_strup (const gchar *str, gssize len); # 169 "/usr/include/glib-2.0/glib/gstrfuncs.h" 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); gchar* g_strdup_printf (const gchar *format, ...) __attribute__((__format__ (__printf__, 1, 2))); gchar* g_strdup_vprintf (const gchar *format, va_list args); gchar* g_strndup (const gchar *str, gsize n); gchar* g_strnfill (gsize length, gchar fill_char); gchar* g_strconcat (const gchar *string1, ...); gchar* g_strjoin (const gchar *separator, ...); gchar* g_strcompress (const gchar *source); # 209 "/usr/include/glib-2.0/glib/gstrfuncs.h" gchar* g_strescape (const gchar *source, const gchar *exceptions); gpointer g_memdup (gconstpointer mem, guint byte_size); # 223 "/usr/include/glib-2.0/glib/gstrfuncs.h" gchar** g_strsplit (const gchar *string, const gchar *delimiter, gint max_tokens); gchar ** g_strsplit_set (const gchar *string, const gchar *delimiters, gint max_tokens); gchar* g_strjoinv (const gchar *separator, gchar **str_array); void g_strfreev (gchar **str_array); gchar** g_strdupv (gchar **str_array); gchar* g_stpcpy (gchar *dest, const char *src); const gchar *g_strip_context (const gchar *msgid, const gchar *msgval); # 65 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gthreadpool.h" 1 # 32 "/usr/include/glib-2.0/glib/gthreadpool.h" 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); # 68 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gtimer.h" 1 # 32 "/usr/include/glib-2.0/glib/gtimer.h" 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); # 69 "/usr/include/glib-2.0/glib.h" 2 # 1 "/usr/include/glib-2.0/glib/gtree.h" 1 # 32 "/usr/include/glib-2.0/glib/gtree.h" 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); void g_tree_remove (GTree *tree, gconstpointer key); void 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); # 70 "/usr/include/glib-2.0/glib.h" 2 # 27 "/usr/include/glib-2.0/gobject/gtype.h" 2 # 92 "/usr/include/glib-2.0/gobject/gtype.h" typedef gulong 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; }; # 157 "/usr/include/glib-2.0/gobject/gtype.h" 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 func_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_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); # 384 "/usr/include/glib-2.0/gobject/gtype.h" 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 chec_func); GTypeValueTable* g_type_value_table_peek (GType type); gboolean g_type_check_instance (GTypeInstance *instance); GTypeInstance* g_type_check_instance_cast (GTypeInstance *instance, GType iface_type); gboolean g_type_check_instance_is_a (GTypeInstance *instance, GType iface_type); 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); gboolean g_type_check_is_value_type (GType type); gboolean g_type_check_value (GValue *value); gboolean g_type_check_value_holds (GValue *value, GType type); gboolean g_type_test_flags (GType type, guint flags); const gchar* g_type_name_from_instance (GTypeInstance *instance); const gchar* g_type_name_from_class (GTypeClass *g_class); # 474 "/usr/include/glib-2.0/gobject/gtype.h" extern GTypeDebugFlags _g_type_debug_flags; # 27 "/usr/include/glib-2.0/gobject/gboxed.h" 2 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); # 67 "/usr/include/glib-2.0/gobject/gboxed.h" 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_strv_get_type (void) __attribute__((__const__)); GType g_gstring_get_type (void) __attribute__((__const__)); typedef gchar** GStrv; # 26 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/genums.h" 1 # 26 "/usr/include/glib-2.0/gobject/genums.h" # 1 "/usr/include/glib-2.0/gobject/gtype.h" 1 # 27 "/usr/include/glib-2.0/gobject/genums.h" 2 # 46 "/usr/include/glib-2.0/gobject/genums.h" 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; gchar *value_name; gchar *value_nick; }; struct _GFlagsValue { guint value; gchar *value_name; 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); # 27 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gobject.h" 1 # 26 "/usr/include/glib-2.0/gobject/gobject.h" # 1 "/usr/include/glib-2.0/gobject/gtype.h" 1 # 27 "/usr/include/glib-2.0/gobject/gobject.h" 2 # 1 "/usr/include/glib-2.0/gobject/gvalue.h" 1 # 28 "/usr/include/glib-2.0/gobject/gvalue.h" # 1 "/usr/include/glib-2.0/gobject/gtype.h" 1 # 29 "/usr/include/glib-2.0/gobject/gvalue.h" 2 # 41 "/usr/include/glib-2.0/gobject/gvalue.h" 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); # 28 "/usr/include/glib-2.0/gobject/gobject.h" 2 # 1 "/usr/include/glib-2.0/gobject/gparam.h" 1 # 28 "/usr/include/glib-2.0/gobject/gparam.h" # 1 "/usr/include/glib-2.0/gobject/gvalue.h" 1 # 29 "/usr/include/glib-2.0/gobject/gparam.h" 2 # 49 "/usr/include/glib-2.0/gobject/gparam.h" 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_PRIVATE = 1 << 5 } 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); 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); # 226 "/usr/include/glib-2.0/gobject/gparam.h" # 29 "/usr/include/glib-2.0/gobject/gobject.h" 2 # 1 "/usr/include/glib-2.0/gobject/gclosure.h" 1 # 26 "/usr/include/glib-2.0/gobject/gclosure.h" # 1 "/usr/include/glib-2.0/gobject/gtype.h" 1 # 27 "/usr/include/glib-2.0/gobject/gclosure.h" 2 # 39 "/usr/include/glib-2.0/gobject/gclosure.h" 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 { guint ref_count : 15; guint meta_marshal : 1; guint n_guards : 1; guint n_fnotifiers : 2; guint n_inotifiers : 8; guint in_inotify : 1; guint floating : 1; guint derivative_flag : 1; guint in_marshal : 1; 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; # 92 "/usr/include/glib-2.0/gobject/gclosure.h" }; 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); # 160 "/usr/include/glib-2.0/gobject/gclosure.h" # 30 "/usr/include/glib-2.0/gobject/gobject.h" 2 # 1 "/usr/include/glib-2.0/gobject/gsignal.h" 1 # 26 "/usr/include/glib-2.0/gobject/gsignal.h" # 1 "/usr/include/glib-2.0/gobject/gclosure.h" 1 # 27 "/usr/include/glib-2.0/gobject/gsignal.h" 2 # 1 "/usr/include/glib-2.0/gobject/gvalue.h" 1 # 28 "/usr/include/glib-2.0/gobject/gsignal.h" 2 # 1 "/usr/include/glib-2.0/gobject/gparam.h" 1 # 29 "/usr/include/glib-2.0/gobject/gsignal.h" 2 # 1 "/usr/include/glib-2.0/gobject/gmarshal.h" 1 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); # 30 "/usr/include/glib-2.0/gobject/gsignal.h" 2 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, ...); 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_chain_from_overridden (const GValue *instance_and_params, GValue *return_value); # 259 "/usr/include/glib-2.0/gobject/gsignal.h" 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); # 31 "/usr/include/glib-2.0/gobject/gobject.h" 2 # 49 "/usr/include/glib-2.0/gobject/gobject.h" typedef struct _GObject GObject; typedef struct _GObjectClass GObjectClass; 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; 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); gpointer pdummy[8]; }; struct _GObjectConstructParam { GParamSpec *pspec; GValue *value; }; 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); 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, ...); void g_object_get (gpointer object, const gchar *first_property_name, ...); gpointer g_object_connect (gpointer object, const gchar *signal_spec, ...); void g_object_disconnect (gpointer object, const gchar *signal_spec, ...); 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); 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); 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); GObject* 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_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); # 250 "/usr/include/glib-2.0/gobject/gobject.h" # 28 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gparam.h" 1 # 29 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gparamspecs.h" 1 # 28 "/usr/include/glib-2.0/gobject/gparamspecs.h" # 1 "/usr/include/glib-2.0/gobject/gvalue.h" 1 # 29 "/usr/include/glib-2.0/gobject/gparamspecs.h" 2 # 1 "/usr/include/glib-2.0/gobject/genums.h" 1 # 30 "/usr/include/glib-2.0/gobject/gparamspecs.h" 2 # 1 "/usr/include/glib-2.0/gobject/gboxed.h" 1 # 31 "/usr/include/glib-2.0/gobject/gparamspecs.h" 2 # 1 "/usr/include/glib-2.0/gobject/gobject.h" 1 # 32 "/usr/include/glib-2.0/gobject/gparamspecs.h" 2 # 102 "/usr/include/glib-2.0/gobject/gparamspecs.h" 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; 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; }; 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); # 422 "/usr/include/glib-2.0/gobject/gparamspecs.h" extern GType *g_param_spec_types; # 30 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gsignal.h" 1 # 31 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gsourceclosure.h" 1 # 25 "/usr/include/glib-2.0/gobject/gsourceclosure.h" # 1 "/usr/include/glib-2.0/gobject/gclosure.h" 1 # 26 "/usr/include/glib-2.0/gobject/gsourceclosure.h" 2 void g_source_set_closure (GSource *source, GClosure *closure); GType g_io_channel_get_type (void); GType g_io_condition_get_type (void); # 32 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gtype.h" 1 # 33 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gtypemodule.h" 1 # 26 "/usr/include/glib-2.0/gobject/gtypemodule.h" # 1 "/usr/include/glib-2.0/gobject/gobject.h" 1 # 27 "/usr/include/glib-2.0/gobject/gtypemodule.h" 2 typedef struct _GTypeModule GTypeModule; typedef struct _GTypeModuleClass GTypeModuleClass; # 40 "/usr/include/glib-2.0/gobject/gtypemodule.h" 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); 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); # 34 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gtypeplugin.h" 1 # 26 "/usr/include/glib-2.0/gobject/gtypeplugin.h" # 1 "/usr/include/glib-2.0/gobject/gtype.h" 1 # 27 "/usr/include/glib-2.0/gobject/gtypeplugin.h" 2 # 40 "/usr/include/glib-2.0/gobject/gtypeplugin.h" 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); # 35 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gvalue.h" 1 # 36 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gvaluearray.h" 1 # 28 "/usr/include/glib-2.0/gobject/gvaluearray.h" # 1 "/usr/include/glib-2.0/gobject/gvalue.h" 1 # 29 "/usr/include/glib-2.0/gobject/gvaluearray.h" 2 # 37 "/usr/include/glib-2.0/gobject/gvaluearray.h" 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); # 37 "/usr/include/glib-2.0/glib-object.h" 2 # 1 "/usr/include/glib-2.0/gobject/gvaluetypes.h" 1 # 28 "/usr/include/glib-2.0/gobject/gvaluetypes.h" # 1 "/usr/include/glib-2.0/gobject/gvalue.h" 1 # 29 "/usr/include/glib-2.0/gobject/gvaluetypes.h" 2 # 49 "/usr/include/glib-2.0/gobject/gvaluetypes.h" 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_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; # 38 "/usr/include/glib-2.0/glib-object.h" 2 # 38 "gimp-composite-sse.c" 2 # 1 "../../app/base/base-types.h" 1 # 23 "../../app/base/base-types.h" # 1 "../../libgimpbase/gimpbasetypes.h" 1 # 24 "../../libgimpbase/gimpbasetypes.h" # 1 "../../libgimpcolor/gimpcolortypes.h" 1 # 23 "../../libgimpcolor/gimpcolortypes.h" # 32 "../../libgimpcolor/gimpcolortypes.h" typedef struct _GimpRGB GimpRGB; typedef struct _GimpHSV GimpHSV; typedef struct _GimpHSL GimpHSL; typedef struct _GimpCMYK GimpCMYK; struct _GimpRGB { gdouble r, g, b, a; }; struct _GimpHSV { gdouble h, s, v, a; }; struct _GimpHSL { gdouble h, s, l, a; }; struct _GimpCMYK { gdouble c, m, y, k, a; }; typedef void (* GimpRenderFunc) (gdouble x, gdouble y, GimpRGB *color, gpointer data); typedef void (* GimpPutPixelFunc) (gint x, gint y, GimpRGB *color, gpointer data); typedef void (* GimpProgressFunc) (gint min, gint max, gint current, gpointer data); # 25 "../../libgimpbase/gimpbasetypes.h" 2 # 1 "../../libgimpmath/gimpmathtypes.h" 1 # 25 "../../libgimpmath/gimpmathtypes.h" typedef struct _GimpMatrix2 GimpMatrix2; typedef struct _GimpMatrix3 GimpMatrix3; typedef struct _GimpMatrix4 GimpMatrix4; typedef struct _GimpVector2 GimpVector2; typedef struct _GimpVector3 GimpVector3; typedef struct _GimpVector4 GimpVector4; # 26 "../../libgimpbase/gimpbasetypes.h" 2 typedef struct _GimpParasite GimpParasite; typedef struct _GimpDatafileData GimpDatafileData; typedef void (* GimpDatafileLoaderFunc) (const GimpDatafileData *file_data, gpointer user_data); typedef enum { GIMP_UNIT_PIXEL = 0, GIMP_UNIT_INCH = 1, GIMP_UNIT_MM = 2, GIMP_UNIT_POINT = 3, GIMP_UNIT_PICA = 4, GIMP_UNIT_END = 5, GIMP_UNIT_PERCENT = 65536 } GimpUnit; typedef enum { GIMP_PDB_INT32, GIMP_PDB_INT16, GIMP_PDB_INT8, GIMP_PDB_FLOAT, GIMP_PDB_STRING, GIMP_PDB_INT32ARRAY, GIMP_PDB_INT16ARRAY, GIMP_PDB_INT8ARRAY, GIMP_PDB_FLOATARRAY, GIMP_PDB_STRINGARRAY, GIMP_PDB_COLOR, GIMP_PDB_REGION, GIMP_PDB_DISPLAY, GIMP_PDB_IMAGE, GIMP_PDB_LAYER, GIMP_PDB_CHANNEL, GIMP_PDB_DRAWABLE, GIMP_PDB_SELECTION, GIMP_PDB_BOUNDARY, GIMP_PDB_PATH, GIMP_PDB_PARASITE, GIMP_PDB_STATUS, GIMP_PDB_END } GimpPDBArgType; typedef enum { GIMP_INTERNAL, GIMP_PLUGIN, GIMP_EXTENSION, GIMP_TEMPORARY } GimpPDBProcType; typedef enum { GIMP_PDB_EXECUTION_ERROR, GIMP_PDB_CALLING_ERROR, GIMP_PDB_PASS_THROUGH, GIMP_PDB_SUCCESS, GIMP_PDB_CANCEL } GimpPDBStatusType; typedef enum { GIMP_MESSAGE_BOX, GIMP_CONSOLE, GIMP_ERROR_CONSOLE } GimpMessageHandlerType; typedef enum { GIMP_STACK_TRACE_NEVER, GIMP_STACK_TRACE_QUERY, GIMP_STACK_TRACE_ALWAYS } GimpStackTraceMode; # 24 "../../app/base/base-types.h" 2 # 1 "../../app/paint-funcs/paint-funcs-types.h" 1 # 23 "../../app/paint-funcs/paint-funcs-types.h" # 1 "../../app/base/base-types.h" 1 # 24 "../../app/paint-funcs/paint-funcs-types.h" 2 # 36 "../../app/paint-funcs/paint-funcs-types.h" typedef enum { INITIAL_CHANNEL_MASK = 0, INITIAL_CHANNEL_SELECTION, INITIAL_INDEXED, INITIAL_INDEXED_ALPHA, INITIAL_INTENSITY, INITIAL_INTENSITY_ALPHA } InitialMode; typedef enum { NO_COMBINATION = 0, COMBINE_INDEXED_INDEXED, COMBINE_INDEXED_INDEXED_A, COMBINE_INDEXED_A_INDEXED_A, COMBINE_INTEN_A_INDEXED_A, COMBINE_INTEN_A_CHANNEL_MASK, COMBINE_INTEN_A_CHANNEL_SELECTION, COMBINE_INTEN_INTEN, COMBINE_INTEN_INTEN_A, COMBINE_INTEN_A_INTEN, COMBINE_INTEN_A_INTEN_A, BEHIND_INTEN, BEHIND_INDEXED, REPLACE_INTEN, REPLACE_INDEXED, ERASE_INTEN, ERASE_INDEXED, ANTI_ERASE_INTEN, ANTI_ERASE_INDEXED, COLOR_ERASE_INTEN } CombinationMode; # 26 "../../app/base/base-types.h" 2 # 1 "../../app/base/base-enums.h" 1 # 40 "../../app/base/base-enums.h" GType gimp_check_size_get_type (void) __attribute__((__const__)); typedef enum { GIMP_SMALL_CHECKS = 0, GIMP_MEDIUM_CHECKS = 1, GIMP_LARGE_CHECKS = 2 } GimpCheckSize; GType gimp_check_type_get_type (void) __attribute__((__const__)); typedef enum { GIMP_LIGHT_CHECKS = 0, GIMP_GRAY_CHECKS = 1, GIMP_DARK_CHECKS = 2, GIMP_WHITE_ONLY = 3, GIMP_GRAY_ONLY = 4, GIMP_BLACK_ONLY = 5 } GimpCheckType; GType gimp_curve_type_get_type (void) __attribute__((__const__)); typedef enum { GIMP_CURVE_SMOOTH, GIMP_CURVE_FREE } GimpCurveType; GType gimp_histogram_channel_get_type (void) __attribute__((__const__)); typedef enum { GIMP_HISTOGRAM_VALUE = 0, GIMP_HISTOGRAM_RED = 1, GIMP_HISTOGRAM_GREEN = 2, GIMP_HISTOGRAM_BLUE = 3, GIMP_HISTOGRAM_ALPHA = 4 } GimpHistogramChannel; GType gimp_interpolation_type_get_type (void) __attribute__((__const__)); typedef enum { GIMP_INTERPOLATION_NONE, GIMP_INTERPOLATION_LINEAR, GIMP_INTERPOLATION_CUBIC } GimpInterpolationType; GType gimp_layer_mode_effects_get_type (void) __attribute__((__const__)); typedef enum { GIMP_NORMAL_MODE, GIMP_DISSOLVE_MODE, GIMP_BEHIND_MODE, GIMP_MULTIPLY_MODE, GIMP_SCREEN_MODE, GIMP_OVERLAY_MODE, GIMP_DIFFERENCE_MODE, GIMP_ADDITION_MODE, GIMP_SUBTRACT_MODE, GIMP_DARKEN_ONLY_MODE, GIMP_LIGHTEN_ONLY_MODE, GIMP_HUE_MODE, GIMP_SATURATION_MODE, GIMP_COLOR_MODE, GIMP_VALUE_MODE, GIMP_DIVIDE_MODE, GIMP_DODGE_MODE, GIMP_BURN_MODE, GIMP_HARDLIGHT_MODE, GIMP_SOFTLIGHT_MODE, GIMP_GRAIN_EXTRACT_MODE, GIMP_GRAIN_MERGE_MODE, GIMP_COLOR_ERASE_MODE, GIMP_ERASE_MODE, GIMP_REPLACE_MODE, GIMP_ANTI_ERASE_MODE } GimpLayerModeEffects; GType gimp_transfer_mode_get_type (void) __attribute__((__const__)); typedef enum { GIMP_SHADOWS, GIMP_MIDTONES, GIMP_HIGHLIGHTS } GimpTransferMode; typedef enum { GIMP_NORMAL_CONVOL, GIMP_ABSOLUTE_CONVOL, GIMP_NEGATIVE_CONVOL } GimpConvolutionType; typedef enum { GIMP_ALL_HUES, GIMP_RED_HUES, GIMP_YELLOW_HUES, GIMP_GREEN_HUES, GIMP_CYAN_HUES, GIMP_BLUE_HUES, GIMP_MAGENTA_HUES } GimpHueRange; # 28 "../../app/base/base-types.h" 2 # 1 "../../app/config/config-types.h" 1 # 26 "../../app/config/config-types.h" typedef struct _GimpConfig GimpConfig; typedef struct _GimpConfigInterface GimpConfigInterface; typedef struct _GimpBaseConfig GimpBaseConfig; typedef struct _GimpCoreConfig GimpCoreConfig; typedef struct _GimpDisplayConfig GimpDisplayConfig; typedef struct _GimpGuiConfig GimpGuiConfig; typedef struct _GimpPluginConfig GimpPluginConfig; typedef struct _GimpRc GimpRc; typedef struct _GimpConfigWriter GimpConfigWriter; typedef struct _GimpXmlParser GimpXmlParser; typedef struct _GimpDisplayOptions GimpDisplayOptions; typedef struct _GimpGrid GimpGrid; typedef struct _GimpTemplate GimpTemplate; # 30 "../../app/base/base-types.h" 2 # 48 "../../app/base/base-types.h" typedef struct _BoundSeg BoundSeg; typedef struct _GimpHistogram GimpHistogram; typedef struct _GimpLut GimpLut; typedef struct _ColorBalance ColorBalance; typedef struct _Colorize Colorize; typedef struct _Curves Curves; typedef struct _HueSaturation HueSaturation; typedef struct _Levels Levels; typedef struct _Threshold Threshold; typedef struct _PixelRegionIterator PixelRegionIterator; typedef struct _PixelRegion PixelRegion; typedef struct _PixelRegionHolder PixelRegionHolder; typedef struct _TempBuf TempBuf; typedef struct _TempBuf MaskBuf; typedef struct _Tile Tile; typedef struct _TileManager TileManager; typedef struct _PixelDataHandle PixelDataHandle; typedef void (* TileValidateProc) (TileManager *tm, Tile *tile); # 40 "gimp-composite-sse.c" 2 # 1 "../../app/base/cpu-accel.h" 1 # 41 "../../app/base/cpu-accel.h" guint32 cpu_accel (void) __attribute__((__const__)); void cpu_accel_print_results (void); # 41 "gimp-composite-sse.c" 2 # 1 "gimp-composite.h" 1 # 26 "gimp-composite.h" typedef enum { GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_ANY, GIMP_PIXELFORMAT_N } GimpPixelFormat; # 55 "gimp-composite.h" extern const guchar gimp_composite_pixel_bpp[]; extern const guchar gimp_composite_pixel_alphap[]; extern const GimpPixelFormat gimp_composite_pixel_alpha[]; # 75 "gimp-composite.h" typedef enum { GIMP_COMPOSITE_NORMAL = GIMP_NORMAL_MODE, GIMP_COMPOSITE_DISSOLVE = GIMP_DISSOLVE_MODE, GIMP_COMPOSITE_BEHIND = GIMP_BEHIND_MODE, GIMP_COMPOSITE_MULTIPLY = GIMP_MULTIPLY_MODE, GIMP_COMPOSITE_SCREEN = GIMP_SCREEN_MODE, GIMP_COMPOSITE_OVERLAY = GIMP_OVERLAY_MODE, GIMP_COMPOSITE_DIFFERENCE = GIMP_DIFFERENCE_MODE, GIMP_COMPOSITE_ADDITION = GIMP_ADDITION_MODE, GIMP_COMPOSITE_SUBTRACT = GIMP_SUBTRACT_MODE, GIMP_COMPOSITE_DARKEN = GIMP_DARKEN_ONLY_MODE, GIMP_COMPOSITE_LIGHTEN = GIMP_LIGHTEN_ONLY_MODE, GIMP_COMPOSITE_HUE = GIMP_HUE_MODE, GIMP_COMPOSITE_SATURATION = GIMP_SATURATION_MODE, GIMP_COMPOSITE_COLOR_ONLY = GIMP_COLOR_MODE, GIMP_COMPOSITE_VALUE = GIMP_VALUE_MODE, GIMP_COMPOSITE_DIVIDE = GIMP_DIVIDE_MODE, GIMP_COMPOSITE_DODGE = GIMP_DODGE_MODE, GIMP_COMPOSITE_BURN = GIMP_BURN_MODE, GIMP_COMPOSITE_HARDLIGHT = GIMP_HARDLIGHT_MODE, GIMP_COMPOSITE_SOFTLIGHT = GIMP_SOFTLIGHT_MODE, GIMP_COMPOSITE_GRAIN_EXTRACT = GIMP_GRAIN_EXTRACT_MODE, GIMP_COMPOSITE_GRAIN_MERGE = GIMP_GRAIN_MERGE_MODE, GIMP_COMPOSITE_COLOR_ERASE = GIMP_COLOR_ERASE_MODE, GIMP_COMPOSITE_ERASE = GIMP_ERASE_MODE, GIMP_COMPOSITE_REPLACE = GIMP_REPLACE_MODE, GIMP_COMPOSITE_ANTI_ERASE = GIMP_ANTI_ERASE_MODE, GIMP_COMPOSITE_BLEND, GIMP_COMPOSITE_SHADE, GIMP_COMPOSITE_SWAP, GIMP_COMPOSITE_SCALE, GIMP_COMPOSITE_CONVERT, GIMP_COMPOSITE_XOR, GIMP_COMPOSITE_N } GimpCompositeOperation; struct GimpCompositeOperationEffects { guchar affect_opacity; guchar increase_opacity; guchar decrease_opacity; }; extern struct GimpCompositeOperationEffects gimp_composite_operation_effects[]; typedef struct { guchar *A; guchar *B; guchar *D; guchar *M; gulong n_pixels; GimpPixelFormat pixelformat_A; GimpPixelFormat pixelformat_B; GimpPixelFormat pixelformat_D; GimpPixelFormat pixelformat_M; struct { gint opacity; gchar affect; } replace; struct { gint scale; } scale; struct { gint blend; } blend; struct { gint x; gint y; gint opacity; } dissolve; CombinationMode combine; GimpCompositeOperation op; } GimpCompositeContext; struct GimpCompositeOptions { gulong bits; }; extern struct GimpCompositeOptions gimp_composite_options; extern void gimp_composite_init (gboolean use_cpu_accel); extern void gimp_composite_dispatch (GimpCompositeContext *ctx); extern void gimp_composite_context_print (GimpCompositeContext *ctx); extern const gchar * gimp_composite_mode_astext (GimpCompositeOperation op); extern const gchar * gimp_composite_pixelformat_astext (GimpPixelFormat format); extern gchar *gimp_composite_function_name[GIMP_COMPOSITE_N][GIMP_PIXELFORMAT_N][GIMP_PIXELFORMAT_N][GIMP_PIXELFORMAT_N]; extern void (*gimp_composite_function[GIMP_COMPOSITE_N][GIMP_PIXELFORMAT_N][GIMP_PIXELFORMAT_N][GIMP_PIXELFORMAT_N])(GimpCompositeContext *); # 43 "gimp-composite-sse.c" 2 # 1 "gimp-composite-sse.h" 1 extern gboolean gimp_composite_sse_init (void); extern gboolean gimp_composite_sse_install (void); extern void gimp_composite_addition_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_burn_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_coloronly_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_darken_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_difference_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_dissolve_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_divide_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_dodge_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_grain_extract_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_grain_merge_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_hardlight_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_hueonly_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_lighten_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_multiply_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_overlay_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_replace_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_saturationonly_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_screen_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_softlight_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_subtract_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_swap_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_valueonly_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); extern void gimp_composite_scale_rgba8_rgba8_rgba8_sse (GimpCompositeContext *ctx); # 44 "gimp-composite-sse.c" 2 # 1 "gimp-composite-x86.h" 1 # 45 "gimp-composite-sse.c" 2 # 142 "gimp-composite-sse.c" static const guint32 rgba8_alpha_mask_64[2] = { 0xFF000000, 0xFF000000 }; static const guint32 rgba8_b1_64[2] = { 0x01010101, 0x01010101 }; static const guint32 rgba8_b255_64[2] = { 0xFFFFFFFF, 0xFFFFFFFF }; static const guint32 rgba8_w1_64[2] = { 0x00010001, 0x00010001 }; static const guint32 rgba8_w2_64[2] = { 0x00020002, 0x00020002 }; static const guint32 rgba8_w128_64[2] = { 0x00800080, 0x00800080 }; static const guint32 rgba8_w256_64[2] = { 0x01000100, 0x01000100 }; static const guint32 rgba8_w255_64[2] = { 0X00FF00FF, 0X00FF00FF }; static const guint32 va8_alpha_mask[2] = { 0xFF00FF00, 0xFF00FF00 }; static const guint32 va8_b255[2] = { 0xFFFFFFFF, 0xFFFFFFFF }; static const guint32 va8_w1[2] = { 0x00010001, 0x00010001 }; static const guint32 va8_w255[2] = { 0x00FF00FF, 0x00FF00FF }; void gimp_composite_addition_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("movq %0,%%mm0" : : "m" (*rgba8_alpha_mask_64) : "%mm0"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm (" movq %1, %%mm2\n" "\tmovq %2, %%mm3\n" "\tmovq %%mm2, %%mm4\n" "\tpaddusb %%mm3, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm3, %%mm2\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovq %%mm1, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1, %%mm2\n" "\tmovd %2, %%mm3\n" "\tmovq %%mm2, %%mm4\n" "\tpaddusb %%mm3, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm3, %%mm2\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovd %%mm1, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7"); } asm("emms"); } void gimp_composite_burn_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm (" movq %1,%%mm0\n" "\tmovq %2,%%mm1\n" "\tmovq %3,%%mm2\n" "\tpsubb %%mm0,%%mm2\n" "\tpxor %%mm4,%%mm4\n" "\tpunpcklbw %%mm2,%%mm4\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm5,%%mm5\n" "\tpunpcklbw %%mm5,%%mm3\n" "\tmovq %4,%%mm5\n" "\tpaddusw %%mm3,%%mm5\n" "\t" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm7" "; " "psrlq $32,%%" "mm4" ";" "psrlq $32,%%" "mm5" ";" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm5" ";" "psllq $32,%%" "mm5" ";" "por %%" "mm5" ",%%" "mm7" ";" "\n" "\tmovq %3,%%mm2\n" "\tpsubb %%mm0,%%mm2\n" "\tpxor %%mm4,%%mm4\n" "\tpunpckhbw %%mm2,%%mm4\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm5,%%mm5\n" "\tpunpckhbw %%mm5,%%mm3\n" "\tmovq %4,%%mm5\n" "\tpaddusw %%mm3,%%mm5\n" "\t" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm6" "; " "psrlq $32,%%" "mm4" ";" "psrlq $32,%%" "mm5" ";" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm5" ";" "psllq $32,%%" "mm5" ";" "por %%" "mm5" ",%%" "mm6" ";" "\n" "\tmovq %5,%%mm4\n" "\tmovq %%mm4,%%mm5\n" "\tpsubusw %%mm6,%%mm4\n" "\tpsubusw %%mm7,%%mm5\n" "\tpackuswb %%mm4,%%mm5\n" "\tpminub %%mm0,%%mm1\n" "\tmovq %6,%%mm7\n" "\tpand %%mm7,%%mm1\n" "\tpandn %%mm5,%%mm7\n" "\tpor %%mm1,%%mm7\n" "\tmovq %%mm7,%0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B), "m" (*rgba8_b255_64), "m" (*rgba8_w1_64), "m" (*rgba8_w255_64), "m" (*rgba8_alpha_mask_64) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1,%%mm0\n" "\tmovd %2,%%mm1\n" "\tmovq %3,%%mm2\n" "\tpsubb %%mm0,%%mm2\n" "\tpxor %%mm4,%%mm4\n" "\tpunpcklbw %%mm2,%%mm4\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm5,%%mm5\n" "\tpunpcklbw %%mm5,%%mm3\n" "\tmovq %4,%%mm5\n" "\tpaddusw %%mm3,%%mm5\n" "\t" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm7" "; " "psrlq $32,%%" "mm4" ";" "psrlq $32,%%" "mm5" ";" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm5" ";" "psllq $32,%%" "mm5" ";" "por %%" "mm5" ",%%" "mm7" ";" "\n" "\tmovq %3,%%mm2\n" "\tpsubb %%mm0,%%mm2\n" "\tpxor %%mm4,%%mm4\n" "\tpunpckhbw %%mm2,%%mm4\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm5,%%mm5\n" "\tpunpckhbw %%mm5,%%mm3\n" "\tmovq %4,%%mm5\n" "\tpaddusw %%mm3,%%mm5\n" "\t" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm6" "; " "psrlq $32,%%" "mm4" ";" "psrlq $32,%%" "mm5" ";" "movd %%" "mm4" ",%%eax; " "movd %%" "mm5" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "movd %%eax,%%" "mm5" ";" "psllq $32,%%" "mm5" ";" "por %%" "mm5" ",%%" "mm6" ";" "\n" "\tmovq %5,%%mm4\n" "\tmovq %%mm4,%%mm5\n" "\tpsubusw %%mm6,%%mm4\n" "\tpsubusw %%mm7,%%mm5\n" "\tpackuswb %%mm4,%%mm5\n" "\tpminub %%mm0,%%mm1\n" "\tmovq %6,%%mm7\n" "\tpand %%mm7,%%mm1\n" "\tpandn %%mm5,%%mm7\n" "\tpor %%mm1,%%mm7\n" "\tmovd %%mm7,%0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B), "m" (*rgba8_b255_64), "m" (*rgba8_w1_64), "m" (*rgba8_w255_64), "m" (*rgba8_alpha_mask_64) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7"); } asm("emms"); } void gimp_composite_darken_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %1, %%mm2\n" "\tpminub %2, %%mm2\n" "\tmovq %%mm2, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1, %%mm2\n" "\tmovd %2, %%mm3\n" "\tpminub %%mm3, %%mm2\n" "\tmovd %%mm2, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm2", "%mm3", "%mm4"); } asm("emms"); } void gimp_composite_difference_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("movq %0,%%mm0" : : "m" (*rgba8_alpha_mask_64) : "%mm0"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %1, %%mm2\n" "\tmovq %2, %%mm3\n" "\tmovq %%mm2, %%mm4\n" "\tmovq %%mm3, %%mm5\n" "\tpsubusb %%mm3, %%mm4\n" "\tpsubusb %%mm2, %%mm5\n" "\tpaddb %%mm5, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm3, %%mm2\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovq %%mm1, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1, %%mm2\n" "\tmovd %2, %%mm3\n" "\tmovq %%mm2, %%mm4\n" "\tmovq %%mm3, %%mm5\n" "\tpsubusb %%mm3, %%mm4\n" "\tpsubusb %%mm2, %%mm5\n" "\tpaddb %%mm5, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm3, %%mm2\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovd %%mm1, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B), "m" (*op.D) : "%mm1", "%mm2", "%mm3", "%mm4"); } asm("emms"); } void xxxgimp_composite_divide_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile (" movq %0, %%mm0\n" "\tmovq %1, %%mm7\n" : : "m" (*rgba8_alpha_mask_64), "m" (*rgba8_w1_64) : "%mm0", "%mm7"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %0,%%mm0\n" "\tmovq %1,%%mm1\n" "\tpxor %%mm2,%%mm2\n" "\tpunpcklbw %%mm0,%%mm2\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm5,%%mm5\n" "\tpunpcklbw %%mm5,%%mm3\n" "\tpaddw %%mm7,%%mm3\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm3" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "movd %%eax,%%" "mm3" ";" "psllq $32,%%" "mm3" ";" "por %%" "mm3" ",%%" "mm5" ";" "\n" "\tpxor %%mm2,%%mm2\n" "\tpunpckhbw %%mm0,%%mm2\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm6,%%mm6\n" "\tpunpckhbw %%mm6,%%mm3\n" "\tpaddw %%mm7,%%mm3\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm4" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm3" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm4" ";" "movd %%eax,%%" "mm3" ";" "psllq $32,%%" "mm3" ";" "por %%" "mm3" ",%%" "mm4" ";" "\n" "\tpackuswb %%mm4,%%mm5\n" "\tpminub %%mm0,%%mm1\n" "\tmovq %3,%%mm3\n" "\tmovq %%mm3,%%mm2\n" "\tpandn %%mm5,%%mm3\n" "\tpand %%mm2,%%mm1\n" "\tpor %%mm1,%%mm3\n" "\tmovq %%mm3,%2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D), "m" (*rgba8_alpha_mask_64) : "%eax", "%ecx", "%edx", "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %0,%%mm0\n" "\tmovd %1,%%mm1\n" "\tpxor %%mm2,%%mm2\n" "\tpunpcklbw %%mm0,%%mm2\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm5,%%mm5\n" "\tpunpcklbw %%mm5,%%mm3\n" "\tpaddw %%mm7,%%mm3\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm3" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "movd %%eax,%%" "mm3" ";" "psllq $32,%%" "mm3" ";" "por %%" "mm3" ",%%" "mm5" ";" "\n" "\tpxor %%mm2,%%mm2\n" "\tpunpckhbw %%mm0,%%mm2\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm6,%%mm6\n" "\tpunpckhbw %%mm6,%%mm3\n" "\tpaddw %%mm7,%%mm3\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm4" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm3" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm3" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm4" ";" "movd %%eax,%%" "mm3" ";" "psllq $32,%%" "mm3" ";" "por %%" "mm3" ",%%" "mm4" ";" "\n" "\tpackuswb %%mm4,%%mm5\n" "\tpminub %%mm0,%%mm1\n" "\tmovq %3,%%mm3\n" "\tmovq %%mm3,%%mm2\n" "\tpandn %%mm5,%%mm3\n" "\tpand %%mm2,%%mm1\n" "\tpor %%mm1,%%mm3\n" "\tmovd %%mm3,%2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D), "m" (*rgba8_alpha_mask_64) : "%eax", "%ecx", "%edx", "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); } asm("emms"); } void xxxgimp_composite_dodge_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %0,%%mm0\n" "\tmovq %1,%%mm1\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm2,%%mm2\n" "\tpunpcklbw %%mm2,%%mm3\n" "\tpunpcklbw %%mm0,%%mm2\n" "\tmovq %3,%%mm4\n" "\tpsubw %%mm3,%%mm4\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm4" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "movd %%eax,%%" "mm4" ";" "psllq $32,%%" "mm4" ";" "por %%" "mm4" ",%%" "mm5" ";" "\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm2,%%mm2\n" "\tpunpckhbw %%mm2,%%mm3\n" "\tpunpckhbw %%mm0,%%mm2\n" "\tmovq %3,%%mm4\n" "\tpsubw %%mm3,%%mm4\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm6" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm4" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm6" ";" "movd %%eax,%%" "mm4" ";" "psllq $32,%%" "mm4" ";" "por %%" "mm4" ",%%" "mm6" ";" "\n" "\tpackuswb %%mm6,%%mm5\n" "\tmovq %4,%%mm6\n" "\tmovq %%mm1,%%mm7\n" "\t" "pminub " "%%" "mm0" ", %%" "mm7" "\n" "\tpand %%mm6,%%mm7\n" "\tpandn %%mm5,%%mm6\n" "\tpor %%mm6,%%mm7\n" "\tmovq %%mm7,%2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D), "m" (*rgba8_w256_64), "m" (*rgba8_alpha_mask_64) : "0", "1", "2", "%eax", "%ecx", "%edx", "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %0,%%mm0\n" "\tmovq %1,%%mm1\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm2,%%mm2\n" "\tpunpcklbw %%mm2,%%mm3\n" "\tpunpcklbw %%mm0,%%mm2\n" "\tmovq %3,%%mm4\n" "\tpsubw %%mm3,%%mm4\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm4" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm5" ";" "movd %%eax,%%" "mm4" ";" "psllq $32,%%" "mm4" ";" "por %%" "mm4" ",%%" "mm5" ";" "\n" "\tmovq %%mm1,%%mm3\n" "\tpxor %%mm2,%%mm2\n" "\tpunpckhbw %%mm2,%%mm3\n" "\tpunpckhbw %%mm0,%%mm2\n" "\tmovq %3,%%mm4\n" "\tpsubw %%mm3,%%mm4\n" "\t" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm6" ";" "psrlq $32,%%" "mm2" ";" "psrlq $32,%%" "mm4" ";" "movd %%" "mm2" ",%%eax; " "movd %%" "mm4" ",%%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "roll $16, %%eax; " "roll $16, %%ecx; " "xorl %%edx,%%edx; " "divw %%cx; " "btr $15, %%eax; " "roll $16, %%eax; " "btr $15, %%eax; " "movd %%eax,%%" "mm6" ";" "movd %%eax,%%" "mm4" ";" "psllq $32,%%" "mm4" ";" "por %%" "mm4" ",%%" "mm6" ";" "\n" "\tpackuswb %%mm6,%%mm5\n" "\tmovq %4,%%mm6\n" "\tmovq %%mm1,%%mm7\n" "\tpminub %%mm0,%%mm7\n" "\tpand %%mm6,%%mm7\n" "\tpandn %%mm5,%%mm6\n" "\tpor %%mm6,%%mm7\n" "\tmovd %%mm7,%2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D), "m" (*rgba8_w256_64), "m" (*rgba8_alpha_mask_64) : "0", "1", "2", "%eax", "%ecx", "%edx", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); } asm("emms"); } void gimp_composite_grain_extract_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile (" movq %0,%%mm0\n" "\tpxor %%mm6,%%mm6\n" "\tmovq %1,%%mm7\n" : : "m" (*rgba8_alpha_mask_64), "m" (*rgba8_w128_64) : "%mm0", "%mm6", "%mm7"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %1,%%mm2\n" "\tmovq %2,%%mm3\n" "\tmovq %%""mm2"", %%""mm4""; " "\tpunpcklbw %%""mm6"", %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm6"", %%""mm5""\n" "\tpsubw %%mm5,%%mm4\n" "\tpaddw %%mm7,%%mm4\n" "\tmovq %%mm4,%%mm1\n" "\tmovq %%""mm2"", %%""mm4""; " "\tpunpckhbw %%""mm6"", %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpckhbw %%""mm6"", %%""mm5""\n" "\tpsubw %%mm5,%%mm4\n" "\tpaddw %%mm7,%%mm4\n" "\tpackuswb %%mm4,%%mm1\n" "\tmovq %%mm1,%%mm4\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm4,%%mm1\n" "\tpminub %%mm3,%%mm2\n" "\tpand %%mm0,%%mm2\n" "\tpor %%mm2,%%mm1\n" "\tmovq %%mm1,%0\n" : "+m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1, %%mm2\n" "\tmovd %2, %%mm3\n" "\tmovq %%""mm2"", %%""mm4""; " "\tpunpcklbw %%""mm6"", %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm6"", %%""mm5""\n" "\tpsubw %%mm5, %%mm4\n" "\tpaddw %%mm7, %%mm4\n" "\tmovq %%mm4, %%mm1\n" "\tpackuswb %%mm6, %%mm1\n" "\tmovq %%mm1, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm3, %%mm2\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovd %%mm1, %0\n" : "+m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4"); } asm("emms"); } void gimp_composite_grain_merge_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("movq %0, %%mm0\n" "pxor %%mm6, %%mm6\n" "movq %1, %%mm7\n" : : "m" (*rgba8_alpha_mask_64), "m" (*rgba8_w128_64) : "%mm0", "%mm6", "%mm7"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %1, %%mm2\n" "\tmovq %2, %%mm3\n" "\tmovq %%""mm2"", %%""mm4""; " "\tpunpcklbw %%""mm6"", %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm6"", %%""mm5""\n" "\tpaddw %%mm5, %%mm4\n" "\tpsubw %%mm7, %%mm4\n" "\tmovq %%""mm2"", %%""mm1""; " "\tpunpckhbw %%""mm6"", %%""mm1""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpckhbw %%""mm6"", %%""mm5""\n" "\tpaddw %%mm5, %%mm1\n" "\tpsubw %%mm7, %%mm1\n" "\tpackuswb %%mm1, %%mm4\n" "\t" "pminub " "%%" "mm3" ", %%" "mm2" "\n" "\tpand %%mm0, %%mm2\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpor %%mm2, %%mm1\n" "\tmovq %%mm1, %0\n" : "+m" (*op.D) : "m" (*op.A), "m" (*op.B) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1, %%mm2\n" "\tmovd %2, %%mm3\n" "\tmovq %%""mm2"", %%""mm4""; " "\tpunpcklbw %%""mm6"", %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm6"", %%""mm5""\n" "\tpaddw %%mm5, %%mm4\n" "\tpsubw %%mm7, %%mm4\n" "\tmovq %%mm4, %%mm1\n" "\tpackuswb %%mm6, %%mm1\n" "\tmovq %%mm1, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm3, %%mm2\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovd %%mm1, %0\n" : "+m" (*op.D) : "m" (*op.A), "m" (*op.B) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4"); } asm("emms"); } void gimp_composite_lighten_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("movq %0,%%mm0" : : "m" (*rgba8_alpha_mask_64) : "%mm0"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %1, %%mm2\n" "\tmovq %2, %%mm3\n" "\tmovq %%mm2, %%mm4\n" "\tpmaxub %%mm3, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm2, %%mm3\n" "\tpand %%mm0, %%mm3\n" "\tpor %%mm3, %%mm1\n" "\tmovq %%mm1, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1, %%mm2\n" "\tmovd %2, %%mm3\n" "\tmovq %%mm2, %%mm4\n" "\tpmaxub %%mm3, %%mm4\n" "\tmovq %%mm0, %%mm1\n" "\tpandn %%mm4, %%mm1\n" "\tpminub %%mm2,%%mm3\n" "\tpand %%mm0, %%mm3\n" "\tpor %%mm3, %%mm1\n" "\tmovd %%mm1, %0\n" : "=m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); } asm("emms"); } void gimp_composite_multiply_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("movq %0,%%mm0" : : "m" (*rgba8_alpha_mask_64) : "%mm0"); asm volatile ("movq %0,%%mm7" : : "m" (*rgba8_w128_64) : "%mm7"); asm volatile ("pxor %%mm6,%%mm6" : : : "%mm6"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %0, %%mm2\n" "\tmovq %1, %%mm3\n" "\tmovq %%""mm2"", %%""mm1""; " "\tpunpcklbw %%""mm6"", %%""mm1""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm6"", %%""mm5""\n" "\tpmullw %%""mm1"", %%""mm5""; " "\tpaddw %%""mm7"", %%""mm5""; " "\tmovq %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tmovq %%""mm2"", %%""mm4""; " "\tpunpckhbw %%""mm6"", %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpckhbw %%""mm6"", %%""mm5""\n" "\tpmullw %%""mm4"", %%""mm5""; " "\tpaddw %%""mm7"", %%""mm5""; " "\tmovq %%""mm5"", %%""mm4""; " "\tpsrlw $8, %%""mm4""; " "\tpaddw %%""mm5"", %%""mm4""; " "\tpsrlw $8, %%""mm4""\n" "\tpackuswb %%mm4, %%mm1\n" "\tmovq %%mm0, %%mm4\n" "\tpandn %%mm1, %%mm4\n" "\tmovq %%mm4, %%mm1\n" "\t" "pminub " "%%" "mm3" ", %%" "mm2" "\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovq %%mm1, %2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %0, %%mm2\n" "\tmovd %1, %%mm3\n" "\tmovq %%""mm2"", %%""mm1""; " "\tpunpcklbw %%""mm6"", %%""mm1""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm6"", %%""mm5""\n" "\tpmullw %%""mm1"", %%""mm5""; " "\tpaddw %%""mm7"", %%""mm5""; " "\tmovq %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tpackuswb %%mm6, %%mm1\n" "\tmovq %%mm0, %%mm4\n" "\tpandn %%mm1, %%mm4\n" "\tmovq %%mm4, %%mm1\n" "\t" "pminub " "%%" "mm3" ", %%" "mm2" "\n" "\tpand %%mm0, %%mm2\n" "\tpor %%mm2, %%mm1\n" "\tmovd %%mm1, %2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); } asm("emms"); } static void sse_op_overlay(void) { asm volatile ( "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm0"", %%""mm5""\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm2,%%mm4\n" "\tpunpcklbw %%mm0,%%mm4\n" "\tmovq %0,%%mm6\n" "\tpmullw %%mm5,%%mm6\n" "\tpmullw %%""mm4"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm4""; " "\tpsrlw $8, %%""mm4""; " "\tpaddw %%""mm6"", %%""mm4""; " "\tpsrlw $8, %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpckhbw %%""mm0"", %%""mm5""\n" "\tpcmpeqb %%mm1,%%mm1\n" "\tpsubb %%mm2,%%mm1\n" "\tpunpckhbw %%mm0,%%mm1\n" "\tmovq %0,%%mm6\n" "\tpmullw %%mm5,%%mm6\n" "\tpmullw %%""mm1"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tpackuswb %%mm1,%%mm4\n" "\tmovq %%""mm4"", %%""mm5""; " "\tpunpcklbw %%""mm0"", %%""mm5""\n" "\tmovq %%""mm2"", %%""mm6""; " "\tpunpcklbw %%""mm0"", %%""mm6""\n" "\tpaddw %%mm6,%%mm5\n" "\tpmullw %%""mm5"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm5""; " "\tpsrlw $8, %%""mm5""; " "\tpaddw %%""mm6"", %%""mm5""; " "\tpsrlw $8, %%""mm5""\n" "\tmovq %%""mm4"", %%""mm1""; " "\tpunpckhbw %%""mm0"", %%""mm1""\n" "\tmovq %%""mm2"", %%""mm6""; " "\tpunpckhbw %%""mm0"", %%""mm6""\n" "\tpaddw %%mm6,%%mm1\n" "\tpmullw %%""mm1"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tpackuswb %%mm1,%%mm5\n" "\tmovq %1,%%mm0\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm5,%%mm1\n" "\t" "pminub " "%%" "mm2" ", %%" "mm3" "\n" "\tpand %%mm0,%%mm3\n" "\tpor %%mm3,%%mm1\n" : : "m" (*rgba8_w2_64), "m" (*rgba8_alpha_mask_64) ); } void xxxgimp_composite_overlay_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("pxor %%mm0,%%mm0\n" "movq %0,%%mm7" : : "m" (*rgba8_w128_64) : "%mm0"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %0,%%mm2\n" "\tmovq %1,%%mm3\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm0"", %%""mm5""\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm2,%%mm4\n" "\tpunpcklbw %%mm0,%%mm4\n" "\tmovq %3,%%mm6\n" "\tpmullw %%mm5,%%mm6\n" "\tpmullw %%""mm4"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm4""; " "\tpsrlw $8, %%""mm4""; " "\tpaddw %%""mm6"", %%""mm4""; " "\tpsrlw $8, %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpckhbw %%""mm0"", %%""mm5""\n" "\tpcmpeqb %%mm1,%%mm1\n" "\tpsubb %%mm2,%%mm1\n" "\tpunpckhbw %%mm0,%%mm1\n" "\tmovq %3,%%mm6\n" "\tpmullw %%mm5,%%mm6\n" "\tpmullw %%""mm1"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tpackuswb %%mm1,%%mm4\n" "\tmovq %%""mm4"", %%""mm5""; " "\tpunpcklbw %%""mm0"", %%""mm5""\n" "\tmovq %%""mm2"", %%""mm6""; " "\tpunpcklbw %%""mm0"", %%""mm6""\n" "\tpaddw %%mm6,%%mm5\n" "\tpmullw %%""mm5"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm5""; " "\tpsrlw $8, %%""mm5""; " "\tpaddw %%""mm6"", %%""mm5""; " "\tpsrlw $8, %%""mm5""\n" "\tmovq %%""mm4"", %%""mm1""; " "\tpunpckhbw %%""mm0"", %%""mm1""\n" "\tmovq %%""mm2"", %%""mm6""; " "\tpunpckhbw %%""mm0"", %%""mm6""\n" "\tpaddw %%mm6,%%mm1\n" "\tpmullw %%""mm1"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tpackuswb %%mm1,%%mm5\n" "\tmovq %4,%%mm0\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm5,%%mm1\n" "\t" "pminub " "%%" "mm2" ", %%" "mm3" "\n" "\tpand %%mm0,%%mm3\n" "\tpor %%mm3,%%mm1\n" "\tmovq %%mm1,%2\n" : "+m" (*op.A), "+m" (*op.B), "+m" (*op.D) : "m" (*rgba8_w2_64), "m" (*rgba8_alpha_mask_64) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %0,%%mm2\n" "\tmovd %1,%%mm3\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpcklbw %%""mm0"", %%""mm5""\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm2,%%mm4\n" "\tpunpcklbw %%mm0,%%mm4\n" "\tmovq %3,%%mm6\n" "\tpmullw %%mm5,%%mm6\n" "\tpmullw %%""mm4"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm4""; " "\tpsrlw $8, %%""mm4""; " "\tpaddw %%""mm6"", %%""mm4""; " "\tpsrlw $8, %%""mm4""\n" "\tmovq %%""mm3"", %%""mm5""; " "\tpunpckhbw %%""mm0"", %%""mm5""\n" "\tpcmpeqb %%mm1,%%mm1\n" "\tpsubb %%mm2,%%mm1\n" "\tpunpckhbw %%mm0,%%mm1\n" "\tmovq %3,%%mm6\n" "\tpmullw %%mm5,%%mm6\n" "\tpmullw %%""mm1"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tpackuswb %%mm1,%%mm4\n" "\tmovq %%""mm4"", %%""mm5""; " "\tpunpcklbw %%""mm0"", %%""mm5""\n" "\tmovq %%""mm2"", %%""mm6""; " "\tpunpcklbw %%""mm0"", %%""mm6""\n" "\tpaddw %%mm6,%%mm5\n" "\tpmullw %%""mm5"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm5""; " "\tpsrlw $8, %%""mm5""; " "\tpaddw %%""mm6"", %%""mm5""; " "\tpsrlw $8, %%""mm5""\n" "\tmovq %%""mm4"", %%""mm1""; " "\tpunpckhbw %%""mm0"", %%""mm1""\n" "\tmovq %%""mm2"", %%""mm6""; " "\tpunpckhbw %%""mm0"", %%""mm6""\n" "\tpaddw %%mm6,%%mm1\n" "\tpmullw %%""mm1"", %%""mm6""; " "\tpaddw %%""mm7"", %%""mm6""; " "\tmovq %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm6"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\tpackuswb %%mm1,%%mm5\n" "\tmovq %4,%%mm0\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm5,%%mm1\n" "\t" "pminub " "%%" "mm2" ", %%" "mm3" "\n" "\tpand %%mm0,%%mm3\n" "\tpor %%mm3,%%mm1\n" "\tmovd %%mm1,%2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D), "m" (*rgba8_w2_64), "m" (*rgba8_alpha_mask_64) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4"); } asm("emms"); } void gimp_composite_scale_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("pxor %%mm0,%%mm0\n" "\tmovl %0,%%eax\n" "\tmovl %%eax,%%ebx\n" "\tshl $16,%%ebx\n" "\torl %%ebx,%%eax\n" "\tmovd %%eax,%%mm5\n" "\tmovd %%eax,%%mm3\n" "\tpsllq $32,%%mm5\n" "\tpor %%mm5,%%mm3\n" "\tmovq %1,%%mm7\n" : : "m" (op.scale.scale), "m" (*rgba8_w128_64) : "%eax", "%ebx", "%mm0", "%mm3", "%mm5", "%mm6", "%mm7"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile ("movq %1,%%mm2\n" "\tmovq %%mm2,%%mm1\n" "\tpunpcklbw %%mm0,%%mm1\n" "\tmovq %%mm3,%%mm5\n" "\t" "\tpmullw %%""mm1"", %%""mm5""; " "\tpaddw %%""mm7"", %%""mm5""; " "\tmovq %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\n" "\tmovq %%mm2,%%mm4\n" "\tpunpckhbw %%mm0,%%mm4\n" "\tmovq %%mm3,%%mm5\n" "\t" "\tpmullw %%""mm4"", %%""mm5""; " "\tpaddw %%""mm7"", %%""mm5""; " "\tmovq %%""mm5"", %%""mm4""; " "\tpsrlw $8, %%""mm4""; " "\tpaddw %%""mm5"", %%""mm4""; " "\tpsrlw $8, %%""mm4""\n" "\n" "\tpackuswb %%mm4,%%mm1\n" "\tmovq %%mm1,%0\n" : "+m" (*op.D) : "m" (*op.A) : "%mm1", "%mm2", "%mm4", "%mm5", "%mm7"); op.A += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1,%%mm2\n" "\tmovq %%mm2,%%mm1\n" "\tpunpcklbw %%mm0,%%mm1\n" "\tmovq %%mm3,%%mm5\n" "\t" "\tpmullw %%""mm1"", %%""mm5""; " "\tpaddw %%""mm7"", %%""mm5""; " "\tmovq %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""; " "\tpaddw %%""mm5"", %%""mm1""; " "\tpsrlw $8, %%""mm1""\n" "\n" "\tpackuswb %%mm0,%%mm1\n" "\tmovd %%mm1,%0\n" : "+m" (*op.D) : "m" (*op.A) : "%mm1", "%mm2", "%mm4", "%mm5", "%mm6", "%mm7"); } asm("emms"); } void gimp_composite_screen_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("movq %0,%%mm0" : : "m" (*rgba8_alpha_mask_64) : "%mm0"); asm volatile ("movq %0,%%mm7" : : "m" (*rgba8_w128_64) : "%mm7"); asm volatile ("pxor %mm6, %mm6"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %0,%%mm2\n" "\tmovq %1,%%mm3\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm2,%%mm4\n" "\tpcmpeqb %%mm5,%%mm5\n" "\tpsubb %%mm3,%%mm5\n" "\tpunpcklbw %%mm6,%%mm4\n" "\tpunpcklbw %%mm6,%%mm5\n" "\tpmullw %%mm4,%%mm5\n" "\tpaddw %%mm7,%%mm5\n" "\tmovq %%mm5,%%mm1\n" "\tpsrlw $ 8,%%mm1\n" "\tpaddw %%mm5,%%mm1\n" "\tpsrlw $ 8,%%mm1\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm2,%%mm4\n" "\tpcmpeqb %%mm5,%%mm5\n" "\tpsubb %%mm3,%%mm5\n" "\tpunpckhbw %%mm6,%%mm4\n" "\tpunpckhbw %%mm6,%%mm5\n" "\tpmullw %%mm4,%%mm5\n" "\tpaddw %%mm7,%%mm5\n" "\tmovq %%mm5,%%mm4\n" "\tpsrlw $ 8,%%mm4\n" "\tpaddw %%mm5,%%mm4\n" "\tpsrlw $ 8,%%mm4\n" "\tpackuswb %%mm4,%%mm1\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm1,%%mm4\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm4,%%mm1\n" "\t" "pminub " "%%" "mm2" ", %%" "mm3" "\n" "\tpand %%mm0,%%mm3\n" "\tpor %%mm3,%%mm1\n" "\tmovq %%mm1,%2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %0,%%mm2\n" "\tmovd %1,%%mm3\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm2,%%mm4\n" "\tpcmpeqb %%mm5,%%mm5\n" "\tpsubb %%mm3,%%mm5\n" "\tpunpcklbw %%mm6,%%mm4\n" "\tpunpcklbw %%mm6,%%mm5\n" "\tpmullw %%mm4,%%mm5\n" "\tpaddw %%mm7,%%mm5\n" "\tmovq %%mm5,%%mm1\n" "\tpsrlw $ 8,%%mm1\n" "\tpaddw %%mm5,%%mm1\n" "\tpsrlw $ 8,%%mm1\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm2,%%mm4\n" "\tpcmpeqb %%mm5,%%mm5\n" "\tpsubb %%mm3,%%mm5\n" "\tpunpckhbw %%mm6,%%mm4\n" "\tpunpckhbw %%mm6,%%mm5\n" "\tpmullw %%mm4,%%mm5\n" "\tpaddw %%mm7,%%mm5\n" "\tmovq %%mm5,%%mm4\n" "\tpsrlw $ 8,%%mm4\n" "\tpaddw %%mm5,%%mm4\n" "\tpsrlw $ 8,%%mm4\n" "\tpackuswb %%mm4,%%mm1\n" "\tpcmpeqb %%mm4,%%mm4\n" "\tpsubb %%mm1,%%mm4\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm4,%%mm1\n" "\t" "pminub " "%%" "mm2" ", %%" "mm3" "\n" "\tpand %%mm0,%%mm3\n" "\tpor %%mm3,%%mm1\n" "\tmovd %%mm1,%2\n" : : "m" (*op.A), "m" (*op.B), "m" (*op.D) : "0", "1", "2", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5"); } asm("emms"); } void gimp_composite_subtract_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; asm volatile ("movq %0,%%mm0" : : "m" (*rgba8_alpha_mask_64) : "%mm0"); for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %1,%%mm2\n" "\tmovq %2,%%mm3\n" "\tmovq %%mm2,%%mm4\n" "\tpsubusb %%mm3,%%mm4\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm4,%%mm1\n" "\tpminub %%mm3,%%mm2\n" "\tpand %%mm0,%%mm2\n" "\tpor %%mm2,%%mm1\n" "\tmovq %%mm1,%0\n" : "+m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4"); op.A += 8; op.B += 8; op.D += 8; } if (op.n_pixels) { asm volatile (" movd %1,%%mm2\n" "\tmovd %2,%%mm3\n" "\tmovq %%mm2,%%mm4\n" "\tpsubusb %%mm3,%%mm4\n" "\tmovq %%mm0,%%mm1\n" "\tpandn %%mm4,%%mm1\n" "\tpminub %%mm3,%%mm2\n" "\tpand %%mm0,%%mm2\n" "\tpor %%mm2,%%mm1\n" "\tmovd %%mm1,%0\n" : "+m" (*op.D) : "m" (*op.A), "m" (*op.B) : "%mm1", "%mm2", "%mm3", "%mm4"); } asm("emms"); } void gimp_composite_swap_rgba8_rgba8_rgba8_sse (GimpCompositeContext *_op) { GimpCompositeContext op = *_op; for (; op.n_pixels >= 2; op.n_pixels -= 2) { asm volatile (" movq %0,%%mm2\n" "\tmovq %1,%%mm3\n" "\tmovq %%mm3,%0\n" "\tmovq %%mm2,%1\n" : "+m" (*op.A), "+m" (*op.B) : : "%mm1", "%mm2", "%mm3", "%mm4"); op.A += 8; op.B += 8; } if (op.n_pixels) { asm volatile (" movd %0,%%mm2\n" "\tmovd %1,%%mm3\n" "\tmovd %%mm3,%0\n" "\tmovd %%mm2,%1\n" : "+m" (*op.A), "+m" (*op.B) : : "%mm1", "%mm2", "%mm3", "%mm4"); } asm("emms"); } # 2287 "gimp-composite-sse.c" gboolean gimp_composite_sse_init (void) { guint32 cpu = cpu_accel (); if (cpu & 0x10000000 || cpu & 0x20000000) { return ((!(0))); } return ((0)); }