# 1 "video_out_dfb.c" # 1 "" #define __STDC__ 1 # 1 "" #define __STDC_HOSTED__ 1 # 1 "" #define __GNUC__ 4 # 1 "" #define __GNUC_MINOR__ 1 # 1 "" #define __GNUC_PATCHLEVEL__ 2 # 1 "" #define __SIZE_TYPE__ long unsigned int # 1 "" #define __PTRDIFF_TYPE__ long int # 1 "" #define __WCHAR_TYPE__ int # 1 "" #define __WINT_TYPE__ unsigned int # 1 "" #define __INTMAX_TYPE__ long int # 1 "" #define __UINTMAX_TYPE__ long unsigned int # 1 "" #define __GXX_ABI_VERSION 1002 # 1 "" #define __SCHAR_MAX__ 127 # 1 "" #define __SHRT_MAX__ 32767 # 1 "" #define __INT_MAX__ 2147483647 # 1 "" #define __LONG_MAX__ 9223372036854775807L # 1 "" #define __LONG_LONG_MAX__ 9223372036854775807LL # 1 "" #define __WCHAR_MAX__ 2147483647 # 1 "" #define __CHAR_BIT__ 8 # 1 "" #define __INTMAX_MAX__ 9223372036854775807L # 1 "" #define __FLT_EVAL_METHOD__ 0 # 1 "" #define __FLT_RADIX__ 2 # 1 "" #define __FLT_MANT_DIG__ 24 # 1 "" #define __FLT_DIG__ 6 # 1 "" #define __FLT_MIN_EXP__ (-125) # 1 "" #define __FLT_MIN_10_EXP__ (-37) # 1 "" #define __FLT_MAX_EXP__ 128 # 1 "" #define __FLT_MAX_10_EXP__ 38 # 1 "" #define __FLT_MAX__ 3.40282347e+38F # 1 "" #define __FLT_MIN__ 1.17549435e-38F # 1 "" #define __FLT_EPSILON__ 1.19209290e-7F # 1 "" #define __FLT_DENORM_MIN__ 1.40129846e-45F # 1 "" #define __FLT_HAS_INFINITY__ 1 # 1 "" #define __FLT_HAS_QUIET_NAN__ 1 # 1 "" #define __DBL_MANT_DIG__ 53 # 1 "" #define __DBL_DIG__ 15 # 1 "" #define __DBL_MIN_EXP__ (-1021) # 1 "" #define __DBL_MIN_10_EXP__ (-307) # 1 "" #define __DBL_MAX_EXP__ 1024 # 1 "" #define __DBL_MAX_10_EXP__ 308 # 1 "" #define __DBL_MAX__ 1.7976931348623157e+308 # 1 "" #define __DBL_MIN__ 2.2250738585072014e-308 # 1 "" #define __DBL_EPSILON__ 2.2204460492503131e-16 # 1 "" #define __DBL_DENORM_MIN__ 4.9406564584124654e-324 # 1 "" #define __DBL_HAS_INFINITY__ 1 # 1 "" #define __DBL_HAS_QUIET_NAN__ 1 # 1 "" #define __LDBL_MANT_DIG__ 64 # 1 "" #define __LDBL_DIG__ 18 # 1 "" #define __LDBL_MIN_EXP__ (-16381) # 1 "" #define __LDBL_MIN_10_EXP__ (-4931) # 1 "" #define __LDBL_MAX_EXP__ 16384 # 1 "" #define __LDBL_MAX_10_EXP__ 4932 # 1 "" #define __DECIMAL_DIG__ 21 # 1 "" #define __LDBL_MAX__ 1.18973149535723176502e+4932L # 1 "" #define __LDBL_MIN__ 3.36210314311209350626e-4932L # 1 "" #define __LDBL_EPSILON__ 1.08420217248550443401e-19L # 1 "" #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L # 1 "" #define __LDBL_HAS_INFINITY__ 1 # 1 "" #define __LDBL_HAS_QUIET_NAN__ 1 # 1 "" #define __REGISTER_PREFIX__ # 1 "" #define __USER_LABEL_PREFIX__ # 1 "" #define __VERSION__ "4.1.2 20070214 ( (gdc 0.23, using dmd 1.007)) (Gentoo 4.1.2)" # 1 "" #define _LP64 1 # 1 "" #define __LP64__ 1 # 1 "" #define __OPTIMIZE__ 1 # 1 "" #define __FAST_MATH__ 1 # 1 "" #define __FINITE_MATH_ONLY__ 1 # 1 "" #define __amd64 1 # 1 "" #define __amd64__ 1 # 1 "" #define __x86_64 1 # 1 "" #define __x86_64__ 1 # 1 "" #define __tune_k8__ 1 # 1 "" #define __MMX__ 1 # 1 "" #define __3dNOW__ 1 # 1 "" #define __3dNOW_A__ 1 # 1 "" #define __SSE__ 1 # 1 "" #define __SSE2__ 1 # 1 "" #define __SSE_MATH__ 1 # 1 "" #define __SSE2_MATH__ 1 # 1 "" #define __k8 1 # 1 "" #define __k8__ 1 # 1 "" #define __gnu_linux__ 1 # 1 "" #define __linux 1 # 1 "" #define __linux__ 1 # 1 "" #define linux 1 # 1 "" #define __unix 1 # 1 "" #define __unix__ 1 # 1 "" #define unix 1 # 1 "" #define __PIC__ 1 # 1 "" #define __pic__ 1 # 1 "" #define __ELF__ 1 # 1 "" #define HAVE_CONFIG_H 1 # 1 "" #define _REENTRANT 1 # 1 "" #define _GNU_SOURCE 1 # 1 "" #define _REENTRANT 1 # 1 "" #define REENTRANT 1 # 1 "" #define PIC 1 # 1 "video_out_dfb.c" # 20 "video_out_dfb.c" # 1 "../../../config.h" 1 # 14 "../../../config.h" #define DIRECTFB_VERSION "0.9.25" #define HAVE_DLFCN_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define STDC_HEADERS 1 #define USE_MMX 1 # 21 "video_out_dfb.c" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/stdio.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 #define _STDIO_H 1 # 1 "/usr/include/features.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/features.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #define _FEATURES_H 1 # 93 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #undef __USE_ISOC99 #undef __USE_POSIX #undef __USE_POSIX2 #undef __USE_POSIX199309 #undef __USE_POSIX199506 #undef __USE_XOPEN #undef __USE_XOPEN_EXTENDED #undef __USE_UNIX98 #undef __USE_XOPEN2K #undef __USE_LARGEFILE #undef __USE_LARGEFILE64 #undef __USE_FILE_OFFSET64 #undef __USE_BSD #undef __USE_SVID #undef __USE_MISC #undef __USE_ATFILE #undef __USE_GNU #undef __USE_REENTRANT #undef __USE_FORTIFY_LEVEL #undef __FAVOR_BSD #undef __KERNEL_STRICT_NAMES #define __KERNEL_STRICT_NAMES #define __USE_ANSI 1 # 132 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) # 149 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #undef _ISOC99_SOURCE #define _ISOC99_SOURCE 1 #undef _POSIX_SOURCE #define _POSIX_SOURCE 1 #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200112L #undef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 #undef _XOPEN_SOURCE_EXTENDED #define _XOPEN_SOURCE_EXTENDED 1 #undef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE 1 #undef _BSD_SOURCE #define _BSD_SOURCE 1 #undef _SVID_SOURCE #define _SVID_SOURCE 1 #undef _ATFILE_SOURCE #define _ATFILE_SOURCE 1 # 185 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #define __USE_ISOC99 1 # 203 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #define __USE_POSIX 1 #define __USE_POSIX2 1 #define __USE_POSIX199309 1 #define __USE_POSIX199506 1 #define __USE_XOPEN2K 1 #define __USE_XOPEN 1 #define __USE_XOPEN_EXTENDED 1 #define __USE_UNIX98 1 #undef _LARGEFILE_SOURCE #define _LARGEFILE_SOURCE 1 #define __USE_XOPEN2K 1 #undef __USE_ISOC99 #define __USE_ISOC99 1 # 242 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #define __USE_LARGEFILE 1 #define __USE_LARGEFILE64 1 #define __USE_MISC 1 #define __USE_BSD 1 #define __USE_SVID 1 #define __USE_ATFILE 1 #define __USE_GNU 1 #define __USE_REENTRANT 1 # 285 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #define __USE_FORTIFY_LEVEL 0 #define __STDC_IEC_559__ 1 #define __STDC_IEC_559_COMPLEX__ 1 #define __STDC_ISO_10646__ 200009L #undef __GNU_LIBRARY__ #define __GNU_LIBRARY__ 6 #define __GLIBC__ 2 #define __GLIBC_MINOR__ 5 #define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) #define __GLIBC_HAVE_LONG_LONG 1 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define _SYS_CDEFS_H 1 # 36 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #undef __P #undef __PMT # 47 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __THROW __attribute__ ((__nothrow__)) #define __NTH(fct) __attribute__ ((__nothrow__)) fct # 74 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __P(args) args #define __PMT(args) args #define __CONCAT(x,y) x ## y #define __STRING(x) #x #define __ptr_t void * #define __long_double_t long double #define __BEGIN_DECLS #define __END_DECLS # 114 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __BEGIN_NAMESPACE_STD #define __END_NAMESPACE_STD #define __USING_NAMESPACE_STD(name) #define __BEGIN_NAMESPACE_C99 #define __END_NAMESPACE_C99 #define __USING_NAMESPACE_C99(name) #define __bounded #define __unbounded #define __ptrvalue #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) #define __warndecl(name,msg) extern void name (void) #define __flexarr [] # 167 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) #define __REDIRECT_NTH(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROW #define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) #define __ASMNAME2(prefix,cname) __STRING (prefix) cname # 197 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __attribute_malloc__ __attribute__ ((__malloc__)) # 206 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __attribute_pure__ __attribute__ ((__pure__)) # 215 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __attribute_used__ __attribute__ ((__used__)) #define __attribute_noinline__ __attribute__ ((__noinline__)) #define __attribute_deprecated__ __attribute__ ((__deprecated__)) # 236 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) # 246 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b))) # 255 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __nonnull(params) __attribute__ ((__nonnull__ params)) #define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__)) # 272 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __wur #define __always_inline __inline __attribute__ ((__always_inline__)) # 299 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __restrict_arr __restrict # 313 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 314 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 2 3 4 # 331 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 #define __LDBL_REDIR1(name,proto,alias) name proto #define __LDBL_REDIR(name,proto) name proto #define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW #define __LDBL_REDIR_NTH(name,proto) name proto __THROW #define __LDBL_REDIR_DECL(name) # 9 "/usr/include/sys/cdefs.h" 2 3 4 # 324 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4 # 338 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 #define __USE_EXTERN_INLINES 1 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 1 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 5 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 1 3 4 # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 3 4 #define __stub___kernel_cosl #define __stub___kernel_rem_pio2l #define __stub___kernel_sinl #define __stub___kernel_tanl #define __stub_bdflush #define __stub_chflags #define __stub_fattach #define __stub_fchflags #define __stub_fdetach #define __stub_feupdateenv #define __stub_getmsg #define __stub_gtty #define __stub_lchmod #define __stub_lutimes #define __stub_putmsg #define __stub_revoke #define __stub_setlogin #define __stub_sigreturn #define __stub_sstk #define __stub_stty # 5 "/usr/include/gnu/stubs-64.h" 2 3 4 # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4 # 9 "/usr/include/gnu/stubs.h" 2 3 4 # 347 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4 # 9 "/usr/include/features.h" 2 3 4 # 29 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 #define __need_size_t #define __need_NULL # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #define __size_t__ #define __SIZE_T__ #define _SIZE_T #define _SYS_SIZE_T_H #define _T_SIZE_ #define _T_SIZE #define __SIZE_T #define _SIZE_T_ #define _BSD_SIZE_T_ #define _SIZE_T_DEFINED_ #define _SIZE_T_DEFINED #define _BSD_SIZE_T_DEFINED_ #define _SIZE_T_DECLARED #define ___int_size_t_h #define _GCC_SIZE_T #define _SIZET_ #define __size_t typedef long unsigned int size_t; # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL # 35 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/types.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4 #define _BITS_TYPES_H 1 # 1 "/usr/include/features.h" 1 3 4 # 28 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 29 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4 #define __need_size_t # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_NULL # 32 "/usr/include/gentoo-multilib/amd64/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; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 102 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4 #define __S16_TYPE short int #define __U16_TYPE unsigned short int #define __S32_TYPE int #define __U32_TYPE unsigned int #define __SLONGWORD_TYPE long int #define __ULONGWORD_TYPE unsigned long int # 121 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4 #define __SQUAD_TYPE long int #define __UQUAD_TYPE unsigned long int #define __SWORD_TYPE long int #define __UWORD_TYPE unsigned long int #define __SLONG32_TYPE int #define __ULONG32_TYPE unsigned int #define __S64_TYPE long int #define __U64_TYPE unsigned long int #define __STD_TYPE typedef # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 3 4 #define _BITS_TYPESIZES_H 1 #define __DEV_T_TYPE __UQUAD_TYPE #define __UID_T_TYPE __U32_TYPE #define __GID_T_TYPE __U32_TYPE #define __INO_T_TYPE __ULONGWORD_TYPE #define __INO64_T_TYPE __UQUAD_TYPE #define __MODE_T_TYPE __U32_TYPE #define __NLINK_T_TYPE __UWORD_TYPE #define __OFF_T_TYPE __SLONGWORD_TYPE #define __OFF64_T_TYPE __SQUAD_TYPE #define __PID_T_TYPE __S32_TYPE #define __RLIM_T_TYPE __ULONGWORD_TYPE #define __RLIM64_T_TYPE __UQUAD_TYPE #define __BLKCNT_T_TYPE __SLONGWORD_TYPE #define __BLKCNT64_T_TYPE __SQUAD_TYPE #define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE #define __FSFILCNT_T_TYPE __ULONGWORD_TYPE #define __FSFILCNT64_T_TYPE __UQUAD_TYPE #define __ID_T_TYPE __U32_TYPE #define __CLOCK_T_TYPE __SLONGWORD_TYPE #define __TIME_T_TYPE __SLONGWORD_TYPE #define __USECONDS_T_TYPE __U32_TYPE #define __SUSECONDS_T_TYPE __SLONGWORD_TYPE #define __DADDR_T_TYPE __S32_TYPE #define __SWBLK_T_TYPE __SLONGWORD_TYPE #define __KEY_T_TYPE __S32_TYPE #define __CLOCKID_T_TYPE __S32_TYPE #define __TIMER_T_TYPE void * #define __BLKSIZE_T_TYPE __SLONGWORD_TYPE #define __FSID_T_TYPE struct { int __val[2]; } #define __SSIZE_T_TYPE __SWORD_TYPE #define __FD_SETSIZE 1024 # 9 "/usr/include/bits/typesizes.h" 2 3 4 # 135 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef long int __swblk_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; #undef __STD_TYPE # 9 "/usr/include/bits/types.h" 2 3 4 # 37 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 #define __need_FILE #define __need___FILE typedef struct _IO_FILE FILE; #define __FILE_defined 1 #undef __need_FILE typedef struct _IO_FILE __FILE; #define ____FILE_defined 1 #undef __need___FILE #define _STDIO_USES_IOSTREAM # 1 "/usr/include/libio.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/libio.h" 1 3 4 # 30 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 #define _IO_STDIO_H # 1 "/usr/include/_G_config.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/_G_config.h" 1 3 4 #define _G_config_h 1 # 1 "/usr/include/bits/types.h" 1 3 4 # 10 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4 #define __need_size_t #define __need_wchar_t #define __need_wint_t #define __need_NULL # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 265 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #define __wchar_t__ #define __WCHAR_T__ #define _WCHAR_T #define _T_WCHAR_ #define _T_WCHAR #define __WCHAR_T #define _WCHAR_T_ #define _BSD_WCHAR_T_ #define _WCHAR_T_DEFINED_ #define _WCHAR_T_DEFINED #define _WCHAR_T_H #define ___int_wchar_t_h #define __INT_WCHAR_T_H #define _GCC_WCHAR_T #define _WCHAR_T_DECLARED # 292 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef _BSD_WCHAR_T_ # 326 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 typedef int wchar_t; # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_wchar_t #define _WINT_T typedef unsigned int wint_t; #undef __need_wint_t # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL # 15 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4 # 23 "/usr/include/gentoo-multilib/amd64/_G_config.h" 3 4 #define __need_mbstate_t # 1 "/usr/include/wchar.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4 # 47 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 #define __need_wint_t # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 357 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_wint_t # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_NULL # 49 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 3 4 #define _BITS_WCHAR_H 1 #define __WCHAR_MIN (-2147483647 - 1) #define __WCHAR_MAX (2147483647) # 9 "/usr/include/bits/wchar.h" 2 3 4 # 51 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 # 74 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 #define __mbstate_t_defined 1 typedef struct { int __count; union { wint_t __wch; char __wchb[4]; } __value; } __mbstate_t; #undef __need_mbstate_t # 9 "/usr/include/wchar.h" 2 3 4 # 25 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4 #define _G_size_t size_t typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; #define _G_ssize_t __ssize_t #define _G_off_t __off_t #define _G_off64_t __off64_t #define _G_pid_t __pid_t #define _G_uid_t __uid_t #define _G_wchar_t wchar_t #define _G_wint_t wint_t #define _G_stat64 stat64 # 1 "/usr/include/gconv.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/gconv.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/gconv.h" 3 4 #define _GCONV_H 1 # 1 "/usr/include/features.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4 #define __need_mbstate_t # 1 "/usr/include/wchar.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4 # 47 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 #define __need_wint_t # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 357 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_wint_t # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_NULL # 49 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 51 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 # 86 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 #undef __need_mbstate_t # 9 "/usr/include/wchar.h" 2 3 4 # 29 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4 #define __need_size_t #define __need_wchar_t # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_wchar_t # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_NULL # 32 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4 #define __UNKNOWN_10646_CHAR ((wchar_t) 0xfffd) 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; # 9 "/usr/include/gconv.h" 2 3 4 # 45 "/usr/include/gentoo-multilib/amd64/_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__))); #define _G_HAVE_BOOL 1 #define _G_HAVE_ATEXIT 1 #define _G_HAVE_SYS_CDEFS 1 #define _G_HAVE_SYS_WAIT 1 #define _G_NEED_STDARG_H 1 #define _G_va_list __gnuc_va_list #define _G_HAVE_PRINTF_FP 1 #define _G_HAVE_MMAP 1 #define _G_HAVE_MREMAP 1 #define _G_HAVE_LONG_DOUBLE_IO 1 #define _G_HAVE_IO_FILE_OPEN 1 #define _G_HAVE_IO_GETLINE_INFO 1 #define _G_IO_IO_FILE_VERSION 0x20001 #define _G_OPEN64 __open64 #define _G_LSEEK64 __lseek64 #define _G_MMAP64 __mmap64 #define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf) #define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE) #define _G_BUFSIZ 8192 #define _G_NAMES_HAVE_UNDERSCORE 0 #define _G_VTABLE_LABEL_HAS_LENGTH 1 #define _G_USING_THUNKS 1 #define _G_VTABLE_LABEL_PREFIX "__vt_" #define _G_VTABLE_LABEL_PREFIX_ID __vt_ #define _G_ARGS(ARGLIST) ARGLIST # 9 "/usr/include/_G_config.h" 2 3 4 # 33 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4 #define _IO_pos_t _G_fpos_t #define _IO_fpos_t _G_fpos_t #define _IO_fpos64_t _G_fpos64_t #define _IO_size_t _G_size_t #define _IO_ssize_t _G_ssize_t #define _IO_off_t _G_off_t #define _IO_off64_t _G_off64_t #define _IO_pid_t _G_pid_t #define _IO_uid_t _G_uid_t #define _IO_iconv_t _G_iconv_t #define _IO_HAVE_SYS_WAIT _G_HAVE_SYS_WAIT #define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE #define _IO_BUFSIZ _G_BUFSIZ #define _IO_va_list _G_va_list #define _IO_wint_t _G_wint_t #define __need___va_list # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4 # 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 #undef __need___va_list #define __GNUC_VA_LIST typedef __builtin_va_list __gnuc_va_list; # 54 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4 #undef _IO_va_list #define _IO_va_list __gnuc_va_list # 76 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 #define _PARAMS(protos) __P(protos) #define _IO_UNIFIED_JUMPTABLES 1 #define EOF (-1) # 105 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 #define _IOS_INPUT 1 #define _IOS_OUTPUT 2 #define _IOS_ATEND 4 #define _IOS_APPEND 8 #define _IOS_TRUNC 16 #define _IOS_NOCREATE 32 #define _IOS_NOREPLACE 64 #define _IOS_BIN 128 #define _IO_MAGIC 0xFBAD0000 #define _OLD_STDIO_MAGIC 0xFABC0000 #define _IO_MAGIC_MASK 0xFFFF0000 #define _IO_USER_BUF 1 #define _IO_UNBUFFERED 2 #define _IO_NO_READS 4 #define _IO_NO_WRITES 8 #define _IO_EOF_SEEN 0x10 #define _IO_ERR_SEEN 0x20 #define _IO_DELETE_DONT_CLOSE 0x40 #define _IO_LINKED 0x80 #define _IO_IN_BACKUP 0x100 #define _IO_LINE_BUF 0x200 #define _IO_TIED_PUT_GET 0x400 #define _IO_CURRENTLY_PUTTING 0x800 #define _IO_IS_APPENDING 0x1000 #define _IO_IS_FILEBUF 0x2000 #define _IO_BAD_SEEN 0x4000 #define _IO_USER_LOCK 0x8000 #define _IO_FLAGS2_MMAP 1 #define _IO_FLAGS2_NOTCANCEL 2 #define _IO_SKIPWS 01 #define _IO_LEFT 02 #define _IO_RIGHT 04 #define _IO_INTERNAL 010 #define _IO_DEC 020 #define _IO_OCT 040 #define _IO_HEX 0100 #define _IO_SHOWBASE 0200 #define _IO_SHOWPOINT 0400 #define _IO_UPPERCASE 01000 #define _IO_SHOWPOS 02000 #define _IO_SCIENTIFIC 04000 #define _IO_FIXED 010000 #define _IO_UNITBUF 020000 #define _IO_STDIO 040000 #define _IO_DONT_CLOSE 0100000 #define _IO_BOOLALPHA 0200000 struct _IO_jump_t; struct _IO_FILE; # 176 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 199 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 267 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 struct _IO_FILE { int _flags; #define _IO_file_flags _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; #define __HAVE_COLUMN unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 315 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 __off64_t _offset; # 324 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 void *__pad1; void *__pad2; void *__pad3; void *__pad4; size_t __pad5; int _mode; char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; typedef struct _IO_FILE _IO_FILE; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; #define _IO_stdin ((_IO_FILE*)(&_IO_2_1_stdin_)) #define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_)) #define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_)) # 360 "/usr/include/gentoo-multilib/amd64/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); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern int __underflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern int __uflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern int __overflow (_IO_FILE *, int) __attribute__ ((__nothrow__)); extern wint_t __wunderflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern wint_t __wuflow (_IO_FILE *) __attribute__ ((__nothrow__)); extern wint_t __woverflow (_IO_FILE *, wint_t) __attribute__ ((__nothrow__)); #define _IO_BE(expr,res) __builtin_expect ((expr), res) #define _IO_getc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) #define _IO_peekc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) && __underflow (_fp) == EOF ? EOF : *(unsigned char *) (_fp)->_IO_read_ptr) #define _IO_putc_unlocked(_ch,_fp) (_IO_BE ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end, 0) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) #define _IO_getwc_unlocked(_fp) (_IO_BE ((_fp)->_wide_data->_IO_read_ptr >= (_fp)->_wide_data->_IO_read_end, 0) ? __wuflow (_fp) : (_IO_wint_t) *(_fp)->_wide_data->_IO_read_ptr++) #define _IO_putwc_unlocked(_wch,_fp) (_IO_BE ((_fp)->_wide_data->_IO_write_ptr >= (_fp)->_wide_data->_IO_write_end, 0) ? __woverflow (_fp, _wch) : (_IO_wint_t) (*(_fp)->_wide_data->_IO_write_ptr++ = (_wch))) #define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0) #define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0) extern int _IO_getc (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_putc (int __c, _IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_peekc_locked (_IO_FILE *__fp) __attribute__ ((__nothrow__)); #define _IO_PENDING_OUTPUT_COUNT(_fp) ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base) extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); # 472 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 #define _IO_peekc(_fp) _IO_peekc_unlocked (_fp) #define _IO_flockfile(_fp) #define _IO_funlockfile(_fp) #define _IO_ftrylockfile(_fp) #define _IO_cleanup_region_start(_fct,_fp) #define _IO_cleanup_region_end(_Doit) 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) __attribute__ ((__nothrow__)); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) __attribute__ ((__nothrow__)); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) __attribute__ ((__nothrow__)); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) __attribute__ ((__nothrow__)); extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); # 9 "/usr/include/libio.h" 2 3 4 # 73 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; #define _VA_LIST_DEFINED typedef _G_fpos_t fpos_t; typedef _G_fpos64_t fpos64_t; #define _IOFBF 0 #define _IOLBF 1 #define _IONBF 2 #define BUFSIZ _IO_BUFSIZ # 118 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 #define SEEK_SET 0 #define SEEK_CUR 1 #define SEEK_END 2 #define P_tmpdir "/tmp" # 138 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4 #define L_tmpnam 20 #define TMP_MAX 238328 #define FILENAME_MAX 4096 #define L_ctermid 9 #define L_cuserid 9 #undef FOPEN_MAX #define FOPEN_MAX 16 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4 # 139 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; #define stdin stdin #define stdout stdout #define stderr stderr extern int remove (__const char *__filename) __attribute__ ((__nothrow__)); extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__)); extern int renameat (int __oldfd, __const char *__old, int __newfd, __const char *__new) __attribute__ ((__nothrow__)); extern FILE *tmpfile (void); # 179 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern FILE *tmpfile64 (void); extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)); extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)); # 201 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 226 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 236 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern int fcloseall (void); extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); # 267 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)); extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)); extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __attribute__ ((__nothrow__)); extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)); extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__)); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__ ((__nothrow__)); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__ ((__nothrow__)); extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__)); extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...); extern int printf (__const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)); extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ; extern int scanf (__const char *__restrict __format, ...) ; extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) ; extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) ; extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); #define getc(_fp) _IO_getc (_fp) extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 469 "/usr/include/gentoo-multilib/amd64/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); #define putc(_ch,_fp) _IO_putc (_ch, _fp) # 502 "/usr/include/gentoo-multilib/amd64/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) ; # 548 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) ; # 564 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) ; extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); extern int puts (__const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s) ; # 625 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 636 "/usr/include/gentoo-multilib/amd64/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); # 672 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream) ; # 691 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, __const fpos_t *__pos); # 714 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream) ; extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ; extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ; extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; extern void perror (__const char *__s); # 1 "/usr/include/bits/sys_errlist.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern __const char *__const sys_errlist[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; # 9 "/usr/include/bits/sys_errlist.h" 2 3 4 # 753 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ; extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; # 772 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes) ; extern int pclose (FILE *__stream); extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ; extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); # 833 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 # 1 "/usr/include/bits/stdio.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 3 4 #define __STDIO_INLINE extern __inline 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))); } extern __inline __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } extern __inline int __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x10) != 0); } extern __inline int __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x20) != 0); } #define fread_unlocked(ptr,size,n,stream) (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) && (size_t) (size) * (size_t) (n) <= 8 && (size_t) (size) != 0) ? ({ char *__ptr = (char *) (ptr); FILE *__stream = (stream); size_t __cnt; for (__cnt = (size_t) (size) * (size_t) (n); __cnt > 0; --__cnt) { int __c = _IO_getc_unlocked (__stream); if (__c == EOF) break; *__ptr++ = __c; } ((size_t) (size) * (size_t) (n) - __cnt) / (size_t) (size); }) : (((__builtin_constant_p (size) && (size_t) (size) == 0) || (__builtin_constant_p (n) && (size_t) (n) == 0)) ? ((void) (ptr), (void) (stream), (void) (size), (void) (n), (size_t) 0) : fread_unlocked (ptr, size, n, stream)))) # 154 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 3 4 #define fwrite_unlocked(ptr,size,n,stream) (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) && (size_t) (size) * (size_t) (n) <= 8 && (size_t) (size) != 0) ? ({ const char *__ptr = (const char *) (ptr); FILE *__stream = (stream); size_t __cnt; for (__cnt = (size_t) (size) * (size_t) (n); __cnt > 0; --__cnt) if (_IO_putc_unlocked (*__ptr++, __stream) == EOF) break; ((size_t) (size) * (size_t) (n) - __cnt) / (size_t) (size); }) : (((__builtin_constant_p (size) && (size_t) (size) == 0) || (__builtin_constant_p (n) && (size_t) (n) == 0)) ? ((void) (ptr), (void) (stream), (void) (size), (void) (n), (size_t) 0) : fwrite_unlocked (ptr, size, n, stream)))) # 176 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 3 4 #undef __STDIO_INLINE # 9 "/usr/include/bits/stdio.h" 2 3 4 # 834 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 # 842 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 # 9 "/usr/include/stdio.h" 2 3 4 # 24 "video_out_dfb.c" 2 # 1 "/usr/include/stdlib.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/stdlib.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 #define __need_size_t #define __need_wchar_t #define __need_NULL # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_wchar_t # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL # 34 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 #define _STDLIB_H 1 # 1 "/usr/include/bits/waitflags.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 3 4 #define WNOHANG 1 #define WUNTRACED 2 #define WSTOPPED 2 #define WEXITED 4 #define WCONTINUED 8 #define WNOWAIT 0x01000000 #define __WNOTHREAD 0x20000000 #define __WALL 0x40000000 #define __WCLONE 0x80000000 # 9 "/usr/include/bits/waitflags.h" 2 3 4 # 43 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 1 3 4 # 29 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 3 4 #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) #define __WTERMSIG(status) ((status) & 0x7f) #define __WSTOPSIG(status) __WEXITSTATUS(status) #define __WIFEXITED(status) (__WTERMSIG(status) == 0) #define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) #define __WIFCONTINUED(status) ((status) == __W_CONTINUED) #define __WCOREDUMP(status) ((status) & __WCOREFLAG) #define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig)) #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) #define __W_CONTINUED 0xffff #define __WCOREFLAG 0x80 # 1 "/usr/include/endian.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/endian.h" 1 3 4 # 20 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4 #define _ENDIAN_H 1 # 1 "/usr/include/features.h" 1 3 4 # 23 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4 # 32 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4 #define __LITTLE_ENDIAN 1234 #define __BIG_ENDIAN 4321 #define __PDP_ENDIAN 3412 # 1 "/usr/include/bits/endian.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/endian.h" 1 3 4 #define __BYTE_ORDER __LITTLE_ENDIAN # 9 "/usr/include/bits/endian.h" 2 3 4 # 38 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4 #define __FLOAT_WORD_ORDER __BYTE_ORDER #define LITTLE_ENDIAN __LITTLE_ENDIAN #define BIG_ENDIAN __BIG_ENDIAN #define PDP_ENDIAN __PDP_ENDIAN #define BYTE_ORDER __BYTE_ORDER #define __LONG_LONG_PAIR(HI,LO) LO, HI # 9 "/usr/include/endian.h" 2 3 4 # 66 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 2 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; #define w_termsig __wait_terminated.__w_termsig #define w_coredump __wait_terminated.__w_coredump #define w_retcode __wait_terminated.__w_retcode #define w_stopsig __wait_stopped.__w_stopsig #define w_stopval __wait_stopped.__w_stopval # 9 "/usr/include/bits/waitstatus.h" 2 3 4 # 44 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 #define __WAIT_INT(status) (__extension__ ({ union { __typeof(status) __in; int __i; } __u; __u.__in = (status); __u.__i; })) # 68 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); #define __WAIT_STATUS_DEFN int * # 85 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 #define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status)) #define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status)) #define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status)) #define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status)) #define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status)) #define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status)) #define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status)) typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; #define __ldiv_t_defined 1 __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; #define __lldiv_t_defined 1 #define RAND_MAX 2147483647 #define EXIT_FAILURE 1 #define EXIT_SUCCESS 0 #define MB_CUR_MAX (__ctype_get_mb_cur_max ()) extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ; extern double atof (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern int atoi (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern long int atol (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 236 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 # 1 "/usr/include/xlocale.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/xlocale.h" 1 3 4 # 22 "/usr/include/gentoo-multilib/amd64/xlocale.h" 3 4 #define _XLOCALE_H 1 typedef struct __locale_struct { struct locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; # 9 "/usr/include/xlocale.h" 2 3 4 # 237 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; #define __strtol_internal_defined 1 extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; #define __strtoul_internal_defined 1 __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; #define __strtoll_internal_defined 1 __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; #define __strtoull_internal_defined 1 extern __inline double __attribute__ ((__nothrow__)) strtod (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtod_internal (__nptr, __endptr, 0); } extern __inline long int __attribute__ ((__nothrow__)) strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtol_internal (__nptr, __endptr, __base, 0); } extern __inline unsigned long int __attribute__ ((__nothrow__)) strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoul_internal (__nptr, __endptr, __base, 0); } extern __inline float __attribute__ ((__nothrow__)) strtof (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtof_internal (__nptr, __endptr, 0); } extern __inline long double __attribute__ ((__nothrow__)) strtold (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtold_internal (__nptr, __endptr, 0); } __extension__ extern __inline long long int __attribute__ ((__nothrow__)) strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline long long int __attribute__ ((__nothrow__)) strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } extern __inline double __attribute__ ((__nothrow__)) atof (__const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } extern __inline int __attribute__ ((__nothrow__)) atoi (__const char *__nptr) { return (int) strtol (__nptr, (char **) ((void *)0), 10); } extern __inline long int __attribute__ ((__nothrow__)) atol (__const char *__nptr) { return strtol (__nptr, (char **) ((void *)0), 10); } __extension__ extern __inline long long int __attribute__ ((__nothrow__)) atoll (__const char *__nptr) { return strtoll (__nptr, (char **) ((void *)0), 10); } # 429 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; extern long int a64l (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; # 1 "/usr/include/sys/types.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/types.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4 #define _SYS_TYPES_H 1 # 1 "/usr/include/features.h" 1 3 4 # 28 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 32 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; #define __u_char_defined typedef __loff_t loff_t; typedef __ino_t ino_t; #define __ino_t_defined typedef __ino64_t ino64_t; #define __ino64_t_defined typedef __dev_t dev_t; #define __dev_t_defined typedef __gid_t gid_t; #define __gid_t_defined typedef __mode_t mode_t; #define __mode_t_defined typedef __nlink_t nlink_t; #define __nlink_t_defined typedef __uid_t uid_t; #define __uid_t_defined typedef __off_t off_t; #define __off_t_defined typedef __off64_t off64_t; #define __off64_t_defined typedef __pid_t pid_t; #define __pid_t_defined typedef __id_t id_t; #define __id_t_defined typedef __ssize_t ssize_t; #define __ssize_t_defined typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; #define __daddr_t_defined typedef __key_t key_t; #define __key_t_defined #define __need_clock_t #define __need_time_t #define __need_timer_t #define __need_clockid_t # 1 "/usr/include/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 # 55 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #define __clock_t_defined 1 # 1 "/usr/include/bits/types.h" 1 3 4 # 58 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 typedef __clock_t clock_t; #undef __need_clock_t #define __time_t_defined 1 # 1 "/usr/include/bits/types.h" 1 3 4 # 74 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 typedef __time_t time_t; #undef __need_time_t #define __clockid_t_defined 1 # 1 "/usr/include/bits/types.h" 1 3 4 # 91 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 typedef __clockid_t clockid_t; #undef __clockid_time_t #define __timer_t_defined 1 # 1 "/usr/include/bits/types.h" 1 3 4 # 103 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 typedef __timer_t timer_t; #undef __need_timer_t # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_timespec # 9 "/usr/include/time.h" 2 3 4 # 134 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 typedef __useconds_t useconds_t; #define __useconds_t_defined typedef __suseconds_t suseconds_t; #define __suseconds_t_defined #define __need_size_t # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_NULL # 148 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 188 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4 #define __intN_t(N,MODE) typedef int int ##N ##_t __attribute__ ((__mode__ (MODE))) #define __u_intN_t(N,MODE) typedef unsigned int u_int ##N ##_t __attribute__ ((__mode__ (MODE))) #define __int8_t_defined typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); #define __BIT_TYPES_DEFINED__ 1 # 1 "/usr/include/endian.h" 1 3 4 # 218 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/select.h" 1 3 4 # 23 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 #define _SYS_SELECT_H 1 # 1 "/usr/include/features.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 29 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 # 1 "/usr/include/bits/select.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/select.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/select.h" 3 4 #define __FD_ZERO(s) do { unsigned int __i; fd_set *__arr = (s); for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) __FDS_BITS (__arr)[__i] = 0; } while (0) #define __FD_SET(d,s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)) #define __FD_CLR(d,s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)) #define __FD_ISSET(d,s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0) # 9 "/usr/include/bits/select.h" 2 3 4 # 32 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 #define _SIGSET_H_types 1 typedef int __sig_atomic_t; #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 9 "/usr/include/bits/sigset.h" 2 3 4 # 35 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 #define __sigset_t_defined typedef __sigset_t sigset_t; #define __need_time_t #define __need_timespec # 1 "/usr/include/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_clock_t # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_time_t # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __clockid_time_t # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_timer_t #define __timespec_defined 1 # 1 "/usr/include/bits/types.h" 1 3 4 # 118 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 struct timespec { __time_t tv_sec; long int tv_nsec; }; #undef __need_timespec # 9 "/usr/include/time.h" 2 3 4 # 45 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 #define __need_timeval # 1 "/usr/include/bits/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4 # 62 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 #undef __need_timeval #define _STRUCT_TIMEVAL 1 # 1 "/usr/include/bits/types.h" 1 3 4 # 66 "/usr/include/gentoo-multilib/amd64/bits/time.h" 2 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 9 "/usr/include/bits/time.h" 2 3 4 # 47 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 # 55 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 typedef long int __fd_mask; #undef __NFDBITS #undef __FDELT #undef __FDMASK #define __NFDBITS (8 * sizeof (__fd_mask)) #define __FDELT(d) ((d) / __NFDBITS) #define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; #define __FDS_BITS(set) ((set)->fds_bits) } fd_set; #define FD_SETSIZE __FD_SETSIZE typedef __fd_mask fd_mask; #define NFDBITS __NFDBITS #define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp) #define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp) #define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp) #define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) # 109 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 121 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 9 "/usr/include/sys/select.h" 2 3 4 # 221 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 # 1 "/usr/include/sys/sysmacros.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 3 4 #define _SYS_SYSMACROS_H 1 # 1 "/usr/include/features.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 2 3 4 __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } #define major(dev) gnu_dev_major (dev) #define minor(dev) gnu_dev_minor (dev) #define makedev(maj,min) gnu_dev_makedev (maj, min) # 9 "/usr/include/sys/sysmacros.h" 2 3 4 # 224 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; #define __blksize_t_defined typedef __blkcnt_t blkcnt_t; #define __blkcnt_t_defined typedef __fsblkcnt_t fsblkcnt_t; #define __fsblkcnt_t_defined typedef __fsfilcnt_t fsfilcnt_t; #define __fsfilcnt_t_defined # 262 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 #define _BITS_PTHREADTYPES_H 1 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 24 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 2 3 4 #define __SIZEOF_PTHREAD_ATTR_T 56 #define __SIZEOF_PTHREAD_MUTEX_T 40 #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 #define __SIZEOF_PTHREAD_COND_T 48 #define __SIZEOF_PTHREAD_CONDATTR_T 4 #define __SIZEOF_PTHREAD_RWLOCK_T 56 #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 #define __SIZEOF_PTHREAD_BARRIER_T 32 #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 # 50 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[56]; long int __align; } pthread_attr_t; typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; # 76 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; unsigned int __nusers; int __kind; int __spins; __pthread_list_t __list; #define __PTHREAD_MUTEX_HAVE_PREV 1 # 101 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 } __data; char __size[40]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; int __writer; int __pad1; unsigned long int __pad2; unsigned long int __pad3; unsigned int __flags; } __data; # 184 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 char __size[56]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[32]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 9 "/usr/include/bits/pthreadtypes.h" 2 3 4 # 271 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 # 9 "/usr/include/sys/types.h" 2 3 4 # 439 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 extern long int random (void) __attribute__ ((__nothrow__)); extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) __attribute__ ((__nothrow__)); extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); extern double drand48 (void) __attribute__ ((__nothrow__)); extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) __attribute__ ((__nothrow__)); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) __attribute__ ((__nothrow__)); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); #define __malloc_and_calloc_defined extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); # 1 "/usr/include/alloca.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/alloca.h" 1 3 4 # 20 "/usr/include/gentoo-multilib/amd64/alloca.h" 3 4 #define _ALLOCA_H 1 # 1 "/usr/include/features.h" 1 3 4 # 23 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4 #define __need_size_t # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_NULL # 26 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4 #undef alloca extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); #define alloca(size) __builtin_alloca (size) # 9 "/usr/include/alloca.h" 2 3 4 # 613 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern char *__secure_getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int setenv (__const char *__name, __const char *__value, int __replace) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); extern int clearenv (void) __attribute__ ((__nothrow__)); # 698 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 709 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; # 719 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; # 729 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int system (__const char *__command) ; extern char *canonicalize_file_name (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 757 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__)) ; #define __COMPAR_FN_T typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) ; extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; __extension__ extern long long int llabs (long long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; # 822 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ; extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ; extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ; extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) __attribute__ ((__nothrow__)); extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 910 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int posix_openpt (int __oflag) ; extern int grantpt (int __fd) __attribute__ ((__nothrow__)); extern int unlockpt (int __fd) __attribute__ ((__nothrow__)); extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 976 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 #undef __need_malloc_and_calloc # 9 "/usr/include/stdlib.h" 2 3 4 # 25 "video_out_dfb.c" 2 # 1 "/usr/include/string.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/string.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 #define _STRING_H 1 # 1 "/usr/include/features.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 #define __need_size_t #define __need_NULL # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL # 34 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, __const void *__src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *memrchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 1 "/usr/include/xlocale.h" 1 3 4 # 119 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (__const char *__string, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); #define strdupa(s) (__extension__ ({ __const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); })) # 154 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 #define strndupa(s,n) (__extension__ ({ __const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); })) # 165 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 extern char *strchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strrchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (__const char *__s, __const char *__reject) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strpbrk (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strstr (__const char *__haystack, __const char *__needle) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strcasestr (__const char *__haystack, __const char *__needle) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (__const char *__string, size_t __maxlen) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); # 281 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void bcopy (__const void *__src, void *__dest, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *index (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *rindex (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern int strcasecmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 414 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 # 1 "/usr/include/bits/string.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/string.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/string.h" 3 4 #define _STRING_ARCH_unaligned 1 # 9 "/usr/include/bits/string.h" 2 3 4 # 415 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 # 1 "/usr/include/bits/string2.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 1 3 4 # 46 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __STRING_INLINE extern __inline # 1 "/usr/include/endian.h" 1 3 4 # 53 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 54 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 2 3 4 #define __STRING2_SMALL_GET16(src,idx) (((__const unsigned char *) (__const char *) (src))[idx + 1] << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) #define __STRING2_SMALL_GET32(src,idx) (((((__const unsigned char *) (__const char *) (src))[idx + 3] << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 2]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 1]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) # 93 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __string2_1bptr_p(__x) ((size_t)(const void *)((__x) + 1) - (size_t)(const void *)(__x) == 1) # 195 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __bzero(s,n) __builtin_memset (s, '\0', n) # 207 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __mempcpy(dest,src,n) __builtin_mempcpy (dest, src, n) # 223 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define mempcpy(dest,src,n) __mempcpy (dest, src, n) # 394 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 extern void *__rawmemchr (const void *__s, int __c); #define strchr(s,c) (__extension__ (__builtin_constant_p (c) && !__builtin_constant_p (s) && (c) == '\0' ? (char *) __rawmemchr (s, c) : __builtin_strchr (s, c))) # 577 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __stpcpy(dest,src) __builtin_stpcpy (dest, src) # 598 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define stpcpy(dest,src) __stpcpy (dest, src) # 761 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strncpy(dest,src,n) __builtin_strncpy (dest, src, n) # 785 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strncat(dest,src,n) __builtin_strncat (dest, src, n) # 800 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strcmp(s1,s2) __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (s1) && __builtin_constant_p (s2) && (__s1_len = strlen (s1), __s2_len = strlen (s2), (!__string2_1bptr_p (s1) || __s1_len >= 4) && (!__string2_1bptr_p (s2) || __s2_len >= 4)) ? __builtin_strcmp (s1, s2) : (__builtin_constant_p (s1) && __string2_1bptr_p (s1) && (__s1_len = strlen (s1), __s1_len < 4) ? (__builtin_constant_p (s2) && __string2_1bptr_p (s2) ? __builtin_strcmp (s1, s2) : __strcmp_cg (s1, s2, __s1_len)) : (__builtin_constant_p (s2) && __string2_1bptr_p (s2) && (__s2_len = strlen (s2), __s2_len < 4) ? (__builtin_constant_p (s1) && __string2_1bptr_p (s1) ? __builtin_strcmp (s1, s2) : __strcmp_gc (s1, s2, __s2_len)) : __builtin_strcmp (s1, s2)))); }) # 842 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __strcmp_cc(s1,s2,l) (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (s1))[0] - ((__const unsigned char *) (__const char *)(s2))[0]); if (l > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[1] - ((__const unsigned char *) (__const char *) (s2))[1]); if (l > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[2] - ((__const unsigned char *) (__const char *) (s2))[2]); if (l > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (s1))[3] - ((__const unsigned char *) (__const char *) (s2))[3]); } } __result; })) # 869 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __strcmp_cg(s1,s2,l1) (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (s2); register int __result = (((__const unsigned char *) (__const char *) (s1))[0] - __s2[0]); if (l1 > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[1] - __s2[1]); if (l1 > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[2] - __s2[2]); if (l1 > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (s1))[3] - __s2[3]); } } __result; })) # 891 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __strcmp_gc(s1,s2,l2) (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (s1); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (s2))[0]; if (l2 > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (s2))[1]); if (l2 > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (s2))[2]); if (l2 > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (s2))[3]); } } __result; })) # 920 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strncmp(s1,s2,n) (__extension__ (__builtin_constant_p (n) && ((__builtin_constant_p (s1) && strlen (s1) < ((size_t) (n))) || (__builtin_constant_p (s2) && strlen (s2) < ((size_t) (n)))) ? strcmp (s1, s2) : strncmp (s1, s2, n))) # 935 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strcspn(s,reject) __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (reject) && __string2_1bptr_p (reject) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strcspn (s, reject) : ((__r0 = ((__const char *) (reject))[0], __r0 == '\0') ? strlen (s) : ((__r1 = ((__const char *) (reject))[1], __r1 == '\0') ? __strcspn_c1 (s, __r0) : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0') ? __strcspn_c2 (s, __r0, __r1) : (((__const char *) (reject))[3] == '\0' ? __strcspn_c3 (s, __r0, __r1, __r2) : __builtin_strcspn (s, reject)))))) : __builtin_strcspn (s, reject)); }) # 969 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); extern __inline size_t __strcspn_c1 (__const char *__s, int __reject) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject) ++__result; return __result; } extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, int __reject2); extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, int __reject2) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) ++__result; return __result; } extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, int __reject2, int __reject3); extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, int __reject2, int __reject3) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) ++__result; return __result; } # 1011 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strspn(s,accept) __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (accept) && __string2_1bptr_p (accept) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strspn (s, accept) : ((__a0 = ((__const char *) (accept))[0], __a0 == '\0') ? ((void) (s), 0) : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0') ? __strspn_c1 (s, __a0) : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0') ? __strspn_c2 (s, __a0, __a1) : (((__const char *) (accept))[3] == '\0' ? __strspn_c3 (s, __a0, __a1, __a2) : __builtin_strspn (s, accept)))))) : __builtin_strspn (s, accept)); }) # 1045 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 extern __inline size_t __strspn_c1 (__const char *__s, int __accept); extern __inline size_t __strspn_c1 (__const char *__s, int __accept) { register size_t __result = 0; while (__s[__result] == __accept) ++__result; return __result; } extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, int __accept2); extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, int __accept2) { register size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2) ++__result; return __result; } extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3); extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) { register size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) ++__result; return __result; } #define strpbrk(s,accept) __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (accept) && __string2_1bptr_p (accept) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strpbrk (s, accept) : ((__a0 = ((__const char *) (accept))[0], __a0 == '\0') ? ((void) (s), (char *) NULL) : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0') ? __builtin_strchr (s, __a0) : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0') ? __strpbrk_c2 (s, __a0, __a1) : (((__const char *) (accept))[3] == '\0' ? __strpbrk_c3 (s, __a0, __a1, __a2) : __builtin_strpbrk (s, accept)))))) : __builtin_strpbrk (s, accept)); }) # 1121 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, int __accept2); extern __inline char * __strpbrk_c2 (__const char *__s, int __accept1, int __accept2) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1, int __accept2, int __accept3); extern __inline char * __strpbrk_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } # 1164 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __strtok_r(s,sep,nextp) (__extension__ (__builtin_constant_p (sep) && __string2_1bptr_p (sep) ? (((__const char *) (sep))[0] != '\0' && ((__const char *) (sep))[1] == '\0' ? __strtok_r_1c (s, ((__const char *) (sep))[0], nextp) : __strtok_r (s, sep, nextp)) : __strtok_r (s, sep, nextp))) # 1173 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); extern __inline char * __strtok_r_1c (char *__s, char __sep, char **__nextp) { char *__result; if (__s == ((void *)0)) __s = *__nextp; while (*__s == __sep) ++__s; __result = ((void *)0); if (*__s != '\0') { __result = __s++; while (*__s != '\0') if (*__s++ == __sep) { __s[-1] = '\0'; break; } *__nextp = __s; } return __result; } #define strtok_r(s,sep,nextp) __strtok_r (s, sep, nextp) extern char *__strsep_g (char **__stringp, __const char *__delim); #define __strsep(s,reject) __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (reject) && __string2_1bptr_p (reject) && (__r0 = ((__const char *) (reject))[0], ((__const char *) (reject))[0] != '\0') ? ((__r1 = ((__const char *) (reject))[1], ((__const char *) (reject))[1] == '\0') ? __strsep_1c (s, __r0) : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0') ? __strsep_2c (s, __r0, __r1) : (((__const char *) (reject))[3] == '\0' ? __strsep_3c (s, __r0, __r1, __r2) : __strsep_g (s, reject)))) : __strsep_g (s, reject)); }) # 1223 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 extern __inline char *__strsep_1c (char **__s, char __reject); extern __inline char * __strsep_1c (char **__s, char __reject) { register char *__retval = *__s; if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0)) *(*__s)++ = '\0'; return __retval; } extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); extern __inline char * __strsep_2c (char **__s, char __reject1, char __reject2) { register char *__retval = *__s; if (__retval != ((void *)0)) { register char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3); extern __inline char * __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) { register char *__retval = *__s; if (__retval != ((void *)0)) { register char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } #define strsep(s,reject) __strsep (s, reject) # 1298 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define __need_malloc_and_calloc # 1 "/usr/include/stdlib.h" 1 3 4 # 1300 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 2 3 4 extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); #define __strdup(s) (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) ? (((__const char *) (s))[0] == '\0' ? (char *) calloc (1, 1) : ({ size_t __len = strlen (s) + 1; char *__retval = (char *) malloc (__len); if (__retval != NULL) __retval = (char *) memcpy (__retval, s, __len); __retval; })) : __strdup (s))) # 1317 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strdup(s) __strdup (s) extern char *__strndup (__const char *__string, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); #define __strndup(s,n) (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) ? (((__const char *) (s))[0] == '\0' ? (char *) calloc (1, 1) : ({ size_t __len = strlen (s) + 1; size_t __n = (n); char *__retval; if (__n < __len) __len = __n + 1; __retval = (char *) malloc (__len); if (__retval != NULL) { __retval[__len - 1] = '\0'; __retval = (char *) memcpy (__retval, s, __len - 1); } __retval; })) : __strndup (s, n))) # 1345 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 #define strndup(s,n) __strndup (s, n) #undef __STRING_INLINE # 9 "/usr/include/bits/string2.h" 2 3 4 # 418 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 # 426 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 # 9 "/usr/include/string.h" 2 3 4 # 26 "video_out_dfb.c" 2 # 1 "/usr/include/pthread.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/pthread.h" 1 3 4 # 20 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 #define _PTHREAD_H 1 # 1 "/usr/include/features.h" 1 3 4 # 23 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 # 1 "/usr/include/sched.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sched.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/sched.h" 3 4 #define _SCHED_H 1 # 1 "/usr/include/features.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 #define __need_timespec # 1 "/usr/include/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_clock_t # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_time_t # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __clockid_time_t # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_timer_t # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_timespec # 9 "/usr/include/time.h" 2 3 4 # 30 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 # 1 "/usr/include/bits/sched.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 1 3 4 # 29 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4 #define SCHED_OTHER 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #define SCHED_BATCH 3 #define CSIGNAL 0x000000ff #define CLONE_VM 0x00000100 #define CLONE_FS 0x00000200 #define CLONE_FILES 0x00000400 #define CLONE_SIGHAND 0x00000800 #define CLONE_PTRACE 0x00002000 #define CLONE_VFORK 0x00004000 #define CLONE_PARENT 0x00008000 #define CLONE_THREAD 0x00010000 #define CLONE_NEWNS 0x00020000 #define CLONE_SYSVSEM 0x00040000 #define CLONE_SETTLS 0x00080000 #define CLONE_PARENT_SETTID 0x00100000 #define CLONE_CHILD_CLEARTID 0x00200000 #define CLONE_DETACHED 0x00400000 #define CLONE_UNTRACED 0x00800000 #define CLONE_CHILD_SETTID 0x01000000 #define CLONE_STOPPED 0x02000000 struct sched_param { int __sched_priority; }; extern int clone (int (*__fn) (void *__arg), void *__child_stack, int __flags, void *__arg, ...) __attribute__ ((__nothrow__)); extern int unshare (int __flags) __attribute__ ((__nothrow__)); #define __defined_schedparam 1 struct __sched_param { int __sched_priority; }; #undef __need_schedparam #define __cpu_set_t_defined #define __CPU_SETSIZE 1024 #define __NCPUBITS (8 * sizeof (__cpu_mask)) typedef unsigned long int __cpu_mask; #define __CPUELT(cpu) ((cpu) / __NCPUBITS) #define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) typedef struct { __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; } cpu_set_t; #define __CPU_ZERO(cpusetp) do { unsigned int __i; cpu_set_t *__arr = (cpusetp); for (__i = 0; __i < sizeof (cpu_set_t) / sizeof (__cpu_mask); ++__i) __arr->__bits[__i] = 0; } while (0) #define __CPU_SET(cpu,cpusetp) ((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu)) #define __CPU_CLR(cpu,cpusetp) ((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu)) #define __CPU_ISSET(cpu,cpusetp) (((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0) # 9 "/usr/include/bits/sched.h" 2 3 4 # 33 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 #define sched_priority __sched_priority extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) __attribute__ ((__nothrow__)); extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__)); extern int sched_setscheduler (__pid_t __pid, int __policy, __const struct sched_param *__param) __attribute__ ((__nothrow__)); extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__)); extern int sched_yield (void) __attribute__ ((__nothrow__)); extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__)); extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__)); extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__)); #define CPU_SETSIZE __CPU_SETSIZE #define CPU_SET(cpu,cpusetp) __CPU_SET (cpu, cpusetp) #define CPU_CLR(cpu,cpusetp) __CPU_CLR (cpu, cpusetp) #define CPU_ISSET(cpu,cpusetp) __CPU_ISSET (cpu, cpusetp) #define CPU_ZERO(cpusetp) __CPU_ZERO (cpusetp) extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__)); extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, cpu_set_t *__cpuset) __attribute__ ((__nothrow__)); # 9 "/usr/include/sched.h" 2 3 4 # 24 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 # 1 "/usr/include/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 # 28 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #define _TIME_H 1 # 1 "/usr/include/features.h" 1 3 4 # 30 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 #define __need_size_t #define __need_NULL # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef __need_size_t # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL # 40 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 #define _BITS_TIME_H 1 #define CLOCKS_PER_SEC 1000000l # 46 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 #define CLOCK_REALTIME 0 #define CLOCK_MONOTONIC 1 #define CLOCK_PROCESS_CPUTIME_ID 2 #define CLOCK_THREAD_CPUTIME_ID 3 #define TIMER_ABSTIME 1 # 9 "/usr/include/bits/time.h" 2 3 4 # 44 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_clock_t # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_time_t # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __clockid_time_t # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_timer_t # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 #undef __need_timespec struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; __const char *tm_zone; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct sigevent; # 181 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 extern clock_t clock (void) __attribute__ ((__nothrow__)); extern time_t time (time_t *__timer) __attribute__ ((__nothrow__)); extern double difftime (time_t __time1, time_t __time0) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__)); extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) __attribute__ ((__nothrow__)); extern char *strptime (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp) __attribute__ ((__nothrow__)); # 1 "/usr/include/xlocale.h" 1 3 4 # 217 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 extern size_t strftime_l (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) __attribute__ ((__nothrow__)); extern char *strptime_l (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) __attribute__ ((__nothrow__)); extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__)); extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__)); extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__)); extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__)); extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__)); extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__)); extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) __attribute__ ((__nothrow__)); extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) __attribute__ ((__nothrow__)); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) __attribute__ ((__nothrow__)); extern int daylight; extern long int timezone; extern int stime (__const time_t *__when) __attribute__ ((__nothrow__)); #define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) # 312 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__)); extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__)); extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 327 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__)); extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__)); extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) __attribute__ ((__nothrow__)); extern int clock_nanosleep (clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__)); extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__ ((__nothrow__)); extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__)); extern int timer_settime (timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__)); extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) __attribute__ ((__nothrow__)); extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__)); # 389 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 extern int getdate_err; # 398 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 extern struct tm *getdate (__const char *__string); # 412 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 extern int getdate_r (__const char *__restrict __string, struct tm *__restrict __resbufp); # 9 "/usr/include/time.h" 2 3 4 # 25 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 #define __need_sigset_t # 1 "/usr/include/signal.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/signal.h" 1 3 4 # 29 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 30 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4 # 9 "/usr/include/bits/sigset.h" 2 3 4 # 34 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 52 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 #undef __need_sigset_t # 400 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 # 9 "/usr/include/signal.h" 2 3 4 # 28 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 29 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 # 1 "/usr/include/bits/setjmp.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 3 4 #define _BITS_SETJMP_H 1 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 28 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 2 3 4 typedef long int __jmp_buf[8]; # 9 "/usr/include/bits/setjmp.h" 2 3 4 # 30 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 31 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 enum { PTHREAD_CREATE_JOINABLE, #define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_DETACHED #define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED }; enum { PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_ADAPTIVE_NP , PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP }; enum { PTHREAD_MUTEX_STALLED_NP, PTHREAD_MUTEX_ROBUST_NP }; enum { PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT }; #define PTHREAD_MUTEX_INITIALIZER { { 0, 0, 0, 0, 0, 0, { 0, 0 } } } #define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } } #define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { 0, 0 } } } #define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { 0, 0 } } } # 113 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 enum { PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP }; #define PTHREAD_RWLOCK_INITIALIZER { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } #define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } } # 143 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 enum { PTHREAD_INHERIT_SCHED, #define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED PTHREAD_EXPLICIT_SCHED #define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED }; enum { PTHREAD_SCOPE_SYSTEM, #define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_PROCESS #define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS }; enum { PTHREAD_PROCESS_PRIVATE, #define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_SHARED #define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED }; #define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } } struct _pthread_cleanup_buffer { void (*__routine) (void *); void *__arg; int __canceltype; struct _pthread_cleanup_buffer *__prev; }; enum { PTHREAD_CANCEL_ENABLE, #define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_DISABLE #define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE }; enum { PTHREAD_CANCEL_DEFERRED, #define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_ASYNCHRONOUS #define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS }; #define PTHREAD_CANCELED ((void *) -1) #define PTHREAD_ONCE_INIT 0 #define PTHREAD_BARRIER_SERIAL_THREAD -1 extern int pthread_create (pthread_t *__restrict __newthread, __const pthread_attr_t *__restrict __attr, void *(*__start_routine) (void *), void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); extern int pthread_join (pthread_t __th, void **__thread_return); extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__)); extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, __const struct timespec *__abstime); extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__)); extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__)); extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_destroy (pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, int *__detachstate) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, size_t *__guardsize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, __const struct sched_param *__restrict __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict __attr, int *__restrict __policy) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict __attr, int *__restrict __inherit) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, int __inherit) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, int *__restrict __scope) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, size_t __cpusetsize, __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, size_t __cpusetsize, cpu_set_t *__cpuset) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int pthread_setschedparam (pthread_t __target_thread, int __policy, __const struct sched_param *__param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern int pthread_getschedparam (pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int pthread_setschedprio (pthread_t __target_thread, int __prio) __attribute__ ((__nothrow__)); extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__)); extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__)); extern int pthread_yield (void) __attribute__ ((__nothrow__)); extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, cpu_set_t *__cpuset) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); # 462 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern int pthread_once (pthread_once_t *__once_control, void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); # 474 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern int pthread_setcancelstate (int __state, int *__oldstate); extern int pthread_setcanceltype (int __type, int *__oldtype); extern int pthread_cancel (pthread_t __th); extern void pthread_testcancel (void); typedef struct { struct { __jmp_buf __cancel_jmp_buf; int __mask_was_saved; } __cancel_jmp_buf[1]; void *__pad[4]; } __pthread_unwind_buf_t __attribute__ ((__aligned__)); #define __cleanup_fct_attribute struct __pthread_cleanup_frame { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; }; # 632 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 #define pthread_cleanup_push(routine,arg) do { __pthread_unwind_buf_t __cancel_buf; void (*__cancel_routine) (void *) = (routine); void *__cancel_arg = (arg); int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) __cancel_buf.__cancel_jmp_buf, 0); if (__builtin_expect (not_first_call, 0)) { __cancel_routine (__cancel_arg); __pthread_unwind_next (&__cancel_buf); } __pthread_register_cancel (&__cancel_buf); do { # 648 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) ; #define pthread_cleanup_pop(execute) } while (0); __pthread_unregister_cancel (&__cancel_buf); if (execute) __cancel_routine (__cancel_arg); } while (0) extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) ; #define pthread_cleanup_push_defer_np(routine,arg) do { __pthread_unwind_buf_t __cancel_buf; void (*__cancel_routine) (void *) = (routine); void *__cancel_arg = (arg); int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) __cancel_buf.__cancel_jmp_buf, 0); if (__builtin_expect (not_first_call, 0)) { __cancel_routine (__cancel_arg); __pthread_unwind_next (&__cancel_buf); } __pthread_register_cancel_defer (&__cancel_buf); do { # 682 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) ; #define pthread_cleanup_pop_restore_np(execute) } while (0); __pthread_unregister_cancel_restore (&__cancel_buf); if (execute) __cancel_routine (__cancel_arg); } while (0) extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) ; extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) __attribute__ ((__noreturn__)) __attribute__ ((__weak__)) ; struct __jmp_buf_tag; extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__)); extern int pthread_mutex_init (pthread_mutex_t *__mutex, __const pthread_mutexattr_t *__mutexattr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_lock (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * __restrict __mutex, int *__restrict __prioceiling) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __protocol) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, int __protocol) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * __restrict __attr, int *__restrict __prioceiling) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, int __prioceiling) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, int *__robustness) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, int __robustness) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 842 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, __const pthread_rwlockattr_t *__restrict __attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pref) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, int __pref) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_cond_init (pthread_cond_t *__restrict __cond, __const pthread_condattr_t *__restrict __cond_attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_cond_destroy (pthread_cond_t *__cond) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_cond_signal (pthread_cond_t *__cond) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_cond_broadcast (pthread_cond_t *__cond) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__ ((__nonnull__ (1, 2))); # 954 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_condattr_init (pthread_condattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getpshared (__const pthread_condattr_t * __restrict __attr, int *__restrict __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getclock (__const pthread_condattr_t * __restrict __attr, __clockid_t *__restrict __clock_id) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setclock (pthread_condattr_t *__attr, __clockid_t __clock_id) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 998 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_spin_destroy (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_spin_lock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_spin_trylock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_spin_unlock (pthread_spinlock_t *__lock) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, __const pthread_barrierattr_t *__restrict __attr, unsigned int __count) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_wait (pthread_barrier_t *__barrier) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * __restrict __attr, int *__restrict __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 1065 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern int pthread_key_create (pthread_key_t *__key, void (*__destr_function) (void *)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__)); extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__)); extern int pthread_setspecific (pthread_key_t __key, __const void *__pointer) __attribute__ ((__nothrow__)) ; extern int pthread_getcpuclockid (pthread_t __thread_id, __clockid_t *__clock_id) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 1099 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) __attribute__ ((__nothrow__)); extern __inline int __attribute__ ((__nothrow__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) { return __thread1 == __thread2; } # 9 "/usr/include/pthread.h" 2 3 4 # 27 "video_out_dfb.c" 2 # 1 "/usr/include/directfb/directfb.h" 1 # 29 "/usr/include/directfb/directfb.h" #define __DIRECTFB_H__ # 1 "/usr/include/directfb/dfb_types.h" 1 #define __DFB_TYPES_H__ # 1 "/usr/include/sys/types.h" 1 3 4 # 5 "/usr/include/directfb/dfb_types.h" 2 #define __u8 u_int8_t #define __u16 u_int16_t #define __u32 u_int32_t #define __u64 u_int64_t #define __s8 int8_t #define __s16 int16_t #define __s32 int32_t #define __s64 int64_t # 32 "/usr/include/directfb/directfb.h" 2 # 1 "/usr/include/sys/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/time.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 #define _SYS_TIME_H 1 # 1 "/usr/include/features.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 #define __need_time_t # 1 "/usr/include/time.h" 1 3 4 # 28 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 #define __need_timeval # 1 "/usr/include/bits/time.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4 # 62 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 #undef __need_timeval # 9 "/usr/include/bits/time.h" 2 3 4 # 30 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 # 32 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 #define TIMEVAL_TO_TIMESPEC(tv,ts) { (ts)->tv_sec = (tv)->tv_sec; (ts)->tv_nsec = (tv)->tv_usec * 1000; } #define TIMESPEC_TO_TIMEVAL(tv,ts) { (tv)->tv_sec = (ts)->tv_sec; (tv)->tv_usec = (ts)->tv_nsec / 1000; } # 57 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; # 73 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int settimeofday (__const struct timeval *__tv, __const struct timezone *__tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int adjtime (__const struct timeval *__delta, struct timeval *__olddelta) __attribute__ ((__nothrow__)); enum __itimer_which { ITIMER_REAL = 0, #define ITIMER_REAL ITIMER_REAL ITIMER_VIRTUAL = 1, #define ITIMER_VIRTUAL ITIMER_VIRTUAL ITIMER_PROF = 2 #define ITIMER_PROF ITIMER_PROF }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef enum __itimer_which __itimer_which_t; extern int getitimer (__itimer_which_t __which, struct itimerval *__value) __attribute__ ((__nothrow__)); extern int setitimer (__itimer_which_t __which, __const struct itimerval *__restrict __new, struct itimerval *__restrict __old) __attribute__ ((__nothrow__)); extern int utimes (__const char *__file, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); extern int futimesat (int __fd, __const char *__file, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) #define timercmp(a,b,CMP) (((a)->tv_sec == (b)->tv_sec) ? ((a)->tv_usec CMP (b)->tv_usec) : ((a)->tv_sec CMP (b)->tv_sec)) #define timeradd(a,b,result) do { (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; if ((result)->tv_usec >= 1000000) { ++(result)->tv_sec; (result)->tv_usec -= 1000000; } } while (0) # 180 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 #define timersub(a,b,result) do { (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; if ((result)->tv_usec < 0) { --(result)->tv_sec; (result)->tv_usec += 1000000; } } while (0) # 191 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 # 9 "/usr/include/sys/time.h" 2 3 4 # 33 "/usr/include/directfb/directfb.h" 2 # 1 "/usr/include/directfb/directfb_keyboard.h" 1 # 29 "/usr/include/directfb/directfb_keyboard.h" #define __DIRECTFB_KEYBOARD_H__ # 40 "/usr/include/directfb/directfb_keyboard.h" typedef enum { DIKT_UNICODE = 0x0000, DIKT_SPECIAL = 0xF000, DIKT_FUNCTION = 0xF100, DIKT_MODIFIER = 0xF200, DIKT_LOCK = 0xF300, DIKT_DEAD = 0xF400, DIKT_CUSTOM = 0xF500, DIKT_IDENTIFIER = 0xF600 } DFBInputDeviceKeyType; #define DFB_KEY(type,index) ((DIKT_ ##type) | (index)) #define DFB_KEY_TYPE(symbol) ((symbol) & 0xFF00) #define DFB_KEY_INDEX(symbol) ((symbol) & 0x00FF) #define DFB_KEY_IS_ASCII(symbol) ((symbol) < 128) #define DFB_FUNCTION_KEY(n) (DFB_KEY( FUNCTION, n )) #define DFB_MODIFIER_KEY(i) (DFB_KEY( MODIFIER, (1 << i) )) #define DFB_CUSTOM_KEY(n) (DFB_KEY( CUSTOM, n )) #define DFB_LOWER_CASE(symbol) (((symbol) >= 'A' && (symbol) <= 'Z') ? ((symbol) | 0x20) : (symbol)) #define DFB_UPPER_CASE(symbol) (((symbol) >= 'a' && (symbol) <= 'z') ? ((symbol) & ~0x20) : (symbol)) typedef enum { DIMKI_SHIFT, DIMKI_CONTROL, DIMKI_ALT, DIMKI_ALTGR, DIMKI_META, DIMKI_SUPER, DIMKI_HYPER, DIMKI_FIRST = DIMKI_SHIFT, DIMKI_LAST = DIMKI_HYPER } DFBInputDeviceModifierKeyIdentifier; typedef enum { DIKI_UNKNOWN = ((DIKT_IDENTIFIER) | (0)), DIKI_A, DIKI_B, DIKI_C, DIKI_D, DIKI_E, DIKI_F, DIKI_G, DIKI_H, DIKI_I, DIKI_J, DIKI_K, DIKI_L, DIKI_M, DIKI_N, DIKI_O, DIKI_P, DIKI_Q, DIKI_R, DIKI_S, DIKI_T, DIKI_U, DIKI_V, DIKI_W, DIKI_X, DIKI_Y, DIKI_Z, DIKI_0, DIKI_1, DIKI_2, DIKI_3, DIKI_4, DIKI_5, DIKI_6, DIKI_7, DIKI_8, DIKI_9, DIKI_F1, DIKI_F2, DIKI_F3, DIKI_F4, DIKI_F5, DIKI_F6, DIKI_F7, DIKI_F8, DIKI_F9, DIKI_F10, DIKI_F11, DIKI_F12, DIKI_SHIFT_L, DIKI_SHIFT_R, DIKI_CONTROL_L, DIKI_CONTROL_R, DIKI_ALT_L, DIKI_ALT_R, DIKI_META_L, DIKI_META_R, DIKI_SUPER_L, DIKI_SUPER_R, DIKI_HYPER_L, DIKI_HYPER_R, DIKI_CAPS_LOCK, DIKI_NUM_LOCK, DIKI_SCROLL_LOCK, DIKI_ESCAPE, DIKI_LEFT, DIKI_RIGHT, DIKI_UP, DIKI_DOWN, DIKI_TAB, DIKI_ENTER, DIKI_SPACE, DIKI_BACKSPACE, DIKI_INSERT, DIKI_DELETE, DIKI_HOME, DIKI_END, DIKI_PAGE_UP, DIKI_PAGE_DOWN, DIKI_PRINT, DIKI_PAUSE, DIKI_QUOTE_LEFT, DIKI_MINUS_SIGN, DIKI_EQUALS_SIGN, DIKI_BRACKET_LEFT, DIKI_BRACKET_RIGHT, DIKI_BACKSLASH, DIKI_SEMICOLON, DIKI_QUOTE_RIGHT, DIKI_COMMA, DIKI_PERIOD, DIKI_SLASH, DIKI_LESS_SIGN, DIKI_KP_DIV, DIKI_KP_MULT, DIKI_KP_MINUS, DIKI_KP_PLUS, DIKI_KP_ENTER, DIKI_KP_SPACE, DIKI_KP_TAB, DIKI_KP_F1, DIKI_KP_F2, DIKI_KP_F3, DIKI_KP_F4, DIKI_KP_EQUAL, DIKI_KP_SEPARATOR, DIKI_KP_DECIMAL, DIKI_KP_0, DIKI_KP_1, DIKI_KP_2, DIKI_KP_3, DIKI_KP_4, DIKI_KP_5, DIKI_KP_6, DIKI_KP_7, DIKI_KP_8, DIKI_KP_9, DIKI_KEYDEF_END, DIKI_NUMBER_OF_KEYS = DIKI_KEYDEF_END - ((DIKT_IDENTIFIER) | (0)) } DFBInputDeviceKeyIdentifier; typedef enum { DIKS_NULL = ((DIKT_UNICODE) | (0x00)), DIKS_BACKSPACE = ((DIKT_UNICODE) | (0x08)), DIKS_TAB = ((DIKT_UNICODE) | (0x09)), DIKS_RETURN = ((DIKT_UNICODE) | (0x0D)), DIKS_CANCEL = ((DIKT_UNICODE) | (0x18)), DIKS_ESCAPE = ((DIKT_UNICODE) | (0x1B)), DIKS_SPACE = ((DIKT_UNICODE) | (0x20)), DIKS_EXCLAMATION_MARK = ((DIKT_UNICODE) | (0x21)), DIKS_QUOTATION = ((DIKT_UNICODE) | (0x22)), DIKS_NUMBER_SIGN = ((DIKT_UNICODE) | (0x23)), DIKS_DOLLAR_SIGN = ((DIKT_UNICODE) | (0x24)), DIKS_PERCENT_SIGN = ((DIKT_UNICODE) | (0x25)), DIKS_AMPERSAND = ((DIKT_UNICODE) | (0x26)), DIKS_APOSTROPHE = ((DIKT_UNICODE) | (0x27)), DIKS_PARENTHESIS_LEFT = ((DIKT_UNICODE) | (0x28)), DIKS_PARENTHESIS_RIGHT = ((DIKT_UNICODE) | (0x29)), DIKS_ASTERISK = ((DIKT_UNICODE) | (0x2A)), DIKS_PLUS_SIGN = ((DIKT_UNICODE) | (0x2B)), DIKS_COMMA = ((DIKT_UNICODE) | (0x2C)), DIKS_MINUS_SIGN = ((DIKT_UNICODE) | (0x2D)), DIKS_PERIOD = ((DIKT_UNICODE) | (0x2E)), DIKS_SLASH = ((DIKT_UNICODE) | (0x2F)), DIKS_0 = ((DIKT_UNICODE) | (0x30)), DIKS_1 = ((DIKT_UNICODE) | (0x31)), DIKS_2 = ((DIKT_UNICODE) | (0x32)), DIKS_3 = ((DIKT_UNICODE) | (0x33)), DIKS_4 = ((DIKT_UNICODE) | (0x34)), DIKS_5 = ((DIKT_UNICODE) | (0x35)), DIKS_6 = ((DIKT_UNICODE) | (0x36)), DIKS_7 = ((DIKT_UNICODE) | (0x37)), DIKS_8 = ((DIKT_UNICODE) | (0x38)), DIKS_9 = ((DIKT_UNICODE) | (0x39)), DIKS_COLON = ((DIKT_UNICODE) | (0x3A)), DIKS_SEMICOLON = ((DIKT_UNICODE) | (0x3B)), DIKS_LESS_THAN_SIGN = ((DIKT_UNICODE) | (0x3C)), DIKS_EQUALS_SIGN = ((DIKT_UNICODE) | (0x3D)), DIKS_GREATER_THAN_SIGN = ((DIKT_UNICODE) | (0x3E)), DIKS_QUESTION_MARK = ((DIKT_UNICODE) | (0x3F)), DIKS_AT = ((DIKT_UNICODE) | (0x40)), DIKS_CAPITAL_A = ((DIKT_UNICODE) | (0x41)), DIKS_CAPITAL_B = ((DIKT_UNICODE) | (0x42)), DIKS_CAPITAL_C = ((DIKT_UNICODE) | (0x43)), DIKS_CAPITAL_D = ((DIKT_UNICODE) | (0x44)), DIKS_CAPITAL_E = ((DIKT_UNICODE) | (0x45)), DIKS_CAPITAL_F = ((DIKT_UNICODE) | (0x46)), DIKS_CAPITAL_G = ((DIKT_UNICODE) | (0x47)), DIKS_CAPITAL_H = ((DIKT_UNICODE) | (0x48)), DIKS_CAPITAL_I = ((DIKT_UNICODE) | (0x49)), DIKS_CAPITAL_J = ((DIKT_UNICODE) | (0x4A)), DIKS_CAPITAL_K = ((DIKT_UNICODE) | (0x4B)), DIKS_CAPITAL_L = ((DIKT_UNICODE) | (0x4C)), DIKS_CAPITAL_M = ((DIKT_UNICODE) | (0x4D)), DIKS_CAPITAL_N = ((DIKT_UNICODE) | (0x4E)), DIKS_CAPITAL_O = ((DIKT_UNICODE) | (0x4F)), DIKS_CAPITAL_P = ((DIKT_UNICODE) | (0x50)), DIKS_CAPITAL_Q = ((DIKT_UNICODE) | (0x51)), DIKS_CAPITAL_R = ((DIKT_UNICODE) | (0x52)), DIKS_CAPITAL_S = ((DIKT_UNICODE) | (0x53)), DIKS_CAPITAL_T = ((DIKT_UNICODE) | (0x54)), DIKS_CAPITAL_U = ((DIKT_UNICODE) | (0x55)), DIKS_CAPITAL_V = ((DIKT_UNICODE) | (0x56)), DIKS_CAPITAL_W = ((DIKT_UNICODE) | (0x57)), DIKS_CAPITAL_X = ((DIKT_UNICODE) | (0x58)), DIKS_CAPITAL_Y = ((DIKT_UNICODE) | (0x59)), DIKS_CAPITAL_Z = ((DIKT_UNICODE) | (0x5A)), DIKS_SQUARE_BRACKET_LEFT = ((DIKT_UNICODE) | (0x5B)), DIKS_BACKSLASH = ((DIKT_UNICODE) | (0x5C)), DIKS_SQUARE_BRACKET_RIGHT = ((DIKT_UNICODE) | (0x5D)), DIKS_CIRCUMFLEX_ACCENT = ((DIKT_UNICODE) | (0x5E)), DIKS_UNDERSCORE = ((DIKT_UNICODE) | (0x5F)), DIKS_GRAVE_ACCENT = ((DIKT_UNICODE) | (0x60)), DIKS_SMALL_A = ((DIKT_UNICODE) | (0x61)), DIKS_SMALL_B = ((DIKT_UNICODE) | (0x62)), DIKS_SMALL_C = ((DIKT_UNICODE) | (0x63)), DIKS_SMALL_D = ((DIKT_UNICODE) | (0x64)), DIKS_SMALL_E = ((DIKT_UNICODE) | (0x65)), DIKS_SMALL_F = ((DIKT_UNICODE) | (0x66)), DIKS_SMALL_G = ((DIKT_UNICODE) | (0x67)), DIKS_SMALL_H = ((DIKT_UNICODE) | (0x68)), DIKS_SMALL_I = ((DIKT_UNICODE) | (0x69)), DIKS_SMALL_J = ((DIKT_UNICODE) | (0x6A)), DIKS_SMALL_K = ((DIKT_UNICODE) | (0x6B)), DIKS_SMALL_L = ((DIKT_UNICODE) | (0x6C)), DIKS_SMALL_M = ((DIKT_UNICODE) | (0x6D)), DIKS_SMALL_N = ((DIKT_UNICODE) | (0x6E)), DIKS_SMALL_O = ((DIKT_UNICODE) | (0x6F)), DIKS_SMALL_P = ((DIKT_UNICODE) | (0x70)), DIKS_SMALL_Q = ((DIKT_UNICODE) | (0x71)), DIKS_SMALL_R = ((DIKT_UNICODE) | (0x72)), DIKS_SMALL_S = ((DIKT_UNICODE) | (0x73)), DIKS_SMALL_T = ((DIKT_UNICODE) | (0x74)), DIKS_SMALL_U = ((DIKT_UNICODE) | (0x75)), DIKS_SMALL_V = ((DIKT_UNICODE) | (0x76)), DIKS_SMALL_W = ((DIKT_UNICODE) | (0x77)), DIKS_SMALL_X = ((DIKT_UNICODE) | (0x78)), DIKS_SMALL_Y = ((DIKT_UNICODE) | (0x79)), DIKS_SMALL_Z = ((DIKT_UNICODE) | (0x7A)), DIKS_CURLY_BRACKET_LEFT = ((DIKT_UNICODE) | (0x7B)), DIKS_VERTICAL_BAR = ((DIKT_UNICODE) | (0x7C)), DIKS_CURLY_BRACKET_RIGHT = ((DIKT_UNICODE) | (0x7D)), DIKS_TILDE = ((DIKT_UNICODE) | (0x7E)), DIKS_DELETE = ((DIKT_UNICODE) | (0x7F)), DIKS_ENTER = DIKS_RETURN, DIKS_CURSOR_LEFT = ((DIKT_SPECIAL) | (0x00)), DIKS_CURSOR_RIGHT = ((DIKT_SPECIAL) | (0x01)), DIKS_CURSOR_UP = ((DIKT_SPECIAL) | (0x02)), DIKS_CURSOR_DOWN = ((DIKT_SPECIAL) | (0x03)), DIKS_INSERT = ((DIKT_SPECIAL) | (0x04)), DIKS_HOME = ((DIKT_SPECIAL) | (0x05)), DIKS_END = ((DIKT_SPECIAL) | (0x06)), DIKS_PAGE_UP = ((DIKT_SPECIAL) | (0x07)), DIKS_PAGE_DOWN = ((DIKT_SPECIAL) | (0x08)), DIKS_PRINT = ((DIKT_SPECIAL) | (0x09)), DIKS_PAUSE = ((DIKT_SPECIAL) | (0x0A)), DIKS_OK = ((DIKT_SPECIAL) | (0x0B)), DIKS_SELECT = ((DIKT_SPECIAL) | (0x0C)), DIKS_GOTO = ((DIKT_SPECIAL) | (0x0D)), DIKS_CLEAR = ((DIKT_SPECIAL) | (0x0E)), DIKS_POWER = ((DIKT_SPECIAL) | (0x0F)), DIKS_POWER2 = ((DIKT_SPECIAL) | (0x10)), DIKS_OPTION = ((DIKT_SPECIAL) | (0x11)), DIKS_MENU = ((DIKT_SPECIAL) | (0x12)), DIKS_HELP = ((DIKT_SPECIAL) | (0x13)), DIKS_INFO = ((DIKT_SPECIAL) | (0x14)), DIKS_TIME = ((DIKT_SPECIAL) | (0x15)), DIKS_VENDOR = ((DIKT_SPECIAL) | (0x16)), DIKS_ARCHIVE = ((DIKT_SPECIAL) | (0x17)), DIKS_PROGRAM = ((DIKT_SPECIAL) | (0x18)), DIKS_CHANNEL = ((DIKT_SPECIAL) | (0x19)), DIKS_FAVORITES = ((DIKT_SPECIAL) | (0x1A)), DIKS_EPG = ((DIKT_SPECIAL) | (0x1B)), DIKS_PVR = ((DIKT_SPECIAL) | (0x1C)), DIKS_MHP = ((DIKT_SPECIAL) | (0x1D)), DIKS_LANGUAGE = ((DIKT_SPECIAL) | (0x1E)), DIKS_TITLE = ((DIKT_SPECIAL) | (0x1F)), DIKS_SUBTITLE = ((DIKT_SPECIAL) | (0x20)), DIKS_ANGLE = ((DIKT_SPECIAL) | (0x21)), DIKS_ZOOM = ((DIKT_SPECIAL) | (0x22)), DIKS_MODE = ((DIKT_SPECIAL) | (0x23)), DIKS_KEYBOARD = ((DIKT_SPECIAL) | (0x24)), DIKS_PC = ((DIKT_SPECIAL) | (0x25)), DIKS_SCREEN = ((DIKT_SPECIAL) | (0x26)), DIKS_TV = ((DIKT_SPECIAL) | (0x27)), DIKS_TV2 = ((DIKT_SPECIAL) | (0x28)), DIKS_VCR = ((DIKT_SPECIAL) | (0x29)), DIKS_VCR2 = ((DIKT_SPECIAL) | (0x2A)), DIKS_SAT = ((DIKT_SPECIAL) | (0x2B)), DIKS_SAT2 = ((DIKT_SPECIAL) | (0x2C)), DIKS_CD = ((DIKT_SPECIAL) | (0x2D)), DIKS_TAPE = ((DIKT_SPECIAL) | (0x2E)), DIKS_RADIO = ((DIKT_SPECIAL) | (0x2F)), DIKS_TUNER = ((DIKT_SPECIAL) | (0x30)), DIKS_PLAYER = ((DIKT_SPECIAL) | (0x31)), DIKS_TEXT = ((DIKT_SPECIAL) | (0x32)), DIKS_DVD = ((DIKT_SPECIAL) | (0x33)), DIKS_AUX = ((DIKT_SPECIAL) | (0x34)), DIKS_MP3 = ((DIKT_SPECIAL) | (0x35)), DIKS_PHONE = ((DIKT_SPECIAL) | (0x36)), DIKS_AUDIO = ((DIKT_SPECIAL) | (0x37)), DIKS_VIDEO = ((DIKT_SPECIAL) | (0x38)), DIKS_INTERNET = ((DIKT_SPECIAL) | (0x39)), DIKS_MAIL = ((DIKT_SPECIAL) | (0x3A)), DIKS_NEWS = ((DIKT_SPECIAL) | (0x3B)), DIKS_DIRECTORY = ((DIKT_SPECIAL) | (0x3C)), DIKS_LIST = ((DIKT_SPECIAL) | (0x3D)), DIKS_CALCULATOR = ((DIKT_SPECIAL) | (0x3E)), DIKS_MEMO = ((DIKT_SPECIAL) | (0x3F)), DIKS_CALENDAR = ((DIKT_SPECIAL) | (0x40)), DIKS_EDITOR = ((DIKT_SPECIAL) | (0x41)), DIKS_RED = ((DIKT_SPECIAL) | (0x42)), DIKS_GREEN = ((DIKT_SPECIAL) | (0x43)), DIKS_YELLOW = ((DIKT_SPECIAL) | (0x44)), DIKS_BLUE = ((DIKT_SPECIAL) | (0x45)), DIKS_CHANNEL_UP = ((DIKT_SPECIAL) | (0x46)), DIKS_CHANNEL_DOWN = ((DIKT_SPECIAL) | (0x47)), DIKS_BACK = ((DIKT_SPECIAL) | (0x48)), DIKS_FORWARD = ((DIKT_SPECIAL) | (0x49)), DIKS_FIRST = ((DIKT_SPECIAL) | (0x4A)), DIKS_LAST = ((DIKT_SPECIAL) | (0x4B)), DIKS_VOLUME_UP = ((DIKT_SPECIAL) | (0x4C)), DIKS_VOLUME_DOWN = ((DIKT_SPECIAL) | (0x4D)), DIKS_MUTE = ((DIKT_SPECIAL) | (0x4E)), DIKS_AB = ((DIKT_SPECIAL) | (0x4F)), DIKS_PLAYPAUSE = ((DIKT_SPECIAL) | (0x50)), DIKS_PLAY = ((DIKT_SPECIAL) | (0x51)), DIKS_STOP = ((DIKT_SPECIAL) | (0x52)), DIKS_RESTART = ((DIKT_SPECIAL) | (0x53)), DIKS_SLOW = ((DIKT_SPECIAL) | (0x54)), DIKS_FAST = ((DIKT_SPECIAL) | (0x55)), DIKS_RECORD = ((DIKT_SPECIAL) | (0x56)), DIKS_EJECT = ((DIKT_SPECIAL) | (0x57)), DIKS_SHUFFLE = ((DIKT_SPECIAL) | (0x58)), DIKS_REWIND = ((DIKT_SPECIAL) | (0x59)), DIKS_FASTFORWARD = ((DIKT_SPECIAL) | (0x5A)), DIKS_PREVIOUS = ((DIKT_SPECIAL) | (0x5B)), DIKS_NEXT = ((DIKT_SPECIAL) | (0x5C)), DIKS_BEGIN = ((DIKT_SPECIAL) | (0x5D)), DIKS_DIGITS = ((DIKT_SPECIAL) | (0x5E)), DIKS_TEEN = ((DIKT_SPECIAL) | (0x5F)), DIKS_TWEN = ((DIKT_SPECIAL) | (0x60)), DIKS_BREAK = ((DIKT_SPECIAL) | (0x61)), DIKS_EXIT = ((DIKT_SPECIAL) | (0x62)), DIKS_SETUP = ((DIKT_SPECIAL) | (0x63)), DIKS_CURSOR_LEFT_UP = ((DIKT_SPECIAL) | (0x64)), DIKS_CURSOR_LEFT_DOWN = ((DIKT_SPECIAL) | (0x65)), DIKS_CURSOR_UP_RIGHT = ((DIKT_SPECIAL) | (0x66)), DIKS_CURSOR_DOWN_RIGHT = ((DIKT_SPECIAL) | (0x67)), DIKS_F1 = (((DIKT_FUNCTION) | (1))), DIKS_F2 = (((DIKT_FUNCTION) | (2))), DIKS_F3 = (((DIKT_FUNCTION) | (3))), DIKS_F4 = (((DIKT_FUNCTION) | (4))), DIKS_F5 = (((DIKT_FUNCTION) | (5))), DIKS_F6 = (((DIKT_FUNCTION) | (6))), DIKS_F7 = (((DIKT_FUNCTION) | (7))), DIKS_F8 = (((DIKT_FUNCTION) | (8))), DIKS_F9 = (((DIKT_FUNCTION) | (9))), DIKS_F10 = (((DIKT_FUNCTION) | (10))), DIKS_F11 = (((DIKT_FUNCTION) | (11))), DIKS_F12 = (((DIKT_FUNCTION) | (12))), DIKS_SHIFT = (((DIKT_MODIFIER) | ((1 << DIMKI_SHIFT)))), DIKS_CONTROL = (((DIKT_MODIFIER) | ((1 << DIMKI_CONTROL)))), DIKS_ALT = (((DIKT_MODIFIER) | ((1 << DIMKI_ALT)))), DIKS_ALTGR = (((DIKT_MODIFIER) | ((1 << DIMKI_ALTGR)))), DIKS_META = (((DIKT_MODIFIER) | ((1 << DIMKI_META)))), DIKS_SUPER = (((DIKT_MODIFIER) | ((1 << DIMKI_SUPER)))), DIKS_HYPER = (((DIKT_MODIFIER) | ((1 << DIMKI_HYPER)))), DIKS_CAPS_LOCK = ((DIKT_LOCK) | (0x00)), DIKS_NUM_LOCK = ((DIKT_LOCK) | (0x01)), DIKS_SCROLL_LOCK = ((DIKT_LOCK) | (0x02)), DIKS_DEAD_ABOVEDOT = ((DIKT_DEAD) | (0x00)), DIKS_DEAD_ABOVERING = ((DIKT_DEAD) | (0x01)), DIKS_DEAD_ACUTE = ((DIKT_DEAD) | (0x02)), DIKS_DEAD_BREVE = ((DIKT_DEAD) | (0x03)), DIKS_DEAD_CARON = ((DIKT_DEAD) | (0x04)), DIKS_DEAD_CEDILLA = ((DIKT_DEAD) | (0x05)), DIKS_DEAD_CIRCUMFLEX = ((DIKT_DEAD) | (0x06)), DIKS_DEAD_DIAERESIS = ((DIKT_DEAD) | (0x07)), DIKS_DEAD_DOUBLEACUTE = ((DIKT_DEAD) | (0x08)), DIKS_DEAD_GRAVE = ((DIKT_DEAD) | (0x09)), DIKS_DEAD_IOTA = ((DIKT_DEAD) | (0x0A)), DIKS_DEAD_MACRON = ((DIKT_DEAD) | (0x0B)), DIKS_DEAD_OGONEK = ((DIKT_DEAD) | (0x0C)), DIKS_DEAD_SEMIVOICED_SOUND = ((DIKT_DEAD) | (0x0D)), DIKS_DEAD_TILDE = ((DIKT_DEAD) | (0x0E)), DIKS_DEAD_VOICED_SOUND = ((DIKT_DEAD) | (0x0F)), DIKS_CUSTOM0 = (((DIKT_CUSTOM) | (0))), DIKS_CUSTOM1 = (((DIKT_CUSTOM) | (1))), DIKS_CUSTOM2 = (((DIKT_CUSTOM) | (2))), DIKS_CUSTOM3 = (((DIKT_CUSTOM) | (3))), DIKS_CUSTOM4 = (((DIKT_CUSTOM) | (4))), DIKS_CUSTOM5 = (((DIKT_CUSTOM) | (5))), DIKS_CUSTOM6 = (((DIKT_CUSTOM) | (6))), DIKS_CUSTOM7 = (((DIKT_CUSTOM) | (7))), DIKS_CUSTOM8 = (((DIKT_CUSTOM) | (8))), DIKS_CUSTOM9 = (((DIKT_CUSTOM) | (9))) } DFBInputDeviceKeySymbol; typedef enum { DILS_SCROLL = 0x00000001, DILS_NUM = 0x00000002, DILS_CAPS = 0x00000004 } DFBInputDeviceLockState; typedef enum { DIKSI_BASE = 0x00, DIKSI_BASE_SHIFT = 0x01, DIKSI_ALT = 0x02, DIKSI_ALT_SHIFT = 0x03, DIKSI_LAST = DIKSI_ALT_SHIFT } DFBInputDeviceKeymapSymbolIndex; typedef struct { int code; DFBInputDeviceLockState locks; DFBInputDeviceKeyIdentifier identifier; DFBInputDeviceKeySymbol symbols[DIKSI_LAST+1]; } DFBInputDeviceKeymapEntry; # 35 "/usr/include/directfb/directfb.h" 2 # 46 "/usr/include/directfb/directfb.h" #define DECLARE_INTERFACE(IFACE) typedef struct _ ##IFACE IFACE; #define DEFINE_INTERFACE(IFACE,IDATA...) struct _ ##IFACE { void *priv; int magic; DFBResult (*AddRef)( IFACE *thiz ); DFBResult (*Release)( IFACE *thiz ); IDATA }; # 68 "/usr/include/directfb/directfb.h" extern const unsigned int directfb_major_version; extern const unsigned int directfb_minor_version; extern const unsigned int directfb_micro_version; extern const unsigned int directfb_binary_age; extern const unsigned int directfb_interface_age; const char * DirectFBCheckVersion( unsigned int required_major, unsigned int required_minor, unsigned int required_micro ); typedef struct _IDirectFB IDirectFB; typedef struct _IDirectFBScreen IDirectFBScreen; typedef struct _IDirectFBDisplayLayer IDirectFBDisplayLayer; typedef struct _IDirectFBSurface IDirectFBSurface; typedef struct _IDirectFBPalette IDirectFBPalette; typedef struct _IDirectFBWindow IDirectFBWindow; typedef struct _IDirectFBInputDevice IDirectFBInputDevice; typedef struct _IDirectFBEventBuffer IDirectFBEventBuffer; typedef struct _IDirectFBFont IDirectFBFont; typedef struct _IDirectFBImageProvider IDirectFBImageProvider; typedef struct _IDirectFBVideoProvider IDirectFBVideoProvider; typedef struct _IDirectFBDataBuffer IDirectFBDataBuffer; typedef struct _IDirectFBGL IDirectFBGL; typedef enum { DFB_OK, DFB_FAILURE, DFB_INIT, DFB_BUG, DFB_DEAD, DFB_UNSUPPORTED, DFB_UNIMPLEMENTED, DFB_ACCESSDENIED, DFB_INVARG, DFB_NOSYSTEMMEMORY, DFB_NOVIDEOMEMORY, DFB_LOCKED, DFB_BUFFEREMPTY, DFB_FILENOTFOUND, DFB_IO, DFB_BUSY, DFB_NOIMPL, DFB_MISSINGFONT, DFB_TIMEOUT, DFB_MISSINGIMAGE, DFB_THIZNULL, DFB_IDNOTFOUND, DFB_INVAREA, DFB_DESTROYED, DFB_FUSION, DFB_BUFFERTOOLARGE, DFB_INTERRUPTED, DFB_NOCONTEXT, DFB_TEMPUNAVAIL, DFB_LIMITEXCEEDED, DFB_NOSUCHMETHOD, DFB_NOSUCHINSTANCE, DFB_ITEMNOTFOUND, DFB_VERSIONMISMATCH, DFB_NOSHAREDMEMORY, DFB_EOF } DFBResult; typedef enum { DFB_FALSE = 0, DFB_TRUE = !DFB_FALSE } DFBBoolean; typedef struct { int x; int y; } DFBPoint; typedef struct { int x; int w; } DFBSpan; typedef struct { int w; int h; } DFBDimension; typedef struct { int x; int y; int w; int h; } DFBRectangle; typedef struct { float x; float y; float w; float h; } DFBLocation; typedef struct { int x1; int y1; int x2; int y2; } DFBRegion; typedef struct { int l; int t; int r; int b; } DFBInsets; typedef struct { int x1; int y1; int x2; int y2; int x3; int y3; } DFBTriangle; typedef struct { u_int8_t a; u_int8_t r; u_int8_t g; u_int8_t b; } DFBColor; #define DFB_RECTANGLE_EQUAL(a,b) ((a).x == (b).x && (a).y == (b).y && (a).w == (b).w && (a).h == (b).h) #define DFB_LOCATION_EQUAL(a,b) ((a).x == (b).x && (a).y == (b).y && (a).w == (b).w && (a).h == (b).h) #define DFB_REGION_EQUAL(a,b) ((a).x1 == (b).x1 && (a).y1 == (b).y1 && (a).x2 == (b).x2 && (a).y2 == (b).y2) #define DFB_COLOR_EQUAL(x,y) ((x).a == (y).a && (x).r == (y).r && (x).g == (y).g && (x).b == (y).b) # 336 "/usr/include/directfb/directfb.h" DFBResult DirectFBError( const char *msg, DFBResult result ); DFBResult DirectFBErrorFatal( const char *msg, DFBResult result ); const char *DirectFBErrorString( DFBResult result ); const char *DirectFBUsageString( void ); DFBResult DirectFBInit( int *argc, char *(*argv[]) ); DFBResult DirectFBSetOption( const char *name, const char *value ); DFBResult DirectFBCreate( IDirectFB **interface ); typedef unsigned int DFBScreenID; typedef unsigned int DFBDisplayLayerID; typedef unsigned int DFBDisplayLayerSourceID; typedef unsigned int DFBWindowID; typedef unsigned int DFBInputDeviceID; typedef u_int32_t DFBDisplayLayerIDs; #define DFB_DISPLAYLAYER_IDS_MAX 32 #define DFB_DISPLAYLAYER_IDS_ADD(ids,id) (ids) |= (1 << (id)) #define DFB_DISPLAYLAYER_IDS_REMOVE(ids,id) (ids) &= ~(1 << (id)) #define DFB_DISPLAYLAYER_IDS_HAVE(ids,id) ((ids) & (1 << (id))) #define DFB_DISPLAYLAYER_IDS_EMPTY(ids) (ids) = 0 typedef enum { DFSCL_NORMAL = 0x00000000, DFSCL_FULLSCREEN, DFSCL_EXCLUSIVE } DFBCooperativeLevel; typedef enum { DLCAPS_NONE = 0x00000000, DLCAPS_SURFACE = 0x00000001, DLCAPS_OPACITY = 0x00000002, DLCAPS_ALPHACHANNEL = 0x00000004, DLCAPS_SCREEN_LOCATION = 0x00000008, DLCAPS_FLICKER_FILTERING = 0x00000010, DLCAPS_DEINTERLACING = 0x00000020, DLCAPS_SRC_COLORKEY = 0x00000040, DLCAPS_DST_COLORKEY = 0x00000080, DLCAPS_BRIGHTNESS = 0x00000100, DLCAPS_CONTRAST = 0x00000200, DLCAPS_HUE = 0x00000400, DLCAPS_SATURATION = 0x00000800, DLCAPS_LEVELS = 0x00001000, DLCAPS_FIELD_PARITY = 0x00002000, DLCAPS_WINDOWS = 0x00004000, DLCAPS_SOURCES = 0x00008000, DLCAPS_ALPHA_RAMP = 0x00010000, DLCAPS_PREMULTIPLIED = 0x00020000, DLCAPS_SCREEN_POSITION = 0x00100000, DLCAPS_SCREEN_SIZE = 0x00200000, DLCAPS_ALL = 0x0033FFFF } DFBDisplayLayerCapabilities; typedef enum { DSCCAPS_NONE = 0x00000000, DSCCAPS_VSYNC = 0x00000001, DSCCAPS_POWER_MANAGEMENT = 0x00000002, DSCCAPS_MIXERS = 0x00000010, DSCCAPS_ENCODERS = 0x00000020, DSCCAPS_OUTPUTS = 0x00000040, DSCCAPS_ALL = 0x00000073 } DFBScreenCapabilities; typedef enum { DLOP_NONE = 0x00000000, DLOP_ALPHACHANNEL = 0x00000001, DLOP_FLICKER_FILTERING = 0x00000002, DLOP_DEINTERLACING = 0x00000004, DLOP_SRC_COLORKEY = 0x00000008, DLOP_DST_COLORKEY = 0x00000010, DLOP_OPACITY = 0x00000020, DLOP_FIELD_PARITY = 0x00000040 } DFBDisplayLayerOptions; typedef enum { DLBM_UNKNOWN = 0x00000000, DLBM_FRONTONLY = 0x00000001, DLBM_BACKVIDEO = 0x00000002, DLBM_BACKSYSTEM = 0x00000004, DLBM_TRIPLE = 0x00000008, DLBM_WINDOWS = 0x00000010 } DFBDisplayLayerBufferMode; typedef enum { DSDESC_NONE = 0x00000000, DSDESC_CAPS = 0x00000001, DSDESC_WIDTH = 0x00000002, DSDESC_HEIGHT = 0x00000004, DSDESC_PIXELFORMAT = 0x00000008, DSDESC_PREALLOCATED = 0x00000010, DSDESC_PALETTE = 0x00000020, DSDESC_ALL = 0x0000003F } DFBSurfaceDescriptionFlags; typedef enum { DPDESC_CAPS = 0x00000001, DPDESC_SIZE = 0x00000002, DPDESC_ENTRIES = 0x00000004 } DFBPaletteDescriptionFlags; typedef enum { DSCAPS_NONE = 0x00000000, DSCAPS_PRIMARY = 0x00000001, DSCAPS_SYSTEMONLY = 0x00000002, DSCAPS_VIDEOONLY = 0x00000004, DSCAPS_DOUBLE = 0x00000010, DSCAPS_SUBSURFACE = 0x00000020, DSCAPS_INTERLACED = 0x00000040, DSCAPS_SEPARATED = 0x00000080, DSCAPS_STATIC_ALLOC = 0x00000100, DSCAPS_TRIPLE = 0x00000200, DSCAPS_PREMULTIPLIED = 0x00001000, DSCAPS_DEPTH = 0x00010000, DSCAPS_ALL = 0x000113F7, DSCAPS_FLIPPING = DSCAPS_DOUBLE | DSCAPS_TRIPLE } DFBSurfaceCapabilities; typedef enum { DPCAPS_NONE = 0x00000000 } DFBPaletteCapabilities; typedef enum { DSDRAW_NOFX = 0x00000000, DSDRAW_BLEND = 0x00000001, DSDRAW_DST_COLORKEY = 0x00000002, DSDRAW_SRC_PREMULTIPLY = 0x00000004, DSDRAW_DST_PREMULTIPLY = 0x00000008, DSDRAW_DEMULTIPLY = 0x00000010, DSDRAW_XOR = 0x00000020 } DFBSurfaceDrawingFlags; typedef enum { DSBLIT_NOFX = 0x00000000, DSBLIT_BLEND_ALPHACHANNEL = 0x00000001, DSBLIT_BLEND_COLORALPHA = 0x00000002, DSBLIT_COLORIZE = 0x00000004, DSBLIT_SRC_COLORKEY = 0x00000008, DSBLIT_DST_COLORKEY = 0x00000010, DSBLIT_SRC_PREMULTIPLY = 0x00000020, DSBLIT_DST_PREMULTIPLY = 0x00000040, DSBLIT_DEMULTIPLY = 0x00000080, DSBLIT_DEINTERLACE = 0x00000100, DSBLIT_SRC_PREMULTCOLOR = 0x00000200, DSBLIT_XOR = 0x00000400 } DFBSurfaceBlittingFlags; typedef enum { DFXL_NONE = 0x00000000, DFXL_FILLRECTANGLE = 0x00000001, DFXL_DRAWRECTANGLE = 0x00000002, DFXL_DRAWLINE = 0x00000004, DFXL_FILLTRIANGLE = 0x00000008, DFXL_BLIT = 0x00010000, DFXL_STRETCHBLIT = 0x00020000, DFXL_TEXTRIANGLES = 0x00040000, DFXL_DRAWSTRING = 0x01000000, DFXL_ALL = 0x0107000F } DFBAccelerationMask; #define DFB_DRAWING_FUNCTION(a) ((a) & 0x0000FFFF) #define DFB_BLITTING_FUNCTION(a) ((a) & 0xFFFF0000) typedef enum { DLTF_NONE = 0x00000000, DLTF_GRAPHICS = 0x00000001, DLTF_VIDEO = 0x00000002, DLTF_STILL_PICTURE = 0x00000004, DLTF_BACKGROUND = 0x00000008, DLTF_ALL = 0x0000000F } DFBDisplayLayerTypeFlags; typedef enum { DIDTF_NONE = 0x00000000, DIDTF_KEYBOARD = 0x00000001, DIDTF_MOUSE = 0x00000002, DIDTF_JOYSTICK = 0x00000004, DIDTF_REMOTE = 0x00000008, DIDTF_VIRTUAL = 0x00000010, DIDTF_ALL = 0x0000001F } DFBInputDeviceTypeFlags; typedef enum { DICAPS_KEYS = 0x00000001, DICAPS_AXES = 0x00000002, DICAPS_BUTTONS = 0x00000004, DICAPS_ALL = 0x00000007 } DFBInputDeviceCapabilities; typedef enum { DIBI_LEFT = 0x00000000, DIBI_RIGHT = 0x00000001, DIBI_MIDDLE = 0x00000002, DIBI_FIRST = DIBI_LEFT, DIBI_LAST = 0x0000001F } DFBInputDeviceButtonIdentifier; # 766 "/usr/include/directfb/directfb.h" typedef enum { DIAI_X = 0x00000000, DIAI_Y = 0x00000001, DIAI_Z = 0x00000002, DIAI_FIRST = DIAI_X, DIAI_LAST = 0x0000001F } DFBInputDeviceAxisIdentifier; typedef enum { DWDESC_CAPS = 0x00000001, DWDESC_WIDTH = 0x00000002, DWDESC_HEIGHT = 0x00000004, DWDESC_PIXELFORMAT = 0x00000008, DWDESC_POSX = 0x00000010, DWDESC_POSY = 0x00000020, DWDESC_SURFACE_CAPS = 0x00000040 } DFBWindowDescriptionFlags; typedef enum { DBDESC_FILE = 0x00000001, DBDESC_MEMORY = 0x00000002 } DFBDataBufferDescriptionFlags; typedef enum { DWCAPS_NONE = 0x00000000, DWCAPS_ALPHACHANNEL = 0x00000001, DWCAPS_DOUBLEBUFFER = 0x00000002, DWCAPS_INPUTONLY = 0x00000004, DWCAPS_NODECORATION = 0x00000008, DWCAPS_ALL = 0x0000000F } DFBWindowCapabilities; # 832 "/usr/include/directfb/directfb.h" typedef enum { DFFA_NONE = 0x00000000, DFFA_NOKERNING = 0x00000001, DFFA_NOHINTING = 0x00000002, DFFA_MONOCHROME = 0x00000004, DFFA_NOCHARMAP = 0x00000008 } DFBFontAttributes; typedef enum { DFDESC_ATTRIBUTES = 0x00000001, DFDESC_HEIGHT = 0x00000002, DFDESC_WIDTH = 0x00000004, DFDESC_INDEX = 0x00000008, DFDESC_FIXEDADVANCE = 0x00000010, DFDESC_FRACT_HEIGHT = 0x00000020, DFDESC_FRACT_WIDTH = 0x00000040, } DFBFontDescriptionFlags; # 872 "/usr/include/directfb/directfb.h" typedef struct { DFBFontDescriptionFlags flags; DFBFontAttributes attributes; int height; int width; unsigned int index; int fixed_advance; int fract_height; int fract_width; } DFBFontDescription; # 904 "/usr/include/directfb/directfb.h" #define DFB_SURFACE_PIXELFORMAT(index,color_bits,alpha_bits,has_alpha,row_bits,row_bytes,align,mul_f,mul_d,has_lut,inv_alpha) ( (((index ) & 0x7F) ) | (((color_bits) & 0x1F) << 7) | (((alpha_bits) & 0x0F) << 12) | (((has_alpha ) ? 1 :0) << 16) | (((row_bits ) & 0x07) << 17) | (((row_bytes ) & 0x07) << 20) | (((align ) & 0x07) << 23) | (((mul_f ) & 0x03) << 26) | (((mul_d ) & 0x03) << 28) | (((has_lut ) ? 1 :0) << 30) | (((inv_alpha ) ? 1 :0) << 31) ) # 922 "/usr/include/directfb/directfb.h" typedef enum { DSPF_UNKNOWN = 0x00000000, DSPF_ARGB1555 = ( (((0 ) & 0x7F) ) | (((15) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_RGB16 = ( (((1 ) & 0x7F) ) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_RGB24 = ( (((2 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((3 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_RGB32 = ( (((3 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_ARGB = ( (((4 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_A8 = ( (((5 ) & 0x7F) ) | (((0) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_YUY2 = ( (((6 ) & 0x7F) ) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_RGB332 = ( (((7 ) & 0x7F) ) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_UYVY = ( (((8 ) & 0x7F) ) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_I420 = ( (((9 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_YV12 = ( (((10 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_LUT8 = ( (((11 ) & 0x7F) ) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((1 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_ALUT44 = ( (((12 ) & 0x7F) ) | (((4) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((1 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_AiRGB = ( (((13 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((1 ) ? 1 :0) << 31) ), DSPF_A1 = ( (((14 ) & 0x7F) ) | (((0) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((1 ) & 0x07) << 17) | (((0 ) & 0x07) << 20) | (((7 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_NV12 = ( (((15 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_NV16 = ( (((16 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((1 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_ARGB2554 = ( (((17 ) & 0x7F) ) | (((14) & 0x1F) << 7) | (((2) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_ARGB4444 = ( (((18 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_NV21 = ( (((19 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), DSPF_AYUV = ( (((20 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ) } DFBSurfacePixelFormat; #define DFB_NUM_PIXELFORMATS 21 #define DFB_PIXELFORMAT_INDEX(fmt) (((fmt) & 0x0000007F) ) #define DFB_COLOR_BITS_PER_PIXEL(fmt) (((fmt) & 0x00000F80) >> 7) #define DFB_ALPHA_BITS_PER_PIXEL(fmt) (((fmt) & 0x0000F000) >> 12) #define DFB_PIXELFORMAT_HAS_ALPHA(fmt) (((fmt) & 0x00010000) >> 16) #define DFB_BITS_PER_PIXEL(fmt) (((fmt) & 0x007E0000) >> 17) #define DFB_BYTES_PER_PIXEL(fmt) (((fmt) & 0x00700000) >> 20) #define DFB_BYTES_PER_LINE(fmt,width) (((((fmt) & 0x007E0000) >> 17) * (width) + 7) >> 3) #define DFB_PIXELFORMAT_ALIGNMENT(fmt) (((fmt) & 0x03800000) >> 23) #define DFB_PLANE_MULTIPLY(fmt,height) ((((((fmt) & 0x3C000000) >> 26) + 4) * (height)) >> 2) #define DFB_PIXELFORMAT_IS_INDEXED(fmt) (((fmt) & 0x40000000) >> 30) #define DFB_PLANAR_PIXELFORMAT(fmt) (((fmt) & 0x3C000000) ? 1 : 0) #define DFB_PIXELFORMAT_INV_ALPHA(fmt) (((fmt) & 0x80000000) >> 31) typedef struct { DFBSurfaceDescriptionFlags flags; DFBSurfaceCapabilities caps; int width; int height; DFBSurfacePixelFormat pixelformat; struct { void *data; int pitch; } preallocated[2]; struct { DFBColor *entries; unsigned int size; } palette; } DFBSurfaceDescription; typedef struct { DFBPaletteDescriptionFlags flags; DFBPaletteCapabilities caps; unsigned int size; const DFBColor *entries; } DFBPaletteDescription; #define DFB_DISPLAY_LAYER_DESC_NAME_LENGTH 32 typedef struct { DFBDisplayLayerTypeFlags type; DFBDisplayLayerCapabilities caps; char name[32]; int level; int regions; int sources; } DFBDisplayLayerDescription; #define DFB_DISPLAY_LAYER_SOURCE_DESC_NAME_LENGTH 24 typedef struct { DFBDisplayLayerSourceID source_id; char name[24]; } DFBDisplayLayerSourceDescription; #define DFB_SCREEN_DESC_NAME_LENGTH 32 typedef struct { DFBScreenCapabilities caps; char name[32]; int mixers; int encoders; int outputs; } DFBScreenDescription; #define DFB_INPUT_DEVICE_DESC_NAME_LENGTH 32 #define DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH 40 typedef struct { DFBInputDeviceTypeFlags type; DFBInputDeviceCapabilities caps; int min_keycode; int max_keycode; DFBInputDeviceAxisIdentifier max_axis; DFBInputDeviceButtonIdentifier max_button; char name[32]; char vendor[40]; } DFBInputDeviceDescription; #define DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH 40 #define DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH 60 typedef struct { int major; int minor; char name[40]; char vendor[60]; } DFBGraphicsDriverInfo; #define DFB_GRAPHICS_DEVICE_DESC_NAME_LENGTH 48 #define DFB_GRAPHICS_DEVICE_DESC_VENDOR_LENGTH 64 typedef struct { DFBAccelerationMask acceleration_mask; DFBSurfaceBlittingFlags blitting_flags; DFBSurfaceDrawingFlags drawing_flags; unsigned int video_memory; char name[48]; char vendor[64]; DFBGraphicsDriverInfo driver; } DFBGraphicsDeviceDescription; typedef struct { DFBWindowDescriptionFlags flags; DFBWindowCapabilities caps; int width; int height; DFBSurfacePixelFormat pixelformat; int posx; int posy; DFBSurfaceCapabilities surface_caps; } DFBWindowDescription; typedef struct { DFBDataBufferDescriptionFlags flags; const char *file; struct { const void *data; unsigned int length; } memory; } DFBDataBufferDescription; typedef enum { DFENUM_OK = 0x00000000, DFENUM_CANCEL = 0x00000001 } DFBEnumerationResult; typedef DFBEnumerationResult (*DFBVideoModeCallback) ( int width, int height, int bpp, void *callbackdata ); typedef DFBEnumerationResult (*DFBScreenCallback) ( DFBScreenID screen_id, DFBScreenDescription desc, void *callbackdata ); typedef DFBEnumerationResult (*DFBDisplayLayerCallback) ( DFBDisplayLayerID layer_id, DFBDisplayLayerDescription desc, void *callbackdata ); typedef DFBEnumerationResult (*DFBInputDeviceCallback) ( DFBInputDeviceID device_id, DFBInputDeviceDescription desc, void *callbackdata ); typedef int (*DFBGetDataCallback) ( void *buffer, unsigned int length, void *callbackdata ); typedef enum { DVCAPS_BASIC = 0x00000000, DVCAPS_SEEK = 0x00000001, DVCAPS_SCALE = 0x00000002, DVCAPS_INTERLACED = 0x00000004, DVCAPS_BRIGHTNESS = 0x00000010, DVCAPS_CONTRAST = 0x00000020, DVCAPS_HUE = 0x00000040, DVCAPS_SATURATION = 0x00000080, DVCAPS_INTERACTIVE = 0x00000100 } DFBVideoProviderCapabilities; typedef enum { DVSTATE_UNKNOWN = 0x00000000, DVSTATE_PLAY = 0x00000001, DVSTATE_STOP = 0x00000002, DVSTATE_FINISHED = 0x00000003 } DFBVideoProviderStatus; typedef enum { DCAF_NONE = 0x00000000, DCAF_BRIGHTNESS = 0x00000001, DCAF_CONTRAST = 0x00000002, DCAF_HUE = 0x00000004, DCAF_SATURATION = 0x00000008, DCAF_ALL = 0x0000000F } DFBColorAdjustmentFlags; typedef struct { DFBColorAdjustmentFlags flags; u_int16_t brightness; u_int16_t contrast; u_int16_t hue; u_int16_t saturation; } DFBColorAdjustment; # 1372 "/usr/include/directfb/directfb.h" struct _IDirectFB { void *priv; int magic; DFBResult (*AddRef)( IDirectFB *thiz ); DFBResult (*Release)( IDirectFB *thiz ); DFBResult (*SetCooperativeLevel) ( IDirectFB *thiz, DFBCooperativeLevel level ); DFBResult (*SetVideoMode) ( IDirectFB *thiz, int width, int height, int bpp ); DFBResult (*GetDeviceDescription) ( IDirectFB *thiz, DFBGraphicsDeviceDescription *ret_desc ); DFBResult (*EnumVideoModes) ( IDirectFB *thiz, DFBVideoModeCallback callback, void *callbackdata ); DFBResult (*CreateSurface) ( IDirectFB *thiz, const DFBSurfaceDescription *desc, IDirectFBSurface **ret_interface ); DFBResult (*CreatePalette) ( IDirectFB *thiz, const DFBPaletteDescription *desc, IDirectFBPalette **ret_interface ); DFBResult (*EnumScreens) ( IDirectFB *thiz, DFBScreenCallback callback, void *callbackdata ); DFBResult (*GetScreen) ( IDirectFB *thiz, DFBScreenID screen_id, IDirectFBScreen **ret_interface ); DFBResult (*EnumDisplayLayers) ( IDirectFB *thiz, DFBDisplayLayerCallback callback, void *callbackdata ); DFBResult (*GetDisplayLayer) ( IDirectFB *thiz, DFBDisplayLayerID layer_id, IDirectFBDisplayLayer **ret_interface ); DFBResult (*EnumInputDevices) ( IDirectFB *thiz, DFBInputDeviceCallback callback, void *callbackdata ); DFBResult (*GetInputDevice) ( IDirectFB *thiz, DFBInputDeviceID device_id, IDirectFBInputDevice **ret_interface ); DFBResult (*CreateEventBuffer) ( IDirectFB *thiz, IDirectFBEventBuffer **ret_buffer ); DFBResult (*CreateInputEventBuffer) ( IDirectFB *thiz, DFBInputDeviceCapabilities caps, DFBBoolean global, IDirectFBEventBuffer **ret_buffer ); DFBResult (*CreateImageProvider) ( IDirectFB *thiz, const char *filename, IDirectFBImageProvider **ret_interface ); DFBResult (*CreateVideoProvider) ( IDirectFB *thiz, const char *filename, IDirectFBVideoProvider **ret_interface ); DFBResult (*CreateFont) ( IDirectFB *thiz, const char *filename, const DFBFontDescription *desc, IDirectFBFont **ret_interface ); DFBResult (*CreateDataBuffer) ( IDirectFB *thiz, const DFBDataBufferDescription *desc, IDirectFBDataBuffer **ret_interface ); DFBResult (*SetClipboardData) ( IDirectFB *thiz, const char *mime_type, const void *data, unsigned int size, struct timeval *ret_timestamp ); DFBResult (*GetClipboardData) ( IDirectFB *thiz, char **ret_mimetype, void **ret_data, unsigned int *ret_size ); DFBResult (*GetClipboardTimeStamp) ( IDirectFB *thiz, struct timeval *ret_timestamp ); DFBResult (*Suspend) ( IDirectFB *thiz ); DFBResult (*Resume) ( IDirectFB *thiz ); DFBResult (*WaitIdle) ( IDirectFB *thiz ); DFBResult (*WaitForSync) ( IDirectFB *thiz ); DFBResult (*GetInterface) ( IDirectFB *thiz, const char *type, const char *implementation, void *arg, void **ret_interface ); }; # 1714 "/usr/include/directfb/directfb.h" #define DLID_PRIMARY 0x0000 #define DLSID_SURFACE 0x0000 #define DSCID_PRIMARY 0x0000 #define DIDID_KEYBOARD 0x0000 #define DIDID_MOUSE 0x0001 #define DIDID_JOYSTICK 0x0002 #define DIDID_REMOTE 0x0003 #define DIDID_ANY 0x0010 typedef enum { DLSCL_SHARED = 0, DLSCL_EXCLUSIVE, DLSCL_ADMINISTRATIVE } DFBDisplayLayerCooperativeLevel; typedef enum { DLBM_DONTCARE = 0, DLBM_COLOR, DLBM_IMAGE, DLBM_TILE } DFBDisplayLayerBackgroundMode; typedef enum { DLCONF_NONE = 0x00000000, DLCONF_WIDTH = 0x00000001, DLCONF_HEIGHT = 0x00000002, DLCONF_PIXELFORMAT = 0x00000004, DLCONF_BUFFERMODE = 0x00000008, DLCONF_OPTIONS = 0x00000010, DLCONF_SOURCE = 0x00000020, DLCONF_SURFACE_CAPS = 0x00000040, DLCONF_ALL = 0x0000007F } DFBDisplayLayerConfigFlags; typedef struct { DFBDisplayLayerConfigFlags flags; int width; int height; DFBSurfacePixelFormat pixelformat; DFBDisplayLayerBufferMode buffermode; DFBDisplayLayerOptions options; DFBDisplayLayerSourceID source; DFBSurfaceCapabilities surface_caps; } DFBDisplayLayerConfig; typedef enum { DSPM_ON = 0, DSPM_STANDBY, DSPM_SUSPEND, DSPM_OFF } DFBScreenPowerMode; typedef enum { DSMCAPS_NONE = 0x00000000, DSMCAPS_FULL = 0x00000001, DSMCAPS_SUB_LEVEL = 0x00000002, DSMCAPS_SUB_LAYERS = 0x00000004, DSMCAPS_BACKGROUND = 0x00000008 } DFBScreenMixerCapabilities; #define DFB_SCREEN_MIXER_DESC_NAME_LENGTH 24 typedef struct { DFBScreenMixerCapabilities caps; DFBDisplayLayerIDs layers; int sub_num; DFBDisplayLayerIDs sub_layers; char name[24]; } DFBScreenMixerDescription; typedef enum { DSMCONF_NONE = 0x00000000, DSMCONF_TREE = 0x00000001, DSMCONF_LEVEL = 0x00000002, DSMCONF_LAYERS = 0x00000004, DSMCONF_BACKGROUND = 0x00000010, DSMCONF_ALL = 0x00000017 } DFBScreenMixerConfigFlags; typedef enum { DSMT_UNKNOWN = 0x00000000, DSMT_FULL = 0x00000001, DSMT_SUB_LEVEL = 0x00000002, DSMT_SUB_LAYERS = 0x00000003 } DFBScreenMixerTree; typedef struct { DFBScreenMixerConfigFlags flags; DFBScreenMixerTree tree; int level; DFBDisplayLayerIDs layers; DFBColor background; } DFBScreenMixerConfig; typedef enum { DSOCAPS_NONE = 0x00000000, DSOCAPS_CONNECTORS = 0x00000001, DSOCAPS_ENCODER_SEL = 0x00000010, DSOCAPS_SIGNAL_SEL = 0x00000020, DSOCAPS_CONNECTOR_SEL = 0x00000040, DSOCAPS_ALL = 0x00000071 } DFBScreenOutputCapabilities; typedef enum { DSOC_UNKNOWN = 0x00000000, DSOC_VGA = 0x00000001, DSOC_SCART = 0x00000002, DSOC_YC = 0x00000004, DSOC_CVBS = 0x00000008 } DFBScreenOutputConnectors; typedef enum { DSOS_NONE = 0x00000000, DSOS_VGA = 0x00000001, DSOS_YC = 0x00000002, DSOS_CVBS = 0x00000004, DSOS_RGB = 0x00000008, DSOS_YCBCR = 0x00000010 } DFBScreenOutputSignals; #define DFB_SCREEN_OUTPUT_DESC_NAME_LENGTH 24 typedef struct { DFBScreenOutputCapabilities caps; DFBScreenOutputConnectors all_connectors; DFBScreenOutputSignals all_signals; char name[24]; } DFBScreenOutputDescription; typedef enum { DSOCONF_NONE = 0x00000000, DSOCONF_ENCODER = 0x00000001, DSOCONF_SIGNALS = 0x00000002, DSOCONF_CONNECTORS = 0x00000004, DSOCONF_ALL = 0x00000007 } DFBScreenOutputConfigFlags; typedef struct { DFBScreenOutputConfigFlags flags; int encoder; DFBScreenOutputSignals out_signals; DFBScreenOutputConnectors out_connectors; } DFBScreenOutputConfig; typedef enum { DSECAPS_NONE = 0x00000000, DSECAPS_TV_STANDARDS = 0x00000001, DSECAPS_TEST_PICTURE = 0x00000002, DSECAPS_MIXER_SEL = 0x00000004, DSECAPS_OUT_SIGNALS = 0x00000008, DSECAPS_SCANMODE = 0x00000010, DSECAPS_BRIGHTNESS = 0x00000100, DSECAPS_CONTRAST = 0x00000200, DSECAPS_HUE = 0x00000400, DSECAPS_SATURATION = 0x00000800, DSECAPS_ALL = 0x00000f1f } DFBScreenEncoderCapabilities; typedef enum { DSET_UNKNOWN = 0x00000000, DSET_CRTC = 0x00000001, DSET_TV = 0x00000002 } DFBScreenEncoderType; typedef enum { DSETV_UNKNOWN = 0x00000000, DSETV_PAL = 0x00000001, DSETV_NTSC = 0x00000002, DSETV_SECAM = 0x00000004 } DFBScreenEncoderTVStandards; typedef enum { DSESM_UNKNOWN = 0x00000000, DSESM_INTERLACED = 0x00000001, DSESM_PROGRESSIVE = 0x00000002 } DFBScreenEncoderScanMode; #define DFB_SCREEN_ENCODER_DESC_NAME_LENGTH 24 typedef struct { DFBScreenEncoderCapabilities caps; DFBScreenEncoderType type; DFBScreenEncoderTVStandards tv_standards; DFBScreenOutputSignals out_signals; char name[24]; } DFBScreenEncoderDescription; typedef enum { DSECONF_NONE = 0x00000000, DSECONF_TV_STANDARD = 0x00000001, DSECONF_TEST_PICTURE = 0x00000002, DSECONF_MIXER = 0x00000004, DSECONF_OUT_SIGNALS = 0x00000008, DSECONF_SCANMODE = 0x00000010, DSECONF_TEST_COLOR = 0x00000020, DSECONF_ADJUSTMENT = 0x00000040, DSECONF_ALL = 0x0000007F } DFBScreenEncoderConfigFlags; typedef enum { DSETP_OFF = 0x00000000, DSETP_MULTI = 0x00000001, DSETP_SINGLE = 0x00000002, DSETP_WHITE = 0x00000010, DSETP_YELLOW = 0x00000020, DSETP_CYAN = 0x00000030, DSETP_GREEN = 0x00000040, DSETP_MAGENTA = 0x00000050, DSETP_RED = 0x00000060, DSETP_BLUE = 0x00000070, DSETP_BLACK = 0x00000080 } DFBScreenEncoderTestPicture; typedef struct { DFBScreenEncoderConfigFlags flags; DFBScreenEncoderTVStandards tv_standard; DFBScreenEncoderTestPicture test_picture; int mixer; DFBScreenOutputSignals out_signals; DFBScreenEncoderScanMode scanmode; DFBColor test_color; DFBColorAdjustment adjustment; } DFBScreenEncoderConfig; # 2082 "/usr/include/directfb/directfb.h" struct _IDirectFBScreen { void *priv; int magic; DFBResult (*AddRef)( IDirectFBScreen *thiz ); DFBResult (*Release)( IDirectFBScreen *thiz ); DFBResult (*GetID) ( IDirectFBScreen *thiz, DFBScreenID *ret_screen_id ); DFBResult (*GetDescription) ( IDirectFBScreen *thiz, DFBScreenDescription *ret_desc ); DFBResult (*EnumDisplayLayers) ( IDirectFBScreen *thiz, DFBDisplayLayerCallback callback, void *callbackdata ); DFBResult (*SetPowerMode) ( IDirectFBScreen *thiz, DFBScreenPowerMode mode ); DFBResult (*WaitForSync) ( IDirectFBScreen *thiz ); DFBResult (*GetMixerDescriptions) ( IDirectFBScreen *thiz, DFBScreenMixerDescription *ret_descriptions ); DFBResult (*GetMixerConfiguration) ( IDirectFBScreen *thiz, int mixer, DFBScreenMixerConfig *ret_config ); DFBResult (*TestMixerConfiguration) ( IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config, DFBScreenMixerConfigFlags *ret_failed ); DFBResult (*SetMixerConfiguration) ( IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config ); DFBResult (*GetEncoderDescriptions) ( IDirectFBScreen *thiz, DFBScreenEncoderDescription *ret_descriptions ); DFBResult (*GetEncoderConfiguration) ( IDirectFBScreen *thiz, int encoder, DFBScreenEncoderConfig *ret_config ); DFBResult (*TestEncoderConfiguration) ( IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config, DFBScreenEncoderConfigFlags *ret_failed ); DFBResult (*SetEncoderConfiguration) ( IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config ); DFBResult (*GetOutputDescriptions) ( IDirectFBScreen *thiz, DFBScreenOutputDescription *ret_descriptions ); DFBResult (*GetOutputConfiguration) ( IDirectFBScreen *thiz, int output, DFBScreenOutputConfig *ret_config ); DFBResult (*TestOutputConfiguration) ( IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config, DFBScreenOutputConfigFlags *ret_failed ); DFBResult (*SetOutputConfiguration) ( IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config ); }; # 2288 "/usr/include/directfb/directfb.h" struct _IDirectFBDisplayLayer { void *priv; int magic; DFBResult (*AddRef)( IDirectFBDisplayLayer *thiz ); DFBResult (*Release)( IDirectFBDisplayLayer *thiz ); DFBResult (*GetID) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerID *ret_layer_id ); DFBResult (*GetDescription) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerDescription *ret_desc ); DFBResult (*GetSourceDescriptions) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerSourceDescription *ret_descriptions ); DFBResult (*GetCurrentOutputField) ( IDirectFBDisplayLayer *thiz, int *ret_field ); DFBResult (*GetSurface) ( IDirectFBDisplayLayer *thiz, IDirectFBSurface **ret_interface ); DFBResult (*GetScreen) ( IDirectFBDisplayLayer *thiz, IDirectFBScreen **ret_interface ); DFBResult (*SetCooperativeLevel) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerCooperativeLevel level ); DFBResult (*GetConfiguration) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerConfig *ret_config ); DFBResult (*TestConfiguration) ( IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config, DFBDisplayLayerConfigFlags *ret_failed ); DFBResult (*SetConfiguration) ( IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config ); DFBResult (*SetScreenLocation) ( IDirectFBDisplayLayer *thiz, float x, float y, float width, float height ); DFBResult (*SetScreenPosition) ( IDirectFBDisplayLayer *thiz, int x, int y ); DFBResult (*SetScreenRectangle) ( IDirectFBDisplayLayer *thiz, int x, int y, int width, int height ); DFBResult (*SetOpacity) ( IDirectFBDisplayLayer *thiz, u_int8_t opacity ); DFBResult (*SetSourceRectangle) ( IDirectFBDisplayLayer *thiz, int x, int y, int width, int height ); DFBResult (*SetFieldParity) ( IDirectFBDisplayLayer *thiz, int field ); DFBResult (*SetSrcColorKey) ( IDirectFBDisplayLayer *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetDstColorKey) ( IDirectFBDisplayLayer *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*GetLevel) ( IDirectFBDisplayLayer *thiz, int *ret_level ); DFBResult (*SetLevel) ( IDirectFBDisplayLayer *thiz, int level ); DFBResult (*SetBackgroundMode) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerBackgroundMode mode ); DFBResult (*SetBackgroundImage) ( IDirectFBDisplayLayer *thiz, IDirectFBSurface *surface ); DFBResult (*SetBackgroundColor) ( IDirectFBDisplayLayer *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a ); DFBResult (*GetColorAdjustment) ( IDirectFBDisplayLayer *thiz, DFBColorAdjustment *ret_adj ); DFBResult (*SetColorAdjustment) ( IDirectFBDisplayLayer *thiz, const DFBColorAdjustment *adj ); DFBResult (*CreateWindow) ( IDirectFBDisplayLayer *thiz, const DFBWindowDescription *desc, IDirectFBWindow **ret_interface ); DFBResult (*GetWindow) ( IDirectFBDisplayLayer *thiz, DFBWindowID window_id, IDirectFBWindow **ret_interface ); DFBResult (*EnableCursor) ( IDirectFBDisplayLayer *thiz, int enable ); DFBResult (*GetCursorPosition) ( IDirectFBDisplayLayer *thiz, int *ret_x, int *ret_y ); DFBResult (*WarpCursor) ( IDirectFBDisplayLayer *thiz, int x, int y ); DFBResult (*SetCursorAcceleration) ( IDirectFBDisplayLayer *thiz, int numerator, int denominator, int threshold ); DFBResult (*SetCursorShape) ( IDirectFBDisplayLayer *thiz, IDirectFBSurface *shape, int hot_x, int hot_y ); DFBResult (*SetCursorOpacity) ( IDirectFBDisplayLayer *thiz, u_int8_t opacity ); DFBResult (*WaitForSync) ( IDirectFBDisplayLayer *thiz ); }; # 2701 "/usr/include/directfb/directfb.h" typedef enum { DSFLIP_NONE = 0x00000000, DSFLIP_WAIT = 0x00000001, DSFLIP_BLIT = 0x00000002, DSFLIP_ONSYNC = 0x00000004, DSFLIP_PIPELINE = 0x00000008, DSFLIP_WAITFORSYNC = DSFLIP_WAIT | DSFLIP_ONSYNC } DFBSurfaceFlipFlags; typedef enum { DSTF_LEFT = 0x00000000, DSTF_CENTER = 0x00000001, DSTF_RIGHT = 0x00000002, DSTF_TOP = 0x00000004, DSTF_BOTTOM = 0x00000008, DSTF_TOPLEFT = DSTF_TOP | DSTF_LEFT, DSTF_TOPCENTER = DSTF_TOP | DSTF_CENTER, DSTF_TOPRIGHT = DSTF_TOP | DSTF_RIGHT, DSTF_BOTTOMLEFT = DSTF_BOTTOM | DSTF_LEFT, DSTF_BOTTOMCENTER = DSTF_BOTTOM | DSTF_CENTER, DSTF_BOTTOMRIGHT = DSTF_BOTTOM | DSTF_RIGHT } DFBSurfaceTextFlags; typedef enum { DSLF_READ = 0x00000001, DSLF_WRITE = 0x00000002 } DFBSurfaceLockFlags; typedef enum { DSPD_NONE = 0, DSPD_CLEAR = 1, DSPD_SRC = 2, DSPD_SRC_OVER = 3, DSPD_DST_OVER = 4, DSPD_SRC_IN = 5, DSPD_DST_IN = 6, DSPD_SRC_OUT = 7, DSPD_DST_OUT = 8 } DFBSurfacePorterDuffRule; typedef enum { DSBF_ZERO = 1, DSBF_ONE = 2, DSBF_SRCCOLOR = 3, DSBF_INVSRCCOLOR = 4, DSBF_SRCALPHA = 5, DSBF_INVSRCALPHA = 6, DSBF_DESTALPHA = 7, DSBF_INVDESTALPHA = 8, DSBF_DESTCOLOR = 9, DSBF_INVDESTCOLOR = 10, DSBF_SRCALPHASAT = 11 } DFBSurfaceBlendFunction; typedef struct { float x; float y; float z; float w; float s; float t; } DFBVertex; typedef enum { DTTF_LIST, DTTF_STRIP, DTTF_FAN } DFBTriangleFormation; # 2815 "/usr/include/directfb/directfb.h" struct _IDirectFBSurface { void *priv; int magic; DFBResult (*AddRef)( IDirectFBSurface *thiz ); DFBResult (*Release)( IDirectFBSurface *thiz ); DFBResult (*GetCapabilities) ( IDirectFBSurface *thiz, DFBSurfaceCapabilities *ret_caps ); DFBResult (*GetSize) ( IDirectFBSurface *thiz, int *ret_width, int *ret_height ); DFBResult (*GetVisibleRectangle) ( IDirectFBSurface *thiz, DFBRectangle *ret_rect ); DFBResult (*GetPixelFormat) ( IDirectFBSurface *thiz, DFBSurfacePixelFormat *ret_format ); DFBResult (*GetAccelerationMask) ( IDirectFBSurface *thiz, IDirectFBSurface *source, DFBAccelerationMask *ret_mask ); DFBResult (*GetPalette) ( IDirectFBSurface *thiz, IDirectFBPalette **ret_interface ); DFBResult (*SetPalette) ( IDirectFBSurface *thiz, IDirectFBPalette *palette ); DFBResult (*SetAlphaRamp) ( IDirectFBSurface *thiz, u_int8_t a0, u_int8_t a1, u_int8_t a2, u_int8_t a3 ); DFBResult (*Lock) ( IDirectFBSurface *thiz, DFBSurfaceLockFlags flags, void **ret_ptr, int *ret_pitch ); DFBResult (*Unlock) ( IDirectFBSurface *thiz ); DFBResult (*Flip) ( IDirectFBSurface *thiz, const DFBRegion *region, DFBSurfaceFlipFlags flags ); DFBResult (*SetField) ( IDirectFBSurface *thiz, int field ); DFBResult (*Clear) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a ); DFBResult (*SetClip) ( IDirectFBSurface *thiz, const DFBRegion *clip ); DFBResult (*SetColor) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a ); DFBResult (*SetColorIndex) ( IDirectFBSurface *thiz, unsigned int index ); DFBResult (*SetSrcBlendFunction) ( IDirectFBSurface *thiz, DFBSurfaceBlendFunction function ); DFBResult (*SetDstBlendFunction) ( IDirectFBSurface *thiz, DFBSurfaceBlendFunction function ); DFBResult (*SetPorterDuff) ( IDirectFBSurface *thiz, DFBSurfacePorterDuffRule rule ); DFBResult (*SetSrcColorKey) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetSrcColorKeyIndex) ( IDirectFBSurface *thiz, unsigned int index ); DFBResult (*SetDstColorKey) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetDstColorKeyIndex) ( IDirectFBSurface *thiz, unsigned int index ); DFBResult (*SetBlittingFlags) ( IDirectFBSurface *thiz, DFBSurfaceBlittingFlags flags ); DFBResult (*Blit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y ); DFBResult (*TileBlit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y ); DFBResult (*BatchBlit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rects, const DFBPoint *dest_points, int num ); DFBResult (*StretchBlit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, const DFBRectangle *destination_rect ); DFBResult (*TextureTriangles) ( IDirectFBSurface *thiz, IDirectFBSurface *texture, const DFBVertex *vertices, const int *indices, int num, DFBTriangleFormation formation ); DFBResult (*SetDrawingFlags) ( IDirectFBSurface *thiz, DFBSurfaceDrawingFlags flags ); DFBResult (*FillRectangle) ( IDirectFBSurface *thiz, int x, int y, int w, int h ); DFBResult (*DrawRectangle) ( IDirectFBSurface *thiz, int x, int y, int w, int h ); DFBResult (*DrawLine) ( IDirectFBSurface *thiz, int x1, int y1, int x2, int y2 ); DFBResult (*DrawLines) ( IDirectFBSurface *thiz, const DFBRegion *lines, unsigned int num_lines ); DFBResult (*FillTriangle) ( IDirectFBSurface *thiz, int x1, int y1, int x2, int y2, int x3, int y3 ); DFBResult (*FillRectangles) ( IDirectFBSurface *thiz, const DFBRectangle *rects, unsigned int num ); DFBResult (*FillSpans) ( IDirectFBSurface *thiz, int y, const DFBSpan *spans, unsigned int num ); DFBResult (*SetFont) ( IDirectFBSurface *thiz, IDirectFBFont *font ); DFBResult (*GetFont) ( IDirectFBSurface *thiz, IDirectFBFont **ret_font ); DFBResult (*DrawString) ( IDirectFBSurface *thiz, const char *text, int bytes, int x, int y, DFBSurfaceTextFlags flags ); DFBResult (*DrawGlyph) ( IDirectFBSurface *thiz, unsigned int index, int x, int y, DFBSurfaceTextFlags flags ); DFBResult (*GetSubSurface) ( IDirectFBSurface *thiz, const DFBRectangle *rect, IDirectFBSurface **ret_interface ); DFBResult (*GetGL) ( IDirectFBSurface *thiz, IDirectFBGL **ret_interface ); DFBResult (*Dump) ( IDirectFBSurface *thiz, const char *directory, const char *prefix ); DFBResult (*DisableAcceleration) ( IDirectFBSurface *thiz, DFBAccelerationMask mask ); DFBResult (*GetClip) ( IDirectFBSurface *thiz, DFBRegion *ret_clip ); }; # 3429 "/usr/include/directfb/directfb.h" struct _IDirectFBPalette { void *priv; int magic; DFBResult (*AddRef)( IDirectFBPalette *thiz ); DFBResult (*Release)( IDirectFBPalette *thiz ); DFBResult (*GetCapabilities) ( IDirectFBPalette *thiz, DFBPaletteCapabilities *ret_caps ); DFBResult (*GetSize) ( IDirectFBPalette *thiz, unsigned int *ret_size ); DFBResult (*SetEntries) ( IDirectFBPalette *thiz, const DFBColor *entries, unsigned int num_entries, unsigned int offset ); DFBResult (*GetEntries) ( IDirectFBPalette *thiz, DFBColor *ret_entries, unsigned int num_entries, unsigned int offset ); DFBResult (*FindBestMatch) ( IDirectFBPalette *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a, unsigned int *ret_index ); DFBResult (*CreateCopy) ( IDirectFBPalette *thiz, IDirectFBPalette **ret_interface ); }; # 3508 "/usr/include/directfb/directfb.h" typedef enum { DIKS_UP = 0x00000000, DIKS_DOWN = 0x00000001 } DFBInputDeviceKeyState; typedef enum { DIBS_UP = 0x00000000, DIBS_DOWN = 0x00000001 } DFBInputDeviceButtonState; typedef enum { DIBM_LEFT = 0x00000001, DIBM_RIGHT = 0x00000002, DIBM_MIDDLE = 0x00000004 } DFBInputDeviceButtonMask; typedef enum { DIMM_SHIFT = (1 << DIMKI_SHIFT), DIMM_CONTROL = (1 << DIMKI_CONTROL), DIMM_ALT = (1 << DIMKI_ALT), DIMM_ALTGR = (1 << DIMKI_ALTGR), DIMM_META = (1 << DIMKI_META), DIMM_SUPER = (1 << DIMKI_SUPER), DIMM_HYPER = (1 << DIMKI_HYPER) } DFBInputDeviceModifierMask; # 3551 "/usr/include/directfb/directfb.h" struct _IDirectFBInputDevice { void *priv; int magic; DFBResult (*AddRef)( IDirectFBInputDevice *thiz ); DFBResult (*Release)( IDirectFBInputDevice *thiz ); DFBResult (*GetID) ( IDirectFBInputDevice *thiz, DFBInputDeviceID *ret_device_id ); DFBResult (*GetDescription) ( IDirectFBInputDevice *thiz, DFBInputDeviceDescription *ret_desc ); DFBResult (*GetKeymapEntry) ( IDirectFBInputDevice *thiz, int keycode, DFBInputDeviceKeymapEntry *ret_entry ); DFBResult (*CreateEventBuffer) ( IDirectFBInputDevice *thiz, IDirectFBEventBuffer **ret_buffer ); DFBResult (*AttachEventBuffer) ( IDirectFBInputDevice *thiz, IDirectFBEventBuffer *buffer ); DFBResult (*GetKeyState) ( IDirectFBInputDevice *thiz, DFBInputDeviceKeyIdentifier key_id, DFBInputDeviceKeyState *ret_state ); DFBResult (*GetModifiers) ( IDirectFBInputDevice *thiz, DFBInputDeviceModifierMask *ret_modifiers ); DFBResult (*GetLockState) ( IDirectFBInputDevice *thiz, DFBInputDeviceLockState *ret_locks ); DFBResult (*GetButtons) ( IDirectFBInputDevice *thiz, DFBInputDeviceButtonMask *ret_buttons ); DFBResult (*GetButtonState) ( IDirectFBInputDevice *thiz, DFBInputDeviceButtonIdentifier button, DFBInputDeviceButtonState *ret_state ); DFBResult (*GetAxis) ( IDirectFBInputDevice *thiz, DFBInputDeviceAxisIdentifier axis, int *ret_pos ); DFBResult (*GetXY) ( IDirectFBInputDevice *thiz, int *ret_x, int *ret_y ); }; # 3680 "/usr/include/directfb/directfb.h" typedef enum { DFEC_NONE = 0x00, DFEC_INPUT = 0x01, DFEC_WINDOW = 0x02, DFEC_USER = 0x03, DFEC_UNIVERSAL = 0x04 } DFBEventClass; typedef enum { DIET_UNKNOWN = 0, DIET_KEYPRESS, DIET_KEYRELEASE, DIET_BUTTONPRESS, DIET_BUTTONRELEASE, DIET_AXISMOTION } DFBInputEventType; typedef enum { DIEF_NONE = 0x000, DIEF_TIMESTAMP = 0x001, DIEF_AXISABS = 0x002, DIEF_AXISREL = 0x004, DIEF_KEYCODE = 0x008, DIEF_KEYID = 0x010, DIEF_KEYSYMBOL = 0x020, DIEF_MODIFIERS = 0x040, DIEF_LOCKS = 0x080, DIEF_BUTTONS = 0x100, DIEF_GLOBAL = 0x200, DIEF_REPEAT = 0x400 } DFBInputEventFlags; typedef struct { DFBEventClass clazz; DFBInputEventType type; DFBInputDeviceID device_id; DFBInputEventFlags flags; struct timeval timestamp; int key_code; DFBInputDeviceKeyIdentifier key_id; DFBInputDeviceKeySymbol key_symbol; DFBInputDeviceModifierMask modifiers; DFBInputDeviceLockState locks; DFBInputDeviceButtonIdentifier button; DFBInputDeviceButtonMask buttons; DFBInputDeviceAxisIdentifier axis; int axisabs; int axisrel; } DFBInputEvent; typedef enum { DWET_NONE = 0x00000000, DWET_POSITION = 0x00000001, DWET_SIZE = 0x00000002, DWET_CLOSE = 0x00000004, DWET_DESTROYED = 0x00000008, DWET_GOTFOCUS = 0x00000010, DWET_LOSTFOCUS = 0x00000020, DWET_KEYDOWN = 0x00000100, DWET_KEYUP = 0x00000200, DWET_BUTTONDOWN = 0x00010000, DWET_BUTTONUP = 0x00020000, DWET_MOTION = 0x00040000, DWET_ENTER = 0x00080000, DWET_LEAVE = 0x00100000, DWET_WHEEL = 0x00200000, DWET_POSITION_SIZE = DWET_POSITION | DWET_SIZE, DWET_ALL = 0x003F033F } DFBWindowEventType; typedef struct { DFBEventClass clazz; DFBWindowEventType type; DFBWindowID window_id; int x; int y; int cx; int cy; int step; int w; int h; int key_code; DFBInputDeviceKeyIdentifier key_id; DFBInputDeviceKeySymbol key_symbol; DFBInputDeviceModifierMask modifiers; DFBInputDeviceLockState locks; DFBInputDeviceButtonIdentifier button; DFBInputDeviceButtonMask buttons; struct timeval timestamp; } DFBWindowEvent; typedef struct { DFBEventClass clazz; unsigned int type; void *data; } DFBUserEvent; typedef struct { DFBEventClass clazz; unsigned int size; } DFBUniversalEvent; typedef union { DFBEventClass clazz; DFBInputEvent input; DFBWindowEvent window; DFBUserEvent user; DFBUniversalEvent universal; } DFBEvent; #define DFB_EVENT(e) ((DFBEvent *) (e)) typedef struct { unsigned int num_events; unsigned int DFEC_INPUT; unsigned int DFEC_WINDOW; unsigned int DFEC_USER; unsigned int DFEC_UNIVERSAL; unsigned int DIET_KEYPRESS; unsigned int DIET_KEYRELEASE; unsigned int DIET_BUTTONPRESS; unsigned int DIET_BUTTONRELEASE; unsigned int DIET_AXISMOTION; unsigned int DWET_POSITION; unsigned int DWET_SIZE; unsigned int DWET_CLOSE; unsigned int DWET_DESTROYED; unsigned int DWET_GOTFOCUS; unsigned int DWET_LOSTFOCUS; unsigned int DWET_KEYDOWN; unsigned int DWET_KEYUP; unsigned int DWET_BUTTONDOWN; unsigned int DWET_BUTTONUP; unsigned int DWET_MOTION; unsigned int DWET_ENTER; unsigned int DWET_LEAVE; unsigned int DWET_WHEEL; unsigned int DWET_POSITION_SIZE; } DFBEventBufferStats; # 3951 "/usr/include/directfb/directfb.h" struct _IDirectFBEventBuffer { void *priv; int magic; DFBResult (*AddRef)( IDirectFBEventBuffer *thiz ); DFBResult (*Release)( IDirectFBEventBuffer *thiz ); DFBResult (*Reset) ( IDirectFBEventBuffer *thiz ); DFBResult (*WaitForEvent) ( IDirectFBEventBuffer *thiz ); DFBResult (*WaitForEventWithTimeout) ( IDirectFBEventBuffer *thiz, unsigned int seconds, unsigned int milli_seconds ); DFBResult (*GetEvent) ( IDirectFBEventBuffer *thiz, DFBEvent *ret_event ); DFBResult (*PeekEvent) ( IDirectFBEventBuffer *thiz, DFBEvent *ret_event ); DFBResult (*HasEvent) ( IDirectFBEventBuffer *thiz ); DFBResult (*PostEvent) ( IDirectFBEventBuffer *thiz, const DFBEvent *event ); DFBResult (*WakeUp) ( IDirectFBEventBuffer *thiz ); DFBResult (*CreateFileDescriptor) ( IDirectFBEventBuffer *thiz, int *ret_fd ); DFBResult (*EnableStatistics) ( IDirectFBEventBuffer *thiz, DFBBoolean enable ); DFBResult (*GetStatistics) ( IDirectFBEventBuffer *thiz, DFBEventBufferStats *ret_stats ); }; # 4082 "/usr/include/directfb/directfb.h" typedef enum { DWOP_NONE = 0x00000000, DWOP_COLORKEYING = 0x00000001, DWOP_ALPHACHANNEL = 0x00000002, DWOP_OPAQUE_REGION = 0x00000004, DWOP_SHAPED = 0x00000008, DWOP_KEEP_POSITION = 0x00000010, DWOP_KEEP_SIZE = 0x00000020, DWOP_KEEP_STACKING = 0x00000040, DWOP_GHOST = 0x00001000, DWOP_INDESTRUCTIBLE = 0x00002000, DWOP_ALL = 0x0000307F } DFBWindowOptions; typedef enum { DWSC_MIDDLE = 0x00000000, DWSC_UPPER = 0x00000001, DWSC_LOWER = 0x00000002 } DFBWindowStackingClass; # 4131 "/usr/include/directfb/directfb.h" struct _IDirectFBWindow { void *priv; int magic; DFBResult (*AddRef)( IDirectFBWindow *thiz ); DFBResult (*Release)( IDirectFBWindow *thiz ); DFBResult (*GetID) ( IDirectFBWindow *thiz, DFBWindowID *ret_window_id ); DFBResult (*GetPosition) ( IDirectFBWindow *thiz, int *ret_x, int *ret_y ); DFBResult (*GetSize) ( IDirectFBWindow *thiz, int *ret_width, int *ret_height ); DFBResult (*CreateEventBuffer) ( IDirectFBWindow *thiz, IDirectFBEventBuffer **ret_buffer ); DFBResult (*AttachEventBuffer) ( IDirectFBWindow *thiz, IDirectFBEventBuffer *buffer ); DFBResult (*EnableEvents) ( IDirectFBWindow *thiz, DFBWindowEventType mask ); DFBResult (*DisableEvents) ( IDirectFBWindow *thiz, DFBWindowEventType mask ); DFBResult (*GetSurface) ( IDirectFBWindow *thiz, IDirectFBSurface **ret_surface ); DFBResult (*SetOptions) ( IDirectFBWindow *thiz, DFBWindowOptions options ); DFBResult (*GetOptions) ( IDirectFBWindow *thiz, DFBWindowOptions *ret_options ); DFBResult (*SetColorKey) ( IDirectFBWindow *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetColorKeyIndex) ( IDirectFBWindow *thiz, unsigned int index ); DFBResult (*SetOpacity) ( IDirectFBWindow *thiz, u_int8_t opacity ); DFBResult (*SetOpaqueRegion) ( IDirectFBWindow *thiz, int x1, int y1, int x2, int y2 ); DFBResult (*GetOpacity) ( IDirectFBWindow *thiz, u_int8_t *ret_opacity ); DFBResult (*SetCursorShape) ( IDirectFBWindow *thiz, IDirectFBSurface *shape, int hot_x, int hot_y ); DFBResult (*RequestFocus) ( IDirectFBWindow *thiz ); DFBResult (*GrabKeyboard) ( IDirectFBWindow *thiz ); DFBResult (*UngrabKeyboard) ( IDirectFBWindow *thiz ); DFBResult (*GrabPointer) ( IDirectFBWindow *thiz ); DFBResult (*UngrabPointer) ( IDirectFBWindow *thiz ); DFBResult (*GrabKey) ( IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers ); DFBResult (*UngrabKey) ( IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers ); DFBResult (*Move) ( IDirectFBWindow *thiz, int dx, int dy ); DFBResult (*MoveTo) ( IDirectFBWindow *thiz, int x, int y ); DFBResult (*Resize) ( IDirectFBWindow *thiz, int width, int height ); DFBResult (*SetStackingClass) ( IDirectFBWindow *thiz, DFBWindowStackingClass stacking_class ); DFBResult (*Raise) ( IDirectFBWindow *thiz ); DFBResult (*Lower) ( IDirectFBWindow *thiz ); DFBResult (*RaiseToTop) ( IDirectFBWindow *thiz ); DFBResult (*LowerToBottom) ( IDirectFBWindow *thiz ); DFBResult (*PutAtop) ( IDirectFBWindow *thiz, IDirectFBWindow *lower ); DFBResult (*PutBelow) ( IDirectFBWindow *thiz, IDirectFBWindow *upper ); DFBResult (*Close) ( IDirectFBWindow *thiz ); DFBResult (*Destroy) ( IDirectFBWindow *thiz ); }; # 4499 "/usr/include/directfb/directfb.h" struct _IDirectFBFont { void *priv; int magic; DFBResult (*AddRef)( IDirectFBFont *thiz ); DFBResult (*Release)( IDirectFBFont *thiz ); DFBResult (*GetAscender) ( IDirectFBFont *thiz, int *ret_ascender ); DFBResult (*GetDescender) ( IDirectFBFont *thiz, int *ret_descender ); DFBResult (*GetHeight) ( IDirectFBFont *thiz, int *ret_height ); DFBResult (*GetMaxAdvance) ( IDirectFBFont *thiz, int *ret_maxadvance ); DFBResult (*GetKerning) ( IDirectFBFont *thiz, unsigned int prev_index, unsigned int current_index, int *ret_kern_x, int *ret_kern_y ); DFBResult (*GetStringWidth) ( IDirectFBFont *thiz, const char *text, int bytes, int *ret_width ); DFBResult (*GetStringExtents) ( IDirectFBFont *thiz, const char *text, int bytes, DFBRectangle *ret_logical_rect, DFBRectangle *ret_ink_rect ); DFBResult (*GetGlyphExtents) ( IDirectFBFont *thiz, unsigned int index, DFBRectangle *ret_rect, int *ret_advance ); }; # 4635 "/usr/include/directfb/directfb.h" typedef enum { DICAPS_NONE = 0x00000000, DICAPS_ALPHACHANNEL = 0x00000001, DICAPS_COLORKEY = 0x00000002 } DFBImageCapabilities; typedef struct { DFBImageCapabilities caps; u_int8_t colorkey_r; u_int8_t colorkey_g; u_int8_t colorkey_b; } DFBImageDescription; typedef void (*DIRenderCallback)(DFBRectangle *rect, void *ctx); # 4669 "/usr/include/directfb/directfb.h" struct _IDirectFBImageProvider { void *priv; int magic; DFBResult (*AddRef)( IDirectFBImageProvider *thiz ); DFBResult (*Release)( IDirectFBImageProvider *thiz ); DFBResult (*GetSurfaceDescription) ( IDirectFBImageProvider *thiz, DFBSurfaceDescription *ret_dsc ); DFBResult (*GetImageDescription) ( IDirectFBImageProvider *thiz, DFBImageDescription *ret_dsc ); DFBResult (*RenderTo) ( IDirectFBImageProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect ); DFBResult (*SetRenderCallback) ( IDirectFBImageProvider *thiz, DIRenderCallback callback, void *callback_data ); }; # 4735 "/usr/include/directfb/directfb.h" typedef enum { DVSCAPS_NONE = 0x00000000, DVSCAPS_VIDEO = 0x00000001, DVSCAPS_AUDIO = 0x00000002 } DFBStreamCapabilities; #define DFB_STREAM_DESC_ENCODING_LENGTH 30 #define DFB_STREAM_DESC_TITLE_LENGTH 255 #define DFB_STREAM_DESC_AUTHOR_LENGTH 255 #define DFB_STREAM_DESC_ALBUM_LENGTH 255 #define DFB_STREAM_DESC_GENRE_LENGTH 32 #define DFB_STREAM_DESC_COMMENT_LENGTH 255 typedef struct { DFBStreamCapabilities caps; struct { char encoding[30]; double framerate; double aspect; int bitrate; } video; struct { char encoding[30]; int samplerate; int channels; int bitrate; } audio; char title[255]; char author[255]; char album[255]; short year; char genre[32]; char comment[255]; } DFBStreamDescription; typedef int (*DVFrameCallback)(void *ctx); # 4792 "/usr/include/directfb/directfb.h" struct _IDirectFBVideoProvider { void *priv; int magic; DFBResult (*AddRef)( IDirectFBVideoProvider *thiz ); DFBResult (*Release)( IDirectFBVideoProvider *thiz ); DFBResult (*GetCapabilities) ( IDirectFBVideoProvider *thiz, DFBVideoProviderCapabilities *ret_caps ); DFBResult (*GetSurfaceDescription) ( IDirectFBVideoProvider *thiz, DFBSurfaceDescription *ret_dsc ); DFBResult (*GetStreamDescription) ( IDirectFBVideoProvider *thiz, DFBStreamDescription *ret_dsc ); DFBResult (*PlayTo) ( IDirectFBVideoProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect, DVFrameCallback callback, void *ctx ); DFBResult (*Stop) ( IDirectFBVideoProvider *thiz ); DFBResult (*GetStatus) ( IDirectFBVideoProvider *thiz, DFBVideoProviderStatus *ret_status ); DFBResult (*SeekTo) ( IDirectFBVideoProvider *thiz, double seconds ); DFBResult (*GetPos) ( IDirectFBVideoProvider *thiz, double *ret_seconds ); DFBResult (*GetLength) ( IDirectFBVideoProvider *thiz, double *ret_seconds ); DFBResult (*GetColorAdjustment) ( IDirectFBVideoProvider *thiz, DFBColorAdjustment *ret_adj ); DFBResult (*SetColorAdjustment) ( IDirectFBVideoProvider *thiz, const DFBColorAdjustment *adj ); DFBResult (*SendEvent) ( IDirectFBVideoProvider *thiz, const DFBEvent *event ); }; # 4928 "/usr/include/directfb/directfb.h" struct _IDirectFBDataBuffer { void *priv; int magic; DFBResult (*AddRef)( IDirectFBDataBuffer *thiz ); DFBResult (*Release)( IDirectFBDataBuffer *thiz ); DFBResult (*Flush) ( IDirectFBDataBuffer *thiz ); DFBResult (*Finish) ( IDirectFBDataBuffer *thiz ); DFBResult (*SeekTo) ( IDirectFBDataBuffer *thiz, unsigned int offset ); DFBResult (*GetPosition) ( IDirectFBDataBuffer *thiz, unsigned int *ret_offset ); DFBResult (*GetLength) ( IDirectFBDataBuffer *thiz, unsigned int *ret_length ); DFBResult (*WaitForData) ( IDirectFBDataBuffer *thiz, unsigned int length ); DFBResult (*WaitForDataWithTimeout) ( IDirectFBDataBuffer *thiz, unsigned int length, unsigned int seconds, unsigned int milli_seconds ); DFBResult (*GetData) ( IDirectFBDataBuffer *thiz, unsigned int length, void *ret_data, unsigned int *ret_read ); DFBResult (*PeekData) ( IDirectFBDataBuffer *thiz, unsigned int length, int offset, void *ret_data, unsigned int *ret_read ); DFBResult (*HasData) ( IDirectFBDataBuffer *thiz ); DFBResult (*PutData) ( IDirectFBDataBuffer *thiz, const void *data, unsigned int length ); DFBResult (*CreateImageProvider) ( IDirectFBDataBuffer *thiz, IDirectFBImageProvider **interface ); DFBResult (*CreateVideoProvider) ( IDirectFBDataBuffer *thiz, IDirectFBVideoProvider **interface ); }; # 29 "video_out_dfb.c" 2 # 1 "/usr/include/directfb/directfb_version.h" 1 # 28 "/usr/include/directfb/directfb_version.h" #define __DIRECTFB_VERSION_H__ #define DIRECTFB_MAJOR_VERSION (0) #define DIRECTFB_MINOR_VERSION (9) #define DIRECTFB_MICRO_VERSION (25) #define DIRECTFB_BINARY_AGE (0) #define DIRECTFB_INTERFACE_AGE (0) # 30 "video_out_dfb.c" 2 # 1 "/usr/include/directfb/directfb_strings.h" 1 #define __DIRECTFB_STRINGS_H__ #define DirectFBPixelFormatNames(Identifier) struct DFBPixelFormatName { DFBSurfacePixelFormat format; const char *name; } Identifier[] = { { DSPF_ARGB1555, "ARGB1555" }, { DSPF_RGB16, "RGB16" }, { DSPF_RGB24, "RGB24" }, { DSPF_RGB32, "RGB32" }, { DSPF_ARGB, "ARGB" }, { DSPF_A8, "A8" }, { DSPF_YUY2, "YUY2" }, { DSPF_RGB332, "RGB332" }, { DSPF_UYVY, "UYVY" }, { DSPF_I420, "I420" }, { DSPF_YV12, "YV12" }, { DSPF_LUT8, "LUT8" }, { DSPF_ALUT44, "ALUT44" }, { DSPF_AiRGB, "AiRGB" }, { DSPF_A1, "A1" }, { DSPF_NV12, "NV12" }, { DSPF_NV16, "NV16" }, { DSPF_ARGB2554, "ARGB2554" }, { DSPF_ARGB4444, "ARGB4444" }, { DSPF_NV21, "NV21" }, { DSPF_AYUV, "AYUV" }, { DSPF_UNKNOWN, "UNKNOWN" } }; # 32 "/usr/include/directfb/directfb_strings.h" #define DirectFBInputDeviceTypeFlagsNames(Identifier) struct DFBInputDeviceTypeFlagsName { DFBInputDeviceTypeFlags type; const char *name; } Identifier[] = { { DIDTF_KEYBOARD, "KEYBOARD" }, { DIDTF_MOUSE, "MOUSE" }, { DIDTF_JOYSTICK, "JOYSTICK" }, { DIDTF_REMOTE, "REMOTE" }, { DIDTF_VIRTUAL, "VIRTUAL" }, { DIDTF_NONE, "NONE" } }; # 44 "/usr/include/directfb/directfb_strings.h" #define DirectFBSurfaceDrawingFlagsNames(Identifier) struct DFBSurfaceDrawingFlagsName { DFBSurfaceDrawingFlags flag; const char *name; } Identifier[] = { { DSDRAW_BLEND, "BLEND" }, { DSDRAW_DST_COLORKEY, "DST_COLORKEY" }, { DSDRAW_SRC_PREMULTIPLY, "SRC_PREMULTIPLY" }, { DSDRAW_DST_PREMULTIPLY, "DST_PREMULTIPLY" }, { DSDRAW_DEMULTIPLY, "DEMULTIPLY" }, { DSDRAW_XOR, "XOR" }, { DSDRAW_NOFX, "NOFX" } }; # 57 "/usr/include/directfb/directfb_strings.h" #define DirectFBSurfaceBlittingFlagsNames(Identifier) struct DFBSurfaceBlittingFlagsName { DFBSurfaceBlittingFlags flag; const char *name; } Identifier[] = { { DSBLIT_BLEND_ALPHACHANNEL, "BLEND_ALPHACHANNEL" }, { DSBLIT_BLEND_COLORALPHA, "BLEND_COLORALPHA" }, { DSBLIT_COLORIZE, "COLORIZE" }, { DSBLIT_SRC_COLORKEY, "SRC_COLORKEY" }, { DSBLIT_DST_COLORKEY, "DST_COLORKEY" }, { DSBLIT_SRC_PREMULTIPLY, "SRC_PREMULTIPLY" }, { DSBLIT_DST_PREMULTIPLY, "DST_PREMULTIPLY" }, { DSBLIT_DEMULTIPLY, "DEMULTIPLY" }, { DSBLIT_DEINTERLACE, "DEINTERLACE" }, { DSBLIT_SRC_PREMULTCOLOR, "SRC_PREMULTCOLOR" }, { DSBLIT_XOR, "XOR" }, { DSBLIT_NOFX, "NOFX" } }; # 75 "/usr/include/directfb/directfb_strings.h" #define DirectFBInputDeviceCapabilitiesNames(Identifier) struct DFBInputDeviceCapabilitiesName { DFBInputDeviceCapabilities capability; const char *name; } Identifier[] = { { DICAPS_KEYS, "KEYS" }, { DICAPS_AXES, "AXES" }, { DICAPS_BUTTONS, "BUTTONS" }, { DICAPS_NONE, "NONE" } }; # 85 "/usr/include/directfb/directfb_strings.h" #define DirectFBDisplayLayerTypeFlagsNames(Identifier) struct DFBDisplayLayerTypeFlagsName { DFBDisplayLayerTypeFlags type; const char *name; } Identifier[] = { { DLTF_GRAPHICS, "GRAPHICS" }, { DLTF_VIDEO, "VIDEO" }, { DLTF_STILL_PICTURE, "STILL_PICTURE" }, { DLTF_BACKGROUND, "BACKGROUND" }, { DLTF_NONE, "NONE" } }; # 96 "/usr/include/directfb/directfb_strings.h" #define DirectFBDisplayLayerCapabilitiesNames(Identifier) struct DFBDisplayLayerCapabilitiesName { DFBDisplayLayerCapabilities capability; const char *name; } Identifier[] = { { DLCAPS_SURFACE, "SURFACE" }, { DLCAPS_OPACITY, "OPACITY" }, { DLCAPS_ALPHACHANNEL, "ALPHACHANNEL" }, { DLCAPS_SCREEN_LOCATION, "SCREEN_LOCATION" }, { DLCAPS_FLICKER_FILTERING, "FLICKER_FILTERING" }, { DLCAPS_DEINTERLACING, "DEINTERLACING" }, { DLCAPS_SRC_COLORKEY, "SRC_COLORKEY" }, { DLCAPS_DST_COLORKEY, "DST_COLORKEY" }, { DLCAPS_BRIGHTNESS, "BRIGHTNESS" }, { DLCAPS_CONTRAST, "CONTRAST" }, { DLCAPS_HUE, "HUE" }, { DLCAPS_SATURATION, "SATURATION" }, { DLCAPS_LEVELS, "LEVELS" }, { DLCAPS_FIELD_PARITY, "FIELD_PARITY" }, { DLCAPS_WINDOWS, "WINDOWS" }, { DLCAPS_SOURCES, "SOURCES" }, { DLCAPS_ALPHA_RAMP, "ALPHA_RAMP" }, { DLCAPS_PREMULTIPLIED, "PREMULTIPLIED" }, { DLCAPS_SCREEN_POSITION, "SCREEN_POSITION" }, { DLCAPS_SCREEN_SIZE, "SCREEN_SIZE" }, { DLCAPS_NONE, "NONE" } }; # 123 "/usr/include/directfb/directfb_strings.h" #define DirectFBDisplayLayerBufferModeNames(Identifier) struct DFBDisplayLayerBufferModeName { DFBDisplayLayerBufferMode mode; const char *name; } Identifier[] = { { DLBM_FRONTONLY, "FRONTONLY" }, { DLBM_BACKVIDEO, "BACKVIDEO" }, { DLBM_BACKSYSTEM, "BACKSYSTEM" }, { DLBM_TRIPLE, "TRIPLE" }, { DLBM_WINDOWS, "WINDOWS" }, { DLBM_UNKNOWN, "UNKNOWN" } }; # 135 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenCapabilitiesNames(Identifier) struct DFBScreenCapabilitiesName { DFBScreenCapabilities capability; const char *name; } Identifier[] = { { DSCCAPS_VSYNC, "VSYNC" }, { DSCCAPS_POWER_MANAGEMENT, "POWER_MANAGEMENT" }, { DSCCAPS_MIXERS, "MIXERS" }, { DSCCAPS_ENCODERS, "ENCODERS" }, { DSCCAPS_OUTPUTS, "OUTPUTS" }, { DSCCAPS_NONE, "NONE" } }; # 147 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenEncoderCapabilitiesNames(Identifier) struct DFBScreenEncoderCapabilitiesName { DFBScreenEncoderCapabilities capability; const char *name; } Identifier[] = { { DSECAPS_TV_STANDARDS, "TV_STANDARDS" }, { DSECAPS_TEST_PICTURE, "TEST_PICTURE" }, { DSECAPS_MIXER_SEL, "MIXER_SEL" }, { DSECAPS_OUT_SIGNALS, "OUT_SIGNALS" }, { DSECAPS_SCANMODE, "SCANMODE" }, { DSECAPS_BRIGHTNESS, "BRIGHTNESS" }, { DSECAPS_CONTRAST, "CONTRAST" }, { DSECAPS_HUE, "HUE" }, { DSECAPS_SATURATION, "SATURATION" }, { DSECAPS_NONE, "NONE" } }; # 163 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenEncoderTypeNames(Identifier) struct DFBScreenEncoderTypeName { DFBScreenEncoderType type; const char *name; } Identifier[] = { { DSET_CRTC, "CRTC" }, { DSET_TV, "TV" }, { DSET_UNKNOWN, "UNKNOWN" } }; # 172 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenEncoderTVStandardsNames(Identifier) struct DFBScreenEncoderTVStandardsName { DFBScreenEncoderTVStandards standard; const char *name; } Identifier[] = { { DSETV_PAL, "PAL" }, { DSETV_NTSC, "NTSC" }, { DSETV_SECAM, "SECAM" }, { DSETV_UNKNOWN, "UNKNOWN" } }; # 182 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenOutputCapabilitiesNames(Identifier) struct DFBScreenOutputCapabilitiesName { DFBScreenOutputCapabilities capability; const char *name; } Identifier[] = { { DSOCAPS_CONNECTORS, "CONNECTORS" }, { DSOCAPS_ENCODER_SEL, "ENCODER_SEL" }, { DSOCAPS_SIGNAL_SEL, "SIGNAL_SEL" }, { DSOCAPS_CONNECTOR_SEL, "CONNECTOR_SEL" }, { DSOCAPS_NONE, "NONE" } }; # 193 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenOutputConnectorsNames(Identifier) struct DFBScreenOutputConnectorsName { DFBScreenOutputConnectors connector; const char *name; } Identifier[] = { { DSOC_VGA, "VGA" }, { DSOC_SCART, "SCART" }, { DSOC_YC, "YC" }, { DSOC_CVBS, "CVBS" }, { DSOC_UNKNOWN, "UNKNOWN" } }; # 204 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenOutputSignalsNames(Identifier) struct DFBScreenOutputSignalsName { DFBScreenOutputSignals signal; const char *name; } Identifier[] = { { DSOS_VGA, "VGA" }, { DSOS_YC, "YC" }, { DSOS_CVBS, "CVBS" }, { DSOS_RGB, "RGB" }, { DSOS_YCBCR, "YCBCR" }, { DSOS_NONE, "NONE" } }; # 216 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenMixerCapabilitiesNames(Identifier) struct DFBScreenMixerCapabilitiesName { DFBScreenMixerCapabilities capability; const char *name; } Identifier[] = { { DSMCAPS_FULL, "FULL" }, { DSMCAPS_SUB_LEVEL, "SUB_LEVEL" }, { DSMCAPS_SUB_LAYERS, "SUB_LAYERS" }, { DSMCAPS_BACKGROUND, "BACKGROUND" }, { DSMCAPS_NONE, "NONE" } }; # 227 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenMixerTreeNames(Identifier) struct DFBScreenMixerTreeName { DFBScreenMixerTree tree; const char *name; } Identifier[] = { { DSMT_FULL, "FULL" }, { DSMT_SUB_LEVEL, "SUB_LEVEL" }, { DSMT_SUB_LAYERS, "SUB_LAYERS" }, { DSMT_UNKNOWN, "UNKNOWN" } }; # 237 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenEncoderTestPictureNames(Identifier) struct DFBScreenEncoderTestPictureName { DFBScreenEncoderTestPicture test_picture; const char *name; } Identifier[] = { { DSETP_MULTI, "MULTI" }, { DSETP_SINGLE, "SINGLE" }, { DSETP_WHITE, "WHITE" }, { DSETP_YELLOW, "YELLOW" }, { DSETP_CYAN, "CYAN" }, { DSETP_GREEN, "GREEN" }, { DSETP_MAGENTA, "MAGENTA" }, { DSETP_RED, "RED" }, { DSETP_BLUE, "BLUE" }, { DSETP_BLACK, "BLACK" }, { DSETP_OFF, "OFF" } }; # 254 "/usr/include/directfb/directfb_strings.h" #define DirectFBScreenEncoderScanModeNames(Identifier) struct DFBScreenEncoderScanModeName { DFBScreenEncoderScanMode scan_mode; const char *name; } Identifier[] = { { DSESM_INTERLACED, "INTERLACED" }, { DSESM_PROGRESSIVE, "PROGRESSIVE" }, { DSESM_UNKNOWN, "UNKNOWN" } }; # 263 "/usr/include/directfb/directfb_strings.h" #define DirectFBAccelerationMaskNames(Identifier) struct DFBAccelerationMaskName { DFBAccelerationMask mask; const char *name; } Identifier[] = { { DFXL_FILLRECTANGLE, "FILLRECTANGLE" }, { DFXL_DRAWRECTANGLE, "DRAWRECTANGLE" }, { DFXL_DRAWLINE, "DRAWLINE" }, { DFXL_FILLTRIANGLE, "FILLTRIANGLE" }, { DFXL_BLIT, "BLIT" }, { DFXL_STRETCHBLIT, "STRETCHBLIT" }, { DFXL_TEXTRIANGLES, "TEXTRIANGLES" }, { DFXL_DRAWSTRING, "DRAWSTRING" }, { DFXL_NONE, "NONE" } }; # 31 "video_out_dfb.c" 2 # 1 "/usr/include/directfb-internal/core/coredefs.h" 1 # 29 "/usr/include/directfb-internal/core/coredefs.h" #define __COREDEFS_H__ #define DFB_DYNAMIC_LINKING #define MAX_INPUTDEVICES 32 #define MAX_LAYERS 24 #define MAX_SCREENS 16 #define MAX_INPUT_GLOBALS 8 # 33 "video_out_dfb.c" 2 # 1 "/usr/include/directfb-internal/core/coretypes.h" 1 # 29 "/usr/include/directfb-internal/core/coretypes.h" #define __CORETYPES_H__ typedef struct __DFB_CoreDFB CoreDFB; typedef struct __DFB_CoreDFBShared CoreDFBShared; typedef struct _CoreCleanup CoreCleanup; typedef struct _CoreFont CoreFont; typedef struct _CorePalette CorePalette; typedef struct _CoreSurface CoreSurface; typedef struct _SurfaceBuffer SurfaceBuffer; typedef struct _SurfaceManager SurfaceManager; typedef struct _CardState CardState; typedef struct _Chunk Chunk; typedef struct _GraphicsDevice GraphicsDevice; typedef struct _GraphicsDevice CoreGraphicsDevice; typedef struct __DFB_CoreGraphicsSerial CoreGraphicsSerial; typedef struct __DFB_CoreScreen CoreScreen; typedef struct __DFB_CoreInputDevice CoreInputDevice; typedef struct __DFB_CoreLayer CoreLayer; typedef struct __DFB_CoreLayerContext CoreLayerContext; typedef struct __DFB_CoreLayerRegion CoreLayerRegion; typedef struct __DFB_CoreLayerRegionConfig CoreLayerRegionConfig; typedef struct __DFB_CoreWindow CoreWindow; typedef struct __DFB_CoreWindowConfig CoreWindowConfig; typedef struct __DFB_CoreWindowStack CoreWindowStack; # 34 "video_out_dfb.c" 2 # 1 "/usr/include/directfb-internal/core/state.h" 1 # 29 "/usr/include/directfb-internal/core/state.h" #define __CORE__STATE_H__ # 1 "/usr/include/pthread.h" 1 3 4 # 32 "/usr/include/directfb-internal/core/state.h" 2 # 1 "/usr/include/directfb/direct/serial.h" 1 # 29 "/usr/include/directfb/direct/serial.h" #define __DIRECT__SERIAL_H__ # 1 "/usr/include/directfb/direct/types.h" 1 # 29 "/usr/include/directfb/direct/types.h" #define __DIRECT__TYPES_H__ typedef DFBResult DirectResult; # 46 "/usr/include/directfb/direct/types.h" #define false (0) #define true (!false) typedef u_int8_t bool; typedef u_int32_t unichar; typedef struct __D_DirectConfig DirectConfig; typedef struct __D_DirectHash DirectHash; typedef struct __D_DirectLink DirectLink; typedef struct __D_DirectLog DirectLog; typedef struct __D_DirectModuleDir DirectModuleDir; typedef struct __D_DirectModuleEntry DirectModuleEntry; typedef struct __D_DirectSerial DirectSerial; typedef struct __D_DirectSignalHandler DirectSignalHandler; typedef struct __D_DirectStream DirectStream; typedef struct __D_DirectTraceBuffer DirectTraceBuffer; typedef struct __D_DirectTree DirectTree; typedef struct __D_DirectThread DirectThread; typedef struct __D_DirectThreadInitHandler DirectThreadInitHandler; # 32 "/usr/include/directfb/direct/serial.h" 2 # 1 "/usr/include/directfb/direct/debug.h" 1 # 29 "/usr/include/directfb/direct/debug.h" #define __DIRECT__DEBUG_H__ # 1 "/usr/include/directfb/direct/build.h" 1 # 29 "/usr/include/directfb/direct/build.h" #define __DIRECT__BUILD_H__ #define DIRECT_BUILD_DEBUG (0) #define DIRECT_BUILD_DEBUGS (1) #define DIRECT_BUILD_TRACE (0) #define DIRECT_BUILD_TEXT (1) #define DIRECT_BUILD_GETTID (1) # 32 "/usr/include/directfb/direct/debug.h" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 34 "/usr/include/directfb/direct/debug.h" 2 # 1 "/usr/include/errno.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/errno.h" 1 3 4 # 28 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 #define _ERRNO_H 1 # 1 "/usr/include/features.h" 1 3 4 # 30 "/usr/include/gentoo-multilib/amd64/errno.h" 2 3 4 # 1 "/usr/include/bits/errno.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 1 3 4 # 22 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 3 4 #undef EDOM #undef EILSEQ #undef ERANGE # 1 "/usr/include/linux/errno.h" 1 3 4 #define _LINUX_ERRNO_H # 1 "/usr/include/asm/errno.h" 1 3 4 #define __ASM_STUB_ERRNO_H # 1 "/usr/include/asm-x86_64/errno.h" 1 3 4 #define _X8664_ERRNO_H # 1 "/usr/include/asm-generic/errno.h" 1 3 4 #define _ASM_GENERIC_ERRNO_H # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 #define _ASM_GENERIC_ERRNO_BASE_H #define EPERM 1 #define ENOENT 2 #define ESRCH 3 #define EINTR 4 #define EIO 5 #define ENXIO 6 #define E2BIG 7 #define ENOEXEC 8 #define EBADF 9 #define ECHILD 10 #define EAGAIN 11 #define ENOMEM 12 #define EACCES 13 #define EFAULT 14 #define ENOTBLK 15 #define EBUSY 16 #define EEXIST 17 #define EXDEV 18 #define ENODEV 19 #define ENOTDIR 20 #define EISDIR 21 #define EINVAL 22 #define ENFILE 23 #define EMFILE 24 #define ENOTTY 25 #define ETXTBSY 26 #define EFBIG 27 #define ENOSPC 28 #define ESPIPE 29 #define EROFS 30 #define EMLINK 31 #define EPIPE 32 #define EDOM 33 #define ERANGE 34 # 5 "/usr/include/asm-generic/errno.h" 2 3 4 #define EDEADLK 35 #define ENAMETOOLONG 36 #define ENOLCK 37 #define ENOSYS 38 #define ENOTEMPTY 39 #define ELOOP 40 #define EWOULDBLOCK EAGAIN #define ENOMSG 42 #define EIDRM 43 #define ECHRNG 44 #define EL2NSYNC 45 #define EL3HLT 46 #define EL3RST 47 #define ELNRNG 48 #define EUNATCH 49 #define ENOCSI 50 #define EL2HLT 51 #define EBADE 52 #define EBADR 53 #define EXFULL 54 #define ENOANO 55 #define EBADRQC 56 #define EBADSLT 57 #define EDEADLOCK EDEADLK #define EBFONT 59 #define ENOSTR 60 #define ENODATA 61 #define ETIME 62 #define ENOSR 63 #define ENONET 64 #define ENOPKG 65 #define EREMOTE 66 #define ENOLINK 67 #define EADV 68 #define ESRMNT 69 #define ECOMM 70 #define EPROTO 71 #define EMULTIHOP 72 #define EDOTDOT 73 #define EBADMSG 74 #define EOVERFLOW 75 #define ENOTUNIQ 76 #define EBADFD 77 #define EREMCHG 78 #define ELIBACC 79 #define ELIBBAD 80 #define ELIBSCN 81 #define ELIBMAX 82 #define ELIBEXEC 83 #define EILSEQ 84 #define ERESTART 85 #define ESTRPIPE 86 #define EUSERS 87 #define ENOTSOCK 88 #define EDESTADDRREQ 89 #define EMSGSIZE 90 #define EPROTOTYPE 91 #define ENOPROTOOPT 92 #define EPROTONOSUPPORT 93 #define ESOCKTNOSUPPORT 94 #define EOPNOTSUPP 95 #define EPFNOSUPPORT 96 #define EAFNOSUPPORT 97 #define EADDRINUSE 98 #define EADDRNOTAVAIL 99 #define ENETDOWN 100 #define ENETUNREACH 101 #define ENETRESET 102 #define ECONNABORTED 103 #define ECONNRESET 104 #define ENOBUFS 105 #define EISCONN 106 #define ENOTCONN 107 #define ESHUTDOWN 108 #define ETOOMANYREFS 109 #define ETIMEDOUT 110 #define ECONNREFUSED 111 #define EHOSTDOWN 112 #define EHOSTUNREACH 113 #define EALREADY 114 #define EINPROGRESS 115 #define ESTALE 116 #define EUCLEAN 117 #define ENOTNAM 118 #define ENAVAIL 119 #define EISNAM 120 #define EREMOTEIO 121 #define EDQUOT 122 #define ENOMEDIUM 123 #define EMEDIUMTYPE 124 #define ECANCELED 125 #define ENOKEY 126 #define EKEYEXPIRED 127 #define EKEYREVOKED 128 #define EKEYREJECTED 129 #define EOWNERDEAD 130 #define ENOTRECOVERABLE 131 # 5 "/usr/include/asm-x86_64/errno.h" 2 3 4 # 6 "/usr/include/asm/errno.h" 2 3 4 # 5 "/usr/include/linux/errno.h" 2 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 2 3 4 #define ENOTSUP EOPNOTSUPP # 43 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 3 4 extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); #define errno (*__errno_location ()) # 9 "/usr/include/bits/errno.h" 2 3 4 # 37 "/usr/include/gentoo-multilib/amd64/errno.h" 2 3 4 #undef __need_Emath # 55 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 extern char *program_invocation_name, *program_invocation_short_name; # 69 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 typedef int error_t; #define __error_t_defined 1 #undef __need_error_t # 9 "/usr/include/errno.h" 2 3 4 # 35 "/usr/include/directfb/direct/debug.h" 2 # 1 "/usr/include/directfb/direct/conf.h" 1 # 29 "/usr/include/directfb/direct/conf.h" #define __DIRECT__CONF_H__ # 1 "/usr/include/sys/signal.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/signal.h" 1 3 4 # 1 "/usr/include/signal.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/signal.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 #define _SIGNAL_H # 1 "/usr/include/features.h" 1 3 4 # 30 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4 # 43 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 #define _SIGSET_H_fns 1 #define _EXTERN_INLINE extern __inline #define __sigmask(sig) (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int)))) #define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int))) #define __sigemptyset(set) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__set = (set); while (--__cnt >= 0) __set->__val[__cnt] = 0; 0; })) #define __sigfillset(set) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__set = (set); while (--__cnt >= 0) __set->__val[__cnt] = ~0UL; 0; })) # 72 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 #define __sigisemptyset(set) (__extension__ ({ int __cnt = _SIGSET_NWORDS; const sigset_t *__set = (set); int __ret = __set->__val[--__cnt]; while (!__ret && --__cnt >= 0) __ret = __set->__val[__cnt]; __ret == 0; })) #define __sigandset(dest,left,right) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__dest = (dest); const sigset_t *__left = (left); const sigset_t *__right = (right); while (--__cnt >= 0) __dest->__val[__cnt] = (__left->__val[__cnt] & __right->__val[__cnt]); 0; })) # 88 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 #define __sigorset(dest,left,right) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__dest = (dest); const sigset_t *__left = (left); const sigset_t *__right = (right); while (--__cnt >= 0) __dest->__val[__cnt] = (__left->__val[__cnt] | __right->__val[__cnt]); 0; })) # 103 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 extern int __sigismember (__const __sigset_t *, int); extern int __sigaddset (__sigset_t *, int); extern int __sigdelset (__sigset_t *, int); #define __SIGSETFN(NAME,BODY,CONST) _EXTERN_INLINE int NAME (CONST __sigset_t *__set, int __sig) { unsigned long int __mask = __sigmask (__sig); unsigned long int __word = __sigword (__sig); return BODY; } # 117 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } #undef __SIGSETFN # 9 "/usr/include/bits/sigset.h" 2 3 4 # 34 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 #define __sig_atomic_t_defined typedef __sig_atomic_t sig_atomic_t; #undef __need_sig_atomic_t #undef __need_sigset_t # 1 "/usr/include/bits/types.h" 1 3 4 # 58 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 1 "/usr/include/bits/signum.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/signum.h" 1 3 4 # 23 "/usr/include/gentoo-multilib/amd64/bits/signum.h" 3 4 #define SIG_ERR ((__sighandler_t) -1) #define SIG_DFL ((__sighandler_t) 0) #define SIG_IGN ((__sighandler_t) 1) #define SIG_HOLD ((__sighandler_t) 2) #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 #define SIGIOT 6 #define SIGBUS 7 #define SIGFPE 8 #define SIGKILL 9 #define SIGUSR1 10 #define SIGSEGV 11 #define SIGUSR2 12 #define SIGPIPE 13 #define SIGALRM 14 #define SIGTERM 15 #define SIGSTKFLT 16 #define SIGCLD SIGCHLD #define SIGCHLD 17 #define SIGCONT 18 #define SIGSTOP 19 #define SIGTSTP 20 #define SIGTTIN 21 #define SIGTTOU 22 #define SIGURG 23 #define SIGXCPU 24 #define SIGXFSZ 25 #define SIGVTALRM 26 #define SIGPROF 27 #define SIGWINCH 28 #define SIGPOLL SIGIO #define SIGIO 29 #define SIGPWR 30 #define SIGSYS 31 #define SIGUNUSED 31 #define _NSIG 65 #define SIGRTMIN (__libc_current_sigrtmin ()) #define SIGRTMAX (__libc_current_sigrtmax ()) #define __SIGRTMIN 32 #define __SIGRTMAX (_NSIG - 1) # 9 "/usr/include/bits/signum.h" 2 3 4 # 59 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 75 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 typedef void (*__sighandler_t) (int); extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern __sighandler_t signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); # 104 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__)); extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__)); extern int raise (int __sig) __attribute__ ((__nothrow__)); extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__)); extern int gsignal (int __sig) __attribute__ ((__nothrow__)); extern void psignal (int __sig, __const char *__s); # 153 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 extern int __sigpause (int __sig_or_mask, int __is_sig); # 162 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); # 178 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 #define sigmask(sig) __sigmask(sig) extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); #define NSIG _NSIG typedef __sighandler_t sighandler_t; typedef __sighandler_t sig_t; #define __need_timespec # 1 "/usr/include/time.h" 1 3 4 # 210 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 1 "/usr/include/bits/siginfo.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/siginfo.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/bits/siginfo.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/siginfo.h" 2 3 4 #define __have_sigval_t 1 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; #define __have_siginfo_t 1 #define __SI_MAX_SIZE 128 #define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) typedef struct siginfo { int si_signo; int si_errno; int si_code; union { int _pad[((128 / sizeof (int)) - 4)]; struct { __pid_t si_pid; __uid_t si_uid; } _kill; struct { int si_tid; int si_overrun; sigval_t si_sigval; } _timer; struct { __pid_t si_pid; __uid_t si_uid; sigval_t si_sigval; } _rt; struct { __pid_t si_pid; __uid_t si_uid; int si_status; __clock_t si_utime; __clock_t si_stime; } _sigchld; struct { void *si_addr; } _sigfault; struct { long int si_band; int si_fd; } _sigpoll; } _sifields; } siginfo_t; #define si_pid _sifields._kill.si_pid #define si_uid _sifields._kill.si_uid #define si_timerid _sifields._timer.si_tid #define si_overrun _sifields._timer.si_overrun #define si_status _sifields._sigchld.si_status #define si_utime _sifields._sigchld.si_utime #define si_stime _sifields._sigchld.si_stime #define si_value _sifields._rt.si_sigval #define si_int _sifields._rt.si_sigval.sival_int #define si_ptr _sifields._rt.si_sigval.sival_ptr #define si_addr _sifields._sigfault.si_addr #define si_band _sifields._sigpoll.si_band #define si_fd _sifields._sigpoll.si_fd enum { SI_ASYNCNL = -60, #define SI_ASYNCNL SI_ASYNCNL SI_TKILL = -6, #define SI_TKILL SI_TKILL SI_SIGIO, #define SI_SIGIO SI_SIGIO SI_ASYNCIO, #define SI_ASYNCIO SI_ASYNCIO SI_MESGQ, #define SI_MESGQ SI_MESGQ SI_TIMER, #define SI_TIMER SI_TIMER SI_QUEUE, #define SI_QUEUE SI_QUEUE SI_USER, #define SI_USER SI_USER SI_KERNEL = 0x80 #define SI_KERNEL SI_KERNEL }; enum { ILL_ILLOPC = 1, #define ILL_ILLOPC ILL_ILLOPC ILL_ILLOPN, #define ILL_ILLOPN ILL_ILLOPN ILL_ILLADR, #define ILL_ILLADR ILL_ILLADR ILL_ILLTRP, #define ILL_ILLTRP ILL_ILLTRP ILL_PRVOPC, #define ILL_PRVOPC ILL_PRVOPC ILL_PRVREG, #define ILL_PRVREG ILL_PRVREG ILL_COPROC, #define ILL_COPROC ILL_COPROC ILL_BADSTK #define ILL_BADSTK ILL_BADSTK }; enum { FPE_INTDIV = 1, #define FPE_INTDIV FPE_INTDIV FPE_INTOVF, #define FPE_INTOVF FPE_INTOVF FPE_FLTDIV, #define FPE_FLTDIV FPE_FLTDIV FPE_FLTOVF, #define FPE_FLTOVF FPE_FLTOVF FPE_FLTUND, #define FPE_FLTUND FPE_FLTUND FPE_FLTRES, #define FPE_FLTRES FPE_FLTRES FPE_FLTINV, #define FPE_FLTINV FPE_FLTINV FPE_FLTSUB #define FPE_FLTSUB FPE_FLTSUB }; enum { SEGV_MAPERR = 1, #define SEGV_MAPERR SEGV_MAPERR SEGV_ACCERR #define SEGV_ACCERR SEGV_ACCERR }; enum { BUS_ADRALN = 1, #define BUS_ADRALN BUS_ADRALN BUS_ADRERR, #define BUS_ADRERR BUS_ADRERR BUS_OBJERR #define BUS_OBJERR BUS_OBJERR }; enum { TRAP_BRKPT = 1, #define TRAP_BRKPT TRAP_BRKPT TRAP_TRACE #define TRAP_TRACE TRAP_TRACE }; enum { CLD_EXITED = 1, #define CLD_EXITED CLD_EXITED CLD_KILLED, #define CLD_KILLED CLD_KILLED CLD_DUMPED, #define CLD_DUMPED CLD_DUMPED CLD_TRAPPED, #define CLD_TRAPPED CLD_TRAPPED CLD_STOPPED, #define CLD_STOPPED CLD_STOPPED CLD_CONTINUED #define CLD_CONTINUED CLD_CONTINUED }; enum { POLL_IN = 1, #define POLL_IN POLL_IN POLL_OUT, #define POLL_OUT POLL_OUT POLL_MSG, #define POLL_MSG POLL_MSG POLL_ERR, #define POLL_ERR POLL_ERR POLL_PRI, #define POLL_PRI POLL_PRI POLL_HUP #define POLL_HUP POLL_HUP }; #undef __need_siginfo_t #define __have_sigevent_t 1 #define __SIGEV_MAX_SIZE 64 #define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 / sizeof (int)) - 4)]; __pid_t _tid; struct { void (*_function) (sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; #define sigev_notify_function _sigev_un._sigev_thread._function #define sigev_notify_attributes _sigev_un._sigev_thread._attribute enum { SIGEV_SIGNAL = 0, #define SIGEV_SIGNAL SIGEV_SIGNAL SIGEV_NONE, #define SIGEV_NONE SIGEV_NONE SIGEV_THREAD, #define SIGEV_THREAD SIGEV_THREAD SIGEV_THREAD_ID = 4 #define SIGEV_THREAD_ID SIGEV_THREAD_ID }; # 9 "/usr/include/bits/siginfo.h" 2 3 4 # 213 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigismember (__const sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigisemptyset (__const sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigandset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int sigorset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); # 1 "/usr/include/bits/sigaction.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigaction.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/bits/sigaction.h" 3 4 struct sigaction { union { __sighandler_t sa_handler; void (*sa_sigaction) (int, siginfo_t *, void *); } __sigaction_handler; #define sa_handler __sigaction_handler.sa_handler #define sa_sigaction __sigaction_handler.sa_sigaction __sigset_t sa_mask; int sa_flags; void (*sa_restorer) (void); }; #define SA_NOCLDSTOP 1 #define SA_NOCLDWAIT 2 #define SA_SIGINFO 4 #define SA_ONSTACK 0x08000000 #define SA_RESTART 0x10000000 #define SA_NODEFER 0x40000000 #define SA_RESETHAND 0x80000000 #define SA_INTERRUPT 0x20000000 #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND #define SA_STACK SA_ONSTACK #define SIG_BLOCK 0 #define SIG_UNBLOCK 1 #define SIG_SETMASK 2 # 9 "/usr/include/bits/sigaction.h" 2 3 4 # 247 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 extern int sigprocmask (int __how, __const sigset_t *__restrict __set, sigset_t *__restrict __oset) __attribute__ ((__nothrow__)); extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1))); extern int sigaction (int __sig, __const struct sigaction *__restrict __act, struct sigaction *__restrict __oact) __attribute__ ((__nothrow__)); extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) __attribute__ ((__nonnull__ (1, 2))); extern int sigwaitinfo (__const sigset_t *__restrict __set, siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); extern int sigtimedwait (__const sigset_t *__restrict __set, siginfo_t *__restrict __info, __const struct timespec *__restrict __timeout) __attribute__ ((__nonnull__ (1))); extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) __attribute__ ((__nothrow__)); # 304 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 extern __const char *__const _sys_siglist[65]; extern __const char *__const sys_siglist[65]; struct sigvec { __sighandler_t sv_handler; int sv_mask; int sv_flags; #define sv_onstack sv_flags }; #define SV_ONSTACK (1 << 0) #define SV_INTERRUPT (1 << 1) #define SV_RESETHAND (1 << 2) extern int sigvec (int __sig, __const struct sigvec *__vec, struct sigvec *__ovec) __attribute__ ((__nothrow__)); # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 1 3 4 # 20 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 3 4 #define _BITS_SIGCONTEXT_H 1 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 27 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 2 3 4 struct _fpreg { unsigned short significand[4]; unsigned short exponent; }; struct _fpxreg { unsigned short significand[4]; unsigned short exponent; unsigned short padding[3]; }; struct _xmmreg { __uint32_t element[4]; }; # 109 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 3 4 struct _fpstate { __uint16_t cwd; __uint16_t swd; __uint16_t ftw; __uint16_t fop; __uint64_t rip; __uint64_t rdp; __uint32_t mxcsr; __uint32_t mxcr_mask; struct _fpxreg _st[8]; struct _xmmreg _xmm[16]; __uint32_t padding[24]; }; struct sigcontext { unsigned long r8; unsigned long r9; unsigned long r10; unsigned long r11; unsigned long r12; unsigned long r13; unsigned long r14; unsigned long r15; unsigned long rdi; unsigned long rsi; unsigned long rbp; unsigned long rbx; unsigned long rdx; unsigned long rax; unsigned long rcx; unsigned long rsp; unsigned long rip; unsigned long eflags; unsigned short cs; unsigned short gs; unsigned short fs; unsigned short __pad0; unsigned long err; unsigned long trapno; unsigned long oldmask; unsigned long cr2; struct _fpstate * fpstate; unsigned long __reserved1 [8]; }; # 9 "/usr/include/bits/sigcontext.h" 2 3 4 # 334 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__)); # 346 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__)); # 1 "/usr/include/bits/sigstack.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigstack.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/sigstack.h" 3 4 struct sigstack { void *ss_sp; int ss_onstack; }; enum { SS_ONSTACK = 1, #define SS_ONSTACK SS_ONSTACK SS_DISABLE #define SS_DISABLE SS_DISABLE }; #define MINSIGSTKSZ 2048 #define SIGSTKSZ 8192 typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 9 "/usr/include/bits/sigstack.h" 2 3 4 # 349 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 1 "/usr/include/sys/ucontext.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 1 3 4 # 20 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 3 4 #define _SYS_UCONTEXT_H 1 # 1 "/usr/include/features.h" 1 3 4 # 23 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 # 1 "/usr/include/signal.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 25 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 # 1 "/usr/include/bits/sigcontext.h" 1 3 4 # 29 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 typedef long int greg_t; #define NGREG 23 typedef greg_t gregset_t[23]; enum { REG_R8 = 0, #define REG_R8 REG_R8 REG_R9, #define REG_R9 REG_R9 REG_R10, #define REG_R10 REG_R10 REG_R11, #define REG_R11 REG_R11 REG_R12, #define REG_R12 REG_R12 REG_R13, #define REG_R13 REG_R13 REG_R14, #define REG_R14 REG_R14 REG_R15, #define REG_R15 REG_R15 REG_RDI, #define REG_RDI REG_RDI REG_RSI, #define REG_RSI REG_RSI REG_RBP, #define REG_RBP REG_RBP REG_RBX, #define REG_RBX REG_RBX REG_RDX, #define REG_RDX REG_RDX REG_RAX, #define REG_RAX REG_RAX REG_RCX, #define REG_RCX REG_RCX REG_RSP, #define REG_RSP REG_RSP REG_RIP, #define REG_RIP REG_RIP REG_EFL, #define REG_EFL REG_EFL REG_CSGSFS, #define REG_CSGSFS REG_CSGSFS REG_ERR, #define REG_ERR REG_ERR REG_TRAPNO, #define REG_TRAPNO REG_TRAPNO REG_OLDMASK, #define REG_OLDMASK REG_OLDMASK REG_CR2 #define REG_CR2 REG_CR2 }; struct _libc_fpxreg { unsigned short int significand[4]; unsigned short int exponent; unsigned short int padding[3]; }; struct _libc_xmmreg { __uint32_t element[4]; }; struct _libc_fpstate { __uint16_t cwd; __uint16_t swd; __uint16_t ftw; __uint16_t fop; __uint64_t rip; __uint64_t rdp; __uint32_t mxcsr; __uint32_t mxcr_mask; struct _libc_fpxreg _st[8]; struct _libc_xmmreg _xmm[16]; __uint32_t padding[24]; }; typedef struct _libc_fpstate *fpregset_t; typedef struct { gregset_t gregs; fpregset_t fpregs; unsigned long __reserved1 [8]; } mcontext_t; typedef struct ucontext { unsigned long int uc_flags; struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; __sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; } ucontext_t; # 9 "/usr/include/sys/ucontext.h" 2 3 4 # 352 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); extern int sigaltstack (__const struct sigaltstack *__restrict __ss, struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__)); extern int sighold (int __sig) __attribute__ ((__nothrow__)); extern int sigrelse (int __sig) __attribute__ ((__nothrow__)); extern int sigignore (int __sig) __attribute__ ((__nothrow__)); extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__)); # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 387 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 # 1 "/usr/include/bits/sigthread.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigthread.h" 1 3 4 # 21 "/usr/include/gentoo-multilib/amd64/bits/sigthread.h" 3 4 #define _BITS_SIGTHREAD_H 1 # 31 "/usr/include/gentoo-multilib/amd64/bits/sigthread.h" 3 4 extern int pthread_sigmask (int __how, __const __sigset_t *__restrict __newmask, __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__)); extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__)); # 9 "/usr/include/bits/sigthread.h" 2 3 4 # 388 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__)); extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__)); # 9 "/usr/include/signal.h" 2 3 4 # 1 "/usr/include/gentoo-multilib/amd64/sys/signal.h" 2 3 4 # 9 "/usr/include/sys/signal.h" 2 3 4 # 36 "/usr/include/directfb/direct/conf.h" 2 typedef enum { DCFL_NONE, DCFL_ASSERT, DCFL_ASSUME } DirectConfigFatalLevel; struct __D_DirectConfig { bool quiet; bool debug; bool trace; char *memcpy; char **disable_module; bool sighandler; sigset_t dont_catch; DirectLog *log; DirectConfigFatalLevel fatal; }; extern DirectConfig *direct_config; # 37 "/usr/include/directfb/direct/debug.h" 2 # 1 "/usr/include/directfb/direct/log.h" 1 # 29 "/usr/include/directfb/direct/log.h" #define __DIRECT__LOG_H__ # 1 "/usr/include/directfb/direct/messages.h" 1 # 29 "/usr/include/directfb/direct/messages.h" #define __DIRECT__MESSAGES_H__ #define D_FORMAT_PRINTF(n) __attribute__((__format__ (__printf__, n, n+1))) # 1 "/usr/include/errno.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/errno.h" 1 3 4 # 72 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 #undef __need_error_t # 9 "/usr/include/errno.h" 2 3 4 # 44 "/usr/include/directfb/direct/messages.h" 2 void direct_messages_info ( const char *format, ... ) __attribute__((__format__ (__printf__, 1, 1 +1))); void direct_messages_error ( const char *format, ... ) __attribute__((__format__ (__printf__, 1, 1 +1))); void direct_messages_derror ( DirectResult result, const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); void direct_messages_perror ( int erno, const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); void direct_messages_dlerror ( const char *dlerr, const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); void direct_messages_once ( const char *func, const char *file, int line, const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); void direct_messages_unimplemented( const char *func, const char *file, int line ); void direct_messages_bug ( const char *func, const char *file, int line, const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); void direct_messages_warn ( const char *func, const char *file, int line, const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); #define D_INFO(x...) do { if (!direct_config->quiet) direct_messages_info( x ); } while (0) #define D_ERROR(x...) do { if (!direct_config->quiet) direct_messages_error( x ); } while (0) #define D_DERROR(r,x...) do { if (!direct_config->quiet) direct_messages_derror( r, x ); } while (0) #define D_PERROR(x...) do { if (!direct_config->quiet) direct_messages_perror( errno, x ); } while (0) #define D_DLERROR(x...) do { if (!direct_config->quiet) direct_messages_dlerror( dlerror(), x ); } while (0) #define D_ONCE(x...) do { if (!direct_config->quiet) { static bool first = true; if (first) { direct_messages_once( __FUNCTION__, __FILE__, __LINE__, x ); first = false; } } } while (0) # 118 "/usr/include/directfb/direct/messages.h" #define D_UNIMPLEMENTED() do { if (!direct_config->quiet) { static bool first = true; if (first) { direct_messages_unimplemented( __FUNCTION__, __FILE__, __LINE__ ); first = false; } } } while (0) # 129 "/usr/include/directfb/direct/messages.h" #define D_BUG(x...) do { if (!direct_config->quiet) direct_messages_bug( __FUNCTION__, __FILE__, __LINE__, x ); } while (0) #define D_WARN(x...) do { if (!direct_config->quiet) direct_messages_warn( __FUNCTION__, __FILE__, __LINE__, x ); } while (0) #define D_OOM() (direct_messages_warn( __FUNCTION__, __FILE__, __LINE__, "out of memory" ), DFB_NOSYSTEMMEMORY) # 33 "/usr/include/directfb/direct/log.h" 2 typedef enum { DLT_STDERR, DLT_FILE, DLT_UDP } DirectLogType; # 50 "/usr/include/directfb/direct/log.h" DirectResult direct_log_create ( DirectLogType type, const char *param, DirectLog **ret_log ); DirectResult direct_log_destroy ( DirectLog *log ); DirectResult direct_log_printf ( DirectLog *log, const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); DirectResult direct_log_set_default( DirectLog *log ); # 38 "/usr/include/directfb/direct/debug.h" 2 # 1 "/usr/include/directfb/direct/system.h" 1 # 29 "/usr/include/directfb/direct/system.h" #define __DIRECT__SYSTEM_H__ # 1 "/usr/include/sys/types.h" 1 3 4 # 32 "/usr/include/directfb/direct/system.h" 2 pid_t direct_gettid(); long direct_pagesize(); # 40 "/usr/include/directfb/direct/debug.h" 2 # 1 "/usr/include/directfb/direct/util.h" 1 # 29 "/usr/include/directfb/direct/util.h" #define __DIRECT__UTIL_H__ # 1 "/usr/include/pthread.h" 1 3 4 # 35 "/usr/include/directfb/direct/util.h" 2 #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) #define SIGN(x) (((x) < 0) ? -1 : (((x) > 0) ? 1 : 0)) #define ABS(x) ((x) > 0 ? (x) : -(x)) #define CLAMP(x,min,max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x)) #define D_FLAGS_SET(flags,f) do { (flags) |= (f); } while (0) #define D_FLAGS_CLEAR(flags,f) do { (flags) &= ~(f); } while (0) #define D_FLAGS_IS_SET(flags,f) (((flags) & (f)) != 0) #define D_FLAGS_ARE_SET(flags,f) (((flags) & (f)) == (f)) #define D_FLAGS_ARE_IN(flags,f) (((flags) & ~(f)) == 0) #define D_FLAGS_INVALID(flags,f) (((flags) & ~(f)) != 0) #define D_FLAGS_ASSERT(flags,f) D_ASSERT( D_FLAGS_ARE_IN(flags,f) ) #define D_ARRAY_SIZE(array) ((int)(sizeof(array) / sizeof((array)[0]))) #define D_CONST_FUNC __attribute__((const)) # 78 "/usr/include/directfb/direct/util.h" DirectResult errno2result( int erno ); const char *DirectResultString( DirectResult result ); int direct_try_open( const char *name1, const char *name2, int flags, bool error_msg ); void direct_trim( char **s ); static inline int direct_util_count_bits( unsigned int mask ) { register int ret = 0; while (mask) { ret += mask & 1; mask >>= 1; } return ret; } static inline int direct_util_align( int value, int alignment ) { if (alignment > 1) { int tail = value % alignment; if (tail) value += alignment - tail; } return value; } int direct_util_recursive_pthread_mutex_init( pthread_mutex_t *mutex ); # 135 "/usr/include/directfb/direct/util.h" static inline int D_IFLOOR(float f) { int ai, bi; double af, bf; af = (3 << 22) + 0.5 + (double)f; bf = (3 << 22) + 0.5 - (double)f; # 150 "/usr/include/directfb/direct/util.h" { union { int i; float f; } u; u.f = af; ai = u.i; u.f = bf; bi = u.i; } return (ai - bi) >> 1; } # 169 "/usr/include/directfb/direct/util.h" static inline int D_ICEIL(float f) { int ai, bi; double af, bf; af = (3 << 22) + 0.5 + (double)f; bf = (3 << 22) + 0.5 - (double)f; # 184 "/usr/include/directfb/direct/util.h" { union { int i; float f; } u; u.f = af; ai = u.i; u.f = bf; bi = u.i; } return (ai - bi + 1) >> 1; } static inline int direct_log2( int val ) { register int ret = 0; while (val >> ++ret); if ((1 << --ret) < val) ret++; return ret; } # 42 "/usr/include/directfb/direct/debug.h" 2 typedef struct { unsigned int age; bool enabled; bool registered; const char *name; const char *description; } DirectDebugDomain; void direct_debug_config_domain( const char *name, bool enable ); void direct_debug( const char *format, ... ) __attribute__((__format__ (__printf__, 1, 1 +1))); void direct_debug_at( DirectDebugDomain *domain, const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); void direct_debug_enter( DirectDebugDomain *domain, const char *func, const char *file, int line, const char *format, ... ) __attribute__((__format__ (__printf__, 5, 5 +1))); void direct_debug_exit( DirectDebugDomain *domain, const char *func, const char *file, int line, const char *format, ... ) __attribute__((__format__ (__printf__, 5, 5 +1))); void direct_break( const char *func, const char *file, int line, const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); void direct_assertion( const char *exp, const char *func, const char *file, int line ); void direct_assumption( const char *exp, const char *func, const char *file, int line ); # 159 "/usr/include/directfb/direct/debug.h" #define D_DEBUG_ENABLED (0) #define D_HEAVYDEBUG(x...) do {} while (0) #define D_DEBUG_DOMAIN(i,n,d) #define D_DEBUG(x...) do {} while (0) #define D_DEBUG_AT(d,x...) do {} while (0) #define D_DEBUG_ENTER(d,x...) do {} while (0) #define D_DEBUG_EXIT(d,x...) do {} while (0) #define D_ASSERT(exp) do {} while (0) #define D_ASSUME(exp) do {} while (0) #define D_BREAK(x...) do {} while (0) #define D_MAGIC(spell) ( (((spell)[sizeof(spell)*8/9] << 24) | ((spell)[sizeof(spell)*7/9] << 16) | ((spell)[sizeof(spell)*6/9] << 8) | ((spell)[sizeof(spell)*5/9] )) ^ (((spell)[sizeof(spell)*4/9] << 24) | ((spell)[sizeof(spell)*3/9] << 16) | ((spell)[sizeof(spell)*2/9] << 8) | ((spell)[sizeof(spell)*1/9] )) ) # 184 "/usr/include/directfb/direct/debug.h" #define D_MAGIC_SET(o,m) do { D_ASSERT( (o) != NULL ); D_ASSUME( (o)->magic != D_MAGIC(#m) ); (o)->magic = D_MAGIC(#m); } while (0) #define D_MAGIC_SET_ONLY(o,m) do { D_ASSERT( (o) != NULL ); (o)->magic = D_MAGIC(#m); } while (0) #define D_MAGIC_ASSERT(o,m) do { D_ASSERT( (o) != NULL ); D_ASSERT( (o)->magic == D_MAGIC(#m) ); } while (0) #define D_MAGIC_ASSUME(o,m) do { D_ASSUME( (o) != NULL ); if (o) D_ASSUME( (o)->magic == D_MAGIC(#m) ); } while (0) #define D_MAGIC_ASSERT_IF(o,m) do { if (o) D_ASSERT( (o)->magic == D_MAGIC(#m) ); } while (0) #define D_MAGIC_CLEAR(o) do { D_ASSERT( (o) != NULL ); D_ASSUME( (o)->magic != 0 ); (o)->magic = 0; } while (0) # 33 "/usr/include/directfb/direct/serial.h" 2 struct __D_DirectSerial { int magic; u_int32_t value; u_int32_t overflow; }; static inline void direct_serial_init( DirectSerial *serial ) { do {} while (0); serial->value = 0; serial->overflow = 0; do { do {} while (0); do {} while (0); (serial)->magic = ( ((("DirectSerial")[sizeof("DirectSerial")*8/9] << 24) | (("DirectSerial")[sizeof("DirectSerial")*7/9] << 16) | (("DirectSerial")[sizeof("DirectSerial")*6/9] << 8) | (("DirectSerial")[sizeof("DirectSerial")*5/9] )) ^ ((("DirectSerial")[sizeof("DirectSerial")*4/9] << 24) | (("DirectSerial")[sizeof("DirectSerial")*3/9] << 16) | (("DirectSerial")[sizeof("DirectSerial")*2/9] << 8) | (("DirectSerial")[sizeof("DirectSerial")*1/9] )) ); } while (0); } static inline void direct_serial_deinit( DirectSerial *serial ) { do { do {} while (0); do {} while (0); (serial)->magic = 0; } while (0); } static inline void direct_serial_increase( DirectSerial *serial ) { do { do {} while (0); do {} while (0); } while (0); ++serial->value || serial->overflow++; } static inline void direct_serial_copy( DirectSerial *serial, const DirectSerial *source ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); serial->value = source->value; serial->overflow = source->overflow; } static inline bool direct_serial_update( DirectSerial *serial, const DirectSerial *source ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); if (serial->overflow < source->overflow) { serial->overflow = source->overflow; serial->value = source->value; return (!(0)); } else if (serial->overflow == source->overflow && serial->value < source->value) { serial->value = source->value; return (!(0)); } do {} while (0); return (0); } # 36 "/usr/include/directfb-internal/core/state.h" 2 # 1 "/usr/include/directfb/fusion/reactor.h" 1 # 29 "/usr/include/directfb/fusion/reactor.h" #define __FUSION__REACTOR_H__ # 1 "/usr/include/directfb/direct/list.h" 1 # 29 "/usr/include/directfb/direct/list.h" #define __DIRECT__LIST_H__ struct __D_DirectLink { int magic; DirectLink *next; DirectLink *prev; }; static inline void direct_list_prepend( DirectLink **list, DirectLink *link ) { DirectLink *first = *list; link->next = first; if (first) { do { do {} while (0); do {} while (0); } while (0); link->prev = first->prev; first->prev = link; } else link->prev = link; *list = link; do { do {} while (0); do {} while (0); (link)->magic = ( ((("DirectLink")[sizeof("DirectLink")*8/9] << 24) | (("DirectLink")[sizeof("DirectLink")*7/9] << 16) | (("DirectLink")[sizeof("DirectLink")*6/9] << 8) | (("DirectLink")[sizeof("DirectLink")*5/9] )) ^ ((("DirectLink")[sizeof("DirectLink")*4/9] << 24) | (("DirectLink")[sizeof("DirectLink")*3/9] << 16) | (("DirectLink")[sizeof("DirectLink")*2/9] << 8) | (("DirectLink")[sizeof("DirectLink")*1/9] )) ); } while (0); } static inline void direct_list_append( DirectLink **list, DirectLink *link ) { DirectLink *first = *list; link->next = ((void *)0); if (first) { DirectLink *last = first->prev; do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); link->prev = last; last->next = first->prev = link; } else *list = link->prev = link; do { do {} while (0); do {} while (0); (link)->magic = ( ((("DirectLink")[sizeof("DirectLink")*8/9] << 24) | (("DirectLink")[sizeof("DirectLink")*7/9] << 16) | (("DirectLink")[sizeof("DirectLink")*6/9] << 8) | (("DirectLink")[sizeof("DirectLink")*5/9] )) ^ ((("DirectLink")[sizeof("DirectLink")*4/9] << 24) | (("DirectLink")[sizeof("DirectLink")*3/9] << 16) | (("DirectLink")[sizeof("DirectLink")*2/9] << 8) | (("DirectLink")[sizeof("DirectLink")*1/9] )) ); } while (0); } static inline bool direct_list_contains_element_EXPENSIVE( DirectLink *list, DirectLink *link ) { do { if (list) do {} while (0); } while (0); if (!link->prev && !link->next) return (0); while (list) { if (list == link) return (!(0)); list = list->next; } return (0); } static inline int direct_list_count_elements_EXPENSIVE( DirectLink *list ) { int count = 0; while (list) { do { do {} while (0); do {} while (0); } while (0); count++; list = list->next; } return count; } static inline void direct_list_remove( DirectLink **list, DirectLink *link ) { DirectLink *next; DirectLink *prev; do {} while (0); do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); next = link->next; prev = link->prev; if (next) { do { do {} while (0); do {} while (0); } while (0); next->prev = prev; } else (*list)->prev = prev; if (link == *list) *list = next; else { do { do {} while (0); do {} while (0); } while (0); prev->next = next; } link->next = link->prev = ((void *)0); do { do {} while (0); do {} while (0); (link)->magic = 0; } while (0); } static inline bool direct_list_check_link( const DirectLink *link ) { do { if (link) do {} while (0); } while (0); return link != ((void *)0); } #define direct_list_foreach(elem,list) for (elem = (typeof(elem))(list); direct_list_check_link( (DirectLink*)(elem) ); elem = (typeof(elem))(((DirectLink*)(elem))->next)) #define direct_list_foreach_safe(elem,temp,list) for (elem = (typeof(elem))(list), temp = ((typeof(temp))(elem) ? (typeof(temp))(((DirectLink*)(elem))->next) : NULL); direct_list_check_link( (DirectLink*)(elem) ); elem = (typeof(elem))(temp), temp = ((typeof(temp))(elem) ? (typeof(temp))(((DirectLink*)(elem))->next) : NULL)) # 32 "/usr/include/directfb/fusion/reactor.h" 2 # 1 "/usr/include/directfb/fusion/types.h" 1 # 29 "/usr/include/directfb/fusion/types.h" #define __FUSION__TYPES_H__ # 1 "/usr/include/directfb/fusion/build.h" 1 # 29 "/usr/include/directfb/fusion/build.h" #define __FUSION__BUILD_H__ #define FUSION_BUILD_MULTI (0) # 32 "/usr/include/directfb/fusion/types.h" 2 # 46 "/usr/include/directfb/fusion/types.h" typedef unsigned long FusionID; typedef enum { FCEF_NONE = 0x00000000, FCEF_ONEWAY = 0x00000001, FCEF_ALL = 0x00000001 } FusionCallExecFlags; typedef struct __Fusion_FusionConfig FusionConfig; typedef struct __Fusion_FusionArena FusionArena; typedef struct __Fusion_FusionReactor FusionReactor; typedef struct __Fusion_FusionWorld FusionWorld; typedef struct __Fusion_FusionWorldShared FusionWorldShared; typedef struct __Fusion_FusionObject FusionObject; typedef struct __Fusion_FusionObjectPool FusionObjectPool; typedef struct __Fusion_FusionSHM FusionSHM; typedef struct __Fusion_FusionSHMShared FusionSHMShared; typedef struct __Fusion_FusionSHMPool FusionSHMPool; typedef struct __Fusion_FusionSHMPoolShared FusionSHMPoolShared; # 34 "/usr/include/directfb/fusion/reactor.h" 2 # 1 "/usr/include/directfb/fusion/lock.h" 1 # 29 "/usr/include/directfb/fusion/lock.h" #define __FUSION__LOCK_H__ # 1 "/usr/include/pthread.h" 1 3 4 # 32 "/usr/include/directfb/fusion/lock.h" 2 typedef union { struct { int id; const FusionWorldShared *shared; } multi; struct { pthread_mutex_t lock; } single; } FusionSkirmish; DirectResult fusion_skirmish_init ( FusionSkirmish *skirmish, const char *name, const FusionWorld *world ); DirectResult fusion_skirmish_prevail( FusionSkirmish *skirmish ); DirectResult fusion_skirmish_swoop ( FusionSkirmish *skirmish ); DirectResult fusion_skirmish_dismiss( FusionSkirmish *skirmish ); DirectResult fusion_skirmish_destroy( FusionSkirmish *skirmish ); # 35 "/usr/include/directfb/fusion/reactor.h" 2 typedef enum { RS_OK, RS_REMOVE, RS_DROP } ReactionResult; typedef ReactionResult (*ReactionFunc)( const void *msg_data, void *ctx ); typedef struct { DirectLink link; ReactionFunc func; void *ctx; bool attached; } Reaction; typedef struct { DirectLink link; int index; void *ctx; bool attached; } GlobalReaction; FusionReactor *fusion_reactor_new ( int msg_size, const char *name, const FusionWorld *world ); DirectResult fusion_reactor_free ( FusionReactor *reactor ); # 82 "/usr/include/directfb/fusion/reactor.h" DirectResult fusion_reactor_set_lock ( FusionReactor *reactor, FusionSkirmish *skirmish ); DirectResult fusion_reactor_attach ( FusionReactor *reactor, ReactionFunc func, void *ctx, Reaction *reaction ); DirectResult fusion_reactor_detach ( FusionReactor *reactor, Reaction *reaction ); # 111 "/usr/include/directfb/fusion/reactor.h" DirectResult fusion_reactor_attach_global( FusionReactor *reactor, int index, void *ctx, GlobalReaction *reaction ); DirectResult fusion_reactor_detach_global( FusionReactor *reactor, GlobalReaction *reaction ); DirectResult fusion_reactor_dispatch ( FusionReactor *reactor, const void *msg_data, bool self, const ReactionFunc *globals ); # 139 "/usr/include/directfb/fusion/reactor.h" DirectResult fusion_reactor_sized_dispatch( FusionReactor *reactor, const void *msg_data, int msg_size, bool self, const ReactionFunc *globals ); # 38 "/usr/include/directfb-internal/core/state.h" 2 # 1 "/usr/include/directfb-internal/core/gfxcard.h" 1 # 29 "/usr/include/directfb-internal/core/gfxcard.h" #define __GFXCARD_H__ # 1 "/usr/include/pthread.h" 1 3 4 # 32 "/usr/include/directfb-internal/core/gfxcard.h" 2 # 1 "/usr/include/directfb/direct/modules.h" 1 # 29 "/usr/include/directfb/direct/modules.h" #define __DIRECT__MODULES_H__ # 1 "/usr/include/pthread.h" 1 3 4 # 32 "/usr/include/directfb/direct/modules.h" 2 struct __D_DirectModuleEntry { DirectLink link; int magic; DirectModuleDir *directory; bool loaded; bool dynamic; bool disabled; char *name; const void *funcs; int refs; char *file; void *handle; }; struct __D_DirectModuleDir { pthread_mutex_t lock; const char *path; unsigned int abi_version; DirectLink *entries; DirectModuleEntry *loading; }; #define DECLARE_MODULE_DIRECTORY(d) extern DirectModuleDir d #define DEFINE_MODULE_DIRECTORY(d,p,n) DirectModuleDir d = { lock: PTHREAD_MUTEX_INITIALIZER, path: MODULEDIR"/"p, abi_version: n, entries: NULL, loading: NULL } # 80 "/usr/include/directfb/direct/modules.h" int direct_modules_explore_directory( DirectModuleDir *directory ); void direct_modules_register( DirectModuleDir *directory, unsigned int abi_version, const char *name, const void *funcs ); const void *direct_module_ref ( DirectModuleEntry *module ); void direct_module_unref( DirectModuleEntry *module ); # 34 "/usr/include/directfb-internal/core/gfxcard.h" 2 typedef enum { CCF_CLIPPING = 0x00000001, CCF_NOTRIEMU = 0x00000002, CCF_READSYSMEM = 0x00000004, CCF_AUXMEMORY = 0x00000010 } CardCapabilitiesFlags; struct __DFB_CoreGraphicsSerial { unsigned int serial; unsigned int generation; }; typedef struct { CardCapabilitiesFlags flags; DFBAccelerationMask accel; DFBSurfaceBlittingFlags blitting; DFBSurfaceDrawingFlags drawing; } CardCapabilities; typedef struct { unsigned int surface_byteoffset_alignment; unsigned int surface_pixelpitch_alignment; unsigned int surface_bytepitch_alignment; unsigned int surface_max_power_of_two_pixelpitch; unsigned int surface_max_power_of_two_bytepitch; unsigned int surface_max_power_of_two_height; } CardLimitations; extern DirectModuleDir dfb_graphics_drivers; #define DFB_GRAPHICS_DRIVER_ABI_VERSION 32 #define DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH 40 #define DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH 60 #define DFB_GRAPHICS_DRIVER_INFO_URL_LENGTH 100 #define DFB_GRAPHICS_DRIVER_INFO_LICENSE_LENGTH 40 #define DFB_GRAPHICS_DEVICE_INFO_NAME_LENGTH 48 #define DFB_GRAPHICS_DEVICE_INFO_VENDOR_LENGTH 64 typedef struct { int major; int minor; } GraphicsDriverVersion; typedef struct { GraphicsDriverVersion version; char name[40]; char vendor[60]; char url[100]; char license[40]; unsigned int driver_data_size; unsigned int device_data_size; } GraphicsDriverInfo; typedef struct { char name[48]; char vendor[64]; CardCapabilities caps; CardLimitations limits; } GraphicsDeviceInfo; typedef struct _GraphicsDeviceFuncs { void (*AfterSetVar)( void *driver_data, void *device_data ); # 144 "/usr/include/directfb-internal/core/gfxcard.h" void (*EngineReset)( void *driver_data, void *device_data ); # 155 "/usr/include/directfb-internal/core/gfxcard.h" void (*EngineSync)( void *driver_data, void *device_data ); void (*FlushTextureCache)( void *driver_data, void *device_data ); void (*FlushReadCache)( void *driver_data, void *device_data ); void (*SurfaceEnter)( void *driver_data, void *device_data, SurfaceBuffer *buffer, DFBSurfaceLockFlags flags ); void (*SurfaceLeave)( void *driver_data, void *device_data, SurfaceBuffer *buffer ); void (*GetSerial)( void *driver_data, void *device_data, CoreGraphicsSerial *serial ); void (*WaitSerial)( void *driver_data, void *device_data, const CoreGraphicsSerial *serial ); void (*EmitCommands) ( void *driver_data, void *device_data ); void (*CheckState)( void *driver_data, void *device_data, CardState *state, DFBAccelerationMask accel ); # 213 "/usr/include/directfb-internal/core/gfxcard.h" void (*SetState) ( void *driver_data, void *device_data, struct _GraphicsDeviceFuncs *funcs, CardState *state, DFBAccelerationMask accel ); bool (*FillRectangle) ( void *driver_data, void *device_data, DFBRectangle *rect ); bool (*DrawRectangle) ( void *driver_data, void *device_data, DFBRectangle *rect ); bool (*DrawLine) ( void *driver_data, void *device_data, DFBRegion *line ); bool (*FillTriangle) ( void *driver_data, void *device_data, DFBTriangle *tri ); bool (*Blit) ( void *driver_data, void *device_data, DFBRectangle *rect, int dx, int dy ); bool (*StretchBlit) ( void *driver_data, void *device_data, DFBRectangle *srect, DFBRectangle *drect ); bool (*TextureTriangles)( void *driver_data, void *device_data, DFBVertex *vertices, int num, DFBTriangleFormation formation ); } GraphicsDeviceFuncs; typedef struct { int (*Probe) (GraphicsDevice *device); void (*GetDriverInfo) (GraphicsDevice *device, GraphicsDriverInfo *driver_info); DFBResult (*InitDriver) (GraphicsDevice *device, GraphicsDeviceFuncs *funcs, void *driver_data, void *device_data, CoreDFB *core); DFBResult (*InitDevice) (GraphicsDevice *device, GraphicsDeviceInfo *device_info, void *driver_data, void *device_data); void (*CloseDevice) (GraphicsDevice *device, void *driver_data, void *device_data); void (*CloseDriver) (GraphicsDevice *device, void *driver_data); } GraphicsDriverFuncs; typedef enum { GDLF_NONE = 0x00000000, GDLF_WAIT = 0x00000001, GDLF_SYNC = 0x00000002, GDLF_INVALIDATE = 0x00000004, GDLF_RESET = 0x00000008 } GraphicsDeviceLockFlags; DFBResult dfb_gfxcard_lock( GraphicsDeviceLockFlags flags ); void dfb_gfxcard_unlock(); void dfb_gfxcard_holdup(); bool dfb_gfxcard_state_check( CardState *state, DFBAccelerationMask accel ); void dfb_gfxcard_fillrectangles( const DFBRectangle *rects, int num, CardState *state ); void dfb_gfxcard_drawrectangle( DFBRectangle *rect, CardState *state ); void dfb_gfxcard_drawlines( DFBRegion *lines, int num_lines, CardState *state ); void dfb_gfxcard_fillspans( int y, DFBSpan *spans, int num_spans, CardState *state ); void dfb_gfxcard_filltriangle( DFBTriangle *tri, CardState *state ); void dfb_gfxcard_blit( DFBRectangle *rect, int dx, int dy, CardState *state ); void dfb_gfxcard_batchblit( DFBRectangle *rects, DFBPoint *points, int num, CardState *state ); void dfb_gfxcard_tileblit( DFBRectangle *rect, int dx1, int dy1, int dx2, int dy2, CardState *state ); void dfb_gfxcard_stretchblit( DFBRectangle *srect, DFBRectangle *drect, CardState *state ); void dfb_gfxcard_texture_triangles( DFBVertex *vertices, int num, DFBTriangleFormation formation, CardState *state ); void dfb_gfxcard_drawstring( const u_int8_t *text, int bytes, int x, int y, CoreFont *font, CardState *state ); void dfb_gfxcard_drawstring_check_state( CoreFont *font, CardState *state ); void dfb_gfxcard_drawglyph( unichar index, int x, int y, CoreFont *font, CardState *state ); void dfb_gfxcard_sync(); void dfb_gfxcard_invalidate_state(); void dfb_gfxcard_wait_serial( const CoreGraphicsSerial *serial ); void dfb_gfxcard_flush_texture_cache(); void dfb_gfxcard_flush_read_cache(); void dfb_gfxcard_after_set_var(); void dfb_gfxcard_surface_enter( SurfaceBuffer *buffer, DFBSurfaceLockFlags flags ); void dfb_gfxcard_surface_leave( SurfaceBuffer *buffer ); DFBResult dfb_gfxcard_adjust_heap_offset( int offset ); SurfaceManager *dfb_gfxcard_surface_manager (); void dfb_gfxcard_get_capabilities ( CardCapabilities *ret_caps ); void dfb_gfxcard_get_device_info ( GraphicsDeviceInfo *ret_info ); void dfb_gfxcard_get_driver_info ( GraphicsDriverInfo *ret_info ); int dfb_gfxcard_reserve_memory ( GraphicsDevice *device, unsigned int size ); int dfb_gfxcard_reserve_auxmemory ( GraphicsDevice *device, unsigned int size ); unsigned int dfb_gfxcard_memory_length (); unsigned int dfb_gfxcard_auxmemory_length (); # 354 "/usr/include/directfb-internal/core/gfxcard.h" volatile void *dfb_gfxcard_map_mmio( GraphicsDevice *device, unsigned int offset, int length ); void dfb_gfxcard_unmap_mmio( GraphicsDevice *device, volatile void *addr, int length ); int dfb_gfxcard_get_accelerator( GraphicsDevice *device ); unsigned long dfb_gfxcard_memory_physical( GraphicsDevice *device, unsigned int offset ); void *dfb_gfxcard_memory_virtual ( GraphicsDevice *device, unsigned int offset ); unsigned long dfb_gfxcard_auxmemory_physical( GraphicsDevice *device, unsigned int offset ); void *dfb_gfxcard_auxmemory_virtual ( GraphicsDevice *device, unsigned int offset ); # 42 "/usr/include/directfb-internal/core/state.h" 2 # 1 "/usr/include/directfb-internal/gfx/generic/generic.h" 1 # 30 "/usr/include/directfb-internal/gfx/generic/generic.h" #define __GENERIC_H__ # 40 "/usr/include/directfb-internal/gfx/generic/generic.h" typedef union { struct { u_int16_t b; u_int16_t g; u_int16_t r; u_int16_t a; } RGB; struct { u_int16_t u; u_int16_t v; u_int16_t y; u_int16_t a; } YUV; } GenefxAccumulator; typedef struct _GenefxState GenefxState; typedef void (*GenefxFunc)(GenefxState *gfxs); struct _GenefxState { GenefxFunc funcs[32]; int length; int Slen; int Dlen; void *dst_org[3]; void *src_org[3]; int dst_pitch; int src_pitch; int dst_bpp; int src_bpp; DFBSurfaceCapabilities dst_caps; DFBSurfaceCapabilities src_caps; DFBSurfacePixelFormat src_format; DFBSurfacePixelFormat dst_format; int dst_height; int src_height; int dst_field_offset; int src_field_offset; DFBColor color; void *Aop[3]; void *Bop[3]; u_int32_t Cop; u_int8_t YCop; u_int8_t CbCop; u_int8_t CrCop; int Aop_field; int Bop_field; int AopY; int BopY; u_int32_t Dkey; u_int32_t Skey; CorePalette *Alut; CorePalette *Blut; void *ABstart; int ABsize; GenefxAccumulator *Aacc; GenefxAccumulator *Bacc; GenefxAccumulator Cacc; GenefxAccumulator SCacc; GenefxAccumulator *Xacc; GenefxAccumulator *Dacc; GenefxAccumulator *Sacc; void **Sop; CorePalette *Slut; int Ostep; int SperD; }; void gGetDriverInfo( GraphicsDriverInfo *info ); void gGetDeviceInfo( GraphicsDeviceInfo *info ); bool gAcquire ( CardState *state, DFBAccelerationMask accel ); void gRelease ( CardState *state ); void gFillRectangle ( CardState *state, DFBRectangle *rect ); void gDrawLine ( CardState *state, DFBRegion *line ); void gBlit ( CardState *state, DFBRectangle *rect, int dx, int dy ); void gStretchBlit ( CardState *state, DFBRectangle *srect, DFBRectangle *drect ); # 44 "/usr/include/directfb-internal/core/state.h" 2 # 1 "/usr/include/directfb-internal/misc/util.h" 1 # 29 "/usr/include/directfb-internal/misc/util.h" #define __MISC__UTIL_H__ # 1 "/usr/include/directfb/directfb_util.h" 1 # 29 "/usr/include/directfb/directfb_util.h" #define __DIRECTFB_UTIL_H__ # 1 "/usr/include/errno.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/errno.h" 1 3 4 # 72 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 #undef __need_error_t # 9 "/usr/include/errno.h" 2 3 4 # 32 "/usr/include/directfb/directfb_util.h" 2 bool dfb_region_intersect( DFBRegion *region, int x1, int y1, int x2, int y2 ); bool dfb_region_region_intersect( DFBRegion *region, const DFBRegion *clip ); bool dfb_region_rectangle_intersect( DFBRegion *region, const DFBRectangle *rect ); bool dfb_unsafe_region_intersect( DFBRegion *region, int x1, int y1, int x2, int y2 ); bool dfb_unsafe_region_rectangle_intersect( DFBRegion *region, const DFBRectangle *rect ); bool dfb_rectangle_intersect_by_unsafe_region( DFBRectangle *rectangle, DFBRegion *region ); bool dfb_rectangle_intersect_by_region( DFBRectangle *rectangle, const DFBRegion *region ); bool dfb_rectangle_intersect( DFBRectangle *rectangle, const DFBRectangle *clip ); void dfb_rectangle_union ( DFBRectangle *rect1, const DFBRectangle *rect2 ); #define DFB_RECTANGLE_ASSERT(r) do { D_ASSERT( (r) != NULL ); D_ASSERT( (r)->w >= 0 ); D_ASSERT( (r)->h >= 0 ); } while (0) #define DFB_RECTANGLE_ASSERT_IF(r) do { if ((r) != NULL) { D_ASSERT( (r)->w >= 0 ); D_ASSERT( (r)->h >= 0 ); } } while (0) #define DFB_RECTANGLE_VALS(r) (r)->x, (r)->y, (r)->w, (r)->h #define DFB_RECTANGLE_VALS_FROM_REGION(r) (r)->x1, (r)->y1, (r)->x2-(r)->x1+1, (r)->y2-(r)->y1+1 #define DFB_RECTANGLE_INIT_FROM_REGION(r) (DFBRectangle){ DFB_RECTANGLE_VALS_FROM_REGION(r) } #define DFB_REGION_ASSERT(r) do { D_ASSERT( (r) != NULL ); D_ASSERT( (r)->x1 <= (r)->x2 ); D_ASSERT( (r)->y1 <= (r)->y2 ); } while (0) #define DFB_REGION_ASSERT_IF(r) do { if ((r) != NULL) { D_ASSERT( (r)->x1 <= (r)->x2 ); D_ASSERT( (r)->y1 <= (r)->y2 ); } } while (0) # 103 "/usr/include/directfb/directfb_util.h" #define DFB_REGION_VALS(r) (r)->x1, (r)->y1, (r)->x2, (r)->y2 #define DFB_REGION_VALS_FROM_RECTANGLE(r) (r)->x, (r)->y, (r)->x+(r)->w-1, (r)->y+(r)->h-1 #define DFB_REGION_INIT_FROM_RECTANGLE(r) (DFBRegion){ DFB_REGION_VALS_FROM_RECTANGLE(r) } #define DFB_REGION_VALS_FROM_RECTANGLE_VALS(x,y,w,h) (x), (y), (x)+(w)-1, (y)+(h)-1 #define DFB_REGION_INIT_FROM_RECTANGLE_VALS(x,y,w,h) (DFBRegion){ DFB_REGION_VALS_FROM_RECTANGLE_VALS(x,y,w,h) } #define DFB_REGION_VALS_TRANSLATED(r,x,y) (r)->x1 + x, (r)->y1 + y, (r)->x2 + x, (r)->y2 + y #define DFB_REGION_INIT_TRANSLATED(r,x,y) (DFBRegion){ DFB_REGION_VALS_TRANSLATED(r,x,y) } #define DFB_REGION_VALS_INTERSECTED(r,X1,Y1,X2,Y2) (r)->x1 > (X1) ? (r)->x1 : (X1), (r)->y1 > (Y1) ? (r)->y1 : (Y1), (r)->x2 < (X2) ? (r)->x2 : (X2), (r)->y2 < (Y2) ? (r)->y2 : (Y2) #define DFB_REGION_INIT_INTERSECTED(r,X1,Y1,X2,Y2) (DFBRegion){ DFB_REGION_VALS_INTERSECTED(r,X1,Y1,X2,Y2) } static inline void dfb_rectangle_from_region( DFBRectangle *rect, const DFBRegion *region ) { do {} while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); rect->x = region->x1; rect->y = region->y1; rect->w = region->x2 - region->x1 + 1; rect->h = region->y2 - region->y1 + 1; } static inline void dfb_rectangle_from_rectangle_plus_insets( DFBRectangle *rect, const DFBRectangle *inner, const DFBInsets *insets ) { do {} while (0); do {} while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); rect->x = inner->x - insets->l; rect->y = inner->y - insets->t; rect->w = inner->w + insets->l + insets->r; rect->h = inner->h + insets->t + insets->b; } static inline void dfb_region_from_rectangle( DFBRegion *region, const DFBRectangle *rect ) { do {} while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); do {} while (0); do {} while (0); region->x1 = rect->x; region->y1 = rect->y; region->x2 = rect->x + rect->w - 1; region->y2 = rect->y + rect->h - 1; } static inline void dfb_rectangle_translate( DFBRectangle *rect, int dx, int dy ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); rect->x += dx; rect->y += dy; } static inline void dfb_region_translate( DFBRegion *region, int dx, int dy ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); region->x1 += dx; region->y1 += dy; region->x2 += dx; region->y2 += dy; } static inline void dfb_rectangle_resize( DFBRectangle *rect, int width, int height ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); do {} while (0); do {} while (0); rect->w = width; rect->h = height; } static inline void dfb_region_resize( DFBRegion *region, int width, int height ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); do {} while (0); do {} while (0); region->x2 = region->x1 + width - 1; region->y2 = region->y1 + height - 1; } static inline bool dfb_region_intersects( const DFBRegion *region, int x1, int y1, int x2, int y2 ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); do {} while (0); do {} while (0); return (region->x1 <= x2 && region->y1 <= y2 && region->x2 >= x1 && region->y2 >= y1); } static inline bool dfb_region_region_intersects( const DFBRegion *region, const DFBRegion *other ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); return (region->x1 <= other->x2 && region->y1 <= other->y2 && region->x2 >= other->x1 && region->y2 >= other->y1); } static inline void dfb_region_region_union( DFBRegion *region, const DFBRegion *other ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); if (region->x1 > other->x1) region->x1 = other->x1; if (region->y1 > other->y1) region->y1 = other->y1; if (region->x2 < other->x2) region->x2 = other->x2; if (region->y2 < other->y2) region->y2 = other->y2; } static inline bool dfb_rectangle_region_intersects( const DFBRectangle *rect, const DFBRegion *region ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); return (rect->x <= region->x2 && rect->y <= region->y2 && rect->x + rect->w > region->x1 && rect->y + rect->h > region->y1); } static inline void dfb_region_clip( DFBRegion *region, int x1, int y1, int x2, int y2 ) { do { do {} while (0); do {} while (0); do {} while (0); } while (0); do {} while (0); if (region->x1 < x1) region->x1 = x1; if (region->y1 < y1) region->y1 = y1; if (region->x2 > x2) region->x2 = x2; if (region->y2 > y2) region->y2 = y2; } # 32 "/usr/include/directfb-internal/misc/util.h" 2 # 46 "/usr/include/directfb-internal/core/state.h" 2 typedef enum { SMF_DRAWING_FLAGS = 0x00000001, SMF_BLITTING_FLAGS = 0x00000002, SMF_CLIP = 0x00000004, SMF_COLOR = 0x00000008, SMF_SRC_BLEND = 0x00000010, SMF_DST_BLEND = 0x00000020, SMF_SRC_COLORKEY = 0x00000040, SMF_DST_COLORKEY = 0x00000080, SMF_DESTINATION = 0x00000100, SMF_SOURCE = 0x00000200, SMF_ALL = 0x000003FF } StateModificationFlags; typedef enum { CSF_NONE = 0x00000000, CSF_DESTINATION = 0x00000001, CSF_SOURCE = 0x00000002, CSF_SOURCE_LOCKED = 0x00000010, CSF_ALL = 0x00000013 } CardStateFlags; struct _CardState { int magic; CoreDFB *core; FusionID fusion_id; pthread_mutex_t lock; CardStateFlags flags; StateModificationFlags modified; DFBSurfaceDrawingFlags drawingflags; DFBSurfaceBlittingFlags blittingflags; DFBRegion clip; DFBColor color; unsigned int color_index; DFBSurfaceBlendFunction src_blend; DFBSurfaceBlendFunction dst_blend; u_int32_t src_colorkey; u_int32_t dst_colorkey; CoreSurface *destination; CoreSurface *source; DirectSerial dst_serial; DirectSerial src_serial; DFBAccelerationMask accel; DFBAccelerationMask checked; DFBAccelerationMask set; DFBAccelerationMask disabled; CoreGraphicsSerial serial; GenefxState *gfxs; }; int dfb_state_init( CardState *state, CoreDFB *core ); void dfb_state_destroy( CardState *state ); void dfb_state_set_destination( CardState *state, CoreSurface *destination ); void dfb_state_set_source( CardState *state, CoreSurface *source ); void dfb_state_update( CardState *state, bool update_source ); static inline void dfb_state_get_serial( const CardState *state, CoreGraphicsSerial *ret_serial ) { do {} while (0); do {} while (0); *ret_serial = state->serial; } static inline void dfb_state_lock( CardState *state ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); pthread_mutex_lock( &state->lock ); } static inline void dfb_state_unlock( CardState *state ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); pthread_mutex_unlock( &state->lock ); } #define _dfb_state_set_checked(member,flag,state,value) do { D_MAGIC_ASSERT( state, CardState ); if ((value) != (state)->member) { (state)->member = (value); (state)->modified |= SMF_ ##flag; } } while (0) # 172 "/usr/include/directfb-internal/core/state.h" #define dfb_state_set_blitting_flags(state,flags) _dfb_state_set_checked( blittingflags, BLITTING_FLAGS, state, flags ) #define dfb_state_set_drawing_flags(state,flags) _dfb_state_set_checked( drawingflags, DRAWING_FLAGS, state, flags ) #define dfb_state_set_color_index(state,index) _dfb_state_set_checked( color_index, COLOR, state, index ) #define dfb_state_set_src_blend(state,blend) _dfb_state_set_checked( src_blend, SRC_BLEND, state, blend ) #define dfb_state_set_dst_blend(state,blend) _dfb_state_set_checked( dst_blend, DST_BLEND, state, blend ) #define dfb_state_set_src_colorkey(state,key) _dfb_state_set_checked( src_colorkey, SRC_COLORKEY, state, key ) #define dfb_state_set_dst_colorkey(state,key) _dfb_state_set_checked( dst_colorkey, DST_COLORKEY, state, key ) static inline void dfb_state_set_clip( CardState *state, const DFBRegion *clip ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); do {} while (0); } while (0); if (! ((state->clip).x1 == (*clip).x1 && (state->clip).y1 == (*clip).y1 && (state->clip).x2 == (*clip).x2 && (state->clip).y2 == (*clip).y2)) { state->clip = *clip; state->modified = (StateModificationFlags)( state->modified | SMF_CLIP ); } } static inline void dfb_state_set_color( CardState *state, const DFBColor *color ) { do { do {} while (0); do {} while (0); } while (0); do {} while (0); if (! ((state->color).a == (*color).a && (state->color).r == (*color).r && (state->color).g == (*color).g && (state->color).b == (*color).b)) { state->color = *color; state->modified = (StateModificationFlags)( state->modified | SMF_COLOR ); } } # 35 "video_out_dfb.c" 2 # 1 "/usr/include/directfb-internal/core/surfaces.h" 1 # 29 "/usr/include/directfb-internal/core/surfaces.h" #define __SURFACES_H__ # 1 "/usr/include/directfb/fusion/object.h" 1 # 29 "/usr/include/directfb/fusion/object.h" #define __FUSION__OBJECT_H__ # 1 "/usr/include/directfb/fusion/ref.h" 1 # 29 "/usr/include/directfb/fusion/ref.h" #define __FUSION__REF_H__ # 1 "/usr/include/pthread.h" 1 3 4 # 32 "/usr/include/directfb/fusion/ref.h" 2 # 1 "/usr/include/directfb/fusion/call.h" 1 # 29 "/usr/include/directfb/fusion/call.h" #define __FUSION__CALL_H__ typedef int (*FusionCallHandler) (int caller, int call_arg, void *call_ptr, void *ctx ); typedef struct { FusionWorldShared *shared; int call_id; int fusion_id; FusionCallHandler handler; void *ctx; } FusionCall; DirectResult fusion_call_init (FusionCall *call, FusionCallHandler handler, void *ctx, const FusionWorld *world); DirectResult fusion_call_execute (FusionCall *call, FusionCallExecFlags flags, int call_arg, void *call_ptr, int *ret_val); DirectResult fusion_call_destroy (FusionCall *call); # 35 "/usr/include/directfb/fusion/ref.h" 2 typedef union { struct { int id; const FusionWorldShared *shared; } multi; struct { int refs; pthread_cond_t cond; pthread_mutex_t lock; bool destroyed; int waiting; FusionCall *call; int call_arg; } single; } FusionRef; DirectResult fusion_ref_init (FusionRef *ref, const FusionWorld *world); DirectResult fusion_ref_up (FusionRef *ref, bool global); DirectResult fusion_ref_down (FusionRef *ref, bool global); DirectResult fusion_ref_stat (FusionRef *ref, int *refs); DirectResult fusion_ref_zero_lock (FusionRef *ref); DirectResult fusion_ref_zero_trylock (FusionRef *ref); DirectResult fusion_ref_unlock (FusionRef *ref); DirectResult fusion_ref_watch (FusionRef *ref, FusionCall *call, int call_arg); DirectResult fusion_ref_inherit (FusionRef *ref, FusionRef *from); DirectResult fusion_ref_destroy (FusionRef *ref); # 36 "/usr/include/directfb/fusion/object.h" 2 typedef void (*FusionObjectDestructor)( FusionObject *object, bool zombie ); typedef unsigned long FusionObjectID; typedef enum { FOS_INIT, FOS_ACTIVE, FOS_DEINIT } FusionObjectState; struct __Fusion_FusionObject { DirectLink link; FusionObjectPool *pool; int magic; FusionObjectID id; FusionObjectState state; FusionRef ref; FusionReactor *reactor; FusionWorldShared *shared; }; typedef bool (*FusionObjectCallback)( FusionObjectPool *pool, FusionObject *object, void *ctx ); FusionObjectPool *fusion_object_pool_create ( const char *name, int object_size, int message_size, FusionObjectDestructor destructor, const FusionWorld *world ); DirectResult fusion_object_pool_destroy( FusionObjectPool *pool, const FusionWorld *world ); DirectResult fusion_object_pool_enum ( FusionObjectPool *pool, FusionObjectCallback callback, void *ctx ); FusionObject *fusion_object_create ( FusionObjectPool *pool, const FusionWorld *world ); DirectResult fusion_object_get ( FusionObjectPool *pool, FusionObjectID object_id, FusionObject **ret_object ); DirectResult fusion_object_set_lock( FusionObject *object, FusionSkirmish *lock ); DirectResult fusion_object_activate( FusionObject *object ); DirectResult fusion_object_destroy ( FusionObject *object ); #define FUSION_OBJECT_METHODS(type,prefix) static inline DirectResult prefix ##_attach( type *object, ReactionFunc func, void *ctx, Reaction *ret_reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_attach( ((FusionObject*)object)->reactor, func, ctx, ret_reaction ); } static inline DirectResult prefix ##_detach( type *object, Reaction *reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_detach( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult prefix ##_attach_global( type *object, int index, void *ctx, GlobalReaction *reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_attach_global( ((FusionObject*)object)->reactor, index, ctx, reaction ); } static inline DirectResult prefix ##_detach_global( type *object, GlobalReaction *reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_detach_global( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult prefix ##_dispatch( type *object, void *message, const ReactionFunc *globals ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_dispatch( ((FusionObject*)object)->reactor, message, true, globals ); } static inline DirectResult prefix ##_ref( type *object ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_ref_up( &((FusionObject*)object)->ref, false ); } static inline DirectResult prefix ##_unref( type *object ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_ref_down( &((FusionObject*)object)->ref, false ); } static inline DirectResult prefix ##_link( type **link, type *object ) { DirectResult ret; D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); ret = fusion_ref_up( &((FusionObject*)object)->ref, true ); if (ret) return ret; *link = object; return DFB_OK; } static inline DirectResult prefix ##_unlink( type **link ) { type *object = *link; D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); *link = NULL; return fusion_ref_down( &((FusionObject*)object)->ref, true ); } static inline DirectResult prefix ##_inherit( type *object, void *from ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); D_MAGIC_ASSERT( (FusionObject*) from, FusionObject ); return fusion_ref_inherit( &((FusionObject*)object)->ref, &((FusionObject*)from)->ref ); } static inline DirectResult prefix ##_globalize( type *object ) { DirectResult ret; D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); ret = fusion_ref_up( &((FusionObject*)object)->ref, true ); if (ret) return ret; ret = fusion_ref_down( &((FusionObject*)object)->ref, false ); if (ret) fusion_ref_down( &((FusionObject*)object)->ref, true ); return ret; } # 228 "/usr/include/directfb/fusion/object.h" static inline DirectResult fusion_object_attach( void *object, ReactionFunc func, void *ctx, Reaction *ret_reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach( ((FusionObject*)object)->reactor, func, ctx, ret_reaction ); } static inline DirectResult fusion_object_detach( void *object, Reaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult fusion_object_attach_global( void *object, int index, void *ctx, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach_global( ((FusionObject*)object)->reactor, index, ctx, reaction ); } static inline DirectResult fusion_object_detach_global( void *object, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach_global( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult fusion_object_dispatch( void *object, void *message, const ReactionFunc *globals ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_dispatch( ((FusionObject*)object)->reactor, message, (!(0)), globals ); } static inline DirectResult fusion_object_ref( void *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_up( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult fusion_object_unref( void *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_down( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult fusion_object_link( void **link, void *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; *link = object; return DFB_OK; } static inline DirectResult fusion_object_unlink( void **link ) { void *object = *link; do { do {} while (0); do {} while (0); } while (0); *link = ((void *)0); return fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); } static inline DirectResult fusion_object_inherit( void *object, void *from ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); return fusion_ref_inherit( &((FusionObject*)object)->ref, &((FusionObject*)from)->ref ); } static inline DirectResult fusion_object_globalize( void *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; ret = fusion_ref_down( &((FusionObject*)object)->ref, (0) ); if (ret) fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); return ret; }; # 37 "/usr/include/directfb-internal/core/surfaces.h" 2 # 46 "/usr/include/directfb-internal/core/surfaces.h" struct _Chunk; typedef enum { CSNF_SIZEFORMAT = 0x00000001, CSNF_SYSTEM = 0x00000002, CSNF_VIDEO = 0x00000004, CSNF_DESTROY = 0x00000008, CSNF_FLIP = 0x00000010, CSNF_FIELD = 0x00000020, CSNF_PALETTE_CHANGE = 0x00000040, CSNF_PALETTE_UPDATE = 0x00000080, CSNF_ALPHA_RAMP = 0x00000100 } CoreSurfaceNotificationFlags; typedef struct { CoreSurfaceNotificationFlags flags; CoreSurface *surface; } CoreSurfaceNotification; typedef enum { CSH_INVALID = 0x00000000, CSH_STORED = 0x00000001, CSH_RESTORE = 0x00000002 } CoreSurfaceHealth; typedef enum { CSP_SYSTEMONLY = 0x00000000, CSP_VIDEOLOW = 0x00000001, CSP_VIDEOHIGH = 0x00000002, CSP_VIDEOONLY = 0x00000003 } CoreSurfacePolicy; typedef enum { CSS_SYSTEM = 0x00000000, CSS_VIDEO = 0x00000001, CSS_AUXILIARY = 0x00000002, } CoreSurfaceStorage; typedef enum { SBF_NONE = 0x00000000, SBF_FOREIGN_SYSTEM = 0x00000001, SBF_WRITTEN = 0x00000002 } SurfaceBufferFlags; typedef enum { VAF_NONE = 0x00000000, VAF_SOFTWARE_WRITE = 0x00000001, VAF_HARDWARE_WRITE = 0x00000002, VAF_SOFTWARE_READ = 0x00000004, VAF_HARDWARE_READ = 0x00000008, VAF_SOFTWARE_LOCK = 0x00000010 } VideoAccessFlags; struct _SurfaceBuffer { SurfaceBufferFlags flags; CoreSurfacePolicy policy; CoreSurfaceStorage storage; DFBSurfacePixelFormat format; struct { CoreSurfaceHealth health; int locked; int pitch; void *addr; } system; struct { CoreSurfaceHealth health; int locked; VideoAccessFlags access; CoreGraphicsSerial serial; int pitch; int offset; struct _Chunk *chunk; } video; CoreSurface *surface; }; struct _CoreSurface { FusionObject object; DirectSerial serial; int width; int height; DFBSurfacePixelFormat format; DFBSurfaceCapabilities caps; int min_width; int min_height; CorePalette *palette; GlobalReaction palette_reaction; int field; u_int8_t alpha_ramp[4]; SurfaceBuffer *front_buffer; SurfaceBuffer *back_buffer; SurfaceBuffer *idle_buffer; SurfaceBuffer *depth_buffer; SurfaceManager *manager; FusionSHMPoolShared *shmpool; FusionSHMPoolShared *shmpool_data; }; static inline void * dfb_surface_data_offset( const CoreSurface *surface, void *data, int pitch, int x, int y ) { do {} while (0); do {} while (0); do {} while (0); do {} while (0); do {} while (0); do {} while (0); do {} while (0); if (surface->caps & DSCAPS_SEPARATED) { if (y & 1) y += surface->height; y >>= 1; } return data + pitch * y + (((((surface->format) & 0x007E0000) >> 17) * (x) + 7) >> 3); } FusionObjectPool *dfb_surface_pool_create( const FusionWorld *world ); static inline DirectResult dfb_surface_attach( CoreSurface *object, ReactionFunc func, void *ctx, Reaction *ret_reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach( ((FusionObject*)object)->reactor, func, ctx, ret_reaction ); } static inline DirectResult dfb_surface_detach( CoreSurface *object, Reaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult dfb_surface_attach_global( CoreSurface *object, int index, void *ctx, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach_global( ((FusionObject*)object)->reactor, index, ctx, reaction ); } static inline DirectResult dfb_surface_detach_global( CoreSurface *object, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach_global( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult dfb_surface_dispatch( CoreSurface *object, void *message, const ReactionFunc *globals ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_dispatch( ((FusionObject*)object)->reactor, message, (!(0)), globals ); } static inline DirectResult dfb_surface_ref( CoreSurface *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_up( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult dfb_surface_unref( CoreSurface *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_down( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult dfb_surface_link( CoreSurface **link, CoreSurface *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; *link = object; return DFB_OK; } static inline DirectResult dfb_surface_unlink( CoreSurface **link ) { CoreSurface *object = *link; do { do {} while (0); do {} while (0); } while (0); *link = ((void *)0); return fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); } static inline DirectResult dfb_surface_inherit( CoreSurface *object, void *from ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); return fusion_ref_inherit( &((FusionObject*)object)->ref, &((FusionObject*)from)->ref ); } static inline DirectResult dfb_surface_globalize( CoreSurface *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; ret = fusion_ref_down( &((FusionObject*)object)->ref, (0) ); if (ret) fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); return ret; } DFBResult dfb_surface_create( CoreDFB *core, int width, int height, DFBSurfacePixelFormat format, CoreSurfacePolicy policy, DFBSurfaceCapabilities caps, CorePalette *palette, CoreSurface **surface ); DFBResult dfb_surface_create_preallocated( CoreDFB *core, int width, int height, DFBSurfacePixelFormat format, CoreSurfacePolicy policy, DFBSurfaceCapabilities caps, CorePalette *palette, void *front_data, void *back_data, int front_pitch, int back_pitch, CoreSurface **surface ); DFBResult dfb_surface_init ( CoreDFB *core, CoreSurface *surface, int width, int height, DFBSurfacePixelFormat format, DFBSurfaceCapabilities caps, CorePalette *palette ); DFBResult dfb_surface_reformat( CoreDFB *core, CoreSurface *surface, int width, int height, DFBSurfacePixelFormat format ); DFBResult dfb_surface_reconfig( CoreSurface *surface, CoreSurfacePolicy front_policy, CoreSurfacePolicy back_policy ); DFBResult dfb_surface_allocate_depth( CoreSurface *surface ); void dfb_surface_deallocate_depth( CoreSurface *surface ); DFBResult dfb_surface_set_palette( CoreSurface *surface, CorePalette *palette ); DirectResult dfb_surface_notify_listeners( CoreSurface *surface, CoreSurfaceNotificationFlags flags); void dfb_surface_flip_buffers( CoreSurface *surface, bool write_front ); void dfb_surface_set_field( CoreSurface *surface, int field ); void dfb_surface_set_alpha_ramp( CoreSurface *surface, u_int8_t a0, u_int8_t a1, u_int8_t a2, u_int8_t a3 ); DFBResult dfb_surface_soft_lock( CoreSurface *surface, DFBSurfaceLockFlags flags, void **data, int *pitch, bool front ); void dfb_surface_unlock( CoreSurface *surface, int front ); DFBResult dfb_surface_dump( CoreSurface *surface, const char *directory, const char *prefix ); ReactionResult _dfb_surface_palette_listener( const void *msg_data, void *ctx ); typedef enum { DFB_LAYER_REGION_SURFACE_LISTENER, DFB_WINDOWSTACK_BACKGROUND_IMAGE_LISTENER, DFB_WINDOW_SURFACE_LISTENER } DFB_SURFACE_GLOBALS; # 37 "video_out_dfb.c" 2 # 1 "/usr/include/directfb-internal/display/idirectfbsurface.h" 1 # 29 "/usr/include/directfb-internal/display/idirectfbsurface.h" #define __IDIRECTFBSURFACE_H__ # 44 "/usr/include/directfb-internal/display/idirectfbsurface.h" typedef struct { int ref; DFBSurfaceCapabilities caps; struct { DFBRectangle wanted; DFBRectangle granted; DFBRectangle current; } area; bool clip_set; DFBRegion clip_wanted; int locked; CoreSurface *surface; IDirectFBFont *font; CardState state; struct { u_int8_t r; u_int8_t g; u_int8_t b; u_int32_t value; } src_key; struct { u_int8_t r; u_int8_t g; u_int8_t b; u_int32_t value; } dst_key; Reaction reaction; } IDirectFBSurface_data; DFBResult IDirectFBSurface_Construct( IDirectFBSurface *thiz, DFBRectangle *req_rect, DFBRectangle *clip_rect, CoreSurface *surface, DFBSurfaceCapabilities caps ); void IDirectFBSurface_Destruct( IDirectFBSurface *thiz ); # 39 "video_out_dfb.c" 2 #define LOG_MODULE "video_out_dfb" # 1 "/usr/include/xine.h" 1 3 4 # 42 "/usr/include/xine.h" 3 4 #define HAVE_XINE_H # 1 "/usr/include/sys/types.h" 1 3 4 # 49 "/usr/include/xine.h" 2 3 4 # 1 "/usr/include/sys/time.h" 1 3 4 # 50 "/usr/include/xine.h" 2 3 4 # 1 "/usr/include/time.h" 1 3 4 # 51 "/usr/include/xine.h" 2 3 4 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4 # 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 #define _STDARG_H #define _ANSI_STDARG_H_ #undef __need___va_list # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 #define va_start(v,l) __builtin_va_start(v,l) #define va_end(v) __builtin_va_end(v) #define va_arg(v,l) __builtin_va_arg(v,l) #define va_copy(d,s) __builtin_va_copy(d,s) #define __va_copy(d,s) __builtin_va_copy(d,s) # 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 #define _VA_LIST_ #define _VA_LIST #define _VA_LIST_T_H #define __va_list__ # 52 "/usr/include/xine.h" 2 3 4 # 62 "/usr/include/xine.h" 3 4 # 1 "/usr/include/xine/os_types.h" 1 3 4 # 30 "/usr/include/xine/os_types.h" 3 4 #define XINE_OS_TYPES_H # 107 "/usr/include/xine/os_types.h" 3 4 # 1 "/usr/include/inttypes.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/inttypes.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 #define _INTTYPES_H 1 # 1 "/usr/include/features.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/inttypes.h" 2 3 4 # 1 "/usr/include/stdint.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/stdint.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 #define _STDINT_H 1 # 1 "/usr/include/features.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 28 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 #define __WORDSIZE 64 #define __WORDSIZE_COMPAT32 1 # 9 "/usr/include/bits/wordsize.h" 2 3 4 # 29 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4 # 49 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; #define __uint32_t_defined typedef unsigned long int uint64_t; # 66 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; typedef long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; typedef unsigned long int uint_least64_t; # 91 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 typedef signed char int_fast8_t; typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; # 104 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 typedef unsigned char uint_fast8_t; typedef unsigned long int uint_fast16_t; typedef unsigned long int uint_fast32_t; typedef unsigned long int uint_fast64_t; # 120 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 typedef long int intptr_t; #define __intptr_t_defined typedef unsigned long int uintptr_t; # 135 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 typedef long int intmax_t; typedef unsigned long int uintmax_t; # 150 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 #define __INT64_C(c) c ## L #define __UINT64_C(c) c ## UL # 160 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 #define INT8_MIN (-128) #define INT16_MIN (-32767-1) #define INT32_MIN (-2147483647-1) #define INT64_MIN (-__INT64_C(9223372036854775807)-1) #define INT8_MAX (127) #define INT16_MAX (32767) #define INT32_MAX (2147483647) #define INT64_MAX (__INT64_C(9223372036854775807)) #define UINT8_MAX (255) #define UINT16_MAX (65535) #define UINT32_MAX (4294967295U) #define UINT64_MAX (__UINT64_C(18446744073709551615)) #define INT_LEAST8_MIN (-128) #define INT_LEAST16_MIN (-32767-1) #define INT_LEAST32_MIN (-2147483647-1) #define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1) #define INT_LEAST8_MAX (127) #define INT_LEAST16_MAX (32767) #define INT_LEAST32_MAX (2147483647) #define INT_LEAST64_MAX (__INT64_C(9223372036854775807)) #define UINT_LEAST8_MAX (255) #define UINT_LEAST16_MAX (65535) #define UINT_LEAST32_MAX (4294967295U) #define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615)) #define INT_FAST8_MIN (-128) #define INT_FAST16_MIN (-9223372036854775807L-1) #define INT_FAST32_MIN (-9223372036854775807L-1) #define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1) #define INT_FAST8_MAX (127) #define INT_FAST16_MAX (9223372036854775807L) #define INT_FAST32_MAX (9223372036854775807L) #define INT_FAST64_MAX (__INT64_C(9223372036854775807)) #define UINT_FAST8_MAX (255) #define UINT_FAST16_MAX (18446744073709551615UL) #define UINT_FAST32_MAX (18446744073709551615UL) #define UINT_FAST64_MAX (__UINT64_C(18446744073709551615)) #define INTPTR_MIN (-9223372036854775807L-1) #define INTPTR_MAX (9223372036854775807L) #define UINTPTR_MAX (18446744073709551615UL) # 241 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 #define INTMAX_MIN (-__INT64_C(9223372036854775807)-1) #define INTMAX_MAX (__INT64_C(9223372036854775807)) #define UINTMAX_MAX (__UINT64_C(18446744073709551615)) #define PTRDIFF_MIN (-9223372036854775807L-1) #define PTRDIFF_MAX (9223372036854775807L) #define SIG_ATOMIC_MIN (-2147483647-1) #define SIG_ATOMIC_MAX (2147483647) #define SIZE_MAX (18446744073709551615UL) #define WCHAR_MIN __WCHAR_MIN #define WCHAR_MAX __WCHAR_MAX #define WINT_MIN (0u) #define WINT_MAX (4294967295u) # 290 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 #define INT8_C(c) c #define INT16_C(c) c #define INT32_C(c) c #define INT64_C(c) c ## L #define UINT8_C(c) c #define UINT16_C(c) c #define UINT32_C(c) c ## U #define UINT64_C(c) c ## UL #define INTMAX_C(c) c ## L #define UINTMAX_C(c) c ## UL # 9 "/usr/include/stdint.h" 2 3 4 # 29 "/usr/include/gentoo-multilib/amd64/inttypes.h" 2 3 4 typedef int __gwchar_t; #define ____gwchar_t_defined 1 # 50 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 #define __PRI64_PREFIX "l" #define __PRIPTR_PREFIX "l" # 60 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 #define PRId8 "d" #define PRId16 "d" #define PRId32 "d" #define PRId64 __PRI64_PREFIX "d" #define PRIdLEAST8 "d" #define PRIdLEAST16 "d" #define PRIdLEAST32 "d" #define PRIdLEAST64 __PRI64_PREFIX "d" #define PRIdFAST8 "d" #define PRIdFAST16 __PRIPTR_PREFIX "d" #define PRIdFAST32 __PRIPTR_PREFIX "d" #define PRIdFAST64 __PRI64_PREFIX "d" #define PRIi8 "i" #define PRIi16 "i" #define PRIi32 "i" #define PRIi64 __PRI64_PREFIX "i" #define PRIiLEAST8 "i" #define PRIiLEAST16 "i" #define PRIiLEAST32 "i" #define PRIiLEAST64 __PRI64_PREFIX "i" #define PRIiFAST8 "i" #define PRIiFAST16 __PRIPTR_PREFIX "i" #define PRIiFAST32 __PRIPTR_PREFIX "i" #define PRIiFAST64 __PRI64_PREFIX "i" #define PRIo8 "o" #define PRIo16 "o" #define PRIo32 "o" #define PRIo64 __PRI64_PREFIX "o" #define PRIoLEAST8 "o" #define PRIoLEAST16 "o" #define PRIoLEAST32 "o" #define PRIoLEAST64 __PRI64_PREFIX "o" #define PRIoFAST8 "o" #define PRIoFAST16 __PRIPTR_PREFIX "o" #define PRIoFAST32 __PRIPTR_PREFIX "o" #define PRIoFAST64 __PRI64_PREFIX "o" #define PRIu8 "u" #define PRIu16 "u" #define PRIu32 "u" #define PRIu64 __PRI64_PREFIX "u" #define PRIuLEAST8 "u" #define PRIuLEAST16 "u" #define PRIuLEAST32 "u" #define PRIuLEAST64 __PRI64_PREFIX "u" #define PRIuFAST8 "u" #define PRIuFAST16 __PRIPTR_PREFIX "u" #define PRIuFAST32 __PRIPTR_PREFIX "u" #define PRIuFAST64 __PRI64_PREFIX "u" #define PRIx8 "x" #define PRIx16 "x" #define PRIx32 "x" #define PRIx64 __PRI64_PREFIX "x" #define PRIxLEAST8 "x" #define PRIxLEAST16 "x" #define PRIxLEAST32 "x" #define PRIxLEAST64 __PRI64_PREFIX "x" #define PRIxFAST8 "x" #define PRIxFAST16 __PRIPTR_PREFIX "x" #define PRIxFAST32 __PRIPTR_PREFIX "x" #define PRIxFAST64 __PRI64_PREFIX "x" #define PRIX8 "X" #define PRIX16 "X" #define PRIX32 "X" #define PRIX64 __PRI64_PREFIX "X" #define PRIXLEAST8 "X" #define PRIXLEAST16 "X" #define PRIXLEAST32 "X" #define PRIXLEAST64 __PRI64_PREFIX "X" #define PRIXFAST8 "X" #define PRIXFAST16 __PRIPTR_PREFIX "X" #define PRIXFAST32 __PRIPTR_PREFIX "X" #define PRIXFAST64 __PRI64_PREFIX "X" #define PRIdMAX __PRI64_PREFIX "d" #define PRIiMAX __PRI64_PREFIX "i" #define PRIoMAX __PRI64_PREFIX "o" #define PRIuMAX __PRI64_PREFIX "u" #define PRIxMAX __PRI64_PREFIX "x" #define PRIXMAX __PRI64_PREFIX "X" #define PRIdPTR __PRIPTR_PREFIX "d" #define PRIiPTR __PRIPTR_PREFIX "i" #define PRIoPTR __PRIPTR_PREFIX "o" #define PRIuPTR __PRIPTR_PREFIX "u" #define PRIxPTR __PRIPTR_PREFIX "x" #define PRIXPTR __PRIPTR_PREFIX "X" #define SCNd8 "hhd" #define SCNd16 "hd" #define SCNd32 "d" #define SCNd64 __PRI64_PREFIX "d" #define SCNdLEAST8 "hhd" #define SCNdLEAST16 "hd" #define SCNdLEAST32 "d" #define SCNdLEAST64 __PRI64_PREFIX "d" #define SCNdFAST8 "hhd" #define SCNdFAST16 __PRIPTR_PREFIX "d" #define SCNdFAST32 __PRIPTR_PREFIX "d" #define SCNdFAST64 __PRI64_PREFIX "d" #define SCNi8 "hhi" #define SCNi16 "hi" #define SCNi32 "i" #define SCNi64 __PRI64_PREFIX "i" #define SCNiLEAST8 "hhi" #define SCNiLEAST16 "hi" #define SCNiLEAST32 "i" #define SCNiLEAST64 __PRI64_PREFIX "i" #define SCNiFAST8 "hhi" #define SCNiFAST16 __PRIPTR_PREFIX "i" #define SCNiFAST32 __PRIPTR_PREFIX "i" #define SCNiFAST64 __PRI64_PREFIX "i" #define SCNu8 "hhu" #define SCNu16 "hu" #define SCNu32 "u" #define SCNu64 __PRI64_PREFIX "u" #define SCNuLEAST8 "hhu" #define SCNuLEAST16 "hu" #define SCNuLEAST32 "u" #define SCNuLEAST64 __PRI64_PREFIX "u" #define SCNuFAST8 "hhu" #define SCNuFAST16 __PRIPTR_PREFIX "u" #define SCNuFAST32 __PRIPTR_PREFIX "u" #define SCNuFAST64 __PRI64_PREFIX "u" #define SCNo8 "hho" #define SCNo16 "ho" #define SCNo32 "o" #define SCNo64 __PRI64_PREFIX "o" #define SCNoLEAST8 "hho" #define SCNoLEAST16 "ho" #define SCNoLEAST32 "o" #define SCNoLEAST64 __PRI64_PREFIX "o" #define SCNoFAST8 "hho" #define SCNoFAST16 __PRIPTR_PREFIX "o" #define SCNoFAST32 __PRIPTR_PREFIX "o" #define SCNoFAST64 __PRI64_PREFIX "o" #define SCNx8 "hhx" #define SCNx16 "hx" #define SCNx32 "x" #define SCNx64 __PRI64_PREFIX "x" #define SCNxLEAST8 "hhx" #define SCNxLEAST16 "hx" #define SCNxLEAST32 "x" #define SCNxLEAST64 __PRI64_PREFIX "x" #define SCNxFAST8 "hhx" #define SCNxFAST16 __PRIPTR_PREFIX "x" #define SCNxFAST32 __PRIPTR_PREFIX "x" #define SCNxFAST64 __PRI64_PREFIX "x" #define SCNdMAX __PRI64_PREFIX "d" #define SCNiMAX __PRI64_PREFIX "i" #define SCNoMAX __PRI64_PREFIX "o" #define SCNuMAX __PRI64_PREFIX "u" #define SCNxMAX __PRI64_PREFIX "x" #define SCNdPTR __PRIPTR_PREFIX "d" #define SCNiPTR __PRIPTR_PREFIX "i" #define SCNoPTR __PRIPTR_PREFIX "o" #define SCNuPTR __PRIPTR_PREFIX "u" #define SCNxPTR __PRIPTR_PREFIX "x" typedef struct { long int quot; long int rem; } imaxdiv_t; # 298 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern intmax_t strtoimax (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)); extern uintmax_t strtoumax (__const char *__restrict __nptr, char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__)); extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__ ((__nothrow__)); extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, __gwchar_t ** __restrict __endptr, int __base) __attribute__ ((__nothrow__)); # 333 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 extern __inline intmax_t __attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base) { return __strtol_internal (nptr, endptr, base, 0); } # 348 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 extern __inline uintmax_t __attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base) { return __strtoul_internal (nptr, endptr, base, 0); } extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)); #define __wcstol_internal_defined 1 extern __inline intmax_t __attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstol_internal (nptr, endptr, base, 0); } extern unsigned long int __wcstoul_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t ** __restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)); #define __wcstoul_internal_defined 1 extern __inline uintmax_t __attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstoul_internal (nptr, endptr, base, 0); } # 459 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 # 9 "/usr/include/inttypes.h" 2 3 4 # 108 "/usr/include/xine/os_types.h" 2 3 4 # 63 "/usr/include/xine.h" 2 3 4 # 1 "/usr/include/xine/attributes.h" 1 3 4 # 25 "/usr/include/xine/attributes.h" 3 4 #define ATTRIBUTE_H_ #define ATTR_ALIGN(align) #define ATTRIBUTE_PACKED 1 # 53 "/usr/include/xine/attributes.h" 3 4 #define XINE_PROTECTED #define XINE_SENTINEL # 64 "/usr/include/xine.h" 2 3 4 # 85 "/usr/include/xine.h" 3 4 typedef struct xine_s xine_t; typedef struct xine_stream_s xine_stream_t; typedef struct xine_audio_port_s xine_audio_port_t; typedef struct xine_video_port_s xine_video_port_t; typedef xine_audio_port_t xine_ao_driver_t; typedef xine_video_port_t xine_vo_driver_t; # 106 "/usr/include/xine.h" 3 4 const char *xine_get_version_string (void) ; void xine_get_version (int *major, int *minor, int *sub) ; int xine_check_version (int major, int minor, int sub) ; #define XINE_MAJOR_VERSION 1 #define XINE_MINOR_VERSION 1 #define XINE_SUB_VERSION 4 #define XINE_VERSION "1.1.4" # 135 "/usr/include/xine.h" 3 4 xine_t *xine_new (void) ; void xine_init (xine_t *self) ; # 157 "/usr/include/xine.h" 3 4 xine_audio_port_t *xine_open_audio_driver (xine_t *self, const char *id, void *data) ; xine_video_port_t *xine_open_video_driver (xine_t *self, const char *id, int visual, void *data) ; void xine_close_audio_driver (xine_t *self, xine_audio_port_t *driver) ; void xine_close_video_driver (xine_t *self, xine_video_port_t *driver) ; #define XINE_VISUAL_TYPE_NONE 0 #define XINE_VISUAL_TYPE_X11 1 #define XINE_VISUAL_TYPE_X11_2 10 #define XINE_VISUAL_TYPE_AA 2 #define XINE_VISUAL_TYPE_FB 3 #define XINE_VISUAL_TYPE_GTK 4 #define XINE_VISUAL_TYPE_DFB 5 #define XINE_VISUAL_TYPE_PM 6 #define XINE_VISUAL_TYPE_DIRECTX 7 #define XINE_VISUAL_TYPE_CACA 8 #define XINE_VISUAL_TYPE_MACOSX 9 #define XINE_VISUAL_TYPE_XCB 11 void xine_exit (xine_t *self) ; # 201 "/usr/include/xine.h" 3 4 xine_stream_t *xine_stream_new (xine_t *self, xine_audio_port_t *ao, xine_video_port_t *vo) ; # 222 "/usr/include/xine.h" 3 4 int xine_stream_master_slave(xine_stream_t *master, xine_stream_t *slave, int affection) ; #define XINE_MASTER_SLAVE_PLAY (1<<0) #define XINE_MASTER_SLAVE_STOP (1<<1) #define XINE_MASTER_SLAVE_SPEED (1<<2) # 241 "/usr/include/xine.h" 3 4 int xine_open (xine_stream_t *stream, const char *mrl) ; # 253 "/usr/include/xine.h" 3 4 int xine_play (xine_stream_t *stream, int start_pos, int start_time) ; # 262 "/usr/include/xine.h" 3 4 int xine_trick_mode (xine_stream_t *stream, int mode, int value) ; #define XINE_TRICK_MODE_OFF 0 #define XINE_TRICK_MODE_SEEK_TO_POSITION 1 #define XINE_TRICK_MODE_SEEK_TO_TIME 2 #define XINE_TRICK_MODE_FAST_FORWARD 3 #define XINE_TRICK_MODE_FAST_REWIND 4 void xine_stop (xine_stream_t *stream) ; void xine_close (xine_stream_t *stream) ; int xine_eject (xine_stream_t *stream) ; void xine_dispose (xine_stream_t *stream) ; void xine_engine_set_param(xine_t *self, int param, int value) ; int xine_engine_get_param(xine_t *self, int param) ; #define XINE_ENGINE_PARAM_VERBOSITY 1 void xine_set_param (xine_stream_t *stream, int param, int value) ; int xine_get_param (xine_stream_t *stream, int param) ; #define XINE_PARAM_SPEED 1 #define XINE_PARAM_AV_OFFSET 2 #define XINE_PARAM_AUDIO_CHANNEL_LOGICAL 3 #define XINE_PARAM_SPU_CHANNEL 4 #define XINE_PARAM_VIDEO_CHANNEL 5 #define XINE_PARAM_AUDIO_VOLUME 6 #define XINE_PARAM_AUDIO_MUTE 7 #define XINE_PARAM_AUDIO_COMPR_LEVEL 8 #define XINE_PARAM_AUDIO_AMP_LEVEL 9 #define XINE_PARAM_AUDIO_REPORT_LEVEL 10 #define XINE_PARAM_VERBOSITY 11 #define XINE_PARAM_SPU_OFFSET 12 #define XINE_PARAM_IGNORE_VIDEO 13 #define XINE_PARAM_IGNORE_AUDIO 14 #define XINE_PARAM_IGNORE_SPU 15 #define XINE_PARAM_BROADCASTER_PORT 16 #define XINE_PARAM_METRONOM_PREBUFFER 17 #define XINE_PARAM_EQ_30HZ 18 #define XINE_PARAM_EQ_60HZ 19 #define XINE_PARAM_EQ_125HZ 20 #define XINE_PARAM_EQ_250HZ 21 #define XINE_PARAM_EQ_500HZ 22 #define XINE_PARAM_EQ_1000HZ 23 #define XINE_PARAM_EQ_2000HZ 24 #define XINE_PARAM_EQ_4000HZ 25 #define XINE_PARAM_EQ_8000HZ 26 #define XINE_PARAM_EQ_16000HZ 27 #define XINE_PARAM_AUDIO_CLOSE_DEVICE 28 #define XINE_PARAM_AUDIO_AMP_MUTE 29 #define XINE_PARAM_FINE_SPEED 30 #define XINE_PARAM_EARLY_FINISHED_EVENT 31 #define XINE_PARAM_GAPLESS_SWITCH 32 #define XINE_PARAM_DELAY_FINISHED_EVENT 33 # 354 "/usr/include/xine.h" 3 4 #define XINE_SPEED_PAUSE 0 #define XINE_SPEED_SLOW_4 1 #define XINE_SPEED_SLOW_2 2 #define XINE_SPEED_NORMAL 4 #define XINE_SPEED_FAST_2 8 #define XINE_SPEED_FAST_4 16 #define XINE_FINE_SPEED_NORMAL 1000000 #define XINE_PARAM_VO_DEINTERLACE 0x01000000 #define XINE_PARAM_VO_ASPECT_RATIO 0x01000001 #define XINE_PARAM_VO_HUE 0x01000002 #define XINE_PARAM_VO_SATURATION 0x01000003 #define XINE_PARAM_VO_CONTRAST 0x01000004 #define XINE_PARAM_VO_BRIGHTNESS 0x01000005 #define XINE_PARAM_VO_ZOOM_X 0x01000008 #define XINE_PARAM_VO_ZOOM_Y 0x0100000d #define XINE_PARAM_VO_PAN_SCAN 0x01000009 #define XINE_PARAM_VO_TVMODE 0x0100000a #define XINE_PARAM_VO_WINDOW_WIDTH 0x0100000f #define XINE_PARAM_VO_WINDOW_HEIGHT 0x01000010 #define XINE_PARAM_VO_CROP_LEFT 0x01000020 #define XINE_PARAM_VO_CROP_RIGHT 0x01000021 #define XINE_PARAM_VO_CROP_TOP 0x01000022 #define XINE_PARAM_VO_CROP_BOTTOM 0x01000023 #define XINE_VO_ZOOM_STEP 100 #define XINE_VO_ZOOM_MAX 400 #define XINE_VO_ZOOM_MIN -85 #define XINE_VO_ASPECT_AUTO 0 #define XINE_VO_ASPECT_SQUARE 1 #define XINE_VO_ASPECT_4_3 2 #define XINE_VO_ASPECT_ANAMORPHIC 3 #define XINE_VO_ASPECT_DVB 4 #define XINE_VO_ASPECT_NUM_RATIOS 5 #define XINE_VO_ASPECT_PAN_SCAN 41 #define XINE_VO_ASPECT_DONT_TOUCH 42 #define XINE_DEMUX_DEFAULT_STRATEGY 0 #define XINE_DEMUX_REVERT_STRATEGY 1 #define XINE_DEMUX_CONTENT_STRATEGY 2 #define XINE_DEMUX_EXTENSION_STRATEGY 3 #define XINE_VERBOSITY_NONE 0 #define XINE_VERBOSITY_LOG 1 #define XINE_VERBOSITY_DEBUG 2 # 424 "/usr/include/xine.h" 3 4 int xine_get_current_frame (xine_stream_t *stream, int *width, int *height, int *ratio_code, int *format, uint8_t *img) ; #define XINE_IMGFMT_YV12 (('2'<<24)|('1'<<16)|('V'<<8)|'Y') #define XINE_IMGFMT_YUY2 (('2'<<24)|('Y'<<16)|('U'<<8)|'Y') #define XINE_IMGFMT_XVMC (('C'<<24)|('M'<<16)|('v'<<8)|'X') #define XINE_IMGFMT_XXMC (('C'<<24)|('M'<<16)|('x'<<8)|'X') int64_t xine_get_current_vpts(xine_stream_t *stream) ; # 536 "/usr/include/xine.h" 3 4 typedef struct xine_post_s xine_post_t; struct xine_post_s { xine_audio_port_t **audio_input; xine_video_port_t **video_input; int type; }; # 569 "/usr/include/xine.h" 3 4 xine_post_t *xine_post_init(xine_t *xine, const char *name, int inputs, xine_audio_port_t **audio_target, xine_video_port_t **video_target) ; const char *const *xine_list_post_plugins(xine_t *xine) ; const char *const *xine_list_post_plugins_typed(xine_t *xine, int type) ; # 589 "/usr/include/xine.h" 3 4 typedef struct xine_post_in_s xine_post_in_t; typedef struct xine_post_out_s xine_post_out_t; struct xine_post_in_s { const char *name; int type; void *data; }; struct xine_post_out_s { const char *name; int type; void *data; # 627 "/usr/include/xine.h" 3 4 int (*rewire) (xine_post_out_t *self, void *data); }; const char *const *xine_post_list_inputs(xine_post_t *self) ; const char *const *xine_post_list_outputs(xine_post_t *self) ; xine_post_in_t *xine_post_input(xine_post_t *self, const char *name) ; xine_post_out_t *xine_post_output(xine_post_t *self, const char *name) ; int xine_post_wire(xine_post_out_t *source, xine_post_in_t *target) ; # 658 "/usr/include/xine.h" 3 4 int xine_post_wire_video_port(xine_post_out_t *source, xine_video_port_t *vo) ; # 669 "/usr/include/xine.h" 3 4 int xine_post_wire_audio_port(xine_post_out_t *source, xine_audio_port_t *ao) ; xine_post_out_t * xine_get_video_source(xine_stream_t *stream) ; xine_post_out_t * xine_get_audio_source(xine_stream_t *stream) ; void xine_post_dispose(xine_t *xine, xine_post_t *self) ; #define XINE_POST_TYPE_VIDEO_FILTER 0x010000 #define XINE_POST_TYPE_VIDEO_VISUALIZATION 0x010001 #define XINE_POST_TYPE_VIDEO_COMPOSE 0x010002 #define XINE_POST_TYPE_AUDIO_FILTER 0x020000 #define XINE_POST_TYPE_AUDIO_VISUALIZATION 0x020001 # 699 "/usr/include/xine.h" 3 4 #define XINE_POST_DATA_VIDEO 0 #define XINE_POST_DATA_AUDIO 1 #define XINE_POST_DATA_INT 3 #define XINE_POST_DATA_DOUBLE 4 #define XINE_POST_DATA_PARAMETERS 5 typedef struct { int type; char *name; int size; int offset; char **enum_values; double range_min; double range_max; int readonly; char *description; } xine_post_api_parameter_t; typedef struct { int struct_size; xine_post_api_parameter_t *parameter; } xine_post_api_descr_t; typedef struct { int (*set_parameters) (xine_post_t *self, void *params); int (*get_parameters) (xine_post_t *self, void *params); xine_post_api_descr_t * (*get_param_descr) (void); char * (*get_help) (void); } xine_post_api_t; #define POST_PARAM_TYPE_LAST 0 #define POST_PARAM_TYPE_INT 1 #define POST_PARAM_TYPE_DOUBLE 2 #define POST_PARAM_TYPE_CHAR 3 #define POST_PARAM_TYPE_STRING 4 #define POST_PARAM_TYPE_STRINGLIST 5 #define POST_PARAM_TYPE_BOOL 6 # 787 "/usr/include/xine.h" 3 4 int xine_get_log_section_count(xine_t *self) ; const char *const *xine_get_log_names(xine_t *self) ; # 799 "/usr/include/xine.h" 3 4 void xine_log (xine_t *self, int buf, const char *format, ...) __attribute__ ((__format__(printf, 3, 4))) ; void xine_vlog(xine_t *self, int buf, const char *format, va_list args) __attribute__ ((__format__(printf, 3, 0))) ; const char *const *xine_get_log (xine_t *self, int buf) ; typedef void (*xine_log_cb_t) (void *user_data, int section); void xine_register_log_cb (xine_t *self, xine_log_cb_t cb, void *user_data) ; int xine_get_error (xine_stream_t *stream) ; int xine_get_status (xine_stream_t *stream) ; #define XINE_STATUS_IDLE 0 #define XINE_STATUS_STOP 1 #define XINE_STATUS_PLAY 2 #define XINE_STATUS_QUIT 3 #define XINE_ERROR_NONE 0 #define XINE_ERROR_NO_INPUT_PLUGIN 1 #define XINE_ERROR_NO_DEMUX_PLUGIN 2 #define XINE_ERROR_DEMUX_FAILED 3 #define XINE_ERROR_MALFORMED_MRL 4 #define XINE_ERROR_INPUT_FAILED 5 int xine_get_audio_lang (xine_stream_t *stream, int channel, char *lang) ; int xine_get_spu_lang (xine_stream_t *stream, int channel, char *lang) ; #define XINE_LANG_MAX 32 # 863 "/usr/include/xine.h" 3 4 int xine_get_pos_length (xine_stream_t *stream, int *pos_stream, int *pos_time, int *length_time) ; # 876 "/usr/include/xine.h" 3 4 uint32_t xine_get_stream_info (xine_stream_t *stream, int info) ; const char *xine_get_meta_info (xine_stream_t *stream, int info) ; #define XINE_STREAM_INFO_BITRATE 0 #define XINE_STREAM_INFO_SEEKABLE 1 #define XINE_STREAM_INFO_VIDEO_WIDTH 2 #define XINE_STREAM_INFO_VIDEO_HEIGHT 3 #define XINE_STREAM_INFO_VIDEO_RATIO 4 #define XINE_STREAM_INFO_VIDEO_CHANNELS 5 #define XINE_STREAM_INFO_VIDEO_STREAMS 6 #define XINE_STREAM_INFO_VIDEO_BITRATE 7 #define XINE_STREAM_INFO_VIDEO_FOURCC 8 #define XINE_STREAM_INFO_VIDEO_HANDLED 9 #define XINE_STREAM_INFO_FRAME_DURATION 10 #define XINE_STREAM_INFO_AUDIO_CHANNELS 11 #define XINE_STREAM_INFO_AUDIO_BITS 12 #define XINE_STREAM_INFO_AUDIO_SAMPLERATE 13 #define XINE_STREAM_INFO_AUDIO_BITRATE 14 #define XINE_STREAM_INFO_AUDIO_FOURCC 15 #define XINE_STREAM_INFO_AUDIO_HANDLED 16 #define XINE_STREAM_INFO_HAS_CHAPTERS 17 #define XINE_STREAM_INFO_HAS_VIDEO 18 #define XINE_STREAM_INFO_HAS_AUDIO 19 #define XINE_STREAM_INFO_IGNORE_VIDEO 20 #define XINE_STREAM_INFO_IGNORE_AUDIO 21 #define XINE_STREAM_INFO_IGNORE_SPU 22 #define XINE_STREAM_INFO_VIDEO_HAS_STILL 23 #define XINE_STREAM_INFO_MAX_AUDIO_CHANNEL 24 #define XINE_STREAM_INFO_MAX_SPU_CHANNEL 25 #define XINE_STREAM_INFO_AUDIO_MODE 26 #define XINE_STREAM_INFO_SKIPPED_FRAMES 27 #define XINE_STREAM_INFO_DISCARDED_FRAMES 28 #define XINE_STREAM_INFO_VIDEO_AFD 29 #define XINE_STREAM_INFO_DVD_TITLE_NUMBER 30 #define XINE_STREAM_INFO_DVD_TITLE_COUNT 31 #define XINE_STREAM_INFO_DVD_CHAPTER_NUMBER 32 #define XINE_STREAM_INFO_DVD_CHAPTER_COUNT 33 #define XINE_STREAM_INFO_DVD_ANGLE_NUMBER 34 #define XINE_STREAM_INFO_DVD_ANGLE_COUNT 35 #define XINE_VIDEO_AFD_NOT_PRESENT -1 #define XINE_VIDEO_AFD_RESERVED_0 0 #define XINE_VIDEO_AFD_RESERVED_1 1 #define XINE_VIDEO_AFD_BOX_16_9_TOP 2 #define XINE_VIDEO_AFD_BOX_14_9_TOP 3 #define XINE_VIDEO_AFD_BOX_GT_16_9_CENTRE 4 #define XINE_VIDEO_AFD_RESERVED_5 5 #define XINE_VIDEO_AFD_RESERVED_6 6 #define XINE_VIDEO_AFD_RESERVED_7 7 #define XINE_VIDEO_AFD_SAME_AS_FRAME 8 #define XINE_VIDEO_AFD_4_3_CENTRE 9 #define XINE_VIDEO_AFD_16_9_CENTRE 10 #define XINE_VIDEO_AFD_14_9_CENTRE 11 #define XINE_VIDEO_AFD_RESERVED_12 12 #define XINE_VIDEO_AFD_4_3_PROTECT_14_9 13 #define XINE_VIDEO_AFD_16_9_PROTECT_14_9 14 #define XINE_VIDEO_AFD_16_9_PROTECT_4_3 15 #define XINE_META_INFO_TITLE 0 #define XINE_META_INFO_COMMENT 1 #define XINE_META_INFO_ARTIST 2 #define XINE_META_INFO_GENRE 3 #define XINE_META_INFO_ALBUM 4 #define XINE_META_INFO_YEAR 5 #define XINE_META_INFO_VIDEOCODEC 6 #define XINE_META_INFO_AUDIOCODEC 7 #define XINE_META_INFO_SYSTEMLAYER 8 #define XINE_META_INFO_INPUT_PLUGIN 9 #define XINE_META_INFO_CDINDEX_DISCID 10 #define XINE_META_INFO_TRACK_NUMBER 11 # 963 "/usr/include/xine.h" 3 4 typedef struct { char *origin; char *mrl; char *link; uint32_t type; off_t size; } xine_mrl_t; #define XINE_MRL_TYPE_unknown (0 << 0) #define XINE_MRL_TYPE_dvd (1 << 0) #define XINE_MRL_TYPE_vcd (1 << 1) #define XINE_MRL_TYPE_net (1 << 2) #define XINE_MRL_TYPE_rtp (1 << 3) #define XINE_MRL_TYPE_stdin (1 << 4) #define XINE_MRL_TYPE_cda (1 << 5) #define XINE_MRL_TYPE_file (1 << 6) #define XINE_MRL_TYPE_file_fifo (1 << 7) #define XINE_MRL_TYPE_file_chardev (1 << 8) #define XINE_MRL_TYPE_file_directory (1 << 9) #define XINE_MRL_TYPE_file_blockdev (1 << 10) #define XINE_MRL_TYPE_file_normal (1 << 11) #define XINE_MRL_TYPE_file_symlink (1 << 12) #define XINE_MRL_TYPE_file_sock (1 << 13) #define XINE_MRL_TYPE_file_exec (1 << 14) #define XINE_MRL_TYPE_file_backup (1 << 15) #define XINE_MRL_TYPE_file_hidden (1 << 16) const char *const *xine_get_browsable_input_plugin_ids (xine_t *self) ; # 1002 "/usr/include/xine.h" 3 4 xine_mrl_t **xine_get_browse_mrls (xine_t *self, const char *plugin_id, const char *start_mrl, int *num_mrls) ; const char *const *xine_get_autoplay_input_plugin_ids (xine_t *self) ; char **xine_get_autoplay_mrls (xine_t *self, const char *plugin_id, int *num_mrls) ; char *xine_get_file_extensions (xine_t *self) ; char *xine_get_mime_types (xine_t *self) ; char *xine_get_demux_for_mime_type (xine_t *self, const char *mime_type) ; const char *xine_get_input_plugin_description (xine_t *self, const char *plugin_id) ; const char *xine_get_demux_plugin_description (xine_t *self, const char *plugin_id) ; const char *xine_get_spu_plugin_description (xine_t *self, const char *plugin_id) ; const char *xine_get_audio_plugin_description (xine_t *self, const char *plugin_id) ; const char *xine_get_video_plugin_description (xine_t *self, const char *plugin_id) ; const char *xine_get_audio_driver_plugin_description (xine_t *self, const char *plugin_id) ; const char *xine_get_video_driver_plugin_description (xine_t *self, const char *plugin_id) ; const char *xine_get_post_plugin_description (xine_t *self, const char *plugin_id) ; const char *const *xine_list_audio_output_plugins (xine_t *self) ; const char *const *xine_list_video_output_plugins (xine_t *self) ; const char *const *xine_list_demuxer_plugins(xine_t *self) ; const char *const *xine_list_input_plugins(xine_t *self) ; const char *const *xine_list_spu_plugins(xine_t *self) ; const char *const *xine_list_audio_decoder_plugins(xine_t *self) ; const char *const *xine_list_video_decoder_plugins(xine_t *self) ; void xine_plugins_garbage_collector(xine_t *self) ; # 1077 "/usr/include/xine.h" 3 4 int xine_gui_send_vo_data (xine_stream_t *self, int type, void *data) ; int xine_port_send_gui_data (xine_video_port_t *vo, int type, void *data) ; typedef struct { int x,y,w,h; } x11_rectangle_t; typedef struct { void *display; int screen; unsigned long d; void *user_data; # 1127 "/usr/include/xine.h" 3 4 void (*dest_size_cb) (void *user_data, int video_width, int video_height, double video_pixel_aspect, int *dest_width, int *dest_height, double *dest_pixel_aspect); # 1158 "/usr/include/xine.h" 3 4 void (*frame_output_cb) (void *user_data, int video_width, int video_height, double video_pixel_aspect, int *dest_x, int *dest_y, int *dest_width, int *dest_height, double *dest_pixel_aspect, int *win_x, int *win_y); # 1176 "/usr/include/xine.h" 3 4 void (*lock_display) (void *user_data); # 1188 "/usr/include/xine.h" 3 4 void (*unlock_display) (void *user_data); } x11_visual_t; typedef struct { void *connection; void *screen; unsigned int window; void *user_data; # 1227 "/usr/include/xine.h" 3 4 void (*dest_size_cb) (void *user_data, int video_width, int video_height, double video_pixel_aspect, int *dest_width, int *dest_height, double *dest_pixel_aspect); # 1258 "/usr/include/xine.h" 3 4 void (*frame_output_cb) (void *user_data, int video_width, int video_height, double video_pixel_aspect, int *dest_x, int *dest_y, int *dest_width, int *dest_height, double *dest_pixel_aspect, int *win_x, int *win_y); } xcb_visual_t; typedef struct { void (*frame_output_cb) (void *user_data, int video_width, int video_height, double video_pixel_aspect, int *dest_x, int *dest_y, int *dest_width, int *dest_height, double *dest_pixel_aspect, int *win_x, int *win_y); void *user_data; } fb_visual_t; # 1321 "/usr/include/xine.h" 3 4 #define XINE_GUI_SEND_COMPLETION_EVENT 1 #define XINE_GUI_SEND_DRAWABLE_CHANGED 2 #define XINE_GUI_SEND_EXPOSE_EVENT 3 #define XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO 4 #define XINE_GUI_SEND_VIDEOWIN_VISIBLE 5 #define XINE_GUI_SEND_SELECT_VISUAL 8 #define XINE_GUI_SEND_WILL_DESTROY_DRAWABLE 9 #define XINE_HEALTH_CHECK_OK 0 #define XINE_HEALTH_CHECK_FAIL 1 #define XINE_HEALTH_CHECK_UNSUPPORTED 2 #define XINE_HEALTH_CHECK_NO_SUCH_CHECK 3 #define CHECK_KERNEL 0 #define CHECK_MTRR 1 #define CHECK_CDROM 2 #define CHECK_DVDROM 3 #define CHECK_DMA 4 #define CHECK_X 5 #define CHECK_XV 6 struct xine_health_check_s { int status; const char* cdrom_dev; const char* dvd_dev; char* msg; char* title; char* explanation; }; typedef struct xine_health_check_s xine_health_check_t; xine_health_check_t* xine_health_check(xine_health_check_t*, int check_num) ; # 1383 "/usr/include/xine.h" 3 4 #define XINE_CONFIG_TYPE_UNKNOWN 0 #define XINE_CONFIG_TYPE_RANGE 1 #define XINE_CONFIG_TYPE_STRING 2 #define XINE_CONFIG_TYPE_ENUM 3 #define XINE_CONFIG_TYPE_NUM 4 #define XINE_CONFIG_TYPE_BOOL 5 #define XINE_CONFIG_STRING_IS_STRING 0 #define XINE_CONFIG_STRING_IS_FILENAME 1 #define XINE_CONFIG_STRING_IS_DEVICE_NAME 2 #define XINE_CONFIG_STRING_IS_DIRECTORY_NAME 3 typedef struct xine_cfg_entry_s xine_cfg_entry_t; typedef void (*xine_config_cb_t) (void *user_data, xine_cfg_entry_t *entry); struct xine_cfg_entry_s { const char *key; int type; char *unknown_value; char *str_value; char *str_default; char *str_sticky; # 1421 "/usr/include/xine.h" 3 4 int num_value; int num_default; int range_min; int range_max; char **enum_values; const char *description; const char *help; int exp_level; # 1449 "/usr/include/xine.h" 3 4 xine_config_cb_t callback; void *callback_data; }; const char *xine_config_register_string (xine_t *self, const char *key, const char *def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data) ; const char *xine_config_register_filename (xine_t *self, const char *key, const char *def_value, int req_type, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data) ; int xine_config_register_range (xine_t *self, const char *key, int def_value, int min, int max, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data) ; int xine_config_register_enum (xine_t *self, const char *key, int def_value, char **values, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data) ; int xine_config_register_num (xine_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data) ; int xine_config_register_bool (xine_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data) ; # 1519 "/usr/include/xine.h" 3 4 int xine_config_get_first_entry (xine_t *self, xine_cfg_entry_t *entry) ; int xine_config_get_next_entry (xine_t *self, xine_cfg_entry_t *entry) ; int xine_config_lookup_entry (xine_t *self, const char *key, xine_cfg_entry_t *entry) ; void xine_config_update_entry (xine_t *self, const xine_cfg_entry_t *entry) ; void xine_config_load (xine_t *self, const char *cfg_filename) ; void xine_config_save (xine_t *self, const char *cfg_filename) ; void xine_config_reset (xine_t *self) ; # 1567 "/usr/include/xine.h" 3 4 #define XINE_EVENT_UI_PLAYBACK_FINISHED 1 #define XINE_EVENT_UI_CHANNELS_CHANGED 2 #define XINE_EVENT_UI_SET_TITLE 3 #define XINE_EVENT_UI_MESSAGE 4 #define XINE_EVENT_FRAME_FORMAT_CHANGE 5 #define XINE_EVENT_AUDIO_LEVEL 6 #define XINE_EVENT_QUIT 7 #define XINE_EVENT_PROGRESS 8 #define XINE_EVENT_MRL_REFERENCE 9 #define XINE_EVENT_UI_NUM_BUTTONS 10 #define XINE_EVENT_SPU_BUTTON 11 #define XINE_EVENT_DROPPED_FRAMES 12 #define XINE_EVENT_MRL_REFERENCE_EXT 13 #define XINE_EVENT_INPUT_MOUSE_BUTTON 101 #define XINE_EVENT_INPUT_MOUSE_MOVE 102 #define XINE_EVENT_INPUT_MENU1 103 #define XINE_EVENT_INPUT_MENU2 104 #define XINE_EVENT_INPUT_MENU3 105 #define XINE_EVENT_INPUT_MENU4 106 #define XINE_EVENT_INPUT_MENU5 107 #define XINE_EVENT_INPUT_MENU6 108 #define XINE_EVENT_INPUT_MENU7 109 #define XINE_EVENT_INPUT_UP 110 #define XINE_EVENT_INPUT_DOWN 111 #define XINE_EVENT_INPUT_LEFT 112 #define XINE_EVENT_INPUT_RIGHT 113 #define XINE_EVENT_INPUT_SELECT 114 #define XINE_EVENT_INPUT_NEXT 115 #define XINE_EVENT_INPUT_PREVIOUS 116 #define XINE_EVENT_INPUT_ANGLE_NEXT 117 #define XINE_EVENT_INPUT_ANGLE_PREVIOUS 118 #define XINE_EVENT_INPUT_BUTTON_FORCE 119 #define XINE_EVENT_INPUT_NUMBER_0 120 #define XINE_EVENT_INPUT_NUMBER_1 121 #define XINE_EVENT_INPUT_NUMBER_2 122 #define XINE_EVENT_INPUT_NUMBER_3 123 #define XINE_EVENT_INPUT_NUMBER_4 124 #define XINE_EVENT_INPUT_NUMBER_5 125 #define XINE_EVENT_INPUT_NUMBER_6 126 #define XINE_EVENT_INPUT_NUMBER_7 127 #define XINE_EVENT_INPUT_NUMBER_8 128 #define XINE_EVENT_INPUT_NUMBER_9 129 #define XINE_EVENT_INPUT_NUMBER_10_ADD 130 #define XINE_EVENT_SET_V4L2 200 #define XINE_EVENT_PVR_SAVE 201 #define XINE_EVENT_PVR_REPORT_NAME 202 #define XINE_EVENT_PVR_REALTIME 203 #define XINE_EVENT_PVR_PAUSE 204 #define XINE_EVENT_SET_MPEG_DATA 205 #define XINE_EVENT_VDR_RED 300 #define XINE_EVENT_VDR_GREEN 301 #define XINE_EVENT_VDR_YELLOW 302 #define XINE_EVENT_VDR_BLUE 303 #define XINE_EVENT_VDR_PLAY 304 #define XINE_EVENT_VDR_PAUSE 305 #define XINE_EVENT_VDR_STOP 306 #define XINE_EVENT_VDR_RECORD 307 #define XINE_EVENT_VDR_FASTFWD 308 #define XINE_EVENT_VDR_FASTREW 309 #define XINE_EVENT_VDR_POWER 310 #define XINE_EVENT_VDR_CHANNELPLUS 311 #define XINE_EVENT_VDR_CHANNELMINUS 312 #define XINE_EVENT_VDR_SCHEDULE 313 #define XINE_EVENT_VDR_CHANNELS 314 #define XINE_EVENT_VDR_TIMERS 315 #define XINE_EVENT_VDR_RECORDINGS 316 #define XINE_EVENT_VDR_SETUP 317 #define XINE_EVENT_VDR_COMMANDS 318 #define XINE_EVENT_VDR_BACK 319 #define XINE_EVENT_VDR_USER1 320 #define XINE_EVENT_VDR_USER2 321 #define XINE_EVENT_VDR_USER3 322 #define XINE_EVENT_VDR_USER4 323 #define XINE_EVENT_VDR_USER5 324 #define XINE_EVENT_VDR_USER6 325 #define XINE_EVENT_VDR_USER7 326 #define XINE_EVENT_VDR_USER8 327 #define XINE_EVENT_VDR_USER9 328 #define XINE_EVENT_VDR_VOLPLUS 329 #define XINE_EVENT_VDR_VOLMINUS 330 #define XINE_EVENT_VDR_MUTE 331 #define XINE_EVENT_VDR_AUDIO 332 #define XINE_EVENT_VDR_INFO 333 #define XINE_EVENT_VDR_CHANNELPREVIOUS 334 #define XINE_EVENT_VDR_SETVIDEOWINDOW 350 #define XINE_EVENT_VDR_FRAMESIZECHANGED 351 #define XINE_EVENT_VDR_SELECTAUDIO 352 #define XINE_EVENT_VDR_TRICKSPEEDMODE 353 #define XINE_EVENT_VDR_PLUGINSTARTED 354 #define XINE_EVENT_POST_TVTIME_FILMMODE_CHANGE 400 typedef struct { int type; xine_stream_t *stream; void *data; int data_length; struct timeval tv; } xine_event_t; typedef struct { xine_event_t event; uint8_t button; uint16_t x,y; } xine_input_data_t; typedef struct { int num_buttons; int str_len; char str[256]; } xine_ui_data_t; typedef struct { xine_ui_data_t compatibility; int type; int explanation; int num_parameters; int parameters; char messages[1]; } xine_ui_message_data_t; typedef struct { int width; int height; int aspect; int pan_scan; } xine_format_change_data_t; typedef struct { int left; int right; int mute; } xine_audio_level_data_t; typedef struct { const char *description; int percent; } xine_progress_data_t; # 1789 "/usr/include/xine.h" 3 4 typedef struct { int alternative; char mrl[1]; } xine_mrl_reference_data_t; typedef struct { int alternative; uint32_t start_time, duration; uint32_t spare[20]; const char mrl[1]; } xine_mrl_reference_data_ext_t; typedef struct { int input; int channel; int radio; uint32_t frequency; uint32_t transmission; uint32_t framerate_numerator; uint32_t framerate_denominator; uint32_t framelines; uint64_t standard_id; uint32_t colorstandard; uint32_t colorsubcarrier; int frame_width; int frame_height; uint32_t spare[20]; int32_t session_id; } xine_set_v4l2_data_t; typedef struct { int bitrate_vbr; int bitrate_mean; int bitrate_peak; int gop_size; int gop_closure; int b_frames; int aspect_ratio; uint32_t spare[20]; } xine_set_mpeg_data_t; typedef struct { int direction; int32_t button; } xine_spu_button_t; # 1900 "/usr/include/xine.h" 3 4 typedef struct { int skipped_frames; int skipped_threshold; int discarded_frames; int discarded_threshold; } xine_dropped_frames_t; # 1921 "/usr/include/xine.h" 3 4 #define XINE_MSG_NO_ERROR 0 #define XINE_MSG_GENERAL_WARNING 1 #define XINE_MSG_UNKNOWN_HOST 2 #define XINE_MSG_UNKNOWN_DEVICE 3 #define XINE_MSG_NETWORK_UNREACHABLE 4 #define XINE_MSG_CONNECTION_REFUSED 5 #define XINE_MSG_FILE_NOT_FOUND 6 #define XINE_MSG_READ_ERROR 7 #define XINE_MSG_LIBRARY_LOAD_ERROR 8 #define XINE_MSG_ENCRYPTED_SOURCE 9 #define XINE_MSG_SECURITY 10 #define XINE_MSG_AUDIO_OUT_UNAVAILABLE 11 #define XINE_MSG_PERMISSION_ERROR 12 #define XINE_MSG_FILE_EMPTY 13 typedef struct xine_event_queue_s xine_event_queue_t; # 1946 "/usr/include/xine.h" 3 4 xine_event_queue_t *xine_event_new_queue (xine_stream_t *stream) ; void xine_event_dispose_queue (xine_event_queue_t *queue) ; xine_event_t *xine_event_get (xine_event_queue_t *queue) ; xine_event_t *xine_event_wait (xine_event_queue_t *queue) ; void xine_event_free (xine_event_t *event) ; # 1967 "/usr/include/xine.h" 3 4 typedef void (*xine_event_listener_cb_t) (void *user_data, const xine_event_t *event); void xine_event_create_listener_thread (xine_event_queue_t *queue, xine_event_listener_cb_t callback, void *user_data) ; void xine_event_send (xine_stream_t *stream, const xine_event_t *event) ; #define XINE_TEXT_PALETTE_SIZE 11 #define XINE_OSD_TEXT1 (0 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT2 (1 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT3 (2 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT4 (3 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT5 (4 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT6 (5 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT7 (6 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT8 (7 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT9 (8 * XINE_TEXT_PALETTE_SIZE) #define XINE_OSD_TEXT10 (9 * XINE_TEXT_PALETTE_SIZE) #define XINE_TEXTPALETTE_WHITE_BLACK_TRANSPARENT 0 #define XINE_TEXTPALETTE_WHITE_NONE_TRANSPARENT 1 #define XINE_TEXTPALETTE_WHITE_NONE_TRANSLUCID 2 #define XINE_TEXTPALETTE_YELLOW_BLACK_TRANSPARENT 3 #define XINE_OSD_CAP_FREETYPE2 0x0001 #define XINE_OSD_CAP_UNSCALED 0x0002 typedef struct xine_osd_s xine_osd_t; xine_osd_t *xine_osd_new (xine_stream_t *self, int x, int y, int width, int height) ; uint32_t xine_osd_get_capabilities (xine_osd_t *self) ; void xine_osd_draw_point (xine_osd_t *self, int x, int y, int color) ; void xine_osd_draw_line (xine_osd_t *self, int x1, int y1, int x2, int y2, int color) ; void xine_osd_draw_rect (xine_osd_t *self, int x1, int y1, int x2, int y2, int color, int filled ) ; void xine_osd_draw_text (xine_osd_t *self, int x1, int y1, const char *text, int color_base) ; void xine_osd_draw_bitmap (xine_osd_t *self, uint8_t *bitmap, int x1, int y1, int width, int height, uint8_t *palette_map) ; void xine_osd_get_text_size (xine_osd_t *self, const char *text, int *width, int *height) ; int xine_osd_set_font (xine_osd_t *self, const char *fontname, int size) ; void xine_osd_set_encoding(xine_osd_t *self, const char *encoding) ; void xine_osd_set_position (xine_osd_t *self, int x, int y) ; void xine_osd_show (xine_osd_t *self, int64_t vpts) ; void xine_osd_show_unscaled (xine_osd_t *self, int64_t vpts) ; void xine_osd_hide (xine_osd_t *self, int64_t vpts) ; void xine_osd_clear (xine_osd_t *self) ; # 2065 "/usr/include/xine.h" 3 4 void xine_osd_set_text_palette (xine_osd_t *self, int palette_number, int color_base ) ; void xine_osd_get_palette (xine_osd_t *self, uint32_t *color, uint8_t *trans) ; void xine_osd_set_palette (xine_osd_t *self, const uint32_t *const color, const uint8_t *const trans ) ; void xine_osd_free (xine_osd_t *self) ; # 2091 "/usr/include/xine.h" 3 4 typedef enum { XINE_TVSYSTEM_PAL = 0, XINE_TVSYSTEM_NTSC } xine_tvsystem; int xine_tvmode_init (xine_t *self) ; int xine_tvmode_use(xine_t *self, int use_tvmode) ; void xine_tvmode_set_tvsystem(xine_t *self, xine_tvsystem system) ; # 2112 "/usr/include/xine.h" 3 4 int xine_tvmode_switch (xine_t *self, int type, int width, int height, double fps) ; void xine_tvmode_size (xine_t *self, int *width, int *height, double *pixelratio, double *fps) ; void xine_tvmode_exit (xine_t *self) ; # 45 "video_out_dfb.c" 2 # 1 "/usr/include/xine/xine_internal.h" 1 3 4 # 25 "/usr/include/xine/xine_internal.h" 3 4 #define HAVE_XINE_INTERNAL_H # 56 "/usr/include/xine/xine_internal.h" 3 4 # 1 "/usr/include/xine/refcounter.h" 1 3 4 # 24 "/usr/include/xine/refcounter.h" 3 4 #define HAVE_REFCOUNTER_H # 1 "../../../config.h" 1 3 4 # 14 "../../../config.h" 3 4 #define DIRECTFB_VERSION "0.9.25" #define HAVE_DLFCN_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define STDC_HEADERS 1 #define USE_MMX 1 # 28 "/usr/include/xine/refcounter.h" 2 3 4 # 1 "/usr/include/pthread.h" 1 3 4 # 31 "/usr/include/xine/refcounter.h" 2 3 4 typedef struct { pthread_mutex_t lock; int count; void* object; void (*destructor)(void *); } refcounter_t; typedef void (*refcounter_destructor)(void*); refcounter_t* _x_new_refcounter(void *object, refcounter_destructor destructor) ; int _x_refcounter_inc(refcounter_t *refcounter) ; int _x_refcounter_dec(refcounter_t *refcounter) ; void _x_refcounter_dispose(refcounter_t *refcounter) ; # 57 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/input_plugin.h" 1 3 4 # 24 "/usr/include/xine/input_plugin.h" 3 4 #define HAVE_INPUT_PLUGIN_H # 1 "/usr/include/sys/types.h" 1 3 4 # 27 "/usr/include/xine/input_plugin.h" 2 3 4 # 35 "/usr/include/xine/input_plugin.h" 3 4 # 1 "/usr/include/xine/xineutils.h" 1 3 4 # 24 "/usr/include/xine/xineutils.h" 3 4 #define XINEUTILS_H # 1 "../../../config.h" 1 3 4 # 14 "../../../config.h" 3 4 #define DIRECTFB_VERSION "0.9.25" #define HAVE_DLFCN_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define STDC_HEADERS 1 #define USE_MMX 1 # 32 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/stdlib.h" 1 3 4 # 35 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/string.h" 1 3 4 # 36 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/pthread.h" 1 3 4 # 38 "/usr/include/xine/xineutils.h" 2 3 4 # 53 "/usr/include/xine/xineutils.h" 3 4 # 1 "/usr/include/sys/time.h" 1 3 4 # 54 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/xine/compat.h" 1 3 4 # 25 "/usr/include/xine/compat.h" 3 4 #define XINE_COMPAT_H # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4 #define _GCC_LIMITS_H_ # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/syslimits.h" 1 3 4 #define _GCC_NEXT_LIMITS_H # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4 # 122 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/limits.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4 #define _LIBC_LIMITS_H_ 1 # 1 "/usr/include/features.h" 1 3 4 # 28 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 #define MB_LEN_MAX 16 # 133 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4 #define LLONG_MIN (-LLONG_MAX-1) #define LLONG_MAX __LONG_LONG_MAX__ #define ULLONG_MAX (LLONG_MAX * 2ULL + 1) # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 3 4 #define _BITS_POSIX1_LIM_H 1 #define _POSIX_AIO_LISTIO_MAX 2 #define _POSIX_AIO_MAX 1 #define _POSIX_ARG_MAX 4096 #define _POSIX_CHILD_MAX 25 #define _POSIX_DELAYTIMER_MAX 32 #define _POSIX_HOST_NAME_MAX 255 #define _POSIX_LINK_MAX 8 #define _POSIX_LOGIN_NAME_MAX 9 #define _POSIX_MAX_CANON 255 #define _POSIX_MAX_INPUT 255 #define _POSIX_MQ_OPEN_MAX 8 #define _POSIX_MQ_PRIO_MAX 32 #define _POSIX_NAME_MAX 14 #define _POSIX_NGROUPS_MAX 8 #define _POSIX_OPEN_MAX 20 #define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX #define _POSIX_PATH_MAX 256 #define _POSIX_PIPE_BUF 512 #define _POSIX_RE_DUP_MAX 255 #define _POSIX_RTSIG_MAX 8 #define _POSIX_SEM_NSEMS_MAX 256 #define _POSIX_SEM_VALUE_MAX 32767 #define _POSIX_SIGQUEUE_MAX 32 #define _POSIX_SSIZE_MAX 32767 #define _POSIX_STREAM_MAX 8 #define _POSIX_SYMLINK_MAX 255 #define _POSIX_SYMLOOP_MAX 8 #define _POSIX_TIMER_MAX 32 #define _POSIX_TTY_NAME_MAX 9 #define _POSIX_TZNAME_MAX 6 #define _POSIX_QLIMIT 1 #define _POSIX_HIWAT _POSIX_PIPE_BUF #define _POSIX_UIO_MAXIOV 16 #define _POSIX_CLOCKRES_MIN 20000000 # 1 "/usr/include/bits/local_lim.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 1 3 4 # 26 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 3 4 #define __undef_NR_OPEN #define __undef_LINK_MAX #define __undef_OPEN_MAX # 1 "/usr/include/linux/limits.h" 1 3 4 #define _LINUX_LIMITS_H #define NR_OPEN 1024 #define NGROUPS_MAX 65536 #define ARG_MAX 131072 #define CHILD_MAX 999 #define OPEN_MAX 256 #define LINK_MAX 127 #define MAX_CANON 255 #define MAX_INPUT 255 #define NAME_MAX 255 #define PATH_MAX 4096 #define PIPE_BUF 4096 #define XATTR_NAME_MAX 255 #define XATTR_SIZE_MAX 65536 #define XATTR_LIST_MAX 65536 #define RTSIG_MAX 32 # 37 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 2 3 4 #undef NR_OPEN #undef __undef_NR_OPEN #undef LINK_MAX #undef __undef_LINK_MAX #undef OPEN_MAX #undef __undef_OPEN_MAX #define _POSIX_THREAD_KEYS_MAX 128 #define PTHREAD_KEYS_MAX 1024 #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS #define _POSIX_THREAD_THREADS_MAX 64 #undef PTHREAD_THREADS_MAX #define AIO_PRIO_DELTA_MAX 20 #define PTHREAD_STACK_MIN 16384 #define DELAYTIMER_MAX 2147483647 #define TTY_NAME_MAX 32 #define LOGIN_NAME_MAX 256 #define HOST_NAME_MAX 64 #define MQ_PRIO_MAX 32768 # 9 "/usr/include/bits/local_lim.h" 2 3 4 # 154 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 2 3 4 #define SSIZE_MAX LONG_MAX # 9 "/usr/include/bits/posix1_lim.h" 2 3 4 # 146 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 3 4 #define _BITS_POSIX2_LIM_H 1 #define _POSIX2_BC_BASE_MAX 99 #define _POSIX2_BC_DIM_MAX 2048 #define _POSIX2_BC_SCALE_MAX 99 #define _POSIX2_BC_STRING_MAX 1000 #define _POSIX2_COLL_WEIGHTS_MAX 2 #define _POSIX2_EXPR_NEST_MAX 32 #define _POSIX2_LINE_MAX 2048 #define _POSIX2_RE_DUP_MAX 255 #define _POSIX2_CHARCLASS_NAME_MAX 14 #define BC_BASE_MAX _POSIX2_BC_BASE_MAX #define BC_DIM_MAX _POSIX2_BC_DIM_MAX #define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX #define BC_STRING_MAX _POSIX2_BC_STRING_MAX #define COLL_WEIGHTS_MAX 255 #define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX #define LINE_MAX _POSIX2_LINE_MAX #define CHARCLASS_NAME_MAX 2048 #define RE_DUP_MAX (0x7fff) # 9 "/usr/include/bits/posix2_lim.h" 2 3 4 # 150 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 1 3 4 # 31 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 #define _XOPEN_LIM_H 1 #define __need_IOV_MAX # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4 #define L_tmpnam 20 #define TMP_MAX 238328 #define FILENAME_MAX 4096 #define L_ctermid 9 #define L_cuserid 9 #undef FOPEN_MAX #define FOPEN_MAX 16 #define IOV_MAX 1024 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4 # 35 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 2 3 4 # 66 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 #define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV #define NL_ARGMAX _POSIX_ARG_MAX #define NL_LANGMAX _POSIX2_LINE_MAX #define NL_MSGMAX INT_MAX #define NL_NMAX INT_MAX #define NL_SETMAX INT_MAX #define NL_TEXTMAX INT_MAX #define NZERO 20 # 110 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 #define WORD_BIT 32 # 133 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 #define LONG_BIT 64 # 9 "/usr/include/bits/xopen_lim.h" 2 3 4 # 154 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 # 9 "/usr/include/limits.h" 2 3 4 # 123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4 # 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/syslimits.h" 2 3 4 #undef _GCC_NEXT_LIMITS_H # 12 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4 #define _LIMITS_H___ #undef CHAR_BIT #define CHAR_BIT __CHAR_BIT__ #undef SCHAR_MIN #define SCHAR_MIN (-SCHAR_MAX - 1) #undef SCHAR_MAX #define SCHAR_MAX __SCHAR_MAX__ #undef UCHAR_MAX #define UCHAR_MAX (SCHAR_MAX * 2 + 1) # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 3 4 #undef CHAR_MIN #define CHAR_MIN SCHAR_MIN #undef CHAR_MAX #define CHAR_MAX SCHAR_MAX #undef SHRT_MIN #define SHRT_MIN (-SHRT_MAX - 1) #undef SHRT_MAX #define SHRT_MAX __SHRT_MAX__ #undef USHRT_MAX #define USHRT_MAX (SHRT_MAX * 2 + 1) #undef INT_MIN #define INT_MIN (-INT_MAX - 1) #undef INT_MAX #define INT_MAX __INT_MAX__ #undef UINT_MAX #define UINT_MAX (INT_MAX * 2U + 1U) #undef LONG_MIN #define LONG_MIN (-LONG_MAX - 1L) #undef LONG_MAX #define LONG_MAX __LONG_MAX__ #undef ULONG_MAX #define ULONG_MAX (LONG_MAX * 2UL + 1UL) # 105 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 3 4 #undef LONG_LONG_MIN #define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL) #undef LONG_LONG_MAX #define LONG_LONG_MAX __LONG_LONG_MAX__ #undef ULONG_LONG_MAX #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL) # 28 "/usr/include/xine/compat.h" 2 3 4 # 36 "/usr/include/xine/compat.h" 3 4 #define __XINE_FUNCTION__ __FUNCTION__ #define XINE_NAME_MAX NAME_MAX #define XINE_PATH_MAX PATH_MAX # 58 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/xine/xmlparser.h" 1 3 4 # 24 "/usr/include/xine/xmlparser.h" 3 4 #define XML_PARSER_H #define XML_PARSER_CASE_INSENSITIVE 0 #define XML_PARSER_CASE_SENSITIVE 1 #define XML_PARSER_OK 0 #define XML_PARSER_ERROR 1 typedef struct xml_property_s { char *name; char *value; struct xml_property_s *next; } xml_property_t; typedef struct xml_node_s { char *name; char *data; struct xml_property_s *props; struct xml_node_s *child; struct xml_node_s *next; } xml_node_t; void xml_parser_init(const char * buf, int size, int mode) ; int xml_parser_build_tree(xml_node_t **root_node) ; void xml_parser_free_tree(xml_node_t *root_node) ; char *xml_parser_get_property (const xml_node_t *node, const char *name) ; int xml_parser_get_property_int (const xml_node_t *node, const char *name, int def_value) ; int xml_parser_get_property_bool (const xml_node_t *node, const char *name, int def_value) ; typedef enum { XML_ESCAPE_NO_QUOTE, XML_ESCAPE_SINGLE_QUOTE, XML_ESCAPE_DOUBLE_QUOTE } xml_escape_quote_t; char *xml_escape_string (const char *s, xml_escape_quote_t quote_type) ; void xml_parser_dump_tree (const xml_node_t *node) ; # 59 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/xine/xine_buffer.h" 1 3 4 # 53 "/usr/include/xine/xine_buffer.h" 3 4 #define HAVE_XINE_BUFFER_H # 67 "/usr/include/xine/xine_buffer.h" 3 4 void *xine_buffer_init(int chunk_size) ; #define xine_buffer_free(buf) buf=_xine_buffer_free(buf) void *_xine_buffer_free(void *buf) ; void *xine_buffer_dup(const void *buf) ; #define xine_buffer_copyin(buf,i,data,len) buf=_xine_buffer_copyin(buf,i,data,len) void *_xine_buffer_copyin(void *buf, int index, const void *data, int len) ; void xine_buffer_copyout(const void *buf, int index, void *data, int len) ; #define xine_buffer_set(buf,i,b,len) buf=_xine_buffer_set(buf,i,b,len) void *_xine_buffer_set(void *buf, int index, uint8_t b, int len) ; #define xine_buffer_strcat(buf,data) buf=_xine_buffer_strcat(buf,data) void *_xine_buffer_strcat(void *buf, const char *data) ; #define xine_buffer_strcpy(buf,index,data) buf=_xine_buffer_strcpy(buf,index,data) void *_xine_buffer_strcpy(void *buf, int index, const char *data) ; char *xine_buffer_strchr(const void *buf, int ch) ; int xine_buffer_get_size(const void *buf) ; #define xine_buffer_ensure_size(buf,data) buf=_xine_buffer_ensure_size(buf,data) void *_xine_buffer_ensure_size(void *buf, int size) ; # 60 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/xine/configfile.h" 1 3 4 # 27 "/usr/include/xine/configfile.h" 3 4 #define HAVE_CONFIGFILE_H # 1 "/usr/include/pthread.h" 1 3 4 # 34 "/usr/include/xine/configfile.h" 2 3 4 #define CONFIG_FILE_VERSION 2 #define XINE_CONFIG_SECURITY 30 typedef struct cfg_entry_s cfg_entry_t; typedef struct config_values_s config_values_t; struct cfg_entry_s { cfg_entry_t *next; config_values_t *config; char *key; int type; char *unknown_value; char *str_value; char *str_default; int num_value; int num_default; int range_min; int range_max; char **enum_values; char *description; char *help; int exp_level; xine_config_cb_t callback; void *callback_data; }; struct config_values_s { # 102 "/usr/include/xine/configfile.h" 3 4 char* (*register_string) (config_values_t *self, const char *key, const char *def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data); char* (*register_filename) (config_values_t *self, const char *key, const char *def_value, int req_type, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data); int (*register_range) (config_values_t *self, const char *key, int def_value, int min, int max, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data); int (*register_enum) (config_values_t *self, const char *key, int def_value, char **values, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data); int (*register_num) (config_values_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data); int (*register_bool) (config_values_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data); void (*update_num) (config_values_t *self, const char *key, int value); void (*update_string) (config_values_t *self, const char *key, const char *value); int (*parse_enum) (const char *str, char **values); # 175 "/usr/include/xine/configfile.h" 3 4 cfg_entry_t* (*lookup_entry) (config_values_t *self, const char *key); void (*unregister_callback) (config_values_t *self, const char *key); void (*dispose) (config_values_t *self); cfg_entry_t *first, *last, *cur; pthread_mutex_t config_lock; int current_version; }; config_values_t *_x_config_init (void) ; int _x_config_change_opt(config_values_t *config, const char *opt) ; # 61 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/xine/list.h" 1 3 4 # 44 "/usr/include/xine/list.h" 3 4 #define XINE_LIST_H typedef struct xine_list_s xine_list_t; typedef void* xine_list_iterator_t; xine_list_t *xine_list_new(void) ; void xine_list_delete(xine_list_t *list) ; unsigned int xine_list_size(xine_list_t *list) ; unsigned int xine_list_empty(xine_list_t *list) ; void xine_list_push_front(xine_list_t *list, void *value) ; void xine_list_push_back(xine_list_t *list, void *value) ; void xine_list_clear(xine_list_t *list) ; xine_list_iterator_t xine_list_insert(xine_list_t *list, xine_list_iterator_t position, void *value) ; void xine_list_remove(xine_list_t *list, xine_list_iterator_t position) ; xine_list_iterator_t xine_list_front(xine_list_t *list) ; xine_list_iterator_t xine_list_back(xine_list_t *list) ; xine_list_iterator_t xine_list_find(xine_list_t *list, void *value) ; xine_list_iterator_t xine_list_next(xine_list_t *list, xine_list_iterator_t ite) ; xine_list_iterator_t xine_list_prev(xine_list_t *list, xine_list_iterator_t ite) ; void *xine_list_get_value(xine_list_t *list, xine_list_iterator_t ite) ; # 62 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/xine/array.h" 1 3 4 # 26 "/usr/include/xine/array.h" 3 4 #define XINE_ARRAY_H typedef struct xine_array_s xine_array_t; xine_array_t *xine_array_new(size_t initial_size) ; void xine_array_delete(xine_array_t *array) ; size_t xine_array_size(xine_array_t *array) ; void xine_array_clear(xine_array_t *array) ; void xine_array_add(xine_array_t *array, void *value) ; void xine_array_insert(xine_array_t *array, unsigned int position, void *value) ; void xine_array_remove(xine_array_t *array, unsigned int position) ; void *xine_array_get(xine_array_t *array, unsigned int position) ; void xine_array_set(xine_array_t *array, unsigned int position, void *value) ; # 63 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/xine/sorted_array.h" 1 3 4 # 58 "/usr/include/xine/sorted_array.h" 3 4 #define XINE_SORTED_ARRAY_H # 1 "/usr/include/xine/array.h" 1 3 4 # 61 "/usr/include/xine/sorted_array.h" 2 3 4 typedef struct xine_sarray_s xine_sarray_t; typedef int (*xine_sarray_comparator_t)(void*, void*); xine_sarray_t *xine_sarray_new(size_t initial_size, xine_sarray_comparator_t comparator) ; void xine_sarray_delete(xine_sarray_t *sarray) ; size_t xine_sarray_size(const xine_sarray_t *sarray) ; void xine_sarray_clear(xine_sarray_t *sarray) ; int xine_sarray_add(xine_sarray_t *sarray, void *value) ; void xine_sarray_remove(xine_sarray_t *sarray, unsigned int position) ; void *xine_sarray_get(xine_sarray_t *sarray, unsigned int position) ; int xine_sarray_binary_search(xine_sarray_t *sarray, void *key) ; # 64 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/stdio.h" 1 3 4 # 67 "/usr/include/xine/xineutils.h" 2 3 4 # 1 "/usr/include/string.h" 1 3 4 # 68 "/usr/include/xine/xineutils.h" 2 3 4 # 82 "/usr/include/xine/xineutils.h" 3 4 typedef struct { pthread_mutex_t mutex; char id[80]; char *locked_by; } xine_mutex_t; int xine_mutex_init (xine_mutex_t *mutex, const pthread_mutexattr_t *mutexattr, const char *id) ; int xine_mutex_lock (xine_mutex_t *mutex, const char *who) ; int xine_mutex_unlock (xine_mutex_t *mutex, const char *who) ; int xine_mutex_destroy (xine_mutex_t *mutex) ; # 106 "/usr/include/xine/xineutils.h" 3 4 #define MM_ACCEL_MLIB 0x00000001 #define MM_ACCEL_X86_MMX 0x80000000 #define MM_ACCEL_X86_3DNOW 0x40000000 #define MM_ACCEL_X86_MMXEXT 0x20000000 #define MM_ACCEL_X86_SSE 0x10000000 #define MM_ACCEL_X86_SSE2 0x08000000 #define MM_ACCEL_PPC_ALTIVEC 0x04000000 #define MM_ACCEL_PPC_CACHE32 0x02000000 #define MM_ACCEL_SPARC_VIS 0x01000000 #define MM_ACCEL_SPARC_VIS2 0x00800000 #define MM_MMX MM_ACCEL_X86_MMX #define MM_3DNOW MM_ACCEL_X86_3DNOW #define MM_MMXEXT MM_ACCEL_X86_MMXEXT #define MM_SSE MM_ACCEL_X86_SSE #define MM_SSE2 MM_ACCEL_X86_SSE2 uint32_t xine_mm_accel (void) ; # 603 "/usr/include/xine/xineutils.h" 3 4 extern void *(* xine_fast_memcpy)(void *to, const void *from, size_t len) ; void xine_probe_fast_memcpy(xine_t *xine) ; # 617 "/usr/include/xine/xineutils.h" 3 4 void xine_profiler_init (void) ; int xine_profiler_allocate_slot (const char *label) ; void xine_profiler_start_count (int id) ; void xine_profiler_stop_count (int id) ; void xine_profiler_print_results (void) ; # 630 "/usr/include/xine/xineutils.h" 3 4 void *xine_xmalloc(size_t size) __attribute__ ((__malloc__)) ; void *xine_xmalloc_aligned(size_t alignment, size_t size, void **base) ; const char *xine_get_homedir(void) ; # 658 "/usr/include/xine/xineutils.h" 3 4 char *xine_chomp (char *str) ; void xine_usec_sleep(unsigned usec) ; void xine_strdupa(char *dest, char *src) ; #define xine_strdupa(d,s) do { (d) = NULL; if((s) != NULL) { (d) = (char *) alloca(strlen((s)) + 1); strcpy((d), (s)); } } while(0) # 681 "/usr/include/xine/xineutils.h" 3 4 #define xine_strpbrk(S,ACCEPT) strpbrk((S), (ACCEPT)) #define xine_strsep(STRINGP,DELIM) strsep((STRINGP), (DELIM)) #define xine_setenv(NAME,VAL,XX) setenv((NAME), (VAL), (XX)) # 693 "/usr/include/xine/xineutils.h" 3 4 typedef struct yuv_planes_s { unsigned char *y; unsigned char *u; unsigned char *v; unsigned int row_width; unsigned int row_count; } yuv_planes_t; void init_yuv_conversion(void) ; void init_yuv_planes(yuv_planes_t *yuv_planes, int width, int height) ; void free_yuv_planes(yuv_planes_t *yuv_planes) ; extern void (*yuv444_to_yuy2) (const yuv_planes_t *yuv_planes, unsigned char *yuy2_map, int pitch) ; extern void (*yuv9_to_yv12) (const unsigned char *y_src, int y_src_pitch, unsigned char *y_dest, int y_dest_pitch, const unsigned char *u_src, int u_src_pitch, unsigned char *u_dest, int u_dest_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch, int width, int height) ; extern void (*yuv411_to_yv12) (const unsigned char *y_src, int y_src_pitch, unsigned char *y_dest, int y_dest_pitch, const unsigned char *u_src, int u_src_pitch, unsigned char *u_dest, int u_dest_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch, int width, int height) ; extern void (*yv12_to_yuy2) (const unsigned char *y_src, int y_src_pitch, const unsigned char *u_src, int u_src_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *yuy2_map, int yuy2_pitch, int width, int height, int progressive) ; extern void (*yuy2_to_yv12) (const unsigned char *yuy2_map, int yuy2_pitch, unsigned char *y_dst, int y_dst_pitch, unsigned char *u_dst, int u_dst_pitch, unsigned char *v_dst, int v_dst_pitch, int width, int height) ; #define SCALEFACTOR 65536 #define CENTERSAMPLE 128 #define COMPUTE_Y(r,g,b) (unsigned char) ((y_r_table[r] + y_g_table[g] + y_b_table[b]) / SCALEFACTOR) #define COMPUTE_U(r,g,b) (unsigned char) ((u_r_table[r] + u_g_table[g] + u_b_table[b]) / SCALEFACTOR + CENTERSAMPLE) #define COMPUTE_V(r,g,b) (unsigned char) ((v_r_table[r] + v_g_table[g] + v_b_table[b]) / SCALEFACTOR + CENTERSAMPLE) #define UNPACK_BGR15(packed_pixel,r,g,b) b = (packed_pixel & 0x7C00) >> 7; g = (packed_pixel & 0x03E0) >> 2; r = (packed_pixel & 0x001F) << 3; #define UNPACK_BGR16(packed_pixel,r,g,b) b = (packed_pixel & 0xF800) >> 8; g = (packed_pixel & 0x07E0) >> 3; r = (packed_pixel & 0x001F) << 3; #define UNPACK_RGB15(packed_pixel,r,g,b) r = (packed_pixel & 0x7C00) >> 7; g = (packed_pixel & 0x03E0) >> 2; b = (packed_pixel & 0x001F) << 3; #define UNPACK_RGB16(packed_pixel,r,g,b) r = (packed_pixel & 0xF800) >> 8; g = (packed_pixel & 0x07E0) >> 3; b = (packed_pixel & 0x001F) << 3; extern int y_r_table[256] ; extern int y_g_table[256] ; extern int y_b_table[256] ; extern int u_r_table[256] ; extern int u_g_table[256] ; extern int u_b_table[256] ; extern int v_r_table[256] ; extern int v_g_table[256] ; extern int v_b_table[256] ; extern void yv12_to_yv12 (const unsigned char *y_src, int y_src_pitch, unsigned char *y_dst, int y_dst_pitch, const unsigned char *u_src, int u_src_pitch, unsigned char *u_dst, int u_dst_pitch, const unsigned char *v_src, int v_src_pitch, unsigned char *v_dst, int v_dst_pitch, int width, int height) ; extern void yuy2_to_yuy2 (const unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch, int width, int height) ; void xine_hexdump (const char *buf, int length) ; # 799 "/usr/include/xine/xineutils.h" 3 4 #define EXPECT_TRUE(x) __builtin_expect((x),1) #define EXPECT_FALSE(x) __builtin_expect((x),0) # 811 "/usr/include/xine/xineutils.h" 3 4 #define _x_assert(exp) do { if (!(exp)) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", __FILE__, __LINE__, __XINE_FUNCTION__, #exp); abort(); } } while(0) # 821 "/usr/include/xine/xineutils.h" 3 4 #define _x_abort() do { fprintf(stderr, "abort: %s:%d: %s: Aborting.\n", __FILE__, __LINE__, __XINE_FUNCTION__); abort(); } while(0) # 835 "/usr/include/xine/xineutils.h" 3 4 #define LOG_MODULE_STRING printf("%s: ", LOG_MODULE ); #define LONG_LOG_MODULE_STRING LOG_MODULE_STRING # 871 "/usr/include/xine/xineutils.h" 3 4 #define lprintf(fmt,args...) do {} while(0) # 882 "/usr/include/xine/xineutils.h" 3 4 #define llprintf(cat,fmt,args...) do{ if(cat){ LONG_LOG_MODULE_STRING printf( fmt, ##args ); } }while(0) # 910 "/usr/include/xine/xineutils.h" 3 4 #define xprintf(xine,verbose,fmt,args...) do { if((xine) && (xine)->verbosity >= verbose){ xine_log(xine, XINE_LOG_TRACE, fmt, ##args); } } while(0) # 958 "/usr/include/xine/xineutils.h" 3 4 #define XINE_PROFILE(function) function #define XINE_PROFILE_ACCUMULATE(function) function char *xine_get_system_encoding(void) ; const char *xine_guess_spu_encoding(void) ; int xine_monotonic_clock(struct timeval *tv, struct timezone *tz) ; # 36 "/usr/include/xine/input_plugin.h" 2 3 4 # 1 "/usr/include/xine/buffer.h" 1 3 4 # 35 "/usr/include/xine/buffer.h" 3 4 #define HAVE_BUFFER_H # 1 "../../../config.h" 1 3 4 # 14 "../../../config.h" 3 4 #define DIRECTFB_VERSION "0.9.25" #define HAVE_DLFCN_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define STDC_HEADERS 1 #define USE_MMX 1 # 43 "/usr/include/xine/buffer.h" 2 3 4 # 1 "/usr/include/stdio.h" 1 3 4 # 46 "/usr/include/xine/buffer.h" 2 3 4 # 1 "/usr/include/pthread.h" 1 3 4 # 47 "/usr/include/xine/buffer.h" 2 3 4 # 1 "/usr/include/sys/types.h" 1 3 4 # 48 "/usr/include/xine/buffer.h" 2 3 4 # 57 "/usr/include/xine/buffer.h" 3 4 #define BUF_MAX_CALLBACKS 5 # 72 "/usr/include/xine/buffer.h" 3 4 #define BUF_MAJOR_MASK 0xFF000000 #define BUF_DECODER_MASK 0x00FF0000 #define BUF_CONTROL_BASE 0x01000000 #define BUF_CONTROL_START 0x01000000 #define BUF_CONTROL_END 0x01010000 #define BUF_CONTROL_QUIT 0x01020000 #define BUF_CONTROL_DISCONTINUITY 0x01030000 #define BUF_CONTROL_NOP 0x01040000 #define BUF_CONTROL_AUDIO_CHANNEL 0x01050000 #define BUF_CONTROL_SPU_CHANNEL 0x01060000 #define BUF_CONTROL_NEWPTS 0x01070000 #define BUF_CONTROL_RESET_DECODER 0x01080000 #define BUF_CONTROL_HEADERS_DONE 0x01090000 #define BUF_CONTROL_FLUSH_DECODER 0x010a0000 #define BUF_CONTROL_RESET_TRACK_MAP 0x010b0000 #define BUF_VIDEO_BASE 0x02000000 #define BUF_VIDEO_UNKNOWN 0x02ff0000 #define BUF_VIDEO_MPEG 0x02000000 #define BUF_VIDEO_MPEG4 0x02010000 #define BUF_VIDEO_CINEPAK 0x02020000 #define BUF_VIDEO_SORENSON_V1 0x02030000 #define BUF_VIDEO_MSMPEG4_V2 0x02040000 #define BUF_VIDEO_MSMPEG4_V3 0x02050000 #define BUF_VIDEO_MJPEG 0x02060000 #define BUF_VIDEO_IV50 0x02070000 #define BUF_VIDEO_IV41 0x02080000 #define BUF_VIDEO_IV32 0x02090000 #define BUF_VIDEO_IV31 0x020a0000 #define BUF_VIDEO_ATIVCR1 0x020b0000 #define BUF_VIDEO_ATIVCR2 0x020c0000 #define BUF_VIDEO_I263 0x020d0000 #define BUF_VIDEO_RV10 0x020e0000 #define BUF_VIDEO_RGB 0x02100000 #define BUF_VIDEO_YUY2 0x02110000 #define BUF_VIDEO_JPEG 0x02120000 #define BUF_VIDEO_WMV7 0x02130000 #define BUF_VIDEO_WMV8 0x02140000 #define BUF_VIDEO_MSVC 0x02150000 #define BUF_VIDEO_DV 0x02160000 #define BUF_VIDEO_REAL 0x02170000 #define BUF_VIDEO_VP31 0x02180000 #define BUF_VIDEO_H263 0x02190000 #define BUF_VIDEO_3IVX 0x021A0000 #define BUF_VIDEO_CYUV 0x021B0000 #define BUF_VIDEO_DIVX5 0x021C0000 #define BUF_VIDEO_XVID 0x021D0000 #define BUF_VIDEO_SMC 0x021E0000 #define BUF_VIDEO_RPZA 0x021F0000 #define BUF_VIDEO_QTRLE 0x02200000 #define BUF_VIDEO_MSRLE 0x02210000 #define BUF_VIDEO_DUCKTM1 0x02220000 #define BUF_VIDEO_FLI 0x02230000 #define BUF_VIDEO_ROQ 0x02240000 #define BUF_VIDEO_SORENSON_V3 0x02250000 #define BUF_VIDEO_MSMPEG4_V1 0x02260000 #define BUF_VIDEO_MSS1 0x02270000 #define BUF_VIDEO_IDCIN 0x02280000 #define BUF_VIDEO_PGVV 0x02290000 #define BUF_VIDEO_ZYGO 0x022A0000 #define BUF_VIDEO_TSCC 0x022B0000 #define BUF_VIDEO_YVU9 0x022C0000 #define BUF_VIDEO_VQA 0x022D0000 #define BUF_VIDEO_GREY 0x022E0000 #define BUF_VIDEO_XXAN 0x022F0000 #define BUF_VIDEO_WC3 0x02300000 #define BUF_VIDEO_YV12 0x02310000 #define BUF_VIDEO_SEGA 0x02320000 #define BUF_VIDEO_RV20 0x02330000 #define BUF_VIDEO_RV30 0x02340000 #define BUF_VIDEO_MVI2 0x02350000 #define BUF_VIDEO_UCOD 0x02360000 #define BUF_VIDEO_WMV9 0x02370000 #define BUF_VIDEO_INTERPLAY 0x02380000 #define BUF_VIDEO_RV40 0x02390000 #define BUF_VIDEO_PSX_MDEC 0x023A0000 #define BUF_VIDEO_YUV_FRAMES 0x023B0000 #define BUF_VIDEO_HUFFYUV 0x023C0000 #define BUF_VIDEO_IMAGE 0x023D0000 #define BUF_VIDEO_THEORA 0x023E0000 #define BUF_VIDEO_4XM 0x023F0000 #define BUF_VIDEO_I420 0x02400000 #define BUF_VIDEO_VP4 0x02410000 #define BUF_VIDEO_VP5 0x02420000 #define BUF_VIDEO_VP6 0x02430000 #define BUF_VIDEO_VMD 0x02440000 #define BUF_VIDEO_MSZH 0x02450000 #define BUF_VIDEO_ZLIB 0x02460000 #define BUF_VIDEO_8BPS 0x02470000 #define BUF_VIDEO_ASV1 0x02480000 #define BUF_VIDEO_ASV2 0x02490000 #define BUF_VIDEO_BITPLANE 0x024A0000 #define BUF_VIDEO_BITPLANE_BR1 0x024B0000 #define BUF_VIDEO_FLV1 0x024C0000 #define BUF_VIDEO_H264 0x024D0000 #define BUF_VIDEO_MJPEG_B 0x024E0000 #define BUF_VIDEO_H261 0x024F0000 #define BUF_VIDEO_AASC 0x02500000 #define BUF_VIDEO_LOCO 0x02510000 #define BUF_VIDEO_QDRW 0x02520000 #define BUF_VIDEO_QPEG 0x02530000 #define BUF_VIDEO_ULTI 0x02540000 #define BUF_VIDEO_WNV1 0x02550000 #define BUF_VIDEO_XL 0x02560000 #define BUF_VIDEO_RT21 0x02570000 #define BUF_VIDEO_FPS1 0x02580000 #define BUF_VIDEO_DUCKTM2 0x02590000 #define BUF_VIDEO_CSCD 0x025A0000 #define BUF_VIDEO_ALGMM 0x025B0000 #define BUF_VIDEO_ZMBV 0x025C0000 #define BUF_VIDEO_AVS 0x025D0000 #define BUF_VIDEO_SMACKER 0x025E0000 #define BUF_VIDEO_NUV 0x025F0000 #define BUF_VIDEO_KMVC 0x02600000 #define BUF_VIDEO_FLASHSV 0x02610000 #define BUF_VIDEO_CAVS 0x02620000 #define BUF_VIDEO_VP6F 0x02630000 #define BUF_AUDIO_BASE 0x03000000 #define BUF_AUDIO_UNKNOWN 0x03ff0000 #define BUF_AUDIO_A52 0x03000000 #define BUF_AUDIO_MPEG 0x03010000 #define BUF_AUDIO_LPCM_BE 0x03020000 #define BUF_AUDIO_LPCM_LE 0x03030000 #define BUF_AUDIO_WMAV1 0x03040000 #define BUF_AUDIO_DTS 0x03050000 #define BUF_AUDIO_MSADPCM 0x03060000 #define BUF_AUDIO_MSIMAADPCM 0x03070000 #define BUF_AUDIO_MSGSM 0x03080000 #define BUF_AUDIO_VORBIS 0x03090000 #define BUF_AUDIO_IMC 0x030a0000 #define BUF_AUDIO_LH 0x030b0000 #define BUF_AUDIO_VOXWARE 0x030c0000 #define BUF_AUDIO_ACELPNET 0x030d0000 #define BUF_AUDIO_AAC 0x030e0000 #define BUF_AUDIO_DNET 0x030f0000 #define BUF_AUDIO_VIVOG723 0x03100000 #define BUF_AUDIO_DK3ADPCM 0x03110000 #define BUF_AUDIO_DK4ADPCM 0x03120000 #define BUF_AUDIO_ROQ 0x03130000 #define BUF_AUDIO_QTIMAADPCM 0x03140000 #define BUF_AUDIO_MAC3 0x03150000 #define BUF_AUDIO_MAC6 0x03160000 #define BUF_AUDIO_QDESIGN1 0x03170000 #define BUF_AUDIO_QDESIGN2 0x03180000 #define BUF_AUDIO_QCLP 0x03190000 #define BUF_AUDIO_SMJPEG_IMA 0x031A0000 #define BUF_AUDIO_VQA_IMA 0x031B0000 #define BUF_AUDIO_MULAW 0x031C0000 #define BUF_AUDIO_ALAW 0x031D0000 #define BUF_AUDIO_GSM610 0x031E0000 #define BUF_AUDIO_EA_ADPCM 0x031F0000 #define BUF_AUDIO_WMAV2 0x03200000 #define BUF_AUDIO_COOK 0x03210000 #define BUF_AUDIO_ATRK 0x03220000 #define BUF_AUDIO_14_4 0x03230000 #define BUF_AUDIO_28_8 0x03240000 #define BUF_AUDIO_SIPRO 0x03250000 #define BUF_AUDIO_WMAV3 0x03260000 #define BUF_AUDIO_INTERPLAY 0x03270000 #define BUF_AUDIO_XA_ADPCM 0x03280000 #define BUF_AUDIO_WESTWOOD 0x03290000 #define BUF_AUDIO_DIALOGIC_IMA 0x032A0000 #define BUF_AUDIO_NSF 0x032B0000 #define BUF_AUDIO_FLAC 0x032C0000 #define BUF_AUDIO_DV 0x032D0000 #define BUF_AUDIO_WMAV 0x032E0000 #define BUF_AUDIO_SPEEX 0x032F0000 #define BUF_AUDIO_RAWPCM 0x03300000 #define BUF_AUDIO_4X_ADPCM 0x03310000 #define BUF_AUDIO_VMD 0x03320000 #define BUF_AUDIO_XAN_DPCM 0x03330000 #define BUF_AUDIO_ALAC 0x03340000 #define BUF_AUDIO_MPC 0x03350000 #define BUF_AUDIO_SHORTEN 0x03360000 #define BUF_AUDIO_WESTWOOD_SND1 0x03370000 #define BUF_AUDIO_WMALL 0x03380000 #define BUF_AUDIO_TRUESPEECH 0x03390000 #define BUF_AUDIO_TTA 0x033A0000 #define BUF_AUDIO_SMACKER 0x033B0000 #define BUF_AUDIO_FLVADPCM 0x033C0000 #define BUF_AUDIO_WAVPACK 0x033D0000 #define BUF_SPU_BASE 0x04000000 #define BUF_SPU_DVD 0x04000000 #define BUF_SPU_TEXT 0x04010000 #define BUF_SPU_CC 0x04020000 #define BUF_SPU_DVB 0x04030000 #define BUF_SPU_SVCD 0x04040000 #define BUF_SPU_CVD 0x04050000 #define BUF_SPU_OGM 0x04060000 #define BUF_SPU_CMML 0x04070000 #define BUF_DEMUX_BLOCK 0x05000000 typedef struct extra_info_s extra_info_t; struct extra_info_s { int input_normpos; int input_time; uint32_t frame_number; int seek_count; int64_t vpts; int invalid; int total_time; }; #define BUF_NUM_DEC_INFO 5 typedef struct buf_element_s buf_element_t; struct buf_element_s { buf_element_t *next; unsigned char *mem; unsigned char *content; int32_t size ; int32_t max_size; uint32_t type; int64_t pts; int64_t disc_off; extra_info_t *extra_info; uint32_t decoder_flags; uint32_t decoder_info[5]; void *decoder_info_ptr[5]; void (*free_buffer) (buf_element_t *buf); void *source; } ; #define BUF_FLAG_KEYFRAME 0x0001 #define BUF_FLAG_FRAME_START 0x0002 #define BUF_FLAG_FRAME_END 0x0004 #define BUF_FLAG_HEADER 0x0008 #define BUF_FLAG_PREVIEW 0x0010 #define BUF_FLAG_END_USER 0x0020 #define BUF_FLAG_END_STREAM 0x0040 #define BUF_FLAG_FRAMERATE 0x0080 #define BUF_FLAG_SEEK 0x0100 #define BUF_FLAG_SPECIAL 0x0200 #define BUF_FLAG_STDHEADER 0x0400 #define BUF_FLAG_ASPECT 0x0800 # 411 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_PALETTE 1 # 428 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_ASPECT 3 # 438 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_DECODER_CONFIG 4 # 452 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_STSD_ATOM 5 # 462 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_LPCM_CONFIG 6 # 473 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_CHARSET_ENCODING 7 # 483 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_SPU_DVD_SUBTYPE 8 #define SPU_DVD_SUBTYPE_CLUT 1 #define SPU_DVD_SUBTYPE_PACKAGE 2 #define SPU_DVD_SUBTYPE_VOBSUB_PACKAGE 3 #define SPU_DVD_SUBTYPE_NAV 4 # 501 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_SPU_DVB_DESCRIPTOR 9 # 511 "/usr/include/xine/buffer.h" 3 4 #define BUF_SPECIAL_RV_CHUNK_TABLE 10 typedef struct spu_dvb_descriptor_s spu_dvb_descriptor_t; struct spu_dvb_descriptor_s { char lang[4]; long comp_page_id; long aux_page_id; } ; typedef struct palette_entry_s palette_entry_t; struct palette_entry_s { unsigned char r, g, b; } ; typedef struct fifo_buffer_s fifo_buffer_t; struct fifo_buffer_s { buf_element_t *first, *last; int fifo_size; uint32_t fifo_data_size; void *fifo_empty_cb_data; pthread_mutex_t mutex; pthread_cond_t not_empty; void (*put) (fifo_buffer_t *fifo, buf_element_t *buf); buf_element_t *(*get) (fifo_buffer_t *fifo); void (*clear) (fifo_buffer_t *fifo) ; int (*size) (fifo_buffer_t *fifo); int (*num_free) (fifo_buffer_t *fifo); uint32_t (*data_size) (fifo_buffer_t *fifo); void (*dispose) (fifo_buffer_t *fifo); # 564 "/usr/include/xine/buffer.h" 3 4 buf_element_t *(*buffer_pool_alloc) (fifo_buffer_t *self); buf_element_t *(*buffer_pool_try_alloc) (fifo_buffer_t *self); void (*insert) (fifo_buffer_t *fifo, buf_element_t *buf); void (*register_alloc_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, void *), void *cb_data); void (*register_put_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *), void *cb_data); void (*register_get_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *), void *cb_data); void (*unregister_alloc_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, void *)); void (*unregister_put_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *)); void (*unregister_get_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *)); buf_element_t *buffer_pool_top; pthread_mutex_t buffer_pool_mutex; pthread_cond_t buffer_pool_cond_not_empty; int buffer_pool_num_free; int buffer_pool_capacity; int buffer_pool_buf_size; void *buffer_pool_base; void (*alloc_cb[5])(fifo_buffer_t *fifo, void *data_cb); void (*put_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb); void (*get_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb); void *alloc_cb_data[5]; void *put_cb_data[5]; void *get_cb_data[5]; } ; fifo_buffer_t *_x_fifo_buffer_new (int num_buffers, uint32_t buf_size) ; fifo_buffer_t *_x_dummy_fifo_buffer_new (int num_buffers, uint32_t buf_size) ; uint32_t _x_fourcc_to_buf_video( uint32_t fourcc_int ) ; char * _x_buf_video_name( uint32_t buf_type ) ; uint32_t _x_formattag_to_buf_audio( uint32_t formattag ) ; char * _x_buf_audio_name( uint32_t buf_type ) ; # 638 "/usr/include/xine/buffer.h" 3 4 typedef struct __attribute__((__packed__)) { int32_t biSize; int32_t biWidth; int32_t biHeight; int16_t biPlanes; int16_t biBitCount; uint32_t biCompression; int32_t biSizeImage; int32_t biXPelsPerMeter; int32_t biYPelsPerMeter; int32_t biClrUsed; int32_t biClrImportant; } xine_bmiheader; typedef struct __attribute__((__packed__)) { int16_t wFormatTag; int16_t nChannels; int32_t nSamplesPerSec; int32_t nAvgBytesPerSec; int16_t nBlockAlign; int16_t wBitsPerSample; int16_t cbSize; } xine_waveformatex; void _x_bmiheader_le2me( xine_bmiheader *bih ) ; void _x_waveformatex_le2me( xine_waveformatex *wavex ) ; # 37 "/usr/include/xine/input_plugin.h" 2 3 4 #define INPUT_PLUGIN_IFACE_VERSION 17 typedef struct input_class_s input_class_t ; typedef struct input_plugin_s input_plugin_t; struct input_class_s { input_plugin_t* (*get_instance) (input_class_t *this, xine_stream_t *stream, const char *mrl); const char* (*get_identifier) (input_class_t *this); const char* (*get_description) (input_class_t *this); xine_mrl_t ** (*get_dir) (input_class_t *this, const char *filename, int *nFiles); char ** (*get_autoplay_list) (input_class_t *this, int *num_files); void (*dispose) (input_class_t *this); int (*eject_media) (input_class_t *this); }; struct input_plugin_s { int (*open) (input_plugin_t *this); # 114 "/usr/include/xine/input_plugin.h" 3 4 uint32_t (*get_capabilities) (input_plugin_t *this); off_t (*read) (input_plugin_t *this, char *buf, off_t nlen); buf_element_t *(*read_block)(input_plugin_t *this, fifo_buffer_t *fifo, off_t len); off_t (*seek) (input_plugin_t *this, off_t offset, int origin); # 147 "/usr/include/xine/input_plugin.h" 3 4 off_t (*seek_time) (input_plugin_t *this, int time_offset, int origin); off_t (*get_current_pos) (input_plugin_t *this); int (*get_current_time) (input_plugin_t *this); # 182 "/usr/include/xine/input_plugin.h" 3 4 off_t (*get_length) (input_plugin_t *this); # 198 "/usr/include/xine/input_plugin.h" 3 4 uint32_t (*get_blocksize) (input_plugin_t *this); const char * (*get_mrl) (input_plugin_t *this); int (*get_optional_data) (input_plugin_t *this, void *data, int data_type); void (*dispose) (input_plugin_t *this); input_class_t *input_class; void *node; }; #define INPUT_CAP_NOCAP 0x00000000 # 242 "/usr/include/xine/input_plugin.h" 3 4 #define INPUT_CAP_SEEKABLE 0x00000001 # 252 "/usr/include/xine/input_plugin.h" 3 4 #define INPUT_CAP_BLOCK 0x00000002 # 264 "/usr/include/xine/input_plugin.h" 3 4 #define INPUT_CAP_AUDIOLANG 0x00000008 #define INPUT_CAP_SPULANG 0x00000010 # 279 "/usr/include/xine/input_plugin.h" 3 4 #define INPUT_CAP_PREVIEW 0x00000040 # 290 "/usr/include/xine/input_plugin.h" 3 4 #define INPUT_CAP_CHAPTERS 0x00000080 #define INPUT_CAP_RIP_FORBIDDEN 0x00000100 #define INPUT_IS_SEEKABLE(input) (((input)->get_capabilities(input) & INPUT_CAP_SEEKABLE) != 0) #define INPUT_OPTIONAL_UNSUPPORTED 0 #define INPUT_OPTIONAL_SUCCESS 1 #define INPUT_OPTIONAL_DATA_AUDIOLANG 2 #define INPUT_OPTIONAL_DATA_SPULANG 3 #define INPUT_OPTIONAL_DATA_PREVIEW 7 #define MAX_MRL_ENTRIES 255 #define MAX_PREVIEW_SIZE 4096 #define mrl_unknown (0 << 0) #define mrl_dvd (1 << 0) #define mrl_vcd (1 << 1) #define mrl_net (1 << 2) #define mrl_rtp (1 << 3) #define mrl_stdin (1 << 4) #define mrl_cda (1 << 5) #define mrl_file (1 << 6) #define mrl_file_fifo (1 << 7) #define mrl_file_chardev (1 << 8) #define mrl_file_directory (1 << 9) #define mrl_file_blockdev (1 << 10) #define mrl_file_normal (1 << 11) #define mrl_file_symlink (1 << 12) #define mrl_file_sock (1 << 13) #define mrl_file_exec (1 << 14) #define mrl_file_backup (1 << 15) #define mrl_file_hidden (1 << 16) #define MRL_ZERO(m) { if((m)) { if((m)->origin) free((m)->origin); if((m)->mrl) free((m)->mrl); if((m)->link) free((m)->link); (m)->origin = NULL; (m)->mrl = NULL; (m)->link = NULL; (m)->type = 0; (m)->size = (off_t) 0; } } # 355 "/usr/include/xine/input_plugin.h" 3 4 #define MRL_DUPLICATE(s,d) { _x_assert((s) != NULL); _x_assert((d) != NULL); if((s)->origin) { if((d)->origin) { (d)->origin = (char *) realloc((d)->origin, strlen((s)->origin) + 1); sprintf((d)->origin, "%s", (s)->origin); } else (d)->origin = strdup((s)->origin); } else (d)->origin = NULL; if((s)->mrl) { if((d)->mrl) { (d)->mrl = (char *) realloc((d)->mrl, strlen((s)->mrl) + 1); sprintf((d)->mrl, "%s", (s)->mrl); } else (d)->mrl = strdup((s)->mrl); } else (d)->mrl = NULL; if((s)->link) { if((d)->link) { (d)->link = (char *) realloc((d)->link, strlen((s)->link) + 1); sprintf((d)->link, "%s", (s)->link); } else (d)->link = strdup((s)->link); } else (d)->link = NULL; (d)->type = (s)->type; (d)->size = (s)->size; } # 399 "/usr/include/xine/input_plugin.h" 3 4 #define MRLS_DUPLICATE(s,d) { int i = 0; _x_assert((s) != NULL); _x_assert((d) != NULL); while((s) != NULL) { d[i] = (xine_mrl_t *) malloc(sizeof(xine_mrl_t)); MRL_DUPLICATE(s[i], d[i]); i++; } } # 58 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/demux.h" 1 3 4 # 24 "/usr/include/xine/demux.h" 3 4 #define HAVE_DEMUX_H # 33 "/usr/include/xine/demux.h" 3 4 # 1 "/usr/include/xine/xine_internal.h" 1 3 4 # 34 "/usr/include/xine/demux.h" 2 3 4 #define DEMUXER_PLUGIN_IFACE_VERSION 26 #define DEMUX_OK 0 #define DEMUX_FINISHED 1 #define DEMUX_CANNOT_HANDLE 0 #define DEMUX_CAN_HANDLE 1 #define METHOD_BY_CONTENT 1 #define METHOD_BY_EXTENSION 2 #define METHOD_EXPLICIT 3 typedef struct demux_class_s demux_class_t ; typedef struct demux_plugin_s demux_plugin_t; struct demux_class_s { demux_plugin_t* (*open_plugin) (demux_class_t *this, xine_stream_t *stream, input_plugin_t *input); const char* (*get_description) (demux_class_t *this); const char* (*get_identifier) (demux_class_t *this); const char* (*get_mimetypes) (demux_class_t *this); # 82 "/usr/include/xine/demux.h" 3 4 const char* (*get_extensions) (demux_class_t *this); void (*dispose) (demux_class_t *this); }; struct demux_plugin_s { void (*send_headers) (demux_plugin_t *this); # 123 "/usr/include/xine/demux.h" 3 4 int (*seek) (demux_plugin_t *this, off_t start_pos, int start_time, int playing ); # 136 "/usr/include/xine/demux.h" 3 4 int (*send_chunk) (demux_plugin_t *this); void (*dispose) (demux_plugin_t *this) ; int (*get_status) (demux_plugin_t *this) ; int (*get_stream_length) (demux_plugin_t *this); uint32_t (*get_capabilities) (demux_plugin_t *this); int (*get_optional_data) (demux_plugin_t *this, void *data, int data_type); demux_class_t *demux_class; void *node; } ; #define DEMUX_CAP_NOCAP 0x00000000 # 192 "/usr/include/xine/demux.h" 3 4 #define DEMUX_CAP_AUDIOLANG 0x00000008 #define DEMUX_CAP_SPULANG 0x00000010 # 205 "/usr/include/xine/demux.h" 3 4 #define DEMUX_CAP_CHAPTERS 0x00000080 #define DEMUX_OPTIONAL_UNSUPPORTED 0 #define DEMUX_OPTIONAL_SUCCESS 1 #define DEMUX_OPTIONAL_DATA_AUDIOLANG 2 #define DEMUX_OPTIONAL_DATA_SPULANG 3 # 59 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/video_out.h" 1 3 4 # 36 "/usr/include/xine/video_out.h" 3 4 #define HAVE_VIDEO_OUT_H # 1 "../../../config.h" 1 3 4 # 14 "../../../config.h" 3 4 #define DIRECTFB_VERSION "0.9.25" #define HAVE_DLFCN_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define STDC_HEADERS 1 #define USE_MMX 1 # 44 "/usr/include/xine/video_out.h" 2 3 4 # 1 "/usr/include/pthread.h" 1 3 4 # 47 "/usr/include/xine/video_out.h" 2 3 4 # 57 "/usr/include/xine/video_out.h" 3 4 typedef struct vo_frame_s vo_frame_t; typedef struct vo_driver_s vo_driver_t; typedef struct video_driver_class_s video_driver_class_t; typedef struct vo_overlay_s vo_overlay_t; typedef struct video_overlay_manager_s video_overlay_manager_t; struct vo_frame_s { void (*proc_duplicate_frame_data) (vo_frame_t *vo_img, vo_frame_t *src); void (*proc_frame) (vo_frame_t *vo_img); void (*proc_slice) (vo_frame_t *vo_img, uint8_t **src); void (*field) (vo_frame_t *vo_img, int which_field); int (*draw) (vo_frame_t *vo_img, xine_stream_t *stream); void (*lock) (vo_frame_t *vo_img); void (*free) (vo_frame_t *vo_img); void (*dispose) (vo_frame_t *vo_img); int64_t pts; int64_t vpts; int bad_frame; int duration; uint8_t *base[3]; int pitches[3]; int top_field_first; int repeat_first_field; int progressive_frame; int picture_coding_type; int crop_left, crop_right, crop_top, crop_bottom; extra_info_t *extra_info; int width, height; double ratio; int format; int drawn; int flags; int proc_called; void *accel_data; xine_video_port_t *port; vo_driver_t *driver; xine_stream_t *stream; int overlay_offset_x, overlay_offset_y; struct vo_frame_s *next; int lock_counter; pthread_mutex_t mutex; int id; int is_first; }; struct xine_video_port_s { uint32_t (*get_capabilities) (xine_video_port_t *self); void (*open) (xine_video_port_t *self, xine_stream_t *stream); # 192 "/usr/include/xine/video_out.h" 3 4 vo_frame_t* (*get_frame) (xine_video_port_t *self, uint32_t width, uint32_t height, double ratio, int format, int flags); vo_frame_t* (*get_last_frame) (xine_video_port_t *self); void (*enable_ovl) (xine_video_port_t *self, int ovl_enable); video_overlay_manager_t* (*get_overlay_manager) (xine_video_port_t *self); void (*flush) (xine_video_port_t *self); int (*get_property) (xine_video_port_t *self, int property); int (*set_property) (xine_video_port_t *self, int property, int value); int (*status) (xine_video_port_t *self, xine_stream_t *stream, int *width, int *height, int64_t *img_duration); void (*close) (xine_video_port_t *self, xine_stream_t *stream); void (*exit) (xine_video_port_t *self); vo_driver_t *driver; }; #define VO_PROP_INTERLACED 0 #define VO_PROP_ASPECT_RATIO 1 #define VO_PROP_HUE 2 #define VO_PROP_SATURATION 3 #define VO_PROP_CONTRAST 4 #define VO_PROP_BRIGHTNESS 5 #define VO_PROP_COLORKEY 6 #define VO_PROP_AUTOPAINT_COLORKEY 7 #define VO_PROP_ZOOM_X 8 #define VO_PROP_PAN_SCAN 9 #define VO_PROP_TVMODE 10 #define VO_PROP_MAX_NUM_FRAMES 11 #define VO_PROP_ZOOM_Y 13 #define VO_PROP_DISCARD_FRAMES 14 #define VO_PROP_WINDOW_WIDTH 15 #define VO_PROP_WINDOW_HEIGHT 16 #define VO_PROP_BUFS_IN_FIFO 17 #define VO_PROP_NUM_STREAMS 18 #define VO_NUM_PROPERTIES 19 #define OVL_PALETTE_SIZE 256 #define VO_NUM_RECENT_FRAMES 2 #define VO_TOP_FIELD 1 #define VO_BOTTOM_FIELD 2 #define VO_BOTH_FIELDS (VO_TOP_FIELD | VO_BOTTOM_FIELD) #define VO_PAN_SCAN_FLAG 4 #define VO_INTERLACED_FLAG 8 #define VO_NEW_SEQUENCE_FLAG 16 #define VO_CAP_YV12 0x00000001 #define VO_CAP_YUY2 0x00000002 #define VO_CAP_XVMC_MOCOMP 0x00000004 #define VO_CAP_XVMC_IDCT 0x00000008 #define VO_CAP_UNSCALED_OVERLAY 0x00000010 #define VO_CAP_CROP 0x00000020 #define VO_CAP_XXMC 0x00000040 # 291 "/usr/include/xine/video_out.h" 3 4 #define VIDEO_OUT_DRIVER_IFACE_VERSION 21 struct vo_driver_s { uint32_t (*get_capabilities) (vo_driver_t *self); vo_frame_t* (*alloc_frame) (vo_driver_t *self); void (*update_frame_format) (vo_driver_t *self, vo_frame_t *img, uint32_t width, uint32_t height, double ratio, int format, int flags); void (*display_frame) (vo_driver_t *self, vo_frame_t *vo_img); # 326 "/usr/include/xine/video_out.h" 3 4 void (*overlay_begin) (vo_driver_t *self, vo_frame_t *vo_img, int changed); void (*overlay_blend) (vo_driver_t *self, vo_frame_t *vo_img, vo_overlay_t *overlay); void (*overlay_end) (vo_driver_t *self, vo_frame_t *vo_img); int (*get_property) (vo_driver_t *self, int property); int (*set_property) (vo_driver_t *self, int property, int value); void (*get_property_min_max) (vo_driver_t *self, int property, int *min, int *max); int (*gui_data_exchange) (vo_driver_t *self, int data_type, void *data); int (*redraw_needed) (vo_driver_t *self); void (*dispose) (vo_driver_t *self); void *node; }; struct video_driver_class_s { vo_driver_t* (*open_plugin) (video_driver_class_t *self, const void *visual); char* (*get_identifier) (video_driver_class_t *self); char* (*get_description) (video_driver_class_t *self); void (*dispose) (video_driver_class_t *self); }; typedef struct rle_elem_s { uint16_t len; uint16_t color; } rle_elem_t; struct vo_overlay_s { rle_elem_t *rle; int data_size; int num_rle; int x; int y; int width; int height; uint32_t color[256]; uint8_t trans[256]; int rgb_clut; int hili_top; int hili_bottom; int hili_left; int hili_right; uint32_t hili_color[256]; uint8_t hili_trans[256]; int hili_rgb_clut; int unscaled; }; # 425 "/usr/include/xine/video_out.h" 3 4 struct video_overlay_manager_s { void (*init) (video_overlay_manager_t *this_gen); void (*dispose) (video_overlay_manager_t *this_gen); int32_t (*get_handle) (video_overlay_manager_t *this_gen, int object_type ); void (*free_handle) (video_overlay_manager_t *this_gen, int32_t handle); int32_t (*add_event) (video_overlay_manager_t *this_gen, void *event); void (*flush_events) (video_overlay_manager_t *this_gen ); int (*redraw_needed) (video_overlay_manager_t *this_gen, int64_t vpts ); void (*multiple_overlay_blend) (video_overlay_manager_t *this_gen, int64_t vpts, vo_driver_t *output, vo_frame_t *vo_img, int enabled); }; xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabonly) ; # 60 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/audio_out.h" 1 3 4 # 23 "/usr/include/xine/audio_out.h" 3 4 #define HAVE_AUDIO_OUT_H # 36 "/usr/include/xine/audio_out.h" 3 4 # 1 "/usr/include/xine/metronom.h" 1 3 4 # 44 "/usr/include/xine/metronom.h" 3 4 #define HAVE_METRONOM_H # 1 "/usr/include/pthread.h" 1 3 4 # 51 "/usr/include/xine/metronom.h" 2 3 4 # 60 "/usr/include/xine/metronom.h" 3 4 typedef struct metronom_s metronom_t ; typedef struct metronom_clock_s metronom_clock_t; typedef struct scr_plugin_s scr_plugin_t; #define PREBUFFER_PTS_OFFSET 12000 #define DISC_STREAMSTART 0 #define DISC_RELATIVE 1 #define DISC_ABSOLUTE 2 #define DISC_STREAMSEEK 3 struct metronom_s { void (*set_audio_rate) (metronom_t *self, int64_t pts_per_smpls); # 100 "/usr/include/xine/metronom.h" 3 4 void (*got_video_frame) (metronom_t *self, vo_frame_t *frame); # 115 "/usr/include/xine/metronom.h" 3 4 int64_t (*got_audio_samples) (metronom_t *self, int64_t pts, int nsamples); # 128 "/usr/include/xine/metronom.h" 3 4 int64_t (*got_spu_packet) (metronom_t *self, int64_t pts); # 150 "/usr/include/xine/metronom.h" 3 4 void (*handle_audio_discontinuity) (metronom_t *self, int type, int64_t disc_off); void (*handle_video_discontinuity) (metronom_t *self, int type, int64_t disc_off); void (*set_option) (metronom_t *self, int option, int64_t value); int64_t (*get_option) (metronom_t *self, int option); void (*set_master) (metronom_t *self, metronom_t *master); void (*exit) (metronom_t *self); # 216 "/usr/include/xine/metronom.h" 3 4 }; #define METRONOM_AV_OFFSET 2 #define METRONOM_ADJ_VPTS_OFFSET 3 #define METRONOM_FRAME_DURATION 4 #define METRONOM_SPU_OFFSET 5 #define METRONOM_VPTS_OFFSET 6 #define METRONOM_PREBUFFER 7 metronom_t *_x_metronom_init (int have_video, int have_audio, xine_t *xine) ; struct metronom_clock_s { void (*set_option) (metronom_clock_t *self, int option, int64_t value); int64_t (*get_option) (metronom_clock_t *self, int option); # 263 "/usr/include/xine/metronom.h" 3 4 void *dummy1; void *dummy2; void *dummy3; int64_t (*get_current_time) (metronom_clock_t *self); void (*adjust_clock) (metronom_clock_t *self, int64_t desired_pts); # 288 "/usr/include/xine/metronom.h" 3 4 void *dummy4; int (*register_scr) (metronom_clock_t *self, scr_plugin_t *scr); void (*unregister_scr) (metronom_clock_t *self, scr_plugin_t *scr); # 308 "/usr/include/xine/metronom.h" 3 4 void *dummy5; void *dummy6; void *dummy7; void *dummy8; pthread_t dummy9; int dummy10; int dummy11; int speed; }; metronom_clock_t *_x_metronom_clock_init(xine_t *xine) ; #define CLOCK_SCR_ADJUSTABLE 1 struct scr_plugin_s { int interface_version; int (*get_priority) (scr_plugin_t *self); # 350 "/usr/include/xine/metronom.h" 3 4 int (*set_fine_speed) (scr_plugin_t *self, int speed); void (*adjust) (scr_plugin_t *self, int64_t vpts); void (*start) (scr_plugin_t *self, int64_t start_vpts); int64_t (*get_current) (scr_plugin_t *self); void (*exit) (scr_plugin_t *self); metronom_clock_t *clock; }; # 37 "/usr/include/xine/audio_out.h" 2 3 4 #define AUDIO_OUT_IFACE_VERSION 8 typedef struct ao_driver_s ao_driver_t; struct ao_driver_s { # 60 "/usr/include/xine/audio_out.h" 3 4 uint32_t (*get_capabilities) (ao_driver_t *); int (*open)(ao_driver_t *, uint32_t bits, uint32_t rate, int mode); int (*num_channels)(ao_driver_t *self_gen); int (*bytes_per_frame)(ao_driver_t *self_gen); int (*delay)(ao_driver_t *self_gen); int (*get_gap_tolerance) (ao_driver_t *self_gen); # 96 "/usr/include/xine/audio_out.h" 3 4 int (*write)(ao_driver_t *, int16_t* audio_data, uint32_t num_samples); void (*close)(ao_driver_t *); void (*exit) (ao_driver_t *); # 119 "/usr/include/xine/audio_out.h" 3 4 int (*get_property) (ao_driver_t *, int property); int (*set_property) (ao_driver_t *, int property, int value); int (*control) (ao_driver_t *, int cmd, ...); void *node; }; typedef struct ao_format_s ao_format_t; struct ao_format_s { uint32_t bits; uint32_t rate; int mode; }; typedef struct audio_fifo_s audio_fifo_t; typedef struct audio_buffer_s audio_buffer_t; struct audio_buffer_s { audio_buffer_t *next; int16_t *mem; int mem_size; int num_frames; int64_t vpts; uint32_t frame_header_count; uint32_t first_access_unit; extra_info_t *extra_info; xine_stream_t *stream; ao_format_t format; }; # 174 "/usr/include/xine/audio_out.h" 3 4 struct xine_audio_port_s { uint32_t (*get_capabilities) (xine_audio_port_t *); int (*get_property) (xine_audio_port_t *, int property); int (*set_property) (xine_audio_port_t *, int property, int value); int (*open) (xine_audio_port_t *, xine_stream_t *stream, uint32_t bits, uint32_t rate, int mode); audio_buffer_t * (*get_buffer) (xine_audio_port_t *); void (*put_buffer) (xine_audio_port_t *, audio_buffer_t *buf, xine_stream_t *stream); void (*close) (xine_audio_port_t *self, xine_stream_t *stream); void (*exit) (xine_audio_port_t *); int (*control) (xine_audio_port_t *, int cmd, ...); void (*flush) (xine_audio_port_t *); int (*status) (xine_audio_port_t *, xine_stream_t *stream, uint32_t *bits, uint32_t *rate, int *mode); }; typedef struct audio_driver_class_s audio_driver_class_t; struct audio_driver_class_s { ao_driver_t* (*open_plugin) (audio_driver_class_t *, const void *data); char* (*get_identifier) (audio_driver_class_t *); char* (*get_description) (audio_driver_class_t *); void (*dispose) (audio_driver_class_t *); }; xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver, int grab_only) ; #define AO_CAP_NOCAP 0x00000000 #define AO_CAP_MODE_A52 0x00000001 #define AO_CAP_MODE_AC5 0x00000002 #define AO_CAP_MODE_MONO 0x00000004 #define AO_CAP_MODE_STEREO 0x00000008 #define AO_CAP_MODE_4CHANNEL 0x00000010 #define AO_CAP_MODE_4_1CHANNEL 0x00000020 #define AO_CAP_MODE_5CHANNEL 0x00000040 #define AO_CAP_MODE_5_1CHANNEL 0x00000080 int _x_ao_mode2channels( int mode ) ; int _x_ao_channels2mode( int channels ) ; #define AO_CAP_MIXER_VOL 0x00000100 #define AO_CAP_PCM_VOL 0x00000200 #define AO_CAP_MUTE_VOL 0x00000400 #define AO_CAP_8BITS 0x00000800 #define AO_CAP_16BITS 0x00001000 #define AO_CAP_24BITS 0x00002000 #define AO_CAP_FLOAT32 0x00004000 #define AO_PROP_MIXER_VOL 0 #define AO_PROP_PCM_VOL 1 #define AO_PROP_MUTE_VOL 2 #define AO_PROP_COMPRESSOR 3 #define AO_PROP_DISCARD_BUFFERS 4 #define AO_PROP_BUFS_IN_FIFO 5 #define AO_PROP_AMP 6 #define AO_PROP_EQ_30HZ 7 #define AO_PROP_EQ_60HZ 8 #define AO_PROP_EQ_125HZ 9 #define AO_PROP_EQ_250HZ 10 #define AO_PROP_EQ_500HZ 11 #define AO_PROP_EQ_1000HZ 12 #define AO_PROP_EQ_2000HZ 13 #define AO_PROP_EQ_4000HZ 14 #define AO_PROP_EQ_8000HZ 15 #define AO_PROP_EQ_16000HZ 16 #define AO_PROP_CLOSE_DEVICE 17 #define AO_PROP_AMP_MUTE 18 #define AO_PROP_NUM_STREAMS 19 #define AO_PROP_CLOCK_SPEED 20 #define AO_NUM_PROPERTIES 21 #define AO_CTRL_PLAY_PAUSE 0 #define AO_CTRL_PLAY_RESUME 1 #define AO_CTRL_FLUSH_BUFFERS 2 #define AO_MAX_GAP 15000 # 61 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/osd.h" 1 3 4 # 25 "/usr/include/xine/osd.h" 3 4 #define HAVE_OSD_H # 37 "/usr/include/xine/osd.h" 3 4 # 1 "/usr/include/xine/video_overlay.h" 1 3 4 # 25 "/usr/include/xine/video_overlay.h" 3 4 #define HAVE_VIDEO_OVERLAY_H # 34 "/usr/include/xine/video_overlay.h" 3 4 #define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) {y: (_y), cr: (_cr), cb: (_cb)} #define MAX_OBJECTS 50 #define MAX_EVENTS 50 #define MAX_SHOWING 16 #define OVERLAY_EVENT_NULL 0 #define OVERLAY_EVENT_SHOW 1 #define OVERLAY_EVENT_HIDE 2 #define OVERLAY_EVENT_MENU_BUTTON 3 #define OVERLAY_EVENT_FREE_HANDLE 8 #define OVL_PALETTE_SIZE 256 typedef struct vo_buttons_s { int32_t type; int32_t hili_top; int32_t hili_bottom; int32_t hili_left; int32_t hili_right; int32_t up; int32_t down; int32_t left; int32_t right; uint32_t select_color[256]; uint8_t select_trans[256]; xine_event_t select_event; uint32_t active_color[256]; uint8_t active_trans[256]; xine_event_t active_event; int32_t hili_rgb_clut; } vo_buttons_t; typedef struct video_overlay_object_s { int32_t handle; uint32_t object_type; int64_t pts; vo_overlay_t *overlay; uint32_t palette_type; uint32_t *palette; int32_t buttonN; vo_buttons_t button[32]; } video_overlay_object_t; typedef struct video_overlay_event_s { uint32_t event_type; int64_t vpts; video_overlay_object_t object; } video_overlay_event_t; video_overlay_manager_t *_x_video_overlay_new_manager(xine_t *) ; # 38 "/usr/include/xine/osd.h" 2 3 4 typedef struct osd_object_s osd_object_t; typedef struct osd_renderer_s osd_renderer_t; typedef struct osd_font_s osd_font_t; typedef struct osd_ft2context_s osd_ft2context_t; struct osd_object_s { osd_object_t *next; osd_renderer_t *renderer; int width, height; uint8_t *area; int display_x,display_y; int x1, y1; int x2, y2; uint32_t color[256]; uint8_t trans[256]; int32_t handle; osd_font_t *font; osd_ft2context_t *ft2; }; struct xine_osd_s { osd_object_t osd; }; struct osd_renderer_s { # 86 "/usr/include/xine/osd.h" 3 4 osd_object_t* (*new_object) (osd_renderer_t *this, int width, int height); void (*free_object) (osd_object_t *osd_to_close); int (*show) (osd_object_t *osd, int64_t vpts ); int (*hide) (osd_object_t *osd, int64_t vpts ); void (*point) (osd_object_t *osd, int x, int y, int color); void (*line) (osd_object_t *osd, int x1, int y1, int x2, int y2, int color ); void (*filled_rect) (osd_object_t *osd, int x1, int y1, int x2, int y2, int color ); void (*set_palette) (osd_object_t *osd, const uint32_t *color, const uint8_t *trans ); # 138 "/usr/include/xine/osd.h" 3 4 void (*set_text_palette) (osd_object_t *osd, int palette_number, int color_base ); void (*get_palette) (osd_object_t *osd, uint32_t *color, uint8_t *trans); void (*set_position) (osd_object_t *osd, int x, int y); int (*set_font) (osd_object_t *osd, const char *fontname, int size); int (*set_encoding) (osd_object_t *osd, const char *encoding); # 175 "/usr/include/xine/osd.h" 3 4 int (*render_text) (osd_object_t *osd, int x1, int y1, const char *text, int color_base); int (*get_text_size) (osd_object_t *osd, const char *text, int *width, int *height); void (*close) (osd_renderer_t *this); void (*clear) (osd_object_t *osd ); void (*draw_bitmap) (osd_object_t *osd, uint8_t *bitmap, int x1, int y1, int width, int height, uint8_t *palette_map); int (*show_unscaled) (osd_object_t *osd, int64_t vpts ); uint32_t (*get_capabilities) (osd_object_t *osd); pthread_mutex_t osd_mutex; video_overlay_event_t event; osd_object_t *osds; osd_font_t *fonts; int textpalette; xine_stream_t *stream; }; osd_renderer_t *_x_osd_renderer_init( xine_stream_t *stream ); #define TEXT_PALETTE_SIZE 11 #define OSD_TEXT1 (0 * TEXT_PALETTE_SIZE) #define OSD_TEXT2 (1 * TEXT_PALETTE_SIZE) #define OSD_TEXT3 (2 * TEXT_PALETTE_SIZE) #define OSD_TEXT4 (3 * TEXT_PALETTE_SIZE) #define OSD_TEXT5 (4 * TEXT_PALETTE_SIZE) #define OSD_TEXT6 (5 * TEXT_PALETTE_SIZE) #define OSD_TEXT7 (6 * TEXT_PALETTE_SIZE) #define OSD_TEXT8 (7 * TEXT_PALETTE_SIZE) #define OSD_TEXT9 (8 * TEXT_PALETTE_SIZE) #define OSD_TEXT10 (9 * TEXT_PALETTE_SIZE) #define NUMBER_OF_TEXT_PALETTES 4 #define TEXTPALETTE_WHITE_BLACK_TRANSPARENT 0 #define TEXTPALETTE_WHITE_NONE_TRANSPARENT 1 #define TEXTPALETTE_WHITE_NONE_TRANSLUCID 2 #define TEXTPALETTE_YELLOW_BLACK_TRANSPARENT 3 # 63 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/xineintl.h" 1 3 4 # 25 "/usr/include/xine/xineintl.h" 3 4 #define HAVE_XINEINTL_H # 1 "/usr/include/locale.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/locale.h" 1 3 4 # 24 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 #define _LOCALE_H 1 # 1 "/usr/include/features.h" 1 3 4 # 27 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 #define __need_NULL # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL # 30 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 # 1 "/usr/include/bits/locale.h" 1 3 4 # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4 # 25 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 3 4 #define _BITS_LOCALE_H 1 enum { __LC_CTYPE = 0, __LC_NUMERIC = 1, __LC_TIME = 2, __LC_COLLATE = 3, __LC_MONETARY = 4, __LC_MESSAGES = 5, __LC_ALL = 6, __LC_PAPER = 7, __LC_NAME = 8, __LC_ADDRESS = 9, __LC_TELEPHONE = 10, __LC_MEASUREMENT = 11, __LC_IDENTIFICATION = 12 }; # 9 "/usr/include/bits/locale.h" 2 3 4 # 31 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 #define LC_CTYPE __LC_CTYPE #define LC_NUMERIC __LC_NUMERIC #define LC_TIME __LC_TIME #define LC_COLLATE __LC_COLLATE #define LC_MONETARY __LC_MONETARY #define LC_MESSAGES __LC_MESSAGES #define LC_ALL __LC_ALL #define LC_PAPER __LC_PAPER #define LC_NAME __LC_NAME #define LC_ADDRESS __LC_ADDRESS #define LC_TELEPHONE __LC_TELEPHONE #define LC_MEASUREMENT __LC_MEASUREMENT #define LC_IDENTIFICATION __LC_IDENTIFICATION struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; char int_p_cs_precedes; char int_p_sep_by_space; char int_n_cs_precedes; char int_n_sep_by_space; char int_p_sign_posn; char int_n_sign_posn; # 119 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 }; extern char *setlocale (int __category, __const char *__locale) __attribute__ ((__nothrow__)); extern struct lconv *localeconv (void) __attribute__ ((__nothrow__)); # 146 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 # 1 "/usr/include/xlocale.h" 1 3 4 # 147 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 typedef __locale_t locale_t; extern __locale_t newlocale (int __category_mask, __const char *__locale, __locale_t __base) __attribute__ ((__nothrow__)); #define LC_CTYPE_MASK (1 << __LC_CTYPE) #define LC_NUMERIC_MASK (1 << __LC_NUMERIC) #define LC_TIME_MASK (1 << __LC_TIME) #define LC_COLLATE_MASK (1 << __LC_COLLATE) #define LC_MONETARY_MASK (1 << __LC_MONETARY) #define LC_MESSAGES_MASK (1 << __LC_MESSAGES) #define LC_PAPER_MASK (1 << __LC_PAPER) #define LC_NAME_MASK (1 << __LC_NAME) #define LC_ADDRESS_MASK (1 << __LC_ADDRESS) #define LC_TELEPHONE_MASK (1 << __LC_TELEPHONE) #define LC_MEASUREMENT_MASK (1 << __LC_MEASUREMENT) #define LC_IDENTIFICATION_MASK (1 << __LC_IDENTIFICATION) #define LC_ALL_MASK (LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK | LC_TELEPHONE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK ) # 189 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 extern __locale_t duplocale (__locale_t __dataset) __attribute__ ((__nothrow__)); extern void freelocale (__locale_t __dataset) __attribute__ ((__nothrow__)); extern __locale_t uselocale (__locale_t __dataset) __attribute__ ((__nothrow__)); #define LC_GLOBAL_LOCALE ((__locale_t) -1L) # 9 "/usr/include/locale.h" 2 3 4 # 32 "/usr/include/xine/xineintl.h" 2 3 4 # 43 "/usr/include/xine/xineintl.h" 3 4 #define textdomain(String) (String) #define gettext(String) (String) #define dgettext(Domain,Message) (Message) #define dcgettext(Domain,Message,Type) (Message) #define ngettext(Singular,Plural,IsPlural) (Singular) #define bindtextdomain(Domain,Directory) (Domain) #define _(String) (String) #define N_(String) (String) # 64 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/plugin_catalog.h" 1 3 4 # 27 "/usr/include/xine/plugin_catalog.h" 3 4 #define _PLUGIN_CATALOG_H # 1 "/usr/include/xine/xine_plugin.h" 1 3 4 # 27 "/usr/include/xine/xine_plugin.h" 3 4 #define XINE_PLUGIN_H #define PLUGIN_NONE 0 #define PLUGIN_INPUT 1 #define PLUGIN_DEMUX 2 #define PLUGIN_AUDIO_DECODER 3 #define PLUGIN_VIDEO_DECODER 4 #define PLUGIN_SPU_DECODER 5 #define PLUGIN_AUDIO_OUT 6 #define PLUGIN_VIDEO_OUT 7 #define PLUGIN_POST 8 #define PLUGIN_TYPE_MAX PLUGIN_POST #define PLUGIN_MUST_PRELOAD (1 << 7) #define PLUGIN_NO_UNLOAD (1 << 6) #define PLUGIN_TYPE_MASK ((1 << 6) - 1) typedef struct { uint8_t type; uint8_t API; char *id; uint32_t version; const void *special_info; void *(*init)(xine_t *, void *); } plugin_info_t; typedef struct { int priority; int visual_type; } vo_info_t; typedef struct { int priority; } ao_info_t; typedef struct { uint32_t *supported_types; int priority; } decoder_info_t; typedef struct { uint32_t type; } post_info_t; typedef struct { int priority; } demuxer_info_t; typedef struct { int priority; } input_info_t; # 106 "/usr/include/xine/xine_plugin.h" 3 4 void xine_register_plugins(xine_t *self, plugin_info_t *info) ; # 34 "/usr/include/xine/plugin_catalog.h" 2 3 4 #define DECODER_MAX 128 #define PLUGIN_MAX 256 #define PLUGINS_PER_TYPE 10 #define CACHE_CATALOG_VERSION 2 #define CACHE_CATALOG_FILE ".xine/catalog.cache" #define CACHE_CATALOG_DIR ".xine" typedef struct { char *filename; off_t filesize; time_t filemtime; int ref; void *lib_handle; int no_unload; } plugin_file_t ; typedef struct { plugin_file_t *file; plugin_info_t *info; void *plugin_class; int ref; int priority; } plugin_node_t ; struct plugin_catalog_s { xine_sarray_t *plugin_lists[8]; xine_sarray_t *cache_list; xine_list_t *file_list; plugin_node_t *audio_decoder_map[128][10]; plugin_node_t *video_decoder_map[128][10]; plugin_node_t *spu_decoder_map[128][10]; const char *ids[256]; char *prio_desc[128]; pthread_mutex_t lock; int plugin_count; int decoder_count; }; typedef struct plugin_catalog_s plugin_catalog_t; # 93 "/usr/include/xine/plugin_catalog.h" 3 4 void _x_scan_plugins (xine_t *this) ; void _x_dispose_plugins (xine_t *this) ; # 65 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/video_decoder.h" 1 3 4 # 27 "/usr/include/xine/video_decoder.h" 3 4 #define HAVE_VIDEO_DECODER_H # 37 "/usr/include/xine/video_decoder.h" 3 4 #define VIDEO_DECODER_IFACE_VERSION 18 typedef struct video_decoder_class_s video_decoder_class_t; typedef struct video_decoder_s video_decoder_t; struct video_decoder_class_s { video_decoder_t* (*open_plugin) (video_decoder_class_t *this, xine_stream_t *stream); char* (*get_identifier) (video_decoder_class_t *this); char* (*get_description) (video_decoder_class_t *this); void (*dispose) (video_decoder_class_t *this); }; struct video_decoder_s { void (*decode_data) (video_decoder_t *this, buf_element_t *buf); void (*reset) (video_decoder_t *this); void (*discontinuity) (video_decoder_t *this); void (*flush) (video_decoder_t *this); void (*dispose) (video_decoder_t *this); void *node; }; # 66 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/audio_decoder.h" 1 3 4 # 27 "/usr/include/xine/audio_decoder.h" 3 4 #define HAVE_AUDIO_DECODER_H # 37 "/usr/include/xine/audio_decoder.h" 3 4 #define AUDIO_DECODER_IFACE_VERSION 15 typedef struct audio_decoder_class_s audio_decoder_class_t; typedef struct audio_decoder_s audio_decoder_t; struct audio_decoder_class_s { audio_decoder_t* (*open_plugin) (audio_decoder_class_t *this, xine_stream_t *stream); char* (*get_identifier) (audio_decoder_class_t *this); char* (*get_description) (audio_decoder_class_t *this); void (*dispose) (audio_decoder_class_t *this); }; struct audio_decoder_s { void (*decode_data) (audio_decoder_t *this, buf_element_t *buf); void (*reset) (audio_decoder_t *this); void (*discontinuity) (audio_decoder_t *this); void (*dispose) (audio_decoder_t *this); void *node; }; # 67 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/spu_decoder.h" 1 3 4 # 25 "/usr/include/xine/spu_decoder.h" 3 4 #define HAVE_SPU_API_H # 35 "/usr/include/xine/spu_decoder.h" 3 4 #define SPU_DECODER_IFACE_VERSION 16 typedef struct spu_decoder_class_s spu_decoder_class_t; typedef struct spu_decoder_s spu_decoder_t; struct spu_decoder_class_s { spu_decoder_t* (*open_plugin) (spu_decoder_class_t *this, xine_stream_t *stream); char* (*get_identifier) (spu_decoder_class_t *this); char* (*get_description) (spu_decoder_class_t *this); void (*dispose) (spu_decoder_class_t *this); }; struct spu_decoder_s { void (*decode_data) (spu_decoder_t *this, buf_element_t *buf); void (*reset) (spu_decoder_t *this); void (*discontinuity) (spu_decoder_t *this); void (*dispose) (spu_decoder_t *this); # 103 "/usr/include/xine/spu_decoder.h" 3 4 int (*get_interact_info) (spu_decoder_t *this, void *data); # 112 "/usr/include/xine/spu_decoder.h" 3 4 void (*set_button) (spu_decoder_t *this_gen, int32_t button, int32_t mode); void *node; }; # 142 "/usr/include/xine/spu_decoder.h" 3 4 int _x_spu_decoder_sleep(xine_stream_t *, int64_t next_spu_vpts) ; # 68 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/scratch.h" 1 3 4 # 27 "/usr/include/xine/scratch.h" 3 4 #define HAVE_SCRATCH_H # 1 "/usr/include/pthread.h" 1 3 4 # 31 "/usr/include/xine/scratch.h" 2 3 4 typedef struct scratch_buffer_s scratch_buffer_t; #define SCRATCH_LINE_LEN_MAX 1024 struct scratch_buffer_s { void __attribute__((__format__(__printf__, 2, 0))) (*scratch_printf) (scratch_buffer_t *this, const char *format, va_list ap); char **(*get_content) (scratch_buffer_t *this); void (*dispose) (scratch_buffer_t *this); char **lines; char **ordered; int num_lines; int cur; pthread_mutex_t lock; }; scratch_buffer_t *_x_new_scratch_buffer (int num_lines) ; # 69 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/broadcaster.h" 1 3 4 # 27 "/usr/include/xine/broadcaster.h" 3 4 #define HAVE_BROADCASTER_H # 1 "../../../config.h" 1 3 4 # 14 "../../../config.h" 3 4 #define DIRECTFB_VERSION "0.9.25" #define HAVE_DLFCN_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRINGS_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define STDC_HEADERS 1 #define USE_MMX 1 # 35 "/usr/include/xine/broadcaster.h" 2 3 4 typedef struct broadcaster_s broadcaster_t; broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port) ; void _x_close_broadcaster(broadcaster_t *this) ; int _x_get_broadcaster_port(broadcaster_t *this) ; # 70 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/io_helper.h" 1 3 4 # 24 "/usr/include/xine/io_helper.h" 3 4 #define IO_HELPER_H # 1 "/usr/include/xine/xine_internal.h" 1 3 4 # 27 "/usr/include/xine/io_helper.h" 2 3 4 #define XIO_READ_READY 1 #define XIO_WRITE_READY 2 #define XIO_READY 0 #define XIO_ERROR 1 #define XIO_ABORTED 2 #define XIO_TIMEOUT 3 # 61 "/usr/include/xine/io_helper.h" 3 4 int _x_io_select (xine_stream_t *stream, int fd, int state, int timeout_msec) ; # 74 "/usr/include/xine/io_helper.h" 3 4 int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port) ; # 90 "/usr/include/xine/io_helper.h" 3 4 int _x_io_tcp_connect_finish(xine_stream_t *stream, int fd, int timeout_msec) ; # 100 "/usr/include/xine/io_helper.h" 3 4 off_t _x_io_tcp_read (xine_stream_t *stream, int s, char *buf, off_t todo) ; # 111 "/usr/include/xine/io_helper.h" 3 4 off_t _x_io_tcp_write (xine_stream_t *stream, int s, char *buf, off_t todo) ; # 121 "/usr/include/xine/io_helper.h" 3 4 off_t _x_io_file_read (xine_stream_t *stream, int fd, char *buf, off_t todo) ; # 132 "/usr/include/xine/io_helper.h" 3 4 off_t _x_io_file_write (xine_stream_t *stream, int fd, char *buf, off_t todo) ; int _x_io_tcp_read_line(xine_stream_t *stream, int sock, char *str, int size) ; # 71 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/info_helper.h" 1 3 4 # 27 "/usr/include/xine/info_helper.h" 3 4 #define INFO_HELPER_H # 41 "/usr/include/xine/info_helper.h" 3 4 void _x_stream_info_set(xine_stream_t *stream, int info, int value) ; # 51 "/usr/include/xine/info_helper.h" 3 4 void _x_stream_info_reset(xine_stream_t *stream, int info) ; # 61 "/usr/include/xine/info_helper.h" 3 4 void _x_stream_info_public_reset(xine_stream_t *stream, int info) ; # 71 "/usr/include/xine/info_helper.h" 3 4 uint32_t _x_stream_info_get(xine_stream_t *stream, int info) ; # 81 "/usr/include/xine/info_helper.h" 3 4 uint32_t _x_stream_info_get_public(xine_stream_t *stream, int info) ; # 92 "/usr/include/xine/info_helper.h" 3 4 void _x_meta_info_set(xine_stream_t *stream, int info, const char *str) ; # 103 "/usr/include/xine/info_helper.h" 3 4 void _x_meta_info_set_utf8(xine_stream_t *stream, int info, const char *str) ; # 115 "/usr/include/xine/info_helper.h" 3 4 void _x_meta_info_set_generic(xine_stream_t *stream, int info, const char *str, const char *enc) ; # 126 "/usr/include/xine/info_helper.h" 3 4 void _x_meta_info_set_multi(xine_stream_t *stream, int info, ...) ; # 138 "/usr/include/xine/info_helper.h" 3 4 void _x_meta_info_n_set(xine_stream_t *stream, int info, const char *buf, int len) ; # 148 "/usr/include/xine/info_helper.h" 3 4 void _x_meta_info_reset(xine_stream_t *stream, int info) ; # 158 "/usr/include/xine/info_helper.h" 3 4 void _x_meta_info_public_reset(xine_stream_t *stream, int info) ; # 168 "/usr/include/xine/info_helper.h" 3 4 const char *_x_meta_info_get(xine_stream_t *stream, int info) ; # 178 "/usr/include/xine/info_helper.h" 3 4 const char *_x_meta_info_get_public(xine_stream_t *stream, int info) ; # 72 "/usr/include/xine/xine_internal.h" 2 3 4 # 1 "/usr/include/xine/alphablend.h" 1 3 4 # 26 "/usr/include/xine/alphablend.h" 3 4 #define __ALPHABLEND_H__ # 1 "/usr/include/xine/video_out.h" 1 3 4 # 29 "/usr/include/xine/alphablend.h" 2 3 4 typedef struct { void *buffer; int buffer_size; int disable_exact_blending; int offset_x, offset_y; } alphablend_t; void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine) ; void _x_alphablend_free(alphablend_t *extra_data) ; #undef ATTRIBUTE_PACKED #undef PRAGMA_PACK_BEGIN #undef PRAGMA_PACK_END #define ATTRIBUTE_PACKED __attribute__ ((packed)) #define PRAGMA_PACK 0 # 61 "/usr/include/xine/alphablend.h" 3 4 typedef struct { uint8_t cb; uint8_t cr; uint8_t y; uint8_t foo; } __attribute__ ((packed)) clut_t; #define XX44_PALETTE_SIZE 32 typedef struct { unsigned size; unsigned max_used; uint32_t cluts[32]; int lookup_cache[256*2]; } xx44_palette_t; void _x_blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl, int img_width, int img_height, int dst_width, int dst_height, alphablend_t *extra_data) ; void _x_blend_rgb24 (uint8_t * img, vo_overlay_t * img_overl, int img_width, int img_height, int dst_width, int dst_height, alphablend_t *extra_data) ; void _x_blend_rgb32 (uint8_t * img, vo_overlay_t * img_overl, int img_width, int img_height, int dst_width, int dst_height, alphablend_t *extra_data) ; void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl, int dst_width, int dst_height, int dst_pitches[3], alphablend_t *extra_data) ; void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl, int dst_width, int dst_height, int dst_pitch, alphablend_t *extra_data) ; # 114 "/usr/include/xine/alphablend.h" 3 4 void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl, int dst_width, int dst_height, int dst_pitch, alphablend_t *extra_data, xx44_palette_t *palette,int ia44) ; void _x_clear_xx44_palette(xx44_palette_t *p) ; void _x_init_xx44_palette(xx44_palette_t *p, unsigned num_entries) ; void _x_dispose_xx44_palette(xx44_palette_t *p) ; void _x_xx44_to_xvmc_palette(const xx44_palette_t *p,unsigned char *xvmc_palette, unsigned first_xx44_entry, unsigned num_xx44_entries, unsigned num_xvmc_components, char *xvmc_components) ; # 73 "/usr/include/xine/xine_internal.h" 2 3 4 #define XINE_MAX_EVENT_LISTENERS 50 #define XINE_MAX_EVENT_TYPES 100 #define XINE_VERSION_CODE XINE_MAJOR_VERSION*10000+XINE_MINOR_VERSION*100+XINE_SUB_VERSION #define XINE_LOG_MSG 0 #define XINE_LOG_PLUGIN 1 #define XINE_LOG_TRACE 2 #define XINE_LOG_NUM 3 #define XINE_STREAM_INFO_MAX 99 typedef struct xine_ticket_s xine_ticket_t; struct xine_s { config_values_t *config; plugin_catalog_t *plugin_catalog; int demux_strategy; char *save_path; scratch_buffer_t *log_buffers[3]; int verbosity; xine_list_t *streams; pthread_mutex_t streams_lock; metronom_clock_t *clock; }; struct xine_ticket_s { int ticket_revoked; void (*acquire)(xine_ticket_t *self, int irrevocable); void (*release)(xine_ticket_t *self, int irrevocable); void (*renew)(xine_ticket_t *self, int irrevocable); # 174 "/usr/include/xine/xine_internal.h" 3 4 }; struct xine_event_queue_s { xine_list_t *events; pthread_mutex_t lock; pthread_cond_t new_event; pthread_cond_t events_processed; xine_stream_t *stream; pthread_t *listener_thread; xine_event_listener_cb_t callback; int callback_running; void *user_data; }; struct xine_stream_s { xine_t *xine; metronom_t *metronom; input_plugin_t *input_plugin; int content_detection_method; xine_video_port_t *video_out; fifo_buffer_t *video_fifo; xine_audio_port_t *audio_out; fifo_buffer_t *audio_fifo; osd_renderer_t *osd_renderer; xine_stream_t *master; xine_stream_t *slave; spu_decoder_t *spu_decoder_plugin; vo_driver_t *video_driver; int audio_channel_auto; int spu_decoder_streamtype; int spu_channel_user; int spu_channel_auto; int spu_channel_letterbox; int spu_channel; # 349 "/usr/include/xine/xine_internal.h" 3 4 }; #define XINE_ANON_STREAM ((xine_stream_t *)-1) void _x_handle_stream_end (xine_stream_t *stream, int non_user) ; int _x_message(xine_stream_t *stream, int type, ...) ; void _x_flush_events_queues (xine_stream_t *stream) ; input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mrl) ; demux_plugin_t *_x_find_demux_plugin (xine_stream_t *stream, input_plugin_t *input) ; demux_plugin_t *_x_find_demux_plugin_by_name (xine_stream_t *stream, const char *name, input_plugin_t *input) ; demux_plugin_t *_x_find_demux_plugin_last_probe(xine_stream_t *stream, const char *last_demux_name, input_plugin_t *input) ; input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *filename) ; input_plugin_t *_x_cache_plugin_get_instance (xine_stream_t *stream, int readahead_size) ; void _x_free_input_plugin (xine_stream_t *stream, input_plugin_t *input) ; void _x_free_demux_plugin (xine_stream_t *stream, demux_plugin_t *demux) ; int _x_video_decoder_init (xine_stream_t *stream) ; void _x_video_decoder_shutdown (xine_stream_t *stream) ; int _x_audio_decoder_init (xine_stream_t *stream) ; void _x_audio_decoder_shutdown (xine_stream_t *stream) ; void _x_extra_info_reset( extra_info_t *extra_info ) ; void _x_extra_info_merge( extra_info_t *dst, extra_info_t *src ) ; void _x_get_current_info (xine_stream_t *stream, extra_info_t *extra_info, int size) ; # 409 "/usr/include/xine/xine_internal.h" 3 4 void _x_demux_flush_engine (xine_stream_t *stream) ; void _x_demux_control_nop (xine_stream_t *stream, uint32_t flags) ; void _x_demux_control_newpts (xine_stream_t *stream, int64_t pts, uint32_t flags) ; void _x_demux_control_headers_done (xine_stream_t *stream) ; void _x_demux_control_start (xine_stream_t *stream) ; void _x_demux_control_end (xine_stream_t *stream, uint32_t flags) ; int _x_demux_start_thread (xine_stream_t *stream) ; int _x_demux_stop_thread (xine_stream_t *stream) ; int _x_demux_read_header (input_plugin_t *input, unsigned char *buffer, off_t size) ; int _x_demux_check_extension (const char *mrl, const char *extensions) ; off_t _x_read_abort (xine_stream_t *stream, int fd, char *buf, off_t todo) ; int _x_action_pending (xine_stream_t *stream) ; void _x_demux_send_data(fifo_buffer_t *fifo, uint8_t *data, int size, int64_t pts, uint32_t type, uint32_t decoder_flags, int input_normpos, int input_time, int total_time, uint32_t frame_number) ; int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input, int size, int64_t pts, uint32_t type, uint32_t decoder_flags, off_t input_normpos, int input_time, int total_time, uint32_t frame_number) ; void _x_demux_send_mrl_reference (xine_stream_t *stream, int alternative, const char *mrl, const char *title, int start_time, int duration) ; # 448 "/usr/include/xine/xine_internal.h" 3 4 video_decoder_t *_x_get_video_decoder (xine_stream_t *stream, uint8_t stream_type) ; void _x_free_video_decoder (xine_stream_t *stream, video_decoder_t *decoder) ; audio_decoder_t *_x_get_audio_decoder (xine_stream_t *stream, uint8_t stream_type) ; void _x_free_audio_decoder (xine_stream_t *stream, audio_decoder_t *decoder) ; spu_decoder_t *_x_get_spu_decoder (xine_stream_t *stream, uint8_t stream_type) ; void _x_free_spu_decoder (xine_stream_t *stream, spu_decoder_t *decoder) ; int _x_decoder_available (xine_t *xine, uint32_t buftype) ; vo_driver_t *_x_load_video_output_plugin(xine_t *this, char *id, int visual_type, void *visual) ; # 476 "/usr/include/xine/xine_internal.h" 3 4 ao_driver_t *_x_load_audio_output_plugin (xine_t *self, char *id) ; void _x_set_speed (xine_stream_t *stream, int speed) ; int _x_get_speed (xine_stream_t *stream) ; void _x_set_fine_speed (xine_stream_t *stream, int speed) ; int _x_get_fine_speed (xine_stream_t *stream) ; void _x_select_spu_channel (xine_stream_t *stream, int channel) ; int _x_get_audio_channel (xine_stream_t *stream) ; int _x_get_spu_channel (xine_stream_t *stream) ; #define XINE_EVENT_PIDS_CHANGE 0x80000000 typedef struct { int vpid; int apid; } xine_pids_data_t; # 46 "video_out_dfb.c" 2 # 1 "video_out_dfb.h" 1 # 21 "video_out_dfb.h" #define __VIDEO_OUT_DFB_H__ typedef void (*DVOutputCallback) ( void *cdata, int width, int height, double ratio, DFBSurfacePixelFormat format, DFBRectangle *dest_rect ); typedef struct { IDirectFBSurface *destination; IDirectFBSurface *subpicture; DVOutputCallback output_cb; void *output_cdata; DVFrameCallback frame_cb; void *frame_cdata; } dfb_visual_t; typedef struct { DVFrameCallback frame_cb; void *cdata; } dfb_framecallback_t; # 96 "video_out_dfb.h" typedef struct dfb_frame_s dfb_frame_t; typedef struct dfb_driver_s dfb_driver_t; typedef struct { const char *name; struct { short off; short min; short max; } y; struct { short off; short min; short max; } uv; int v_for_r; int v_for_g; int u_for_g; int u_for_b; } DVProcMatrix; typedef union { struct { uint8_t a; uint8_t r; uint8_t g; uint8_t b; } rgb; struct { uint8_t a; uint8_t y; uint8_t u; uint8_t v; } yuv; } DVColor; typedef struct { uint8_t *plane[3]; uint32_t pitch[3]; uint32_t period[2]; int x; int y; int len; } DVBlender; typedef void (*DVProcFunc) ( dfb_frame_t *frame ); typedef void (*DVBlendFunc) ( DVBlender *blender, DVColor *color ); typedef enum { MF_NONE = 0x0000000, MF_B = 0x00000001, MF_C = 0x00000002, MF_S = 0x00000004, MF_ALL = 0x00000007 } MixerFlags; struct dfb_frame_s { vo_frame_t vo_frame; int width; int height; int area; int in_format; int out_format; CoreSurface *surface; uint8_t *out_plane[3]; uint32_t out_pitch[3]; void *chunk[3]; MixerFlags mixer_set; bool proc_needed; }; struct dfb_driver_s { vo_driver_t vo_driver; xine_t *xine; struct { int max_num_frames; int proc_matrix; bool enable_mmx; } config; int accel; CardState state; IDirectFBSurface *dest; IDirectFBSurface_data *dest_data; DFBSurfacePixelFormat dest_format; IDirectFBSurface *ovl; IDirectFBSurface_data *ovl_data; int ovl_width; int ovl_height; int ovl_changed; DFBSurfacePixelFormat frame_format; int frame_width; int frame_height; struct { MixerFlags set; int b; int c; int s; } mixer; int deinterlace; int aspect_ratio; double output_ratio; DVOutputCallback output_cb; void* output_cdata; DVFrameCallback frame_cb; void* frame_cdata; }; typedef struct { video_driver_class_t vo_class; xine_t *xine; } dfb_driver_class_t; #define DFB_PFUNCTION_GEN_NAME(a,s,d) __ ##a ##_ ##s ##_be_ ##d #define DFB_BFUNCTION_GEN_NAME(a,d) __ ##a ##_blend_ ##d #define DFB_PFUNCTION_NAME(a,s,d) DFB_PFUNCTION_GEN_NAME( a, s, d ) #define DFB_BFUNCTION_NAME(a,d) DFB_BFUNCTION_GEN_NAME( a, d ) #define DFB_PFUNCTION(s,d) void DFB_PFUNCTION_NAME( PACCEL, s, d ) ( dfb_frame_t *frame ) #define DFB_BFUNCTION(d) void DFB_BFUNCTION_NAME( PACCEL, d ) ( DVBlender *blender, DVColor *color ) #define DFB_PFUNCTION_ASSIGN(a,s,d,f) ProcFuncs[(#s=="yuy2")?0:1][DFB_PIXELFORMAT_INDEX(f)] = DFB_PFUNCTION_NAME(a,s,d) #define DFB_BFUNCTION_ASSIGN(a,d,f) BlendFuncs[DFB_PIXELFORMAT_INDEX(f)] = DFB_BFUNCTION_NAME( a, d ) #define min(a,b) (((a)<(b)) ? (a) : (b)) #define max(a,b) (((a)>(b)) ? (a) : (b)) #undef CLAMP #define CLAMP(a,min,max) (((a)<(min)) ? (min) : (((a)>(max)) ? (max) : (a))) #define __aligned(n) __attribute__((aligned((n)))) #define __used __attribute__((used)) # 314 "video_out_dfb.h" #define BENCH_BEGIN(area) #define BENCH_END() (void) this; # 50 "video_out_dfb.c" 2 static const DVProcMatrix proc_matrices[] = { { .name = "ITURBT601", .y = { .off = +16, .min = +16, .max = +235 }, .uv = { .off = +128, .min = +16, .max = +240 }, .v_for_r = 11485, .v_for_g = 5850, .u_for_g = 2819, .u_for_b = 14516 }, { .name = "ITURBT709", .y = { .off = +16, .min = +16, .max = +235 }, .uv = { .off = +128, .min = +16, .max = +240 }, .v_for_r = 12862, .v_for_g = 3820, .u_for_g = 1531, .u_for_b = 15201 }, { .name = "EBU", .y = { .off = +16, .min = +16, .max = +235 }, .uv = { .off = +128, .min = +16, .max = +240 }, .v_for_r = 9338, .v_for_g = 4759, .u_for_g = 3244, .u_for_b = 16621 }, { .name = "JFIF", .y = { .off = 0, .min = 0, .max = +255, }, .uv = { .off = +128, .min = 0, .max = +255, }, .v_for_r = 11485, .v_for_g = 5850, .u_for_g = 2819, .u_for_b = 14516 } }; #define N_MATRICES (sizeof(proc_matrices)/sizeof(DVProcMatrix)) static struct { struct { int16_t lm_sub[4]; int16_t lm_add[4]; int16_t uv_sub[4]; int16_t lm_cfc[4]; int16_t uv_cfc[4]; int16_t vr_cfc[4]; int16_t vg_cfc[4]; int16_t ug_cfc[4]; int16_t ub_cfc[4]; } mmx; int16_t lm[256]; int16_t uv[256]; int16_t vr[256]; int16_t vg[256]; int16_t ug[256]; int16_t ub[256]; struct { void *buf; void *r; void *g; void *b; } clamp; } __attribute__((aligned((8)))) proc_table; # 1 "video_out_dfb_proc.h" 1 # 20 "video_out_dfb_proc.h" #define PACCEL generic #define LOADUV(u,v) { register int _u = (u); register int _v = (v); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];} # 33 "video_out_dfb_proc.h" #define YUV2RGB(y,r,g,b) { register int _y; _y = proc_table.lm[(y)]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;} # 42 "video_out_dfb_proc.h" #define CLAMP8(p) (((uint8_t *)proc_table.clamp.p)[p]) #define CLAMP16(p) (((uint16_t*)proc_table.clamp.p)[p]) #define CLAMP32(p) (((uint32_t*)proc_table.clamp.p)[p]) # 62 "video_out_dfb_proc.h" #define YUY2_Y0(p) (((p)&0x000000ff) ) #define YUY2_Y1(p) (((p)&0x00ff0000)>>16) #define YUY2_CB(p) (((p)&0x0000ff00)>> 8) #define YUY2_CR(p) (((p)&0xff000000)>>24) #define YUY2_Y0_SHIFT 0 #define YUY2_Y1_SHIFT 16 #define YUY2_CB_SHIFT 8 #define YUY2_CR_SHIFT 24 #define UYVY_Y0_SHIFT 8 #define UYVY_Y1_SHIFT 24 #define UYVY_CB_SHIFT 0 #define UYVY_CR_SHIFT 16 static void __generic_yuy2_be_yuy2 ( dfb_frame_t *frame ) { uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; uint32_t *D = (uint32_t*) frame->out_plane[0]; int n = frame->area/4; int set = frame->mixer_set; do { register uint32_t Spix, Dpix; Spix = *S; if (set & MF_S) { Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8] << 8; Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 24; } else Dpix = Spix & 0xff00ff00; if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[(Spix&0x000000ff)]; Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 16; } else Dpix |= Spix & 0x00ff000ff; *D = Dpix; Spix = *(S+1); if (set & MF_S) { Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8] << 8; Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 24; } else Dpix = Spix & 0xff00ff00; if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[(Spix&0x000000ff)]; Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 16; } else Dpix |= Spix & 0x00ff000ff; *(D+1) = Dpix; S += 2; D += 2; } while (--n); } static void __generic_yuy2_be_uyvy ( dfb_frame_t *frame ) { uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; uint32_t *D = (uint32_t*) frame->out_plane[0]; int n = frame->area/4; int set = frame->mixer_set; if (set) { do { register uint32_t Spix, Dpix; Spix = *S; if (set & MF_S) { Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8]; Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 16; } else Dpix = (Spix & 0xff00ff00) >> 8; if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[(Spix&0x000000ff)] << 8; Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 24; } else Dpix |= (Spix & 0x00ff00ff) << 8; *D = Dpix; Spix = *(S+1); if (set & MF_S) { Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8]; Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 16; } else Dpix = (Spix & 0xff00ff00) >> 8; if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[(Spix&0x000000ff)] << 8; Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 24; } else Dpix |= (Spix & 0x00ff00ff) << 8; *(D+1) = Dpix; S += 2; D += 2; } while (--n); } else { do { register uint32_t Spix; Spix = *(S+0); *(D+0) = ((Spix&0xff00ff00) >> 8) | ((Spix&0x00ff00ff) << 8); Spix = *(S+1); *(D+1) = ((Spix&0xff00ff00) >> 8) | ((Spix&0x00ff00ff) << 8); S += 2; D += 2; } while (--n); } } static void __generic_yuy2_be_yv12 ( dfb_frame_t *frame ) { uint16_t *S = (uint16_t*) frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint8_t *Du = frame->out_plane[1]; uint8_t *Dv = frame->out_plane[2]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; int set = frame->mixer_set; if (set) { do { do { register uint32_t Spix0, Spix1; register uint32_t pu, pv; Spix0 = *((uint32_t*)(S+0)); Spix1 = *((uint32_t*)(S+w)); if (set & (MF_B | MF_C)) { *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; *(Dy+w+0) = proc_table.lm[(((Spix1)&0x000000ff) )]; *(Dy+w+1) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; } else { *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+w+0) = (((Spix1)&0x000000ff) ); *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); } pu = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; pv = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; if (set & MF_S) { *Du++ = proc_table.uv[pu]; *Dv++ = proc_table.uv[pv]; } else { *Du++ = pu; *Dv++ = pv; } S += 2; Dy += 2; } while (--l); l = w/2; S += w; Dy += w; } while (--n); } else { do { do { register uint32_t Spix0, Spix1; Spix0 = *((uint32_t*)(S+0)); Spix1 = *((uint32_t*)(S+w)); *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+w+0) = (((Spix1)&0x000000ff) ); *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); *Du++ = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; *Dv++ = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; S += 2; Dy += 2; } while (--l); l = w/2; S += w; Dy += w; } while (--n); } } static void __generic_yuy2_be_nv12 ( dfb_frame_t *frame ) { uint16_t *S = (uint16_t*) frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Duv = (uint16_t*) frame->out_plane[1]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; int set = frame->mixer_set; if (set) { do { do { register uint32_t Spix0, Spix1; register uint32_t pu, pv; Spix0 = *((uint32_t*)(S+0)); Spix1 = *((uint32_t*)(S+w)); if (set & (MF_B | MF_C)) { *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; *(Dy+w+0) = proc_table.lm[(((Spix1)&0x000000ff) )]; *(Dy+w+1) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; } else { *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+w+0) = (((Spix1)&0x000000ff) ); *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); } pu = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; pv = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; if (set & MF_S) *Duv++ = proc_table.uv[pu] | (proc_table.uv[pv] << 8); else *Duv++ = pu | (pv << 8); S += 2; Dy += 2; } while (--l); l = w/2; S += w; Dy += w; } while (--n); } else { do { do { register uint32_t Spix0, Spix1; Spix0 = *((uint32_t*)(S+0)); Spix1 = *((uint32_t*)(S+w)); *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+w+0) = (((Spix1)&0x000000ff) ); *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); *Duv++ = (((((Spix0)&0x0000ff00)>> 8)+(((Spix1)&0x0000ff00)>> 8))>>1) | ((((((Spix0)&0xff000000)>>24)+(((Spix1)&0xff000000)>>24))>>1) << 8); S += 2; Dy += 2; } while (--l); l = w/2; S += w; Dy += w; } while (--n); } } static void __generic_yuy2_be_nv21 ( dfb_frame_t *frame ) { uint16_t *S = (uint16_t*) frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Dvu = (uint16_t*) frame->out_plane[1]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; int set = frame->mixer_set; if (set) { do { do { register uint32_t Spix0, Spix1; register uint32_t pu, pv; Spix0 = *((uint32_t*)(S+0)); Spix1 = *((uint32_t*)(S+w)); if (set & (MF_B | MF_C)) { *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; *(Dy+w+0) = proc_table.lm[(((Spix1)&0x000000ff) )]; *(Dy+w+1) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; } else { *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+w+0) = (((Spix1)&0x000000ff) ); *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); } pu = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; pv = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; if (set & MF_S) *Dvu++ = proc_table.uv[pv] | (proc_table.uv[pu] << 8); else *Dvu++ = pv | (pu << 8); S += 2; Dy += 2; } while (--l); l = w/2; S += w; Dy += w; } while (--n); } else { do { do { register uint32_t Spix0, Spix1; Spix0 = *((uint32_t*)(S+0)); Spix1 = *((uint32_t*)(S+w)); *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+w+0) = (((Spix1)&0x000000ff) ); *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); *Dvu++ = (((((Spix0)&0xff000000)>>24)+(((Spix1)&0xff000000)>>24))>>1) | ((((((Spix0)&0x0000ff00)>> 8)+(((Spix1)&0x0000ff00)>> 8))>>1) << 8); S += 2; Dy += 2; } while (--l); l = w/2; S += w; Dy += w; } while (--n); } } static void __generic_yuy2_be_nv16 ( dfb_frame_t *frame ) { uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint32_t *Duv = (uint32_t*) frame->out_plane[1]; int n = frame->area/4; int set = frame->mixer_set; if (set) { do { register uint32_t Spix0, Spix1; Spix0 = *(S+0); Spix1 = *(S+1); if (set & (MF_B | MF_C)) { *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; *(Dy+2) = proc_table.lm[(((Spix1)&0x000000ff) )]; *(Dy+3) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; } else { *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+2) = (((Spix1)&0x000000ff) ); *(Dy+3) = (((Spix1)&0x00ff0000)>>16); } # 464 "video_out_dfb_proc.h" if (set & MF_S) { *Duv++ = (proc_table.uv[(((Spix0)&0x0000ff00)>> 8)] ) | (proc_table.uv[(((Spix0)&0xff000000)>>24)] << 8) | (proc_table.uv[(((Spix1)&0x0000ff00)>> 8)] << 16) | (proc_table.uv[(((Spix1)&0xff000000)>>24)] << 24); } else { *Duv++ = ((((Spix0)&0x0000ff00)>> 8) ) | ((((Spix0)&0xff000000)>>24) << 8) | ((((Spix1)&0x0000ff00)>> 8) << 16) | ((((Spix1)&0xff000000)>>24) << 24); } S += 2; Dy += 4; } while (--n); } else { do { register uint32_t Spix0, Spix1; Spix0 = *(S+0); Spix1 = *(S+1); *(Dy+0) = (((Spix0)&0x000000ff) ); *(Dy+1) = (((Spix0)&0x00ff0000)>>16); *(Dy+2) = (((Spix1)&0x000000ff) ); *(Dy+3) = (((Spix1)&0x00ff0000)>>16); *Duv++ = ((((Spix0)&0x0000ff00)>> 8) ) | ((((Spix0)&0xff000000)>>24) << 8) | ((((Spix1)&0x0000ff00)>> 8) << 16) | ((((Spix1)&0xff000000)>>24) << 24); S += 2; Dy += 4; } while (--n); } } static void __generic_yuy2_be_rgb8 ( dfb_frame_t *frame ) { uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/2; do { register uint32_t Spix; register int cr1, cr2, cr3; register int r, g, b; Spix = *S++; { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+0) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+1) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); D += 2; } while (--n); } static void __generic_yuy2_be_rgb16 ( dfb_frame_t *frame ) { uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; uint16_t *D = (uint16_t*) frame->out_plane[0]; int n = frame->area/2; do { register uint32_t Spix; register int cr1, cr2, cr3; register int r, g, b; register uint32_t p0, p1; Spix = *S++; { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; p0 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; p1 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); *((uint32_t*)D) = p0 | (p1 << 16); D += 2; } while (--n); } static void __generic_yuy2_be_rgb24 ( dfb_frame_t *frame ) { uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/2; do { register uint32_t Spix; register int cr1, cr2, cr3; register int r, g, b; Spix = *S++; { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+0) = (((uint8_t *)proc_table.clamp.b)[b]); *(D+1) = (((uint8_t *)proc_table.clamp.g)[g]); *(D+2) = (((uint8_t *)proc_table.clamp.r)[r]); { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+3) = (((uint8_t *)proc_table.clamp.b)[b]); *(D+4) = (((uint8_t *)proc_table.clamp.g)[g]); *(D+5) = (((uint8_t *)proc_table.clamp.r)[r]); D += 6; } while (--n); } static void __generic_yuy2_be_rgb32 ( dfb_frame_t *frame ) { uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; uint32_t *D = (uint32_t*) frame->out_plane[0]; int n = frame->area/2; do { register uint32_t Spix; register int cr1, cr2, cr3; register int r, g, b; Spix = *S++; { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+0) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+1) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); D += 2; } while (--n); } static void __generic_yv12_be_yuy2 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint16_t *D = (uint16_t*) frame->out_plane[0]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; int set = frame->mixer_set; if (set) { do { do { register uint32_t Dpix; if (set & MF_S) { Dpix = proc_table.uv[*Su++] << 8; Dpix |= proc_table.uv[*Sv++] << 24; } else { Dpix = *Su++ << 8; Dpix |= *Sv++ << 24; } if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[*(Sy+0)] << 0; Dpix |= proc_table.lm[*(Sy+1)] << 16; } else { Dpix |= *(Sy+0) << 0; Dpix |= *(Sy+1) << 16; } *((uint32_t*)D) = Dpix; Dpix &= 0xff00ff00; if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[*(Sy+w+0)] << 0; Dpix |= proc_table.lm[*(Sy+w+1)] << 16; } else { Dpix |= *(Sy+w+0) << 0; Dpix |= *(Sy+w+1) << 16; } *((uint32_t*)(D+w)) = Dpix; Sy += 2; D += 2; } while (--l); l = w/2; Sy += w; D += w; } while (--n); } else { do { do { register uint32_t Dpix; Dpix = *Su++ << 8; Dpix |= *Sv++ << 24; Dpix |= *(Sy+0) << 0; Dpix |= *(Sy+1) << 16; *((uint32_t*)D) = Dpix; Dpix &= 0xff00ff00; Dpix |= *(Sy+w+0) << 0; Dpix |= *(Sy+w+1) << 16; *((uint32_t*)(D+w)) = Dpix; Sy += 2; D += 2; } while (--l); l = w/2; Sy += w; D += w; } while (--n); } } static void __generic_yv12_be_uyvy ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint16_t *D = (uint16_t*) frame->out_plane[0]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; int set = frame->mixer_set; if (set) { do { do { register uint32_t Dpix; if (set & MF_S) { Dpix = proc_table.uv[*Su++] << 0; Dpix |= proc_table.uv[*Sv++] << 16; } else { Dpix = *Su++ << 0; Dpix |= *Sv++ << 16; } if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[*(Sy+0)] << 8; Dpix |= proc_table.lm[*(Sy+1)] << 24; } else { Dpix |= *(Sy+0) << 8; Dpix |= *(Sy+1) << 24; } *((uint32_t*)D) = Dpix; Dpix &= 0x00ff00ff; if (set & (MF_B | MF_C)) { Dpix |= proc_table.lm[*(Sy+w+0)] << 8; Dpix |= proc_table.lm[*(Sy+w+1)] << 24; } else { Dpix |= *(Sy+w+0) << 8; Dpix |= *(Sy+w+1) << 24; } *((uint32_t*)(D+w)) = Dpix; Sy += 2; D += 2; } while (--l); l = w/2; Sy += w; D += w; } while (--n); } else { do { do { register uint32_t Dpix; Dpix = *Su++ << 0; Dpix |= *Sv++ << 16; Dpix |= *(Sy+0) << 8; Dpix |= *(Sy+1) << 24; *((uint32_t*)D) = Dpix; Dpix &= 0x00ff00ff; Dpix |= *(Sy+w+0) << 8; Dpix |= *(Sy+w+1) << 24; *((uint32_t*)(D+w)) = Dpix; Sy += 2; D += 2; } while (--l); l = w/2; Sy += w; D += w; } while (--n); } } static void __generic_yv12_be_yv12 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint8_t *Du = frame->out_plane[1]; uint8_t *Dv = frame->out_plane[2]; int set = frame->mixer_set; int n; if (set & (MF_B | MF_C)) { n = frame->area; do { *Dy++ = proc_table.lm[*Sy++]; } while (--n); } if (set & MF_S) { n = frame->area/4; do { *Du++ = proc_table.uv[*Su++]; *Dv++ = proc_table.uv[*Sv++]; } while (--n); } } static void __generic_yv12_be_nv12 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Duv = (uint16_t*) frame->out_plane[1]; int set = frame->mixer_set; int n; if (set & (MF_B | MF_C)) { n = frame->area; do { *Dy++ = proc_table.lm[*Sy++]; } while (--n); } n = frame->area/8; if (set & MF_S) { do { register uint32_t Dpix; Dpix = (proc_table.uv[*(Su+0)] ) | (proc_table.uv[*(Sv+0)] << 8) | (proc_table.uv[*(Su+1)] << 16) | (proc_table.uv[*(Sv+1)] << 24); *((uint32_t*)Duv) = Dpix; Su += 2; Sv += 2; Duv += 2; } while (--n); } else { do { register uint32_t Dpix; Dpix = (*(Su+0) ) | (*(Sv+0) << 8) | (*(Su+1) << 16) | (*(Sv+1) << 24); *((uint32_t*)Duv) = Dpix; Su += 2; Sv += 2; Duv += 2; } while (--n); } } static void __generic_yv12_be_nv21 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Dvu = (uint16_t*) frame->out_plane[1]; int set = frame->mixer_set; int n; if (set & (MF_B | MF_C)) { n = frame->area; do { *Dy++ = proc_table.lm[*Sy++]; } while (--n); } n = frame->area/8; if (set & MF_S) { do { register uint32_t Dpix; Dpix = (proc_table.uv[*(Sv+0)] ) | (proc_table.uv[*(Su+0)] << 8) | (proc_table.uv[*(Sv+1)] << 16) | (proc_table.uv[*(Su+1)] << 24); *((uint32_t*)Dvu) = Dpix; Su += 2; Sv += 2; Dvu += 2; } while (--n); } else { do { register uint32_t Dpix; Dpix = (*(Sv+0) ) | (*(Su+0) << 8) | (*(Sv+1) << 16) | (*(Su+1) << 24); *((uint32_t*)Dvu) = Dpix; Su += 2; Sv += 2; Dvu += 2; } while (--n); } } static void __generic_yv12_be_nv16 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Duv = (uint16_t*) frame->out_plane[1]; int w = frame->width/2; int l = frame->width/4; int set = frame->mixer_set; int n; if (set & (MF_B | MF_C)) { n = frame->area; do { *Dy++ = proc_table.lm[*Sy++]; } while (--n); } n = frame->height/2; if (set & MF_S) { do { do { register uint32_t Dpix; Dpix = (proc_table.uv[*(Su+0)] ) | (proc_table.uv[*(Sv+0)] << 8) | (proc_table.uv[*(Su+1)] << 16) | (proc_table.uv[*(Sv+1)] << 24); *((uint32_t*)(Duv+0)) = Dpix; *((uint32_t*)(Duv+w)) = Dpix; Su += 2; Sv += 2; Duv += 2; } while (--l); l = w/2; Duv += w; } while (--n); } else { do { do { register uint32_t Dpix; Dpix = (*(Su+0) ) | (*(Sv+0) << 8) | (*(Su+1) << 16) | (*(Sv+1) << 24); *((uint32_t*)(Duv+0)) = Dpix; *((uint32_t*)(Duv+w)) = Dpix; Su += 2; Sv += 2; Duv += 2; } while (--l); l = w/2; Duv += w; } while (--n); } } static void __generic_yv12_be_rgb8 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; do { do { register int cr1, cr2, cr3; register int r, g, b; { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+0) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+1) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+w) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+w+1) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); Sy += 2; D += 2; } while (--l); l = w/2; Sy += w; D += w; } while (--n); } static void __generic_yv12_be_rgb16 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint16_t *D = (uint16_t*) frame->out_plane[0]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; do { do { register int cr1, cr2, cr3; register int r, g, b; register uint32_t p0, p1; { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; p0 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; p1 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); *((uint32_t*)D) = p0 | (p1 << 16); { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; p0 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; p1 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); *((uint32_t*)(D+w)) = p0 | (p1 << 16); Sy += 2; D += 2; } while (--l); l = w/2; Sy += w; D += w; } while (--n); } static void __generic_yv12_be_rgb24 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; do { do { register int cr1, cr2, cr3; register int r, g, b; { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+0) = (((uint8_t *)proc_table.clamp.b)[b]); *(D+1) = (((uint8_t *)proc_table.clamp.g)[g]); *(D+2) = (((uint8_t *)proc_table.clamp.r)[r]); { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+3) = (((uint8_t *)proc_table.clamp.b)[b]); *(D+4) = (((uint8_t *)proc_table.clamp.g)[g]); *(D+5) = (((uint8_t *)proc_table.clamp.r)[r]); { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+w+0) = (((uint8_t *)proc_table.clamp.b)[b]); *(D+w+1) = (((uint8_t *)proc_table.clamp.g)[g]); *(D+w+2) = (((uint8_t *)proc_table.clamp.r)[r]); { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+w+3) = (((uint8_t *)proc_table.clamp.b)[b]); *(D+w+4) = (((uint8_t *)proc_table.clamp.g)[g]); *(D+w+5) = (((uint8_t *)proc_table.clamp.r)[r]); Sy += 2; D += 6; } while (--l); l = w/2; Sy += w; D += w*3; } while (--n); } static void __generic_yv12_be_rgb32 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint32_t *D = (uint32_t*) frame->out_plane[0]; int w = frame->width; int l = frame->width/2; int n = frame->height/2; do { do { register int cr1, cr2, cr3; register int r, g, b; { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+0) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+1) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+w) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; *(D+w+1) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); Sy += 2; D += 2; } while (--l); l = w/2; Sy += w; D += w; } while (--n); } #undef PACCEL # 160 "video_out_dfb.c" 2 # 1 "video_out_dfb_mmxproc.h" 1 # 20 "video_out_dfb_mmxproc.h" #define PACCEL mmx static const uint64_t __attribute__((used)) lmask[] = { 0x000000ff000000ffull }; static const uint64_t __attribute__((used)) wmask[] = { 0x00ff00ff00ff00ffull }; static const uint64_t __attribute__((used)) a1mask[] = { 0x8000800080008000ull }; static const uint64_t __attribute__((used)) a8mask[] = { 0xffffffffffffffffull }; static const uint64_t __attribute__((used)) b3mask[] = { 0xe0e0e0e0e0e0e0e0ull }; static const uint64_t __attribute__((used)) b5mask[] = { 0xf8f8f8f8f8f8f8f8ull }; static const uint64_t __attribute__((used)) b6mask[] = { 0xfcfcfcfcfcfcfcfcull }; static void __mmx_yuy2_be_yuy2 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "movq wmask, %%mm2\n\t" "psllw $8, %%mm2\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm1\n\t" "testl $3, %3\n\t" "jz 2f\n\t" "psubw proc_table, %%mm1\n\t" "psllw $3, %%mm1\n\t" "pmulhw proc_table+24, %%mm1\n\t" "paddw proc_table+8, %%mm1\n\t" "packuswb %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" ".align 8\n" "2:\n\t" "pand %%mm2, %%mm0\n\t" "testl $4, %3\n\t" "jz 3f\n\t" "psrlw $8, %%mm0\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "pmulhw proc_table+32, %%mm0\n\t" "paddw proc_table+16, %%mm0\n\t" "packuswb %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psllw $8, %%mm0\n\t" ".align 8\n" "3:\n\t" "por %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "q" (frame->mixer_set), "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yuy2_be_uyvy ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" "testl $7, %3\n\t" "jz 4f\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm1\n\t" "psrlw $8, %%mm0\n\t" "testl $3, %3\n\t" "jz 2f\n\t" "psubw proc_table, %%mm1\n\t" "psllw $3, %%mm1\n\t" "pmulhw proc_table+24, %%mm1\n\t" "paddw proc_table+8, %%mm1\n\t" "packuswb %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" ".align 4\n" "2:\n\t" "testl $4, %3\n\t" "jz 3f\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "pmulhw proc_table+32, %%mm0\n\t" "paddw proc_table+16, %%mm0\n\t" "packuswb %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" ".align 8\n" "3:\n\t" "psllw $8, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "jmp 5f\n\t" ".align 16\n" "4:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "psllw $8, %%mm0\n\t" "por %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 4b\n\t" "5:\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "q" (frame->mixer_set), "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yuy2_be_yv12 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint8_t *Du = frame->out_plane[1]; uint8_t *Dv = frame->out_plane[2]; int n = frame->height/2; int set = frame->mixer_set; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" "testb $7, %6\n\t" "jz 4f\n\t" ".align 16\n" "1:\n\t" "movq (%0), %%mm0\n\t" "movq (%0,%4,4), %%mm1\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm1, %%mm3\n\t" "psrlw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "pand wmask, %%mm2\n\t" "pand wmask, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "psrlw $1, %%mm0\n\t" "testb $3, %6\n\t" "jz 2f\n\t" "psubw proc_table, %%mm2\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm2\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm2\n\t" "pmulhw proc_table+24, %%mm3\n\t" "paddw proc_table+8, %%mm2\n\t" "paddw proc_table+8, %%mm3\n\t" "2:\n\t" "testb $4, %6\n\t" "jz 3f\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "pmulhw proc_table+32, %%mm0\n\t" "paddw proc_table+16, %%mm0\n\t" "packuswb %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" ".align 8\n" "3:\n\t" "packuswb %%mm2, %%mm2\n\t" "packuswb %%mm3, %%mm3\n\t" "movq %%mm0, %%mm1\n\t" "movd %%mm2, (%1)\n\t" "punpckhdq %%mm0, %%mm0\n\t" "movd %%mm3, (%1,%4,2)\n\t" "punpcklbw %%mm0, %%mm1\n\t" "movd %%mm1, (%2)\n\t" "punpckhdq %%mm1, %%mm1\n\t" "movd %%mm1, (%3)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %1\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "shrl $3, %5\n\t" "decl %7\n\t" "jnz 1b\n\t" "jmp 5f\n\t" ".align 16\n" "4:\n\t" "movq (%0), %%mm0\n\t" "movq (%0,%4,4), %%mm1\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm1, %%mm3\n\t" "psrlw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "pand wmask, %%mm2\n\t" "pand wmask, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "packuswb %%mm2, %%mm2\n\t" "psrlw $1, %%mm0\n\t" "packuswb %%mm3, %%mm3\n\t" "movq %%mm0, %%mm1\n\t" "movd %%mm2, (%1)\n\t" "punpckhdq %%mm0, %%mm0\n\t" "movd %%mm3, (%1,%4,2)\n\t" "punpcklbw %%mm0, %%mm1\n\t" "movd %%mm1, (%2)\n\t" "punpckhdq %%mm1, %%mm1\n\t" "movd %%mm1, (%3)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 4b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %1\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "shrl $3, %5\n\t" "decl %7\n\t" "jnz 4b\n\t" "5:\n\t" "emms" : "=&S" (S), "=&r" (Dy), "=&r" (Du), "=&r" (Dv) : "q" (frame->width/2), "c" (frame->width/4), "m" (set), "m" (n), "0" (S), "1" (Dy), "2" (Du), "3" (Dv) : "memory" ); } static void __mmx_yuy2_be_nv12 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint8_t *Duv = frame->out_plane[1]; int n = frame->height/2; int set = frame->mixer_set; __asm__ __volatile__( "testl $7, %5\n\t" "jz 4f\n\t" ".align 16\n" "1:\n\t" "movq (%0), %%mm0\n\t" "movq (%0,%3,4), %%mm1\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm1, %%mm3\n\t" "psrlw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "pand wmask, %%mm2\n\t" "pand wmask, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "psrlw $1, %%mm0\n\t" "testl $3, %5\n\t" "jz 2f\n\t" "psubw proc_table, %%mm2\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm2\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm2\n\t" "pmulhw proc_table+24, %%mm3\n\t" "paddw proc_table+8, %%mm2\n\t" "paddw proc_table+8, %%mm3\n\t" "2:\n\t" "testl $4, %5\n\t" "jz 3f\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "pmulhw proc_table+32, %%mm0\n\t" "paddw proc_table+16, %%mm0\n\t" ".align 8\n" "3:\n\t" "packuswb %%mm2, %%mm2\n\t" "packuswb %%mm3, %%mm3\n\t" "movd %%mm2, (%1)\n\t" "packuswb %%mm0, %%mm0\n\t" "movd %%mm3, (%1,%3,2)\n\t" "movd %%mm0, (%2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %4\n\t" "jnz 1b\n\t" "movl %3, %4\n\t" "shll $1, %4\n\t" "addl %4, %1\n\t" "shll $1, %4\n\t" "addl %4, %0\n\t" "shrl $3, %4\n\t" "decl %6\n\t" "jnz 1b\n\t" "jmp 5f\n\t" ".align 16\n" "4:\n\t" "movq (%0), %%mm0\n\t" "movq (%0,%3,4), %%mm1\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm1, %%mm3\n\t" "psrlw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "pand wmask, %%mm2\n\t" "pand wmask, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "packuswb %%mm2, %%mm2\n\t" "psrlw $1, %%mm0\n\t" "packuswb %%mm3, %%mm3\n\t" "movd %%mm2, (%1)\n\t" "packuswb %%mm0, %%mm0\n\t" "movd %%mm3, (%1,%3,2)\n\t" "movd %%mm0, (%2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %4\n\t" "jnz 4b\n\t" "movl %3, %4\n\t" "shll $1, %4\n\t" "addl %4, %1\n\t" "shll $1, %4\n\t" "addl %4, %0\n\t" "shrl $3, %4\n\t" "decl %6\n\t" "jnz 4b\n\t" "5:\n\t" "emms" : "=&S" (S), "=&r" (Dy), "=&r" (Duv) : "q" (frame->width/2), "c" (frame->width/4), "q" (set), "m" (n), "0" (S), "1" (Dy), "2" (Duv) : "memory" ); } static void __mmx_yuy2_be_nv21 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint8_t *Duv = frame->out_plane[1]; int n = frame->height/2; int set = frame->mixer_set; __asm__ __volatile__( "testl $7, %5\n\t" "jz 4f\n\t" ".align 16\n" "1:\n\t" "movq (%0), %%mm0\n\t" "movq (%0,%3,4), %%mm1\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm1, %%mm3\n\t" "psrlw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "pand wmask, %%mm2\n\t" "pand wmask, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "psrlw $1, %%mm0\n\t" "testl $3, %5\n\t" "jz 2f\n\t" "psubw proc_table, %%mm2\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm2\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm2\n\t" "pmulhw proc_table+24, %%mm3\n\t" "paddw proc_table+8, %%mm2\n\t" "paddw proc_table+8, %%mm3\n\t" "2:\n\t" "testl $4, %5\n\t" "jz 3f\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "pmulhw proc_table+32, %%mm0\n\t" "paddw proc_table+16, %%mm0\n\t" ".align 8\n" "3:\n\t" "packuswb %%mm2, %%mm2\n\t" "packuswb %%mm3, %%mm3\n\t" "packuswb %%mm0, %%mm0\n\t" "movd %%mm2, (%1)\n\t" "movq %%mm0, %%mm1\n\t" "movd %%mm3, (%1,%3,2)\n\t" "psllw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "movd %%mm0, (%2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %4\n\t" "jnz 1b\n\t" "movl %3, %4\n\t" "shll $1, %4\n\t" "addl %4, %1\n\t" "shll $1, %4\n\t" "addl %4, %0\n\t" "shrl $3, %4\n\t" "decl %6\n\t" "jnz 1b\n\t" "jmp 5f\n\t" ".align 16\n" "4:\n\t" "movq (%0), %%mm0\n\t" "movq (%0,%3,4), %%mm1\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm1, %%mm3\n\t" "psrlw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "pand wmask, %%mm2\n\t" "pand wmask, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "packuswb %%mm2, %%mm2\n\t" "psrlw $1, %%mm0\n\t" "packuswb %%mm3, %%mm3\n\t" "packuswb %%mm0, %%mm0\n\t" "movd %%mm2, (%1)\n\t" "movq %%mm0, %%mm1\n\t" "movd %%mm3, (%1,%3,2)\n\t" "psllw $8, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "movd %%mm0, (%2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %4\n\t" "jnz 4b\n\t" "movl %3, %4\n\t" "shll $1, %4\n\t" "addl %4, %1\n\t" "shll $1, %4\n\t" "addl %4, %0\n\t" "shrl $3, %4\n\t" "decl %6\n\t" "jnz 4b\n\t" "5:\n\t" "emms" : "=&S" (S), "=&r" (Dy), "=&r" (Duv) : "q" (frame->width/2), "c" (frame->width/4), "q" (set), "m" (n), "0" (S), "1" (Dy), "2" (Duv) : "memory" ); } static void __mmx_yuy2_be_nv16 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *Dy = frame->out_plane[0]; uint8_t *Dvu = frame->out_plane[1]; int n = frame->area/4; __asm__ __volatile__( "testl $7, %4\n\t" "jz 4f\n\t" ".align 16\n" "movq (%0), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "testl $3, %4\n\t" "jz 2f\n\t" "psubw proc_table, %%mm0\n\t" "psllw $3, %%mm0\n\t" "pmulhw proc_table+24, %%mm0\n\t" "paddw proc_table+8, %%mm0\n\t" ".align 4\n" "2:\n\t" "testl $4, %4\n\t" "jz 3f\n\t" "psubw proc_table+16, %%mm1\n\t" "psllw $3, %%mm1\n\t" "pmulhw proc_table+32, %%mm1\n\t" "paddw proc_table+16, %%mm1\n\t" ".align 8\n" "3:\n\t" "packuswb %%mm0, %%mm0\n\t" "packuswb %%mm1, %%mm1\n\t" "movd %%mm0, (%1)\n\t" "movd %%mm1, (%2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %3\n\t" "jnz 1b\n\t" "jmp 5f\n\t" ".align 16\n" "4:\n\t" "movq (%0), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm0\n\t" "psrlw $8, %%mm1\n\t" "packuswb %%mm0, %%mm0\n\t" "packuswb %%mm1, %%mm1\n\t" "movd %%mm0, (%1)\n\t" "movd %%mm1, (%2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %3\n\t" "jnz 4b\n\t" "5:\n\t" "emms" : "=&S" (S), "=&r" (Dy), "=&r" (Dvu), "=&c" (n) : "q" (frame->mixer_set), "0" (S), "1" (Dy), "2" (Dvu), "3" (n) : "memory" ); } static void __mmx_yuy2_be_rgb332 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm2\n\t" "psrld $8, %%mm1\n\t" "psubw proc_table, %%mm2\n\t" "pand lmask, %%mm1\n\t" "psllw $3, %%mm2\n\t" "packssdw %%mm1, %%mm1\n\t" "pmulhw proc_table+24, %%mm2\n\t" "punpcklwd %%mm1, %%mm1\n\t" "psrld $24, %%mm0\n\t" "psubw proc_table+16, %%mm1\n\t" "packssdw %%mm0, %%mm0\n\t" "psllw $3, %%mm1\n\t" "punpcklwd %%mm0, %%mm0\n\t" "movq %%mm1, %%mm4\n\t" "psubw proc_table+16, %%mm0\n\t" "pmulhw proc_table+64, %%mm4\n\t" "psllw $3, %%mm0\n\t" "paddw %%mm2, %%mm4\n\t" "movq %%mm0, %%mm3\n\t" "packuswb %%mm4, %%mm4\n\t" "pmulhw proc_table+40, %%mm3\n\t" "punpcklbw %%mm7, %%mm4\n\t" "paddw %%mm2, %%mm3\n\t" "pmulhw proc_table+48, %%mm0\n\t" "packuswb %%mm3, %%mm3\n\t" "psrlw $6, %%mm4\n\t" "pand b3mask, %%mm3\n\t" "pmulhw proc_table+56, %%mm1\n\t" "punpcklbw %%mm7, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "por %%mm4, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm2\n\t" "pand b3mask, %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psrlw $3, %%mm2\n\t" "por %%mm2, %%mm3\n\t" "packuswb %%mm3, %%mm3\n\t" "movq %%mm3, (%0)\n\t" "addl $4, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yuy2_be_argb1555 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm2\n\t" "psrld $8, %%mm1\n\t" "psubw proc_table, %%mm2\n\t" "pand lmask, %%mm1\n\t" "psllw $3, %%mm2\n\t" "packssdw %%mm1, %%mm1\n\t" "pmulhw proc_table+24, %%mm2\n\t" "punpcklwd %%mm1, %%mm1\n\t" "psrld $24, %%mm0\n\t" "psubw proc_table+16, %%mm1\n\t" "packssdw %%mm0, %%mm0\n\t" "psllw $3, %%mm1\n\t" "punpcklwd %%mm0, %%mm0\n\t" "movq %%mm1, %%mm4\n\t" "psubw proc_table+16, %%mm0\n\t" "pmulhw proc_table+64, %%mm4\n\t" "psllw $3, %%mm0\n\t" "paddw %%mm2, %%mm4\n\t" "movq %%mm0, %%mm3\n\t" "packuswb %%mm4, %%mm4\n\t" "pmulhw proc_table+40, %%mm3\n\t" "punpcklbw %%mm7, %%mm4\n\t" "paddw %%mm2, %%mm3\n\t" "pmulhw proc_table+48, %%mm0\n\t" "packuswb %%mm3, %%mm3\n\t" "psrlw $3, %%mm4\n\t" "pand b5mask, %%mm3\n\t" "pmulhw proc_table+56, %%mm1\n\t" "punpcklbw %%mm7, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "psllw $7, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "por %%mm4, %%mm3\n\t" "packuswb %%mm2, %%mm2\n\t" "pand b5mask, %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "por a1mask, %%mm3\n\t" "psllw $2, %%mm2\n\t" "por %%mm2, %%mm3\n\t" "movq %%mm3, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yuy2_be_rgb16 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm2\n\t" "psrld $8, %%mm1\n\t" "psubw proc_table, %%mm2\n\t" "pand lmask, %%mm1\n\t" "psllw $3, %%mm2\n\t" "packssdw %%mm1, %%mm1\n\t" "pmulhw proc_table+24, %%mm2\n\t" "punpcklwd %%mm1, %%mm1\n\t" "psrld $24, %%mm0\n\t" "psubw proc_table+16, %%mm1\n\t" "packssdw %%mm0, %%mm0\n\t" "psllw $3, %%mm1\n\t" "punpcklwd %%mm0, %%mm0\n\t" "movq %%mm1, %%mm4\n\t" "psubw proc_table+16, %%mm0\n\t" "pmulhw proc_table+64, %%mm4\n\t" "psllw $3, %%mm0\n\t" "paddw %%mm2, %%mm4\n\t" "movq %%mm0, %%mm3\n\t" "packuswb %%mm4, %%mm4\n\t" "pmulhw proc_table+40, %%mm3\n\t" "punpcklbw %%mm7, %%mm4\n\t" "paddw %%mm2, %%mm3\n\t" "pmulhw proc_table+48, %%mm0\n\t" "packuswb %%mm3, %%mm3\n\t" "psrlw $3, %%mm4\n\t" "pand b5mask, %%mm3\n\t" "pmulhw proc_table+56, %%mm1\n\t" "punpcklbw %%mm7, %%mm3\n\t" "paddw %%mm1, %%mm0\n\t" "psllw $8, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "por %%mm4, %%mm3\n\t" "packuswb %%mm2, %%mm2\n\t" "pand b6mask, %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psllw $3, %%mm2\n\t" "por %%mm2, %%mm3\n\t" "movq %%mm3, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yuy2_be_rgb24 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm2\n\t" "psrld $8, %%mm1\n\t" "psubw proc_table, %%mm2\n\t" "pand lmask, %%mm1\n\t" "psllw $3, %%mm2\n\t" "packssdw %%mm1, %%mm1\n\t" "pmulhw proc_table+24, %%mm2\n\t" "punpcklwd %%mm1, %%mm1\n\t" "psrld $24, %%mm0\n\t" "psubw proc_table+16, %%mm1\n\t" "packssdw %%mm0, %%mm0\n\t" "psllw $3, %%mm1\n\t" "punpcklwd %%mm0, %%mm0\n\t" "movq %%mm1, %%mm4\n\t" "psubw proc_table+16, %%mm0\n\t" "pmulhw proc_table+64, %%mm4\n\t" "psllw $3, %%mm0\n\t" "paddw %%mm2, %%mm4\n\t" "movq %%mm0, %%mm3\n\t" "packuswb %%mm4, %%mm4\n\t" "pmulhw proc_table+40, %%mm3\n\t" "movq %%mm4, %%mm5\n\t" "paddw %%mm2, %%mm3\n\t" "pmulhw proc_table+48, %%mm0\n\t" "packuswb %%mm3, %%mm3\n\t" "punpcklbw %%mm3, %%mm4\n\t" "pmulhw proc_table+56, %%mm1\n\t" "psrld $8, %%mm4\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm2\n\t" "punpcklbw %%mm2, %%mm5\n\t" "movq %%mm5, %%mm6\n\t" "punpcklwd %%mm4, %%mm5\n\t" "movq %%mm5, %%mm0\n\t" "punpckhwd %%mm4, %%mm6\n\t" "psrlq $40, %%mm0\n\t" "punpcklwd %%mm6, %%mm0\n\t" "punpckldq %%mm0, %%mm5\n\t" "psrld $8, %%mm6\n\t" "psrld $16, %%mm0\n\t" "punpckhwd %%mm6, %%mm0\n\t" "movq %%mm5, (%0)\n\t" "movd %%mm0, 8(%0)\n\t" "addl $12, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yuy2_be_rgb32 ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm2\n\t" "psrld $8, %%mm1\n\t" "psubw proc_table, %%mm2\n\t" "pand lmask, %%mm1\n\t" "psllw $3, %%mm2\n\t" "packssdw %%mm1, %%mm1\n\t" "pmulhw proc_table+24, %%mm2\n\t" "punpcklwd %%mm1, %%mm1\n\t" "psrld $24, %%mm0\n\t" "psubw proc_table+16, %%mm1\n\t" "packssdw %%mm0, %%mm0\n\t" "psllw $3, %%mm1\n\t" "punpcklwd %%mm0, %%mm0\n\t" "movq %%mm1, %%mm4\n\t" "psubw proc_table+16, %%mm0\n\t" "pmulhw proc_table+64, %%mm4\n\t" "psllw $3, %%mm0\n\t" "paddw %%mm2, %%mm4\n\t" "movq %%mm0, %%mm3\n\t" "packuswb %%mm4, %%mm4\n\t" "pmulhw proc_table+40, %%mm3\n\t" "paddw %%mm2, %%mm3\n\t" "packuswb %%mm3, %%mm3\n\t" "pmulhw proc_table+48, %%mm0\n\t" "punpcklbw %%mm3, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "punpcklbw %%mm2, %%mm4\n\t" "punpckhbw %%mm2, %%mm5\n\t" "movq %%mm4, (%0)\n\t" "movq %%mm5, 8(%0)\n\t" "addl $16, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yuy2_be_argb ( dfb_frame_t *frame ) { uint8_t *S = frame->vo_frame.base[0]; uint8_t *D = frame->out_plane[0]; int n = frame->area/4; __asm__ __volatile__( "movq a8mask, %%mm6\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm0, %%mm1\n\t" "pand wmask, %%mm2\n\t" "psrld $8, %%mm1\n\t" "psubw proc_table, %%mm2\n\t" "pand lmask, %%mm1\n\t" "psllw $3, %%mm2\n\t" "packssdw %%mm1, %%mm1\n\t" "pmulhw proc_table+24, %%mm2\n\t" "punpcklwd %%mm1, %%mm1\n\t" "psrld $24, %%mm0\n\t" "psubw proc_table+16, %%mm1\n\t" "packssdw %%mm0, %%mm0\n\t" "psllw $3, %%mm1\n\t" "punpcklwd %%mm0, %%mm0\n\t" "movq %%mm1, %%mm4\n\t" "psubw proc_table+16, %%mm0\n\t" "pmulhw proc_table+64, %%mm4\n\t" "psllw $3, %%mm0\n\t" "paddw %%mm2, %%mm4\n\t" "movq %%mm0, %%mm3\n\t" "packuswb %%mm4, %%mm4\n\t" "pmulhw proc_table+40, %%mm3\n\t" "paddw %%mm2, %%mm3\n\t" "packuswb %%mm3, %%mm3\n\t" "pmulhw proc_table+48, %%mm0\n\t" "punpcklbw %%mm3, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm2\n\t" "punpcklbw %%mm6, %%mm2\n\t" "punpcklbw %%mm2, %%mm4\n\t" "punpckhbw %%mm2, %%mm5\n\t" "movq %%mm4, (%0)\n\t" "movq %%mm5, 8(%0)\n\t" "addl $16, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&S" (S), "=&c" (n) : "0" (D), "1" (S), "2" (n) : "memory"); } static void __mmx_yv12_be_yuy2 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int n = frame->height/2; int set = frame->mixer_set; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" "testb $7, %6\n\t" "jz 4f\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%1,%4), %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpcklbw %%mm7, %%mm1\n\t" "movd (%2), %%mm2\n\t" "movd (%3), %%mm3\n\t" "testb $3, %6\n\t" "jz 2f\n\t" "psubw proc_table, %%mm0\n\t" "psubw proc_table, %%mm1\n\t" "psllw $3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw proc_table+24, %%mm0\n\t" "pmulhw proc_table+24, %%mm1\n\t" "paddw proc_table+8, %%mm0\n\t" "paddw proc_table+8, %%mm1\n\t" ".align 4\n" "2:\n\t" "testb $4, %6\n\t" "jz 3f\n\t" "punpcklbw %%mm7, %%mm2\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table+16, %%mm2\n\t" "psubw proc_table+16, %%mm3\n\t" "psllw $3, %%mm2\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+32, %%mm2\n\t" "pmulhw proc_table+32, %%mm3\n\t" "paddw proc_table+16, %%mm2\n\t" "paddw proc_table+16, %%mm3\n\t" "packuswb %%mm2, %%mm2\n\t" "packuswb %%mm3, %%mm3\n\t" ".align 8\n" "3:\n\t" "packuswb %%mm1, %%mm0\n\t" "punpcklbw %%mm3, %%mm2\n\t" "movq %%mm0, %%mm1\n\t" "punpckhdq %%mm0, %%mm0\n\t" "punpcklbw %%mm2, %%mm1\n\t" "punpcklbw %%mm2, %%mm0\n\t" "movq %%mm1, (%0)\n\t" "movq %%mm0, (%0,%4,2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $3, %5\n\t" "decl %7\n\t" "jnz 1b\n\t" "jmp 5f\n\t" ".align 16\n" "4:\n" "movd (%2), %%mm2\n\t" "movd (%3), %%mm3\n\t" "movd (%1), %%mm0\n\t" "movd (%1,%4), %%mm1\n\t" "punpcklbw %%mm3, %%mm2\n\t" "punpcklbw %%mm2, %%mm0\n\t" "punpcklbw %%mm2, %%mm1\n\t" "movq %%mm0, (%0)\n\t" "movq %%mm1, (%0,%4,2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 4b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $3, %5\n\t" "decl %7\n\t" "jnz 4b\n\t" "5:\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/4), "m" (set), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } static void __mmx_yv12_be_uyvy ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int n = frame->height/2; int set = frame->mixer_set; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" "testb $7, %6\n\t" "jz 4f\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%1,%4), %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpcklbw %%mm7, %%mm1\n\t" "movd (%2), %%mm2\n\t" "movd (%3), %%mm3\n\t" "testb $3, %6\n\t" "jz 2f\n\t" "psubw proc_table, %%mm0\n\t" "psubw proc_table, %%mm1\n\t" "psllw $3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw proc_table+24, %%mm0\n\t" "pmulhw proc_table+24, %%mm1\n\t" "paddw proc_table+8, %%mm0\n\t" "paddw proc_table+8, %%mm1\n\t" ".align 4\n" "2:\n\t" "testb $4, %6\n\t" "jz 3f\n\t" "punpcklbw %%mm7, %%mm2\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table+16, %%mm2\n\t" "psubw proc_table+16, %%mm3\n\t" "psllw $3, %%mm2\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+32, %%mm2\n\t" "pmulhw proc_table+32, %%mm3\n\t" "paddw proc_table+16, %%mm2\n\t" "paddw proc_table+16, %%mm3\n\t" "packuswb %%mm2, %%mm2\n\t" "packuswb %%mm3, %%mm3\n\t" ".align 8\n" "3:\n\t" "packuswb %%mm1, %%mm0\n\t" "punpcklbw %%mm3, %%mm2\n\t" "movq %%mm2, %%mm3\n\t" "punpcklbw %%mm0, %%mm3\n\t" "punpckhdq %%mm0, %%mm0\n\t" "punpcklbw %%mm0, %%mm2\n\t" "movq %%mm3, (%0)\n\t" "movq %%mm2, (%0,%4,2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $3, %5\n\t" "decl %7\n\t" "jnz 1b\n\t" "jmp 5f\n\t" ".align 16\n" "4:\n\t" "movd (%2), %%mm2\n\t" "movd (%3), %%mm3\n\t" "movd (%1), %%mm0\n\t" "movd (%1,%4), %%mm1\n\t" "punpcklbw %%mm3, %%mm2\n\t" "movq %%mm2, %%mm3\n\t" "punpcklbw %%mm0, %%mm2\n\t" "punpcklbw %%mm1, %%mm3\n\t" "movq %%mm2, (%0)\n\t" "movq %%mm3, (%0,%4,2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 4b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $3, %5\n\t" "decl %7\n\t" "jnz 4b\n\t" "5:\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/4), "m" (set), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } static void __mmx_yv12_be_yv12 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint8_t *Du = frame->out_plane[1]; uint8_t *Dv = frame->out_plane[2]; int set = frame->mixer_set; if (set & (MF_B | MF_C)) { __asm__ __volatile__( "movq proc_table, %%mm2\n\t" "movq proc_table+24, %%mm3\n\t" "movq proc_table+8, %%mm4\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpckhbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm4, %%mm0\n\t" "paddw %%mm4, %%mm1\n\t" "packuswb %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (Dy), "=&S" (Sy) : "c" (frame->area/8), "0" (Dy), "1" (Sy) : "memory"); } if (set & MF_S) { __asm__ __volatile__( "movq proc_table+16, %%mm2\n\t" "movq proc_table+32, %%mm3\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%2), %%mm0\n\t" "movd (%3), %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm2, %%mm0\n\t" "paddw %%mm2, %%mm1\n\t" "packuswb %%mm1, %%mm0\n\t" "movd %%mm0, (%0)\n\t" "punpckhdq %%mm0, %%mm0\n\t" "movd %%mm0, (%1)\n\t" "addl $4, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "addl $4, %3\n\t" "decl %4\n\t" "jnz 1b\n\t" "emms" : "=&r" (Du), "=&r" (Dv), "=&r" (Su), "=&r" (Sv) : "c" (frame->area/16), "0" (Du), "1" (Dv), "2" (Su), "3" (Sv) : "memory"); if (frame->area & 8) { *Du = proc_table.uv[*Du]; *Dv = proc_table.uv[*Dv]; } } } static void __mmx_yv12_be_nv12 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Duv = (uint16_t*) frame->out_plane[1]; int set = frame->mixer_set; if (set & (MF_B | MF_C)) { __asm__ __volatile__( "movq proc_table, %%mm2\n\t" "movq proc_table+24, %%mm3\n\t" "movq proc_table+8, %%mm4\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpckhbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm4, %%mm0\n\t" "paddw %%mm4, %%mm1\n\t" "packuswb %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (Dy), "=&S" (Sy) : "c" (frame->area/8), "0" (Dy), "1" (Sy) : "memory"); } if (set & MF_S) { __asm__ __volatile__( "movq proc_table+16, %%mm2\n\t" "movq proc_table+32, %%mm3\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm2, %%mm0\n\t" "paddw %%mm2, %%mm1\n\t" "packuswb %%mm0, %%mm0\n\t" "packuswb %%mm1, %%mm1\n\t" "punpcklbw %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %3\n\t" "jnz 1b\n\t" "emms" : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) : "c" (frame->area/16), "0" (Duv), "1" (Su), "2" (Sv) : "memory"); } else { __asm__ __volatile__( ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %3\n\t" "jnz 1b\n\t" "emms" : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) : "c" (frame->area/16), "0" (Duv), "1" (Su), "2" (Sv) : "memory"); } if (frame->area & 8) *Duv = proc_table.uv[*Su] | (proc_table.uv[*Sv] << 8); } static void __mmx_yv12_be_nv21 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Dvu = (uint16_t*) frame->out_plane[1]; int set = frame->mixer_set; if (set & (MF_B | MF_C)) { __asm__ __volatile__( "movq proc_table, %%mm2\n\t" "movq proc_table+24, %%mm3\n\t" "movq proc_table+8, %%mm4\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpckhbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm4, %%mm0\n\t" "paddw %%mm4, %%mm1\n\t" "packuswb %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (Dy), "=&S" (Sy) : "c" (frame->area/8), "0" (Dy), "1" (Sy) : "memory"); } if (set & MF_S) { __asm__ __volatile__( "movq proc_table+16, %%mm2\n\t" "movq proc_table+32, %%mm3\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm2, %%mm0\n\t" "paddw %%mm2, %%mm1\n\t" "packuswb %%mm0, %%mm0\n\t" "packuswb %%mm1, %%mm1\n\t" "punpcklbw %%mm0, %%mm1\n\t" "movq %%mm1, (%0)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %3\n\t" "jnz 1b\n\t" "emms" : "=&D" (Dvu), "=&r" (Su), "=&r" (Sv) : "c" (frame->area/16), "0" (Dvu), "1" (Su), "2" (Sv) : "memory"); } else { __asm__ __volatile__( ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm0, %%mm1\n\t" "movq %%mm1, (%0)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %3\n\t" "jnz 1b\n\t" "emms" : "=&D" (Dvu), "=&r" (Su), "=&r" (Sv) : "c" (frame->area/16), "0" (Dvu), "1" (Su), "2" (Sv) : "memory"); } if (frame->area & 8) *Dvu = proc_table.uv[*Sv] | (proc_table.uv[*Su] << 8); } static void __mmx_yv12_be_nv16 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *Dy = frame->out_plane[0]; uint16_t *Duv = (uint16_t*) frame->out_plane[1]; int set = frame->mixer_set; if (set & (MF_B | MF_C)) { __asm__ __volatile__( "movq proc_table, %%mm2\n\t" "movq proc_table+24, %%mm3\n\t" "movq proc_table+8, %%mm4\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movq (%1), %%mm0\n\t" "movq %%mm0, %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpckhbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm4, %%mm0\n\t" "paddw %%mm4, %%mm1\n\t" "packuswb %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "addl $8, %0\n\t" "addl $8, %1\n\t" "decl %2\n\t" "jnz 1b\n\t" "emms" : "=&D" (Dy), "=&S" (Sy) : "c" (frame->area/8), "0" (Dy), "1" (Sy) : "memory"); } if (set & MF_S) { __asm__ __volatile__( "movq proc_table+16, %%mm2\n\t" "movq proc_table+32, %%mm3\n\t" "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm7, %%mm0\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw %%mm2, %%mm0\n\t" "psubw %%mm2, %%mm1\n\t" "psllw $3, %%mm0\n\t" "pmulhw %%mm3, %%mm0\n\t" "psllw $3, %%mm1\n\t" "pmulhw %%mm3, %%mm1\n\t" "paddw %%mm2, %%mm0\n\t" "paddw %%mm2, %%mm1\n\t" "packuswb %%mm0, %%mm0\n\t" "packuswb %%mm1, %%mm1\n\t" "punpcklbw %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "movq %%mm0, (%0,%3)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %3\n\t" "jnz 1b\n\t" "testl $4, %3\n\t" "jz 2f\n\t" "movb (%1), %%cl\n\t" "movb (%2), %%ch\n\t" "movw %%cx, (%0)\n\t" "movw %%cx, (%0,%3)\n\t" "addl $2, %0\n\t" "incl %1\n\t" "incl %2\n\t" "2:\n\t" "addl %3, %0\n\t" "movl %3, %4\n\t" "shrl $3, %4\n\t" "decl %5\n\t" "jnz 1b\n\t" "emms" : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/8), "r" (frame->height/2), "0" (Duv), "1" (Su), "2" (Sv) : "memory"); } else { __asm__ __volatile__( ".align 16\n" "1:\n\t" "movd (%1), %%mm0\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "movq %%mm0, (%0,%3)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $4, %2\n\t" "decl %4\n\t" "jnz 1b\n\t" "testl $4, %3\n\t" "jz 2f\n\t" "movb (%1), %%cl\n\t" "movb (%2), %%ch\n\t" "movw %%cx, (%0)\n\t" "movw %%cx, (%0,%3)\n\t" "addl $2, %0\n\t" "incl %1\n\t" "incl %2\n\t" "2:\n\t" "addl %3, %0\n\t" "movl %3, %4\n\t" "shrl $3, %4\n\t" "decl %5\n\t" "jnz 1b\n\t" "emms" : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/8), "r" (frame->height/2), "0" (Duv), "1" (Su), "2" (Sv) : "memory"); } } static void __mmx_yv12_be_rgb332 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int n = frame->height/2; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm3\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm3\n\t" "movd (%1,%4), %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psubw proc_table, %%mm2\n\t" "psllw $3, %%mm2\n\t" "pmulhw proc_table+24, %%mm2\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw proc_table+16, %%mm1\n\t" "psllw $3, %%mm1\n\t" "movd (%3), %%mm0\n\t" "punpcklbw %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "movq %%mm0, %%mm4\n\t" "pmulhw proc_table+40, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "paddw %%mm3, %%mm4\n\t" "paddw %%mm2, %%mm5\n\t" "packuswb %%mm5, %%mm4\n\t" "pand b3mask, %%mm4\n\t" "movq %%mm1, %%mm5\n\t" "pmulhw proc_table+64, %%mm5\n\t" "movq %%mm5, %%mm6\n\t" "paddw %%mm3, %%mm5\n\t" "paddw %%mm2, %%mm6\n\t" "packuswb %%mm6, %%mm5\n\t" "pmulhw proc_table+48, %%mm0\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm3\n\t" "pand b3mask, %%mm3\n\t" "movq %%mm4, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "movq %%mm5, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psrlw $6, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "movq %%mm3, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psrlw $3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "packuswb %%mm0, %%mm0\n\t" "movd %%mm0, (%0)\n\t" "punpckhbw %%mm7, %%mm4\n\t" "punpckhbw %%mm7, %%mm5\n\t" "psrlw $6, %%mm5\n\t" "por %%mm5, %%mm4\n\t" "punpckhbw %%mm7, %%mm3\n\t" "psrlw $3, %%mm3\n\t" "por %%mm3, %%mm4\n\t" "packuswb %%mm4, %%mm4\n\t" "movd %%mm4, (%0,%4)\n\t" "addl $4, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shrl $2, %5\n\t" "addl %4, %0\n\t" "addl %4, %1\n\t" "decl %6\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/4), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } static void __mmx_yv12_be_argb1555 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int n = frame->height/2; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm3\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm3\n\t" "movd (%1,%4), %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psubw proc_table, %%mm2\n\t" "psllw $3, %%mm2\n\t" "pmulhw proc_table+24, %%mm2\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw proc_table+16, %%mm1\n\t" "psllw $3, %%mm1\n\t" "movd (%3), %%mm0\n\t" "punpcklbw %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "movq %%mm0, %%mm4\n\t" "pmulhw proc_table+40, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "paddw %%mm3, %%mm4\n\t" "paddw %%mm2, %%mm5\n\t" "packuswb %%mm5, %%mm4\n\t" "pand b5mask, %%mm4\n\t" "movq %%mm1, %%mm5\n\t" "pmulhw proc_table+64, %%mm5\n\t" "movq %%mm5, %%mm6\n\t" "paddw %%mm3, %%mm5\n\t" "paddw %%mm2, %%mm6\n\t" "packuswb %%mm6, %%mm5\n\t" "pmulhw proc_table+48, %%mm0\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm3\n\t" "pand b5mask, %%mm3\n\t" "movq %%mm4, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psllw $7, %%mm0\n\t" "movq %%mm5, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psrlw $3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "movq %%mm3, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psllw $2, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "por a1mask, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "punpckhbw %%mm7, %%mm4\n\t" "psllw $7, %%mm4\n\t" "punpckhbw %%mm7, %%mm5\n\t" "psrlw $3, %%mm5\n\t" "por %%mm5, %%mm4\n\t" "punpckhbw %%mm7, %%mm3\n\t" "psllw $2, %%mm3\n\t" "por %%mm3, %%mm4\n\t" "por a1mask, %%mm4\n\t" "movq %%mm4, (%0,%4,2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $3, %5\n\t" "decl %6\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/4), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } static void __mmx_yv12_be_rgb16 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int n = frame->height/2; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm3\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm3\n\t" "movd (%1,%4), %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psubw proc_table, %%mm2\n\t" "psllw $3, %%mm2\n\t" "pmulhw proc_table+24, %%mm2\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw proc_table+16, %%mm1\n\t" "psllw $3, %%mm1\n\t" "movd (%3), %%mm0\n\t" "punpcklbw %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "movq %%mm0, %%mm4\n\t" "pmulhw proc_table+40, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "paddw %%mm3, %%mm4\n\t" "paddw %%mm2, %%mm5\n\t" "packuswb %%mm5, %%mm4\n\t" "pand b5mask, %%mm4\n\t" "movq %%mm1, %%mm5\n\t" "pmulhw proc_table+64, %%mm5\n\t" "movq %%mm5, %%mm6\n\t" "paddw %%mm3, %%mm5\n\t" "paddw %%mm2, %%mm6\n\t" "packuswb %%mm6, %%mm5\n\t" "pmulhw proc_table+48, %%mm0\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm3\n\t" "pand b6mask, %%mm3\n\t" "movq %%mm4, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psllw $8, %%mm0\n\t" "movq %%mm5, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psrlw $3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "movq %%mm3, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psllw $3, %%mm1\n\t" "por %%mm1, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "punpckhbw %%mm7, %%mm4\n\t" "psllw $8, %%mm4\n\t" "punpckhbw %%mm7, %%mm5\n\t" "psrlw $3, %%mm5\n\t" "por %%mm5, %%mm4\n\t" "punpckhbw %%mm7, %%mm3\n\t" "psllw $3, %%mm3\n\t" "por %%mm3, %%mm4\n\t" "movq %%mm4, (%0,%4,2)\n\t" "addl $8, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shll $1, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $3, %5\n\t" "decl %6\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/4), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } static void __mmx_yv12_be_rgb24 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int l = frame->width/4; int n = frame->height/2; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm3\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm3\n\t" "movd (%1,%4), %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psubw proc_table, %%mm2\n\t" "psllw $3, %%mm2\n\t" "pmulhw proc_table+24, %%mm2\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw proc_table+16, %%mm1\n\t" "psllw $3, %%mm1\n\t" "movd (%3), %%mm0\n\t" "punpcklbw %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "movq %%mm0, %%mm4\n\t" "pmulhw proc_table+40, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "paddw %%mm3, %%mm4\n\t" "paddw %%mm2, %%mm5\n\t" "packuswb %%mm5, %%mm4\n\t" "movq %%mm1, %%mm5\n\t" "pmulhw proc_table+64, %%mm5\n\t" "movq %%mm5, %%mm6\n\t" "paddw %%mm3, %%mm5\n\t" "paddw %%mm2, %%mm6\n\t" "packuswb %%mm6, %%mm5\n\t" "pmulhw proc_table+48, %%mm0\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm3\n\t" "movq %%mm5, %%mm0\n\t" "punpcklbw %%mm3, %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "movq %%mm5, %%mm1\n\t" "punpcklbw %%mm4, %%mm1\n\t" "psrld $8, %%mm1\n\t" "punpcklwd %%mm1, %%mm0\n\t" "movq %%mm0, %%mm6\n\t" "psrlq $40, %%mm6\n\t" "punpckhwd %%mm1, %%mm2\n\t" "punpcklwd %%mm2, %%mm6\n\t" "punpckldq %%mm6, %%mm0\n\t" "movq %%mm0, (%0)\n\t" "psrld $8, %%mm2\n\t" "psrld $16, %%mm6\n\t" "punpckhwd %%mm2, %%mm6\n\t" "movd %%mm6, 8(%0)\n\t" "movq %%mm5, %%mm0\n\t" "punpckhbw %%mm3, %%mm0\n\t" "movq %%mm0, %%mm2\n\t" "punpckhbw %%mm4, %%mm5\n\t" "psrld $8, %%mm5\n\t" "punpcklwd %%mm5, %%mm0\n\t" "movq %%mm0, %%mm6\n\t" "psrlq $40, %%mm6\n\t" "punpckhwd %%mm5, %%mm2\n\t" "punpcklwd %%mm2, %%mm6\n\t" "punpckldq %%mm6, %%mm0\n\t" "movq %%mm0, (%0,%5)\n\t" "psrld $8, %%mm2\n\t" "psrld $16, %%mm6\n\t" "punpckhwd %%mm2, %%mm6\n\t" "movd %%mm6, 8(%0,%5)\n\t" "addl $12, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %6\n\t" "jnz 1b\n\t" "movl %4, %6\n\t" "shrl $2, %6\n\t" "leal (%0,%5), %0\n\t" "addl %4, %1\n\t" "decl %7\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "q" (frame->width*3), "m" (l), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } static void __mmx_yv12_be_rgb32 ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int n = frame->height/2; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm3\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm3\n\t" "movd (%1,%4), %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psubw proc_table, %%mm2\n\t" "psllw $3, %%mm2\n\t" "pmulhw proc_table+24, %%mm2\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw proc_table+16, %%mm1\n\t" "psllw $3, %%mm1\n\t" "movd (%3), %%mm0\n\t" "punpcklbw %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "movq %%mm0, %%mm4\n\t" "pmulhw proc_table+40, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "paddw %%mm3, %%mm4\n\t" "paddw %%mm2, %%mm5\n\t" "packuswb %%mm5, %%mm4\n\t" "movq %%mm1, %%mm5\n\t" "pmulhw proc_table+64, %%mm5\n\t" "movq %%mm5, %%mm6\n\t" "paddw %%mm3, %%mm5\n\t" "paddw %%mm2, %%mm6\n\t" "packuswb %%mm6, %%mm5\n\t" "pmulhw proc_table+48, %%mm0\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm3\n\t" "movq %%mm4, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "movq %%mm5, %%mm1\n\t" "punpcklbw %%mm3, %%mm1\n\t" "movq %%mm1, %%mm2\n\t" "punpcklwd %%mm0, %%mm2\n\t" "movq %%mm2, (%0)\n\t" "punpckhwd %%mm0, %%mm1\n\t" "movq %%mm1, 8(%0)\n\t" "punpckhbw %%mm7, %%mm4\n\t" "punpckhbw %%mm3, %%mm5\n\t" "movq %%mm5, %%mm0\n\t" "punpcklwd %%mm4, %%mm0\n\t" "movq %%mm0, (%0,%4,4)\n\t" "punpckhwd %%mm4, %%mm5\n\t" "movq %%mm5, 8(%0,%4,4)\n\t" "addl $16, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shll $2, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $4, %5\n\t" "decl %6\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/4), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } static void __mmx_yv12_be_argb ( dfb_frame_t *frame ) { uint8_t *Sy = frame->vo_frame.base[0]; uint8_t *Su = frame->vo_frame.base[1]; uint8_t *Sv = frame->vo_frame.base[2]; uint8_t *D = frame->out_plane[0]; int n = frame->height/2; __asm__ __volatile__( "pxor %%mm7, %%mm7\n\t" ".align 16\n" "1:\n\t" "movd (%1), %%mm3\n\t" "punpcklbw %%mm7, %%mm3\n\t" "psubw proc_table, %%mm3\n\t" "psllw $3, %%mm3\n\t" "pmulhw proc_table+24, %%mm3\n\t" "movd (%1,%4), %%mm2\n\t" "punpcklbw %%mm7, %%mm2\n\t" "psubw proc_table, %%mm2\n\t" "psllw $3, %%mm2\n\t" "pmulhw proc_table+24, %%mm2\n\t" "movd (%2), %%mm1\n\t" "punpcklbw %%mm1, %%mm1\n\t" "punpcklbw %%mm7, %%mm1\n\t" "psubw proc_table+16, %%mm1\n\t" "psllw $3, %%mm1\n\t" "movd (%3), %%mm0\n\t" "punpcklbw %%mm0, %%mm0\n\t" "punpcklbw %%mm7, %%mm0\n\t" "psubw proc_table+16, %%mm0\n\t" "psllw $3, %%mm0\n\t" "movq %%mm0, %%mm4\n\t" "pmulhw proc_table+40, %%mm4\n\t" "movq %%mm4, %%mm5\n\t" "paddw %%mm3, %%mm4\n\t" "paddw %%mm2, %%mm5\n\t" "packuswb %%mm5, %%mm4\n\t" "movq %%mm1, %%mm5\n\t" "pmulhw proc_table+64, %%mm5\n\t" "movq %%mm5, %%mm6\n\t" "paddw %%mm3, %%mm5\n\t" "paddw %%mm2, %%mm6\n\t" "packuswb %%mm6, %%mm5\n\t" "pmulhw proc_table+48, %%mm0\n\t" "pmulhw proc_table+56, %%mm1\n\t" "paddw %%mm1, %%mm0\n\t" "paddw %%mm0, %%mm3\n\t" "paddw %%mm0, %%mm2\n\t" "packuswb %%mm2, %%mm3\n\t" "movq %%mm4, %%mm0\n\t" "punpcklbw a8mask, %%mm0\n\t" "movq %%mm5, %%mm1\n\t" "punpcklbw %%mm3, %%mm1\n\t" "movq %%mm1, %%mm2\n\t" "punpcklwd %%mm0, %%mm2\n\t" "movq %%mm2, (%0)\n\t" "punpckhwd %%mm0, %%mm1\n\t" "movq %%mm1, 8(%0)\n\t" "punpckhbw a8mask, %%mm4\n\t" "punpckhbw %%mm3, %%mm5\n\t" "movq %%mm5, %%mm0\n\t" "punpcklwd %%mm4, %%mm0\n\t" "movq %%mm0, (%0,%4,4)\n\t" "punpckhwd %%mm4, %%mm5\n\t" "movq %%mm5, 8(%0,%4,4)\n\t" "addl $16, %0\n\t" "addl $4, %1\n\t" "addl $2, %2\n\t" "addl $2, %3\n\t" "decl %5\n\t" "jnz 1b\n\t" "movl %4, %5\n\t" "shll $2, %5\n\t" "addl %5, %0\n\t" "addl %4, %1\n\t" "shrl $4, %5\n\t" "decl %6\n\t" "jnz 1b\n\t" "emms" : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) : "q" (frame->width), "c" (frame->width/4), "m" (n), "0" (D), "1" (Sy), "2" (Su), "3" (Sv) : "memory"); } #undef PACCEL # 163 "video_out_dfb.c" 2 static DVProcFunc ProcFuncs[2][21] = { { __generic_yuy2_be_rgb16, __generic_yuy2_be_rgb16, __generic_yuy2_be_rgb24, __generic_yuy2_be_rgb32, __generic_yuy2_be_rgb32, ((void *)0), __generic_yuy2_be_yuy2, __generic_yuy2_be_rgb8, __generic_yuy2_be_uyvy, __generic_yuy2_be_yv12, __generic_yuy2_be_yv12, ((void *)0), ((void *)0), __generic_yuy2_be_rgb32, ((void *)0), __generic_yuy2_be_nv12, __generic_yuy2_be_nv16, __generic_yuy2_be_rgb16, __generic_yuy2_be_rgb16, __generic_yuy2_be_nv21 }, { __generic_yv12_be_rgb16, __generic_yv12_be_rgb16, __generic_yv12_be_rgb24, __generic_yv12_be_rgb32, __generic_yv12_be_rgb32, ((void *)0), __generic_yv12_be_yuy2, __generic_yv12_be_rgb8, __generic_yv12_be_uyvy, __generic_yv12_be_yv12, __generic_yv12_be_yv12, ((void *)0), ((void *)0), __generic_yv12_be_rgb32, ((void *)0), __generic_yv12_be_nv12, __generic_yv12_be_nv16, __generic_yv12_be_rgb16, __generic_yv12_be_rgb16, __generic_yv12_be_nv21 } }; # 1 "video_out_dfb_blend.h" 1 # 20 "video_out_dfb_blend.h" #define PACCEL generic #define W0(d) *((uint16_t*)(d)+0) #define W1(d) *((uint16_t*)(d)+1) static void __generic_blend_yuy2 ( DVBlender *blender, DVColor *color ) { uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; uint32_t y = color->yuv.y; uint32_t u = color->yuv.u << 8; uint32_t v = color->yuv.v << 8; int w = blender->len; int n; if (color->yuv.a < 0xff) { uint32_t a0 = (color->yuv.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; y *= a0; u *= a0; v *= a0; if ((long)D & 2) { *D = ((y + ((*D & 0x00ff) * a1)) >> 16) | (((v + ((*D & 0xff00) * a1)) >> 16) & 0xff00); D++; w--; } for (n = w/2; n--;) { register uint32_t Dpix; Dpix = ((y + ((*(D+0) & 0x00ff) * a1)) >> 16); Dpix |= ((u + ((*(D+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; Dpix |= ((y + ((*(D+1) & 0x00ff) * a1)) ) & 0x00ff0000; Dpix |= ((v + ((*(D+1) & 0xff00) * a1)) ) & 0xff000000; *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) { *D = ((y + ((*D & 0x00ff) * a1)) >> 16) | (((u + ((*D & 0xff00) * a1)) >> 16) & 0xff00); } } else { uint32_t Dpix = (y << 0) | (u << (8 -8)) | (y << 16) | (v << (24 -8)); if ((long)D & 2) { *D++ = (y | v); w--; } for (n = w/2; n--;) { *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) *D = (y | u); } } static void __generic_blend_uyvy ( DVBlender *blender, DVColor *color ) { uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; uint32_t y = color->yuv.y << 8; uint32_t u = color->yuv.u; uint32_t v = color->yuv.v; int w = blender->len; int n; if (color->yuv.a < 0xff) { uint32_t a0 = (color->yuv.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; y *= a0; u *= a0; v *= a0; if ((long)D & 2) { *D = (((v + ((*D & 0x00ff) * a1)) >> 16) ) | (((y + ((*D & 0xff00) * a1)) >> 16) & 0xff00); D++; w--; } for (n = w/2; n--;) { register uint32_t Dpix; Dpix = ((u + ((*(D+0) & 0x00ff) * a1)) >> 16); Dpix |= ((y + ((*(D+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; Dpix |= ((v + ((*(D+1) & 0x00ff) * a1)) ) & 0x00ff0000; Dpix |= ((y + ((*(D+1) & 0xff00) * a1)) ) & 0xff000000; *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) { *D = (((u + ((*D & 0x00ff) * a1)) >> 16) ) | (((y + ((*D & 0xff00) * a1)) >> 16) & 0xff00); } } else { uint32_t Dpix = (u << 0) | (y << 0) | (v << 16) | (y << 16); if ((long)D & 2) { *D++ = (v | y); w--; } for (n = w/2; n--;) { *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) *D = (u | y); } } static void __generic_blend_yv12 ( DVBlender *blender, DVColor *color ) { uint8_t *Dy = blender->plane[0] + blender->x; uint8_t *Du = blender->plane[1] + blender->x/2; uint8_t *Dv = blender->plane[2] + blender->x/2; uint32_t y = color->yuv.y; uint32_t u = color->yuv.u; uint32_t v = color->yuv.v; int w = blender->len; int n; if (color->yuv.a < 0xff) { uint32_t a0 = (color->yuv.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; y *= a0; for (n = w; n--;) { *Dy = (y + (*Dy * a1)) >> 16; Dy++; } if (blender->y & 1) { u *= a0; v *= a0; for (n = w/2; n--;) { *Du = (u + (*Du * a1)) >> 16; Du++; *Dv = (v + (*Dv * a1)) >> 16; Dv++; } if (w & 1) { *Du = (u + (*Du * a1)) >> 16; *Dv = (v + (*Dv * a1)) >> 16; } } } else { memset( Dy, y, w ); if (blender->y & 1) { memset( Du, u, (w+1)/2 ); memset( Dv, v, (w+1)/2 ); } } } static void __generic_blend_nv12 ( DVBlender *blender, DVColor *color ) { uint8_t *Dy = blender->plane[0] + blender->x; uint16_t *Duv = (uint16_t*) blender->plane[1] + blender->x/2; uint32_t y = color->yuv.y; uint32_t u = color->yuv.u; uint32_t v = color->yuv.v << 8; int w = blender->len; int n; if (color->yuv.a < 0xff) { uint32_t a0 = (color->yuv.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; y *= a0; for (n = w; n--;) { *Dy = (y + (*Dy * a1)) >> 16; Dy++; } if (blender->y & 1) { u *= a0; v *= a0; if ((long)Duv & 2) { *Duv = (((u + ((*Duv & 0x00ff) * a1)) >> 16) ) | (((v + ((*Duv & 0xff00) * a1)) >> 16) & 0xff00); Duv++; w -= 2; } for (n = w/4; n--;) { register uint32_t Dpix; Dpix = ((u + ((*((uint16_t*)(Duv)+0) & 0x00ff) * a1)) >> 16); Dpix |= ((v + ((*((uint16_t*)(Duv)+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; Dpix |= ((u + ((*((uint16_t*)(Duv)+1) & 0x00ff) * a1)) ) & 0x00ff0000; Dpix |= ((v + ((*((uint16_t*)(Duv)+1) & 0xff00) * a1)) ) & 0xff000000; *((uint32_t*)Duv) = Dpix; Duv += 2; } if (w & 2) { *Duv = (((u + ((*Duv & 0x00ff) * a1)) >> 16) ) | (((v + ((*Duv & 0xff00) * a1)) >> 16) & 0xff00); } } } else { memset( Dy, y, w ); if (blender->y & 1) { register uint32_t Dpix = u | v | ((u|v) << 16); if ((long)Duv & 2) { *Duv++ = Dpix; w -= 2; } for (n = w/4; n--;) { *((uint32_t*)Duv) = Dpix; Duv += 2; } if (w & 2) *Duv = Dpix; } } } static void __generic_blend_nv21 ( DVBlender *blender, DVColor *color ) { uint8_t *Dy = blender->plane[0] + blender->x; uint16_t *Dvu = (uint16_t*) blender->plane[1] + blender->x/2; uint32_t y = color->yuv.y; uint32_t u = color->yuv.u << 8; uint32_t v = color->yuv.v; int w = blender->len; int n; if (color->yuv.a < 0xff) { uint32_t a0 = (color->yuv.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; y *= a0; for (n = w; n--;) { *Dy = (y + (*Dy * a1)) >> 16; Dy++; } if (blender->y & 1) { u *= a0; v *= a0; if ((long)Dvu & 2) { *Dvu = (((v + ((*Dvu & 0x00ff) * a1)) >> 16) ) | (((u + ((*Dvu & 0xff00) * a1)) >> 16) & 0xff00); Dvu++; w -= 2; } for (n = w/4; n--;) { register uint32_t Dpix; Dpix = ((v + ((*((uint16_t*)(Dvu)+0) & 0x00ff) * a1)) >> 16); Dpix |= ((u + ((*((uint16_t*)(Dvu)+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; Dpix |= ((v + ((*((uint16_t*)(Dvu)+1) & 0x00ff) * a1)) ) & 0x00ff0000; Dpix |= ((u + ((*((uint16_t*)(Dvu)+1) & 0xff00) * a1)) ) & 0xff000000; *((uint32_t*)Dvu) = Dpix; Dvu += 2; } if (w & 2) { *Dvu = (((v + ((*Dvu & 0x00ff) * a1)) >> 16) ) | (((u + ((*Dvu & 0xff00) * a1)) >> 16) & 0xff00); } } } else { memset( Dy, y, w ); if (blender->y & 1) { register uint32_t Dpix = u | v | ((u|v) << 16); if ((long)Dvu & 2) { *Dvu++ = Dpix; w -= 2; } for (n = w/4; n--;) { *((uint32_t*)Dvu) = Dpix; Dvu += 2; } if (w & 2) *Dvu = Dpix; } } } static void __generic_blend_rgb332 ( DVBlender *blender, DVColor *color ) { uint8_t *D = blender->plane[0] + blender->x; uint32_t r = (color->rgb.r & 0xe0); uint32_t g = (color->rgb.g & 0xe0) >> 3; uint32_t b = (color->rgb.b & 0xc0) >> 6; int n = blender->len; if (color->rgb.a < 0xff) { uint32_t a0 = (color->rgb.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; r *= a0; g *= a0; b *= a0; while (n--) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x03) * a1)) >> 16); Dpix |= ((g + ((*D & 0x1c) * a1)) >> 16) & 0x1c; Dpix |= ((r + ((*D & 0xe0) * a1)) >> 16) & 0xe0; *D++ = Dpix; } } else memset( D, (r | g | b), n ); } static void __generic_blend_argb2554 ( DVBlender *blender, DVColor *color ) { uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; uint32_t a = (color->rgb.a & 0xc0) << 8; uint32_t r = (color->rgb.r & 0xf8) << 6; uint32_t g = (color->rgb.g & 0xf8) << 1; uint32_t b = (color->rgb.b & 0xf0) >> 4; int w = blender->len; int n; if (color->rgb.a < 0xff) { uint32_t a0 = (color->rgb.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; a *= a0; r *= a0; g *= a0; b *= a0; if ((long)D & 2) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x01f0) * a1)) >> 16) & 0x01f0; Dpix |= ((r + ((*D & 0x3e00) * a1)) >> 16) & 0x3e00; Dpix |= ((a + ((*D & 0xc000) * a1)) >> 16) & 0xc000; *D++ = Dpix; w--; } for (n = w/2; n--;) { register uint32_t Dpix; Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x000f) * a1)) >> 16); Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x01f0) * a1)) >> 16) & 0x000001f0; Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0x3e00) * a1)) >> 16) & 0x00003e00; Dpix |= ((a + ((*((uint16_t*)(D)+0) & 0xc000) * a1)) >> 16) & 0x0000c000; Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x000f) * a1)) ) & 0x000f0000; Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x01f0) * a1)) ) & 0x01f00000; Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0x3e00) * a1)) ) & 0x3e000000; Dpix |= ((a + ((*((uint16_t*)(D)+1) & 0xc000) * a1)) ) & 0xc0000000; *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x01f0) * a1)) >> 16) & 0x01f0; Dpix |= ((r + ((*D & 0x3e00) * a1)) >> 16) & 0x3e00; Dpix |= ((a + ((*D & 0xc000) * a1)) >> 16) & 0xc000; *D = Dpix; } } else { uint32_t Dpix = (a | r | g | b); Dpix |= Dpix << 16; if ((long)D & 2) { *D++ = Dpix; w--; } for (n = w/2; n--;) { *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) *D = Dpix; } } static void __generic_blend_argb4444 ( DVBlender *blender, DVColor *color ) { uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; uint32_t a = (color->rgb.a & 0xf0) << 8; uint32_t r = (color->rgb.r & 0xf0) << 4; uint32_t g = (color->rgb.g & 0xf0); uint32_t b = (color->rgb.b & 0xf0) >> 4; int w = blender->len; int n; if (color->rgb.a < 0xff) { uint32_t a0 = (color->rgb.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; a *= a0; r *= a0; g *= a0; b *= a0; if ((long)D & 2) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x00f0) * a1)) >> 16) & 0x00f0; Dpix |= ((r + ((*D & 0x0f00) * a1)) >> 16) & 0x0f00; Dpix |= ((a + ((*D & 0xf000) * a1)) >> 16) & 0xf000; *D++ = Dpix; w--; } for (n = w/2; n--;) { register uint32_t Dpix; Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x000f) * a1)) >> 16); Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x00f0) * a1)) >> 16) & 0x000000f0; Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0x0f00) * a1)) >> 16) & 0x00000f00; Dpix |= ((a + ((*((uint16_t*)(D)+0) & 0xf000) * a1)) >> 16) & 0x0000f000; Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x000f) * a1)) ) & 0x000f0000; Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x00f0) * a1)) ) & 0x00f00000; Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0x0f00) * a1)) ) & 0x0f000000; Dpix |= ((a + ((*((uint16_t*)(D)+1) & 0xf000) * a1)) ) & 0xf0000000; *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x00f0) * a1)) >> 16) & 0x00f0; Dpix |= ((r + ((*D & 0x0f00) * a1)) >> 16) & 0x0f00; Dpix |= ((a + ((*D & 0xf000) * a1)) >> 16) & 0xf000; *D = Dpix; } } else { uint32_t Dpix = (a | r | g | b); Dpix |= Dpix << 16; if ((long)D & 2) { *D++ = Dpix; w--; } for (n = w/2; n--;) { *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) *D = Dpix; } } static void __generic_blend_argb1555 ( DVBlender *blender, DVColor *color ) { uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; uint32_t a = (color->rgb.a & 0x80) << 8; uint32_t r = (color->rgb.r & 0xf8) << 7; uint32_t g = (color->rgb.g & 0xf8) << 2; uint32_t b = (color->rgb.b & 0xf8) >> 3; int w = blender->len; int n; if (color->rgb.a < 0xff) { uint32_t a0 = (color->rgb.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; r *= a0; g *= a0; b *= a0; if ((long)D & 2) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x03e0) * a1)) >> 16) & 0x03e0; Dpix |= ((r + ((*D & 0x7c00) * a1)) >> 16) & 0x7c00; Dpix |= (a > 127) ? 0x8000 : (*D & 0x8000); *D++ = Dpix; w--; } for (n = w/2; n--;) { register uint32_t Dpix; Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x001f) * a1)) >> 16); Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x03e0) * a1)) >> 16) & 0x000003e0; Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0x7c00) * a1)) >> 16) & 0x00007c00; Dpix |= ((a > 127) ? 0x00008000 : ((*((uint16_t*)(D)+0) & 0x8000))); Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x001f) * a1)) ) & 0x001f0000; Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x03e0) * a1)) ) & 0x03e00000; Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0x7c00) * a1)) ) & 0x7c000000; Dpix |= ((a > 127) ? 0x80000000 : ((*((uint16_t*)(D)+1) & 0x8000)<<16)); *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x03e0) * a1)) >> 16) & 0x03e0; Dpix |= ((r + ((*D & 0x7c00) * a1)) >> 16) & 0x7c00; Dpix |= ((a > 127) ? 0x8000 : (*D & 0x8000)); *D = Dpix; } } else { uint32_t Dpix = (a | r | g | b); Dpix |= Dpix << 16; if ((long)D & 2) { *D++ = Dpix; w--; } for (n = w/2; n--;) { *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) *D = Dpix; } } static void __generic_blend_rgb16 ( DVBlender *blender, DVColor *color ) { uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; uint32_t r = (color->rgb.r & 0xf8) << 8; uint32_t g = (color->rgb.g & 0xfc) << 3; uint32_t b = (color->rgb.b & 0xf8) >> 3; int w = blender->len; int n; if (color->rgb.a < 0xff) { uint32_t a0 = (color->rgb.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; r *= a0; g *= a0; b *= a0; if ((long)D & 2) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x07e0) * a1)) >> 16) & 0x07e0; Dpix |= ((r + ((*D & 0xf800) * a1)) >> 16) & 0xf800; *D++ = Dpix; w--; } for (n = w/2; n--;) { register uint32_t Dpix; Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x001f) * a1)) >> 16); Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x07e0) * a1)) >> 16) & 0x000007e0; Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0xf800) * a1)) >> 16) & 0x0000f800; Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x001f) * a1)) ) & 0x001f0000; Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x07e0) * a1)) ) & 0x07e00000; Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0xf800) * a1)) ) & 0xf8000000; *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) { register uint32_t Dpix; Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); Dpix |= ((g + ((*D & 0x07e0) * a1)) >> 16) & 0x07e0; Dpix |= ((r + ((*D & 0xf800) * a1)) >> 16) & 0xf800; *D = Dpix; } } else { uint32_t Dpix = (r | g | b); Dpix |= Dpix << 16; if ((long)D & 2) { *D++ = Dpix; w--; } for (n = w/2; n--;) { *((uint32_t*)D) = Dpix; D += 2; } if (w & 1) *D = Dpix; } } static void __generic_blend_rgb24 ( DVBlender *blender, DVColor *color ) { uint8_t *D = blender->plane[0] + blender->x*3; uint32_t r = color->rgb.r; uint32_t g = color->rgb.g; uint32_t b = color->rgb.b; int n = blender->len; if (color->rgb.a < 0xff) { uint32_t a0 = (color->rgb.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; r *= a0; g *= a0; b *= a0; while (n--) { *(D+0) = (b + (*(D+0) * a1)) >> 16; *(D+1) = (g + (*(D+1) * a1)) >> 16; *(D+2) = (r + (*(D+2) * a1)) >> 16; D += 3; } } else { while (n--) { *(D+0) = b; *(D+1) = r; *(D+2) = g; D += 3; } } } static void __generic_blend_rgb32 ( DVBlender *blender, DVColor *color ) { uint32_t *D = (uint32_t*) blender->plane[0] + blender->x; uint32_t r = color->rgb.r; uint32_t g = color->rgb.g; uint32_t b = color->rgb.b; int n = blender->len; if (color->rgb.a < 0xff) { uint32_t a0 = (color->rgb.a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; r *= a0; g *= a0; b *= a0; while (n--) { register uint32_t Dpix; Dpix = ((b + (((*D & 0x000000ff) ) * a1)) >> 16); Dpix |= ((g + (((*D & 0x0000ff00) >> 8) * a1)) >> 8) & 0x0000ff00; Dpix |= ((r + (((*D & 0x00ff0000) >> 16) * a1)) ) & 0x00ff0000; *D++ = Dpix; } } else { uint32_t Dpix = (r << 16) | (g << 8) | b; while (n--) *D++ = Dpix; } } static void __generic_blend_argb ( DVBlender *blender, DVColor *color ) { uint32_t *D = (uint32_t*) blender->plane[0] + blender->x; uint32_t a = color->rgb.a; uint32_t r = color->rgb.r; uint32_t g = color->rgb.g; uint32_t b = color->rgb.b; int n = blender->len; if (a < 0xff) { uint32_t a0 = (a << 16) / 0xff; uint32_t a1 = 0x10000 - a0; a *= a0; r *= a0; g *= a0; b *= a0; while (n--) { register uint32_t Dpix; Dpix = ((b + (((*D & 0x000000ff) ) * a1)) >> 16); Dpix |= ((g + (((*D & 0x0000ff00) >> 8) * a1)) >> 8) & 0x0000ff00; Dpix |= ((r + (((*D & 0x00ff0000) >> 16) * a1)) ) & 0x00ff0000; Dpix |= ((a + (((*D & 0xff000000) >> 24) * a1)) << 8) & 0xff000000; *D++ = Dpix; } } else { uint32_t Dpix = (a << 24) | (r << 16) | (g << 8) | b; while (n--) *D++ = Dpix; } } #undef PACCEL # 219 "video_out_dfb.c" 2 static DVBlendFunc BlendFuncs[21] = { __generic_blend_argb1555, __generic_blend_rgb16, __generic_blend_rgb24, __generic_blend_rgb32, __generic_blend_argb, ((void *)0), __generic_blend_yuy2, __generic_blend_rgb332, __generic_blend_uyvy, __generic_blend_yv12, __generic_blend_yv12, ((void *)0), ((void *)0), __generic_blend_rgb32, ((void *)0), __generic_blend_nv12, __generic_blend_nv12, __generic_blend_argb2554, __generic_blend_argb4444, __generic_blend_nv21 }; static void vo_dfb_tables_regen( dfb_driver_t *this, MixerFlags flags, DFBSurfacePixelFormat format ) { const DVProcMatrix *m = &proc_matrices[this->config.proc_matrix]; int lm_cfc; int vr_cfc; int vg_cfc; int ug_cfc; int ub_cfc; int b = this->mixer.b; int c = this->mixer.c; int s = this->mixer.s; bool clamp = (0); int i; do {} while(0); if (flags & MF_B) { if (this->mixer.b == 0) this->mixer.set &= ~MF_B; else this->mixer.set |= MF_B; } if (flags & MF_C) { if (this->mixer.c == 128) this->mixer.set &= ~MF_C; else this->mixer.set |= MF_C; } if (flags & MF_S) { if (this->mixer.s == 128) this->mixer.set &= ~MF_S; else this->mixer.set |= MF_S; } if (format != this->dest_format) flags = MF_ALL; lm_cfc = + 0x00002000 * 255 / (m->y.max - m->y.min ); vr_cfc = + m->v_for_r * 255 / (m->uv.max - m->uv.min); vg_cfc = - m->v_for_g * 255 / (m->uv.max - m->uv.min); ug_cfc = - m->u_for_g * 255 / (m->uv.max - m->uv.min); ub_cfc = + m->u_for_b * 255 / (m->uv.max - m->uv.min); switch (format) { case DSPF_UYVY: case DSPF_YUY2: case DSPF_YV12: case DSPF_I420: case DSPF_NV12: case DSPF_NV21: case DSPF_NV16: for (i = 0; i < 256; i++) { int lm, uv; if (flags & (MF_B | MF_C)) { lm = (((i)<(m->y.min)) ? (m->y.min) : (((i)>(m->y.max)) ? (m->y.max) : (i))); lm = (((lm - m->y.off + b) * c) >> 7) + m->y.off; proc_table.lm[i] = (((lm)<(0)) ? (0) : (((lm)>(0xff)) ? (0xff) : (lm))); } if (flags & MF_S) { uv = (((i)<(m->uv.min)) ? (m->uv.min) : (((i)>(m->uv.max)) ? (m->uv.max) : (i))); uv = (((uv - m->uv.off) * s) >> 7) + m->uv.off; proc_table.uv[i] = (((uv)<(0)) ? (0) : (((uv)>(0xff)) ? (0xff) : (uv))); } } break; default: for (i = 0; i < 256; i++) { int lm, uv, vr, vg, ug, ub; if (flags & (MF_B | MF_C)) { lm = (((i)<(m->y.min)) ? (m->y.min) : (((i)>(m->y.max)) ? (m->y.max) : (i))); lm = ((lm - m->y.off + b) * lm_cfc * c) >> 20; proc_table.lm[i] = (((lm)<(0)) ? (0) : (((lm)>(0xff)) ? (0xff) : (lm))); } if (flags & MF_S) { uv = (((i)<(m->uv.min)) ? (m->uv.min) : (((i)>(m->uv.max)) ? (m->uv.max) : (i))); vr = ((uv - m->uv.off) * vr_cfc * s) >> 20; vg = ((uv - m->uv.off) * vg_cfc * s) >> 20; ug = ((uv - m->uv.off) * ug_cfc * s) >> 20; ub = ((uv - m->uv.off) * ub_cfc * s) >> 20; proc_table.vr[i] = vr; proc_table.vg[i] = vg; proc_table.ug[i] = ug; proc_table.ub[i] = ub; } } clamp = (this->dest_format != format); break; } if (this->accel == 0x80000000) { for (i = 0; i < 4; i++) { proc_table.mmx.lm_sub[i] = m->y.off - b; proc_table.mmx.lm_add[i] = m->y.off; proc_table.mmx.uv_sub[i] = m->uv.off; } switch (format) { case DSPF_UYVY: case DSPF_YUY2: case DSPF_YV12: case DSPF_I420: case DSPF_NV12: case DSPF_NV21: case DSPF_NV16: for (i = 0; i < 4; i++) { proc_table.mmx.lm_cfc[i] = (0x2000 * c) >> 7; proc_table.mmx.uv_cfc[i] = (0x2000 * s) >> 7; } break; case DSPF_ARGB2554: case DSPF_ARGB4444: break; default: for (i = 0; i < 4; i++) { proc_table.mmx.lm_cfc[i] = (lm_cfc * c) >> 7; proc_table.mmx.vr_cfc[i] = (vr_cfc * s) >> 7; proc_table.mmx.vg_cfc[i] = (vg_cfc * s) >> 7; proc_table.mmx.ug_cfc[i] = (ug_cfc * s) >> 7; proc_table.mmx.ub_cfc[i] = (ub_cfc * s) >> 7; } clamp = (0); break; } } if (clamp) { int uv_min, uv_max; int r_min, r_max; int g_min, g_max; int b_min, b_max; void *clamp_r; void *clamp_g; void *clamp_b; uint32_t alpha; int cpp; do {} while(0); uv_min = (m->uv.min - m->uv.off) * 255; uv_max = (m->uv.max - m->uv.off) * 255; r_min = 0x00 + ((uv_min * vr_cfc) >> 20); r_max = 0xff + ((uv_max * vr_cfc) >> 20); g_min = 0x00 + ((uv_max * vg_cfc) >> 20) + ((uv_max * ug_cfc) >> 20); g_max = 0xff + ((uv_min * vg_cfc) >> 20) + ((uv_min * ug_cfc) >> 20); b_min = 0x00 + ((uv_min * ub_cfc) >> 20); b_max = 0xff + ((uv_max * ub_cfc) >> 20); do {} while(0); cpp = (((format) & 0x00700000) >> 20); if ((((this->dest_format) & 0x00700000) >> 20) != cpp) { void *clamp_buf; int r_size; int g_size; int b_size; int size; cpp = (cpp == 3) ? 1 : cpp; r_size = abs(r_min) + r_max + 1; g_size = abs(g_min) + g_max + 1; b_size = abs(b_min) + b_max + 1; size = (r_size + g_size + b_size) * cpp; if (proc_table.clamp.buf) { free( proc_table.clamp.buf ); proc_table.clamp.buf = ((void *)0); } clamp_buf = xine_xmalloc_aligned( 4, size, &proc_table.clamp.buf ); if (!clamp_buf) { do {} while(0); do { fprintf(stderr, "abort: %s:%d: %s: Aborting.\n", "video_out_dfb.c", 440, __FUNCTION__); abort(); } while(0); } proc_table.clamp.r = clamp_buf + abs(r_min) * cpp; proc_table.clamp.g = clamp_buf + ( r_size + abs(g_min)) * cpp; proc_table.clamp.b = clamp_buf + (g_size + r_size + abs(b_min)) * cpp; } clamp_r = proc_table.clamp.r; clamp_g = proc_table.clamp.g; clamp_b = proc_table.clamp.b; switch (format) { case DSPF_ARGB2554: alpha = 0x0000c000; break; case DSPF_ARGB4444: alpha = 0x0000f000; break; case DSPF_ARGB1555: alpha = 0x00008000; break; case DSPF_ARGB: alpha = 0xff000000; break; default: alpha = 0; break; } switch (format) { case DSPF_RGB332: for (i = 1; i < 256; i++) { ((uint8_t *)clamp_r)[i] = ((i & 0xe0)); ((uint8_t *)clamp_g)[i] = ((i & 0xe0) >> 3); ((uint8_t *)clamp_b)[i] = ((i & 0xc0) >> 6); } break; case DSPF_ARGB2554: for (i = 1; i < 256; i++) { ((uint16_t*)clamp_r)[i] = ((i & 0xf8) << 6) | 0xc000; ((uint16_t*)clamp_g)[i] = ((i & 0xf8) << 1); ((uint16_t*)clamp_b)[i] = ((i & 0xf0) >> 4); } break; case DSPF_ARGB4444: for (i = 1; i < 256; i++) { ((uint16_t*)clamp_r)[i] = ((i & 0xf0) << 4) | 0xf000; ((uint16_t*)clamp_g)[i] = ((i & 0xf0)); ((uint16_t*)clamp_b)[i] = ((i & 0xf0) >> 4); } break; case DSPF_ARGB1555: for (i = 1; i < 256; i++) { ((uint16_t*)clamp_r)[i] = ((i & 0xf8) << 7) | 0x8000; ((uint16_t*)clamp_g)[i] = ((i & 0xf8) << 2); ((uint16_t*)clamp_b)[i] = ((i & 0xf8) >> 3); } break; case DSPF_RGB16: for (i = 1; i < 256; i++) { ((uint16_t*)clamp_r)[i] = ((i & 0xf8) << 8); ((uint16_t*)clamp_g)[i] = ((i & 0xfc) << 3); ((uint16_t*)clamp_b)[i] = ((i & 0xf8) >> 3); } break; case DSPF_RGB24: for (i = 1; i < 256; i++) { ((uint8_t *)clamp_r)[i] = i; ((uint8_t *)clamp_g)[i] = i; ((uint8_t *)clamp_b)[i] = i; } break; case DSPF_RGB32: case DSPF_ARGB: case DSPF_AiRGB: for (i = 1; i < 256; i++) { ((uint32_t*)clamp_r)[i] = (i << 16) | alpha; ((uint32_t*)clamp_g)[i] = (i << 8); ((uint32_t*)clamp_b)[i] = i; } break; default: break; } switch (cpp) { case 1: case 3: memset( clamp_r + r_min, alpha, abs(r_min)+1 ); memset( clamp_r + 256, *((uint8_t*)clamp_r+255), r_max-255 ); memset( clamp_g + 256, *((uint8_t*)clamp_g+255), g_max-255 ); memset( clamp_b + 256, *((uint8_t*)clamp_b+255), b_max-255 ); break; case 2: for (i = r_min; i <= 0; i++) ((uint16_t*)clamp_r)[i] = alpha; for (i = 256; i <= r_max; i++) ((uint16_t*)clamp_r)[i] = *((uint16_t*)clamp_r+255); for (i = 256; i <= g_max; i++) ((uint16_t*)clamp_g)[i] = *((uint16_t*)clamp_g+255); for (i = 256; i <= b_max; i++) ((uint16_t*)clamp_b)[i] = *((uint16_t*)clamp_b+255); break; case 4: for (i = r_min; i <= 0; i++) ((uint32_t*)clamp_r)[i] = alpha; for (i = 256; i <= r_max; i++) ((uint32_t*)clamp_r)[i] = *((uint32_t*)clamp_r+255); for (i = 256; i <= g_max; i++) ((uint32_t*)clamp_g)[i] = *((uint32_t*)clamp_g+255); for (i = 256; i <= b_max; i++) ((uint32_t*)clamp_b)[i] = *((uint32_t*)clamp_b+255); break; default: break; } } } static uint32_t vo_dfb_get_capabilities( vo_driver_t *vo_driver ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; uint32_t caps = 0x00000001 | 0x00000002; if (this->ovl) caps |= 0x00000010; do {} while(0); return caps; } static void vo_dfb_proc_frame( vo_frame_t *vo_frame ) { dfb_driver_t *this = (dfb_driver_t*) vo_frame->driver; dfb_frame_t *frame = (dfb_frame_t*) vo_frame; do { if (!(frame->surface != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 579, __FUNCTION__, "frame->surface != NULL"); abort(); } } while(0); if (!frame->surface) return; vo_frame->proc_called = 1; if (frame->proc_needed) { DVProcFunc procf = ProcFuncs[frame->in_format][frame->out_format]; ; procf( frame ); (void) this;; } } static void vo_dfb_frame_field( vo_frame_t *vo_frame, int which_field ) { } static void vo_dfb_frame_dispose( vo_frame_t *vo_frame ) { dfb_frame_t *frame = (dfb_frame_t*) vo_frame; if (frame) { if (frame->surface) dfb_surface_unref( frame->surface ); if (frame->chunk[0]) free( frame->chunk[0] ); if (frame->chunk[1]) free( frame->chunk[1] ); if (frame->chunk[2]) free( frame->chunk[2] ); free( frame ); } } static vo_frame_t* vo_dfb_alloc_frame( vo_driver_t *vo_driver ) { dfb_frame_t *frame; frame = (dfb_frame_t*) xine_xmalloc( sizeof(dfb_frame_t) ); if (!frame) { do {} while(0); return ((void *)0); } pthread_mutex_init( &frame->vo_frame.mutex, ((void *)0) ); frame->vo_frame.proc_slice = ((void *)0); frame->vo_frame.proc_frame = vo_dfb_proc_frame; frame->vo_frame.field = vo_dfb_frame_field; frame->vo_frame.dispose = vo_dfb_frame_dispose; frame->vo_frame.driver = vo_driver; return (vo_frame_t*) frame; } static inline void vo_dfb_allocate_yuy2( dfb_frame_t *frame, DFBSurfacePixelFormat dst_format ) { vo_frame_t *vo_frame = &frame->vo_frame; switch (dst_format) { case DSPF_YUY2: if (frame->mixer_set == MF_NONE) frame->proc_needed = (0); case DSPF_UYVY: case DSPF_ARGB2554: case DSPF_ARGB4444: case DSPF_ARGB1555: case DSPF_RGB16: vo_frame->pitches[0] = frame->out_pitch[0]; vo_frame->base[0] = frame->out_plane[0]; break; default: vo_frame->pitches[0] = frame->width * 2; vo_frame->base[0] = xine_xmalloc_aligned( 16, vo_frame->pitches[0]*frame->height, &frame->chunk[0] ); break; } } static inline void vo_dfb_allocate_yv12( dfb_frame_t *frame, DFBSurfacePixelFormat dst_format ) { vo_frame_t *vo_frame = &frame->vo_frame; switch (dst_format) { case DSPF_YV12: case DSPF_I420: if (frame->mixer_set == MF_NONE) frame->proc_needed = (0); vo_frame->pitches[0] = frame->out_pitch[0]; vo_frame->pitches[1] = frame->out_pitch[1]; vo_frame->pitches[2] = frame->out_pitch[2]; vo_frame->base[0] = frame->out_plane[0]; vo_frame->base[1] = frame->out_plane[1]; vo_frame->base[2] = frame->out_plane[2]; break; case DSPF_NV12: case DSPF_NV21: case DSPF_NV16: vo_frame->pitches[0] = frame->out_pitch[0]; vo_frame->pitches[1] = frame->width / 2; vo_frame->pitches[2] = frame->width / 2; vo_frame->base[0] = frame->out_plane[0]; vo_frame->base[1] = xine_xmalloc_aligned( 16, vo_frame->pitches[1]*(frame->height/2)+2, &frame->chunk[1] ); vo_frame->base[2] = xine_xmalloc_aligned( 16, vo_frame->pitches[2]*(frame->height/2)+2, &frame->chunk[2] ); break; default: vo_frame->pitches[0] = frame->width; vo_frame->pitches[1] = frame->width / 2; vo_frame->pitches[2] = frame->width / 2; vo_frame->base[0] = xine_xmalloc_aligned( 16, vo_frame->pitches[0]*frame->height, &frame->chunk[0] ); vo_frame->base[1] = xine_xmalloc_aligned( 16, vo_frame->pitches[1]*(frame->height/2)+2, &frame->chunk[1] ); vo_frame->base[2] = xine_xmalloc_aligned( 16, vo_frame->pitches[2]*(frame->height/2)+2, &frame->chunk[2] ); break; } } static inline void vo_dfb_notify_reformat( dfb_driver_t *this, int width, int height, double ratio, DFBSurfacePixelFormat format ) { DFBRectangle rect; int src_width = (((width)>(2)) ? (width) : (2)); int src_height = (((height)>(2)) ? (height) : (2)); double src_ratio = this->output_ratio ? : ratio; DFBSurfacePixelFormat dest_format = DSPF_UNKNOWN; if (this->aspect_ratio == 1) { src_ratio = (double) (width ? : 1) / (double) (height ? : 1); this->output_ratio = src_ratio; } this->output_cb( this->output_cdata, src_width, src_height, src_ratio ? : 1, format, &rect ); this->dest->GetPixelFormat( this->dest, &dest_format ); vo_dfb_tables_regen( this, MF_NONE, dest_format ); this->dest_format = dest_format; } static void vo_dfb_update_frame_format( vo_driver_t *vo_driver, vo_frame_t *vo_frame, uint32_t width, uint32_t height, double ratio, int format, int flags ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; dfb_frame_t *frame = (dfb_frame_t*) vo_frame; int in_format; int out_format; do { if (!(this->dest != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 764, __FUNCTION__, "this->dest != NULL"); abort(); } } while(0); if (!this->dest) goto failure; width = (width > 8) ? ((width+3) & ~3) : 8; height = (height > 2) ? ((height+1) & ~1) : 2; in_format = (format == (('2'<<24)|('Y'<<16)|('U'<<8)|'Y')) ? 0 : 1; out_format = (((this->dest_format) & 0x0000007F) ); if (frame->width != width || frame->height != height || frame->in_format != in_format || frame->out_format != out_format || frame->mixer_set != this->mixer.set) { SurfaceBuffer *buffer; DFBSurfacePixelFormat frame_format; DFBResult err; do {} while(0); frame_format = (in_format) ? DSPF_YV12 : DSPF_YUY2; if (this->frame_format != frame_format || this->frame_width != vo_frame->width || this->frame_height != vo_frame->height) { do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: frame format changed to %dx%d %s\n", vo_frame->width, vo_frame->height, in_format ? "YV12" : "YUY2"); } } while(0); vo_dfb_notify_reformat( this, vo_frame->width, vo_frame->height, vo_frame->ratio, frame_format ); out_format = (((this->dest_format) & 0x0000007F) ); this->frame_format = frame_format; this->frame_width = vo_frame->width; this->frame_height = vo_frame->height; } if (!frame->surface) err = dfb_surface_create( ((void *)0), width, height, this->dest_format, CSP_SYSTEMONLY, DSCAPS_SYSTEMONLY, ((void *)0), &frame->surface ); else err = dfb_surface_reformat( ((void *)0), frame->surface, width, height, this->dest_format ); if (err != DFB_OK) { do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: " "error creating/reformatting frame surface (%s)\n", DirectFBErrorString( err )); } } while(0); goto failure; } if (frame->chunk[0]) free( frame->chunk[0] ); if (frame->chunk[1]) free( frame->chunk[1] ); if (frame->chunk[2]) free( frame->chunk[2] ); frame->width = width; frame->height = height; frame->area = width * height; frame->in_format = in_format; frame->out_format = out_format; frame->chunk[0] = ((void *)0); frame->chunk[1] = ((void *)0); frame->chunk[2] = ((void *)0); frame->mixer_set = this->mixer.set; frame->proc_needed = (!(0)); buffer = frame->surface->back_buffer; frame->out_pitch[0] = buffer->system.pitch; frame->out_plane[0] = buffer->system.addr; switch (buffer->format) { case DSPF_YV12: frame->out_pitch[1] = frame->out_pitch[0] / 2; frame->out_pitch[2] = frame->out_pitch[0] / 2; frame->out_plane[2] = frame->out_plane[0] + frame->out_pitch[0]*height; frame->out_plane[1] = frame->out_plane[2] + frame->out_pitch[2]*height/2; break; case DSPF_I420: frame->out_pitch[1] = frame->out_pitch[0] / 2; frame->out_pitch[2] = frame->out_pitch[0] / 2; frame->out_plane[1] = frame->out_plane[0] + frame->out_pitch[0]*height; frame->out_plane[2] = frame->out_plane[1] + frame->out_pitch[1]*height/2; break; case DSPF_NV12: case DSPF_NV21: case DSPF_NV16: frame->out_pitch[1] = frame->out_pitch[0] & ~1; frame->out_plane[1] = frame->out_plane[0] + frame->out_pitch[0]*height; break; default: break; } switch (format) { case (('2'<<24)|('Y'<<16)|('U'<<8)|'Y'): vo_dfb_allocate_yuy2( frame, buffer->format ); break; case (('2'<<24)|('1'<<16)|('V'<<8)|'Y'): default: vo_dfb_allocate_yv12( frame, buffer->format ); break; } } return; failure: if (frame->surface) { dfb_surface_unref( frame->surface ); frame->surface = ((void *)0); } } #define HILI(x) hili_ ##x static void vo_dfb_set_palette( dfb_driver_t *this, vo_overlay_t *overlay, DFBSurfacePixelFormat format ) { DVColor *palette; uint8_t *clut; uint8_t *trans; int i; if (!overlay->rgb_clut) { palette = (DVColor*) &overlay->color[0]; clut = (uint8_t*) &overlay->color[0]; trans = &overlay->trans[0]; switch (format) { case DSPF_UYVY: case DSPF_YUY2: case DSPF_YV12: case DSPF_I420: case DSPF_NV12: case DSPF_NV21: case DSPF_NV16: for (i = 0; i < 256; i++, clut += 4) { int y, u, v; y = proc_table.lm[*(clut+2)]; u = proc_table.uv[*(clut+0)]; v = proc_table.uv[*(clut+1)]; palette[i].yuv.a = trans[i] * 255 / 15; palette[i].yuv.y = y; palette[i].yuv.u = u; palette[i].yuv.v = v; } break; default: for (i = 0; i < 256; i++, clut += 4) { int y, u, v, r, g, b; y = proc_table.lm[*(clut+2)]; u = *(clut+0); v = *(clut+1); r = y + proc_table.vr[v]; g = y + proc_table.vg[v] + proc_table.ug[u]; b = y + proc_table.ub[u]; palette[i].rgb.a = trans[i] * 255 / 15; palette[i].rgb.r = (((r)<(0)) ? (0) : (((r)>(0xff)) ? (0xff) : (r))); palette[i].rgb.g = (((g)<(0)) ? (0) : (((g)>(0xff)) ? (0xff) : (g))); palette[i].rgb.b = (((b)<(0)) ? (0) : (((b)>(0xff)) ? (0xff) : (b))); } break; } overlay->rgb_clut++; } if (!overlay->hili_rgb_clut) { palette = (DVColor*) &overlay->hili_color[0]; clut = (uint8_t*) &overlay->hili_color[0]; trans = &overlay->hili_trans[0]; switch (format) { case DSPF_UYVY: case DSPF_YUY2: case DSPF_YV12: case DSPF_I420: case DSPF_NV12: case DSPF_NV21: case DSPF_NV16: for (i = 0; i < 256; i++, clut += 4) { int y, u, v; y = proc_table.lm[*(clut+2)]; u = proc_table.uv[*(clut+0)]; v = proc_table.uv[*(clut+1)]; palette[i].yuv.a = trans[i] * 255 / 15; palette[i].yuv.y = y; palette[i].yuv.u = u; palette[i].yuv.v = v; } break; default: for (i = 0; i < 256; i++, clut += 4) { int y, u, v, r, g, b; y = proc_table.lm[*(clut+2)]; u = *(clut+0); v = *(clut+1); r = y + proc_table.vr[v]; g = y + proc_table.vg[v] + proc_table.ug[u]; b = y + proc_table.ub[u]; palette[i].rgb.a = trans[i] * 255 / 15; palette[i].rgb.r = (((r)<(0)) ? (0) : (((r)>(0xff)) ? (0xff) : (r))); palette[i].rgb.g = (((g)<(0)) ? (0) : (((g)>(0xff)) ? (0xff) : (g))); palette[i].rgb.b = (((b)<(0)) ? (0) : (((b)>(0xff)) ? (0xff) : (b))); } break; } overlay->hili_rgb_clut++; } } static void vo_dfb_overlay_begin( vo_driver_t *vo_driver, vo_frame_t *vo_frame, int changed ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; this->ovl_changed += changed; if (this->ovl) { IDirectFBSurface_data *ovl_data = this->ovl_data; int ovl_width = ovl_data->area.current.w; int ovl_height = ovl_data->area.current.h; if (this->ovl_changed || this->ovl_width != ovl_width || this->ovl_height != ovl_height) { DFBColor color = { 0, 0, 0, 0 }; DFBRectangle rect = ovl_data->area.current; DFBRegion clip; do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: " "overlay changed, clearing subpicture surface\n"); } } while(0); dfb_region_from_rectangle( &clip, &rect ); dfb_state_set_destination( &this->state, ovl_data->surface ); dfb_state_set_color( &this->state, &color ); dfb_state_set_clip( &this->state, &clip ); dfb_gfxcard_fillrectangles( &rect, 1, &this->state ); this->ovl_width = ovl_width; this->ovl_height = ovl_height; if (!this->ovl_changed) this->ovl_changed = 1; } } } static void vo_dfb_overlay_blend( vo_driver_t *vo_driver, vo_frame_t *vo_frame, vo_overlay_t *overlay ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; dfb_frame_t *frame = (dfb_frame_t*) vo_frame; bool use_ovl = (0); int x = overlay->x; int y = overlay->y; DFBRegion clip; DFBRegion subclip; int i; do { if (!(frame->surface != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1063, __FUNCTION__, "frame->surface != NULL"); abort(); } } while(0); do { if (!(overlay->rle != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1064, __FUNCTION__, "overlay->rle != NULL"); abort(); } } while(0); if (!frame->surface) return; if (!overlay->rle) return; if (this->ovl) { use_ovl = (overlay->unscaled || (vo_frame->width == this->ovl_data->area.wanted.w && vo_frame->height == this->ovl_data->area.wanted.h)); } if (!overlay->rgb_clut || !overlay->hili_rgb_clut) { do {} while(0); vo_dfb_set_palette( this, overlay, (!use_ovl) ? frame->surface->format : this->ovl_data->surface->format ); } ; subclip.x1 = x + overlay->hili_left; subclip.y1 = y + overlay->hili_top; subclip.x2 = x + overlay->hili_right; subclip.y2 = y + overlay->hili_bottom; if (use_ovl) { IDirectFBSurface_data *ovl_data = this->ovl_data; int r = 0; DFBRectangle rects[98]; if (!this->ovl_changed) return; clip.x1 = ovl_data->area.wanted.x + (((x)>(0)) ? (x) : (0)); clip.y1 = ovl_data->area.wanted.y + (((y)>(0)) ? (y) : (0)); clip.x2 = clip.x1 + overlay->width - 1; clip.y2 = clip.y1 + overlay->height - 1; if (!dfb_region_rectangle_intersect( &clip, &ovl_data->area.current )) return; dfb_state_set_destination( &this->state, ovl_data->surface ); dfb_state_set_clip( &this->state, &clip ); for (i = 0; i < overlay->num_rle; i++) { int index = overlay->rle[i].color; int len = overlay->rle[i].len; while (len > 0) { DVColor *palette = (DVColor*) &overlay->color[0]; int width; if (len > overlay->width) { width = overlay->width; len -= overlay->width; } else { width = len; len = 0; } if (y >= subclip.y1 && y <= subclip.y2 && x <= subclip.x2) { if (x < subclip.x1 && (x + width - 1) >= subclip.x1) { width -= subclip.x1 - x; len += subclip.x1 - x; } else if (x > subclip.x1) { palette = (DVColor*) &overlay->hili_color[0]; if ((x + width - 1) > subclip.x2) { width -= subclip.x2 - x; len += subclip.x2 - x; } } } if (palette[index].rgb.a) { rects[r].x = x; rects[r].y = y; rects[r].w = width; rects[r].h = 1; r++; dfb_state_set_color( &this->state, (DFBColor*) &palette[index] ); if (this->state.modified & SMF_COLOR || r == (sizeof(rects)/sizeof(rects[0]))) { dfb_gfxcard_fillrectangles( &rects[0], r, &this->state ); r = 0; } } x += width; if (x >= (overlay->x + overlay->width)) { x = overlay->x; y++; } } } if (r) dfb_gfxcard_fillrectangles( &rects[0], r, &this->state ); } else { DVBlendFunc blendf = BlendFuncs[frame->out_format]; DVBlender blender; if (x >= frame->width || y >= frame->height) return; clip.x2 = clip.x1 = (((x)>(0)) ? (x) : (0)); clip.y2 = clip.y1 = (((y)>(0)) ? (y) : (0)); clip.x2 += (((overlay->width)<(2)) ? (2) : (((overlay->width)>(frame->width - clip.x1)) ? (frame->width - clip.x1) : (overlay->width))) - 1; clip.y2 += (((overlay->height)<(2)) ? (2) : (((overlay->height)>(frame->height - clip.y1)) ? (frame->height - clip.y1) : (overlay->height))) - 1; blender.plane[0] = frame->out_plane[0]; blender.plane[1] = frame->out_plane[1]; blender.plane[2] = frame->out_plane[2]; blender.pitch[0] = frame->out_pitch[0]; blender.pitch[1] = frame->out_pitch[1]; blender.pitch[2] = frame->out_pitch[2]; blender.period[0] = 0; blender.period[1] = 0; blender.plane[0] += clip.y1 * blender.pitch[0]; switch (frame->surface->format) { case DSPF_NV16: blender.plane[1] += clip.y1 * blender.pitch[1]; blender.period[0] = 0xffffffff; break; case DSPF_YV12: case DSPF_I420: blender.plane[2] += clip.y1/2 * blender.pitch[2]; blender.period[1] = 0x00000001; case DSPF_NV12: case DSPF_NV21: blender.plane[1] += clip.y1/2 * blender.pitch[1]; blender.period[0] = 0x00000001; break; default: break; } for (i = 0; i < overlay->num_rle; i++) { int index = overlay->rle[i].color; int len = overlay->rle[i].len; while (len > 0) { DVColor *palette = (DVColor*) &overlay->color[0]; int width; if (len > overlay->width) { width = overlay->width; len -= overlay->width; } else { width = len; len = 0; } if (y >= subclip.y1 && y <= subclip.y2 && x <= subclip.x2) { if (x < subclip.x1 && (x + width - 1) >= subclip.x1) { width -= subclip.x1 - x; len += subclip.x1 - x; } else if (x > subclip.x1) { palette = (DVColor*) &overlay->hili_color[0]; if ((x + width - 1) > subclip.x2) { width -= subclip.x2 - x; len += subclip.x2 - x; } } } if (palette[index].rgb.a) { if (y >= clip.y1 && x >= clip.x1 && x <= clip.x2) { blender.x = x; blender.y = y; blender.len = (((width)<(clip.x2 - x + 1)) ? (width) : (clip.x2 - x + 1)); if (blender.len > 0) blendf( &blender, &palette[index] ); } } x += width; if (x >= (overlay->x + overlay->width)) { x = overlay->x; if (++y > clip.y2) goto end; if (y > clip.y1) { blender.plane[0] += blender.pitch[0]; if (y & blender.period[0]) blender.plane[1] += blender.pitch[1]; if (y & blender.period[1]) blender.plane[2] += blender.pitch[2]; } } } } } end: (void) this;; } static void vo_dfb_overlay_end( vo_driver_t *vo_driver, vo_frame_t *vo_frame ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; if (this->ovl && this->ovl_changed) { if (this->ovl_data->caps & DSCAPS_FLIPPING) this->ovl->Flip( this->ovl, ((void *)0), DSFLIP_ONSYNC ); dfb_state_set_destination( &this->state, this->dest_data->surface ); } this->ovl_changed = 0; } static int vo_dfb_redraw_needed( vo_driver_t *vo_driver ) { return 0; } static void vo_dfb_display_frame( vo_driver_t *vo_driver, vo_frame_t *vo_frame ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; dfb_frame_t *frame = (dfb_frame_t*) vo_frame; DFBRectangle dst_rect = { 0, 0, 0, 0 }; DFBRectangle src_rect = { 0, 0, }; double src_ratio; do { if (!(frame->surface != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1312, __FUNCTION__, "frame->surface != NULL"); abort(); } } while(0); if (!frame->surface) goto failure; src_rect.w = (((vo_frame->width)>(2)) ? (vo_frame->width) : (2)); src_rect.h = (((vo_frame->height)>(2)) ? (vo_frame->height) : (2)); src_ratio = this->output_ratio ? : vo_frame->ratio; this->output_cb( this->output_cdata, src_rect.w, src_rect.h, src_ratio ? : 1.0, this->frame_format, &dst_rect ); dst_rect.x += this->dest_data->area.wanted.x; dst_rect.y += this->dest_data->area.wanted.y; if (dst_rect.w < 1 || dst_rect.h < 1) dst_rect = this->dest_data->area.wanted; if (!dfb_rectangle_intersect( &dst_rect, &this->dest_data->area.current )) goto failure; this->state.clip.x1 = dst_rect.x; this->state.clip.x2 = dst_rect.x + dst_rect.w - 1; this->state.clip.y1 = dst_rect.y; this->state.clip.y2 = dst_rect.y + dst_rect.h - 1; this->state.source = frame->surface; this->state.modified |= (SMF_CLIP | SMF_SOURCE); if (this->deinterlace) { frame->surface->field = this->deinterlace - 1; do { do { do {} while (0); do {} while (0); } while (0); if ((DSBLIT_DEINTERLACE) != (&this->state)->blittingflags) { (&this->state)->blittingflags = (DSBLIT_DEINTERLACE); (&this->state)->modified |= SMF_BLITTING_FLAGS; } } while (0); } else do { do { do {} while (0); do {} while (0); } while (0); if ((DSBLIT_NOFX) != (&this->state)->blittingflags) { (&this->state)->blittingflags = (DSBLIT_NOFX); (&this->state)->modified |= SMF_BLITTING_FLAGS; } } while (0); if (dst_rect.w == src_rect.w && dst_rect.h == src_rect.h) dfb_gfxcard_blit( &src_rect, dst_rect.x, dst_rect.y, &this->state ); else dfb_gfxcard_stretchblit( &src_rect, &dst_rect, &this->state ); if (this->frame_cb) this->frame_cb( this->frame_cdata ); failure: vo_frame->free( vo_frame ); } static int vo_dfb_get_property( vo_driver_t *vo_driver, int property ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; switch (property) { case 0: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: interlaced is %i\n", this->deinterlace); } } while(0); return this->deinterlace; case 1: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: aspect ratio is %i (%.4f)\n", this->aspect_ratio, this->output_ratio); } } while(0); return this->aspect_ratio; case 5: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: brightness is %i\n", this->mixer.b); } } while(0); return this->mixer.b; case 4: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: contrast is %i\n", this->mixer.c); } } while(0); return this->mixer.c; case 3: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: saturation is %i\n", this->mixer.s); } } while(0); return this->mixer.s; case 11: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: maximum number of frames is %i\n", this->config.max_num_frames); } } while(0); return this->config.max_num_frames; case 15: if (this->ovl || this->dest) { IDirectFBSurface_data *data = this->ovl_data ? : this->dest_data; do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: window width is %i\n", data->area.wanted.w); } } while(0); return data->area.wanted.w; } break; case 16: if (this->ovl || this->dest) { IDirectFBSurface_data *data = this->ovl_data ? : this->dest_data; do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: window height is %i\n", data->area.wanted.h); } } while(0); return data->area.wanted.h; } break; default: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: tried to get unsupported property %i\n", property); } } while(0); break; } return 0; } static inline void vo_dfb_set_output_ratio( dfb_driver_t *this, int ratio ) { double frame_width = (this->frame_width ? : 1); double frame_height = (this->frame_height ? : 1); switch (ratio) { case 0: this->output_ratio = 0.0; break; case 1: this->output_ratio = frame_width/frame_height; break; case 2: this->output_ratio = 4.0/3.0; break; case 3: this->output_ratio = 16.0/9.0; break; case 4: this->output_ratio = 2.0; break; default: this->output_ratio = (double)(ratio >> 16) / (double)(ratio & 0xffff); break; } } static int vo_dfb_set_property( vo_driver_t *vo_driver, int property, int value ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; switch (property) { case 0: if (value >= 0 && value <= 2) { do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting deinterlacing to %i\n", value); } } while(0); this->deinterlace = value; } break; case 1: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting aspect ratio to %i\n", value); } } while(0); vo_dfb_set_output_ratio( this, value ); this->aspect_ratio = value; break; case 5: if (value >= -128 && value <= 127) { if (this->mixer.b != value) { do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting brightness to %i\n", value); } } while(0); this->mixer.b = value; vo_dfb_tables_regen( this, MF_B, this->dest_format ); } } break; case 4: if (value >= 0 && value <= 255) { if (this->mixer.c != value ) { do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting contrast to %i\n", value); } } while(0); this->mixer.c = value; vo_dfb_tables_regen( this, MF_C, this->dest_format ); } } break; case 3: if (value >= 0 && value <= 255) { if (this->mixer.s != value) { do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting saturation to %i\n", value); } } while(0); this->mixer.s = value; vo_dfb_tables_regen( this, MF_S, this->dest_format ); } } break; default: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: tried to set unsupported property %i\n", property); } } while(0); break; } return value; } static void vo_dfb_get_property_min_max( vo_driver_t *vo_driver, int property, int *min, int *max ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; switch (property) { case 0: *min = 0; *max = +2; break; case 1: *min = 0; *max = +0xffffffff; break; case 5: *min = -128; *max = +127; break; case 4: *min = 0; *max = 255; break; case 3: *min = 0; *max = 255; break; default: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: requested min/max for unsupported property %i\n", property); } } while(0); *min = 0; *max = 0; break; } } static bool vo_dfb_set_destination( dfb_driver_t *this, IDirectFBSurface *destination ) { struct DFBPixelFormatName { DFBSurfacePixelFormat format; const char *name; } format_names[] = { { DSPF_ARGB1555, "ARGB1555" }, { DSPF_RGB16, "RGB16" }, { DSPF_RGB24, "RGB24" }, { DSPF_RGB32, "RGB32" }, { DSPF_ARGB, "ARGB" }, { DSPF_A8, "A8" }, { DSPF_YUY2, "YUY2" }, { DSPF_RGB332, "RGB332" }, { DSPF_UYVY, "UYVY" }, { DSPF_I420, "I420" }, { DSPF_YV12, "YV12" }, { DSPF_LUT8, "LUT8" }, { DSPF_ALUT44, "ALUT44" }, { DSPF_AiRGB, "AiRGB" }, { DSPF_A1, "A1" }, { DSPF_NV12, "NV12" }, { DSPF_NV16, "NV16" }, { DSPF_ARGB2554, "ARGB2554" }, { DSPF_ARGB4444, "ARGB4444" }, { DSPF_NV21, "NV21" }, { DSPF_AYUV, "AYUV" }, { DSPF_UNKNOWN, "UNKNOWN" } };; DFBSurfacePixelFormat format = DSPF_UNKNOWN; DFBResult err; if (this->dest) { this->dest->Release( this->dest ); this->dest = ((void *)0); this->dest_data = ((void *)0); } if (!destination->priv) { do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: got a dead destination surface!!!\n"); } } while(0); return (0); } err = destination->GetPixelFormat( destination, &format ); if (err != DFB_OK) { do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: " "IDirectFBSurface::GetPixelFormat() returned \"%s\"!!\n", DirectFBErrorString( err )); } } while(0); return (0); } if (!ProcFuncs[0][(((format) & 0x0000007F) )] || !ProcFuncs[1][(((format) & 0x0000007F) )]) { do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: " "unsupported destination surface format (%s)\n", format_names[(((format) & 0x0000007F) )].name); } } while(0); return (0); } do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: destination surface is %s\n", format_names[(((format) & 0x0000007F) )].name); } } while(0); destination->AddRef( destination ); this->dest = destination; this->dest_data = (IDirectFBSurface_data*) destination->priv; dfb_state_set_destination( &this->state, this->dest_data->surface ); vo_dfb_tables_regen( this, MF_NONE, format ); this->dest_format = format; return (!(0)); } static bool vo_dfb_set_subpicture( dfb_driver_t *this, IDirectFBSurface *subpicture ) { struct DFBPixelFormatName { DFBSurfacePixelFormat format; const char *name; } format_names[] = { { DSPF_ARGB1555, "ARGB1555" }, { DSPF_RGB16, "RGB16" }, { DSPF_RGB24, "RGB24" }, { DSPF_RGB32, "RGB32" }, { DSPF_ARGB, "ARGB" }, { DSPF_A8, "A8" }, { DSPF_YUY2, "YUY2" }, { DSPF_RGB332, "RGB332" }, { DSPF_UYVY, "UYVY" }, { DSPF_I420, "I420" }, { DSPF_YV12, "YV12" }, { DSPF_LUT8, "LUT8" }, { DSPF_ALUT44, "ALUT44" }, { DSPF_AiRGB, "AiRGB" }, { DSPF_A1, "A1" }, { DSPF_NV12, "NV12" }, { DSPF_NV16, "NV16" }, { DSPF_ARGB2554, "ARGB2554" }, { DSPF_ARGB4444, "ARGB4444" }, { DSPF_NV21, "NV21" }, { DSPF_AYUV, "AYUV" }, { DSPF_UNKNOWN, "UNKNOWN" } };; DFBSurfacePixelFormat format = DSPF_UNKNOWN; DFBResult err; if (this->ovl) { this->ovl->Release( this->ovl ); this->ovl = ((void *)0); this->ovl_data = ((void *)0); } if (!subpicture->priv) { do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: got a dead subpicture surface!!!\n"); } } while(0); return (0); } err = subpicture->GetPixelFormat( subpicture, &format ); if (err != DFB_OK) { do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: " "IDirectFBSurface::GetPixelFormat() returned \"%s\"!!\n", DirectFBErrorString( err )); } } while(0); return (0); } if ((((format) & 0x40000000) >> 30)) { do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: " "indexed formats not yet supported for subpicture!!\n"); } } while(0); return (0); } do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: subpicture surface is %s\n", format_names[(((format) & 0x0000007F) )].name); } } while(0); subpicture->AddRef( subpicture ); this->ovl = subpicture; this->ovl_data = (IDirectFBSurface_data*) subpicture->priv; this->ovl_width = -1; this->ovl_height = -1; return (!(0)); } static int vo_dfb_gui_data_exchange( vo_driver_t *vo_driver, int data_type, void *data ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; switch (data_type) { case 2: if (data) { IDirectFBSurface *surface = (IDirectFBSurface*) data; if (surface != this->dest) return vo_dfb_set_destination( this, surface ); return 1; } break; case 8: if (data) { dfb_visual_t *visual = (dfb_visual_t*) data; if (!visual->output_cb || !visual->destination) return 0; this->output_cb = visual->output_cb; this->output_cdata = visual->output_cdata; this->frame_cb = visual->frame_cb; this->frame_cdata = visual->frame_cdata; if (visual->destination != this->dest) { if (!vo_dfb_set_destination( this, visual->destination )) return 0; } if (!visual->subpicture) { if (this->ovl) this->ovl->Release( this->ovl ); this->ovl = ((void *)0); this->ovl_data = ((void *)0); } else if (visual->subpicture != this->ovl) { if (!vo_dfb_set_subpicture( this, visual->subpicture )) return 0; } return 1; } break; case 4: if (data) { this->frame_cb = ((dfb_framecallback_t*)data)->frame_cb; this->frame_cdata = ((dfb_framecallback_t*)data)->cdata; } else { this->frame_cb = ((void *)0); this->frame_cdata = ((void *)0); } do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: %s DVFrameCallback\n", (this->frame_cb) ? "registered new" : "unregistered"); } } while(0); return 1; default: do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: unknown data type %i", data_type); } } while(0); break; } return 0; } static void vo_dfb_dispose( vo_driver_t *vo_driver ) { dfb_driver_t *this = (dfb_driver_t*) vo_driver; if (this) { if (proc_table.clamp.buf) free( proc_table.clamp.buf ); if (this->dest) this->dest->Release( this->dest ); if (this->ovl) this->ovl->Release( this->ovl ); dfb_state_set_destination( &this->state, ((void *)0) ); this->state.source = ((void *)0); dfb_state_destroy( &this->state ); free( this ); } } static void vo_dfb_init_config( dfb_driver_t *this ) { config_values_t *config = this->xine->config; static const char *matrices_enum[(sizeof(proc_matrices)/sizeof(DVProcMatrix))]; int i; for (i = 0; i < (sizeof(proc_matrices)/sizeof(DVProcMatrix)); i++) matrices_enum[i] = proc_matrices[i].name; this->config.max_num_frames = config->register_num( config, "video.dfb.max_num_frames", 15, "Maximum number of allocated frames (at least 5)", ((void *)0), 10, ((void *)0), ((void *)0) ); this->config.proc_matrix = config->register_enum( config, "video.dfb.conversion_matrix", 0, (char**) &matrices_enum[0], "Select the conversion matrix", ((void *)0), 10, ((void *)0), ((void *)0) ); this->config.enable_mmx = config->register_bool( config, "video.dfb.enable_mmx", 1, "Enable MMX when available", ((void *)0), 10, ((void *)0),((void *)0) ); } static vo_driver_t* open_plugin( video_driver_class_t *vo_class, const void *vo_visual ) { dfb_driver_class_t *class = (dfb_driver_class_t*) vo_class; dfb_visual_t *visual = (dfb_visual_t*) vo_visual; dfb_driver_t *this = ((void *)0); do { if (!(visual != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1810, __FUNCTION__, "visual != NULL"); abort(); } } while(0); if (!visual->output_cb) return ((void *)0); this = (dfb_driver_t*) xine_xmalloc( sizeof(dfb_driver_t) ); if (!this) { do {} while(0); return ((void *)0); } this->vo_driver.get_capabilities = vo_dfb_get_capabilities; this->vo_driver.alloc_frame = vo_dfb_alloc_frame; this->vo_driver.update_frame_format = vo_dfb_update_frame_format; this->vo_driver.overlay_begin = vo_dfb_overlay_begin; this->vo_driver.overlay_blend = vo_dfb_overlay_blend; this->vo_driver.overlay_end = vo_dfb_overlay_end; this->vo_driver.display_frame = vo_dfb_display_frame; this->vo_driver.get_property = vo_dfb_get_property; this->vo_driver.set_property = vo_dfb_set_property; this->vo_driver.get_property_min_max = vo_dfb_get_property_min_max; this->vo_driver.gui_data_exchange = vo_dfb_gui_data_exchange; this->vo_driver.redraw_needed = vo_dfb_redraw_needed; this->vo_driver.dispose = vo_dfb_dispose; this->xine = class->xine; vo_dfb_init_config( this ); do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: using %s conversion matrix\n", proc_matrices[this->config.proc_matrix].name); } } while(0); if ((xine_mm_accel() & 0x80000000) == 0x80000000) { if (this->config.enable_mmx) { do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: MMX detected and enabled\n"); } } while(0); this->accel = 0x80000000; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_YUY2) & 0x0000007F) )] = __mmx_yuy2_be_yuy2; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_UYVY) & 0x0000007F) )] = __mmx_yuy2_be_uyvy; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_YV12) & 0x0000007F) )] = __mmx_yuy2_be_yv12; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_I420) & 0x0000007F) )] = __mmx_yuy2_be_yv12; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_NV12) & 0x0000007F) )] = __mmx_yuy2_be_nv12; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_NV21) & 0x0000007F) )] = __mmx_yuy2_be_nv21; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_NV16) & 0x0000007F) )] = __mmx_yuy2_be_nv16; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB332) & 0x0000007F) )] = __mmx_yuy2_be_rgb332; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_ARGB1555) & 0x0000007F) )] = __mmx_yuy2_be_argb1555; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB16) & 0x0000007F) )] = __mmx_yuy2_be_rgb16; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB24) & 0x0000007F) )] = __mmx_yuy2_be_rgb24; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB32) & 0x0000007F) )] = __mmx_yuy2_be_rgb32; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_ARGB) & 0x0000007F) )] = __mmx_yuy2_be_argb; ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_AiRGB) & 0x0000007F) )] = __mmx_yuy2_be_rgb32; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_YUY2) & 0x0000007F) )] = __mmx_yv12_be_yuy2; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_UYVY) & 0x0000007F) )] = __mmx_yv12_be_uyvy; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_YV12) & 0x0000007F) )] = __mmx_yv12_be_yv12; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_I420) & 0x0000007F) )] = __mmx_yv12_be_yv12; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_NV12) & 0x0000007F) )] = __mmx_yv12_be_nv12; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_NV21) & 0x0000007F) )] = __mmx_yv12_be_nv21; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_NV16) & 0x0000007F) )] = __mmx_yv12_be_nv16; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB332) & 0x0000007F) )] = __mmx_yv12_be_rgb332; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_ARGB1555) & 0x0000007F) )] = __mmx_yv12_be_argb1555; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB16) & 0x0000007F) )] = __mmx_yv12_be_rgb16; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB24) & 0x0000007F) )] = __mmx_yv12_be_rgb24; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB32) & 0x0000007F) )] = __mmx_yv12_be_rgb32; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_ARGB) & 0x0000007F) )] = __mmx_yv12_be_argb; ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_AiRGB) & 0x0000007F) )] = __mmx_yv12_be_rgb32; } else do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: MMX detected but disabled\n"); } } while(0); } dfb_state_init( &this->state, ((void *)0) ); this->mixer.b = 0; this->mixer.c = +128; this->mixer.s = +128; this->mixer.set = MF_NONE; memset( &proc_table, 0, sizeof(proc_table) ); if (visual->destination) { if (!vo_dfb_set_destination( this, visual->destination )) { free( this ); return ((void *)0); } } if (visual->subpicture) vo_dfb_set_subpicture( this, visual->subpicture ); this->output_cb = visual->output_cb; this->output_cdata = visual->output_cdata; this->frame_cb = visual->frame_cb; this->frame_cdata = visual->frame_cdata; return (vo_driver_t*) this; } static char* get_identifier( video_driver_class_t *vo_class ) { return "DFB"; } static char* get_description( video_driver_class_t *vo_class) { return "generic DirectFB video output driver"; } static void dispose_class( video_driver_class_t *vo_class ) { free( vo_class ); } static void* init_class( xine_t *xine, void *vo_visual ) { dfb_driver_class_t *class; const char *error; if (!vo_visual) { do { if((xine) && (xine)->verbosity >= 2){ xine_log(xine, 2, "video_out_dfb: got a null visual!\n"); } } while(0); return ((void *)0); } error = DirectFBCheckVersion( (0), (9), (25) ); if (error) { fprintf( stderr, "video_out_dfb: %s !!!\n", error ); return ((void *)0); } class = (dfb_driver_class_t*) xine_xmalloc( sizeof(dfb_driver_class_t) ); if (!class) { do {} while(0); return ((void *)0); } class->vo_class.open_plugin = open_plugin; class->vo_class.get_identifier = get_identifier; class->vo_class.get_description = get_description; class->vo_class.dispose = dispose_class; class->xine = xine; return class; } static vo_info_t vo_info_dfb = { 8, 5 }; plugin_info_t xine_plugin_info[] = { { 7, 21, "DFB", 1*10000+1*100+4, &vo_info_dfb, init_class }, { 0, 0, "", 0, ((void *)0), ((void *)0) } };