# 1 "ossplay_decode.c" # 1 "" # 1 "" # 1 "ossplay_decode.c" # 17 "ossplay_decode.c" # 1 "ossplay_decode.h" 1 # 1 "ossplay.h" 1 # 1 "/usr/include/errno.h" 1 3 4 # 29 "/usr/include/errno.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 323 "/usr/include/features.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/predefs.h" 1 3 4 # 324 "/usr/include/features.h" 2 3 4 # 356 "/usr/include/features.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/sys/cdefs.h" 1 3 4 # 353 "/usr/include/arm-linux-gnueabi/sys/cdefs.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/wordsize.h" 1 3 4 # 354 "/usr/include/arm-linux-gnueabi/sys/cdefs.h" 2 3 4 # 357 "/usr/include/features.h" 2 3 4 # 388 "/usr/include/features.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/gnu/stubs.h" 1 3 4 # 389 "/usr/include/features.h" 2 3 4 # 30 "/usr/include/errno.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/errno.h" 1 3 4 # 25 "/usr/include/arm-linux-gnueabi/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 # 1 "/usr/include/arm-linux-gnueabi/asm/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 # 5 "/usr/include/asm-generic/errno.h" 2 3 4 # 5 "/usr/include/arm-linux-gnueabi/asm/errno.h" 2 3 4 # 5 "/usr/include/linux/errno.h" 2 3 4 # 26 "/usr/include/arm-linux-gnueabi/bits/errno.h" 2 3 4 # 47 "/usr/include/arm-linux-gnueabi/bits/errno.h" 3 4 extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 37 "/usr/include/errno.h" 2 3 4 # 59 "/usr/include/errno.h" 3 4 # 5 "ossplay.h" 2 # 1 "/usr/include/fcntl.h" 1 3 4 # 30 "/usr/include/fcntl.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/fcntl.h" 1 3 4 # 25 "/usr/include/arm-linux-gnueabi/bits/fcntl.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/sys/types.h" 1 3 4 # 28 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/types.h" 1 3 4 # 28 "/usr/include/arm-linux-gnueabi/bits/types.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/wordsize.h" 1 3 4 # 29 "/usr/include/arm-linux-gnueabi/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 131 "/usr/include/arm-linux-gnueabi/bits/types.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/typesizes.h" 1 3 4 # 132 "/usr/include/arm-linux-gnueabi/bits/types.h" 2 3 4 __extension__ typedef __u_quad_t __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef __u_quad_t __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef __quad_t __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef __u_quad_t __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef void * __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef __quad_t __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef __u_quad_t __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef __u_quad_t __fsfilcnt64_t; __extension__ typedef int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 31 "/usr/include/arm-linux-gnueabi/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; typedef __loff_t loff_t; typedef __ino_t ino_t; # 61 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; # 99 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 133 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 58 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 74 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 92 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 104 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 134 "/usr/include/arm-linux-gnueabi/sys/types.h" 2 3 4 # 147 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 212 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 3 4 typedef unsigned int size_t; # 148 "/usr/include/arm-linux-gnueabi/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 195 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 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__))); # 217 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/endian.h" 1 3 4 # 38 "/usr/include/endian.h" 2 3 4 # 61 "/usr/include/endian.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/byteswap.h" 1 3 4 # 62 "/usr/include/endian.h" 2 3 4 # 218 "/usr/include/arm-linux-gnueabi/sys/types.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/sys/select.h" 1 3 4 # 31 "/usr/include/arm-linux-gnueabi/sys/select.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/select.h" 1 3 4 # 32 "/usr/include/arm-linux-gnueabi/sys/select.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/sigset.h" 1 3 4 # 24 "/usr/include/arm-linux-gnueabi/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/arm-linux-gnueabi/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 120 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 45 "/usr/include/arm-linux-gnueabi/sys/select.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/time.h" 1 3 4 # 75 "/usr/include/arm-linux-gnueabi/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "/usr/include/arm-linux-gnueabi/sys/select.h" 2 3 4 typedef __suseconds_t suseconds_t; typedef long int __fd_mask; # 67 "/usr/include/arm-linux-gnueabi/sys/select.h" 3 4 typedef struct { __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 99 "/usr/include/arm-linux-gnueabi/sys/select.h" 3 4 # 109 "/usr/include/arm-linux-gnueabi/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/arm-linux-gnueabi/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); # 221 "/usr/include/arm-linux-gnueabi/sys/types.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/sys/sysmacros.h" 1 3 4 # 30 "/usr/include/arm-linux-gnueabi/sys/sysmacros.h" 3 4 __extension__ extern unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__)); __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)); } # 224 "/usr/include/arm-linux-gnueabi/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 271 "/usr/include/arm-linux-gnueabi/sys/types.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/pthreadtypes.h" 1 3 4 # 38 "/usr/include/arm-linux-gnueabi/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[36]; long int __align; } pthread_attr_t; typedef struct __pthread_internal_slist { struct __pthread_internal_slist *__next; } __pthread_slist_t; typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; int __kind; unsigned int __nusers; __extension__ union { int __spins; __pthread_slist_t __list; }; } __data; char __size[24]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; long 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]; long 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; # 141 "/usr/include/arm-linux-gnueabi/bits/pthreadtypes.h" 3 4 unsigned char __flags; unsigned char __shared; unsigned char __pad1; unsigned char __pad2; int __writer; } __data; char __size[32]; 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[20]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 272 "/usr/include/arm-linux-gnueabi/sys/types.h" 2 3 4 # 26 "/usr/include/arm-linux-gnueabi/bits/fcntl.h" 2 3 4 # 152 "/usr/include/arm-linux-gnueabi/bits/fcntl.h" 3 4 struct flock { short int l_type; short int l_whence; __off_t l_start; __off_t l_len; __pid_t l_pid; }; # 252 "/usr/include/arm-linux-gnueabi/bits/fcntl.h" 3 4 # 298 "/usr/include/arm-linux-gnueabi/bits/fcntl.h" 3 4 # 35 "/usr/include/fcntl.h" 2 3 4 # 1 "/usr/include/time.h" 1 3 4 # 41 "/usr/include/fcntl.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/stat.h" 1 3 4 # 39 "/usr/include/arm-linux-gnueabi/bits/stat.h" 3 4 struct stat { __dev_t st_dev; unsigned short int __pad1; __ino_t st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; unsigned short int __pad2; __off_t st_size; __blksize_t st_blksize; __blkcnt_t st_blocks; # 73 "/usr/include/arm-linux-gnueabi/bits/stat.h" 3 4 struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 88 "/usr/include/arm-linux-gnueabi/bits/stat.h" 3 4 unsigned long int __unused4; unsigned long int __unused5; }; # 42 "/usr/include/fcntl.h" 2 3 4 # 110 "/usr/include/fcntl.h" 3 4 extern int fcntl (int __fd, int __cmd, ...); # 119 "/usr/include/fcntl.h" 3 4 extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 143 "/usr/include/fcntl.h" 3 4 extern int openat (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 165 "/usr/include/fcntl.h" 3 4 extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); # 194 "/usr/include/fcntl.h" 3 4 extern int lockf (int __fd, int __cmd, __off_t __len); # 211 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, int __advise) __attribute__ ((__nothrow__)); # 233 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); # 252 "/usr/include/fcntl.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/fcntl2.h" 1 3 4 # 27 "/usr/include/arm-linux-gnueabi/bits/fcntl2.h" 3 4 extern int __open_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1))); extern int __open_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open") __attribute__ ((__nonnull__ (1))); extern void __open_too_many_args (void) __attribute__((__error__ ("open can be called either with 2 or 3 arguments, not more"))) ; extern void __open_missing_mode (void) __attribute__((__error__ ("open with O_CREAT in second argument needs 3 arguments"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int open (__const char *__path, int __oflag, ...) { if (__builtin_va_arg_pack_len () > 1) __open_too_many_args (); if (__builtin_constant_p (__oflag)) { if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) { __open_missing_mode (); return __open_2 (__path, __oflag); } return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); } if (__builtin_va_arg_pack_len () < 1) return __open_2 (__path, __oflag); return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); } # 99 "/usr/include/arm-linux-gnueabi/bits/fcntl2.h" 3 4 extern int __openat_2 (int __fd, __const char *__path, int __oflag) __attribute__ ((__nonnull__ (2))); extern int __openat_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat") __attribute__ ((__nonnull__ (2))); # 112 "/usr/include/arm-linux-gnueabi/bits/fcntl2.h" 3 4 extern void __openat_too_many_args (void) __attribute__((__error__ ("openat can be called either with 3 or 4 arguments, not more"))) ; extern void __openat_missing_mode (void) __attribute__((__error__ ("openat with O_CREAT in third argument needs 4 arguments"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int openat (int __fd, __const char *__path, int __oflag, ...) { if (__builtin_va_arg_pack_len () > 1) __openat_too_many_args (); if (__builtin_constant_p (__oflag)) { if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) { __openat_missing_mode (); return __openat_2 (__fd, __path, __oflag); } return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); } if (__builtin_va_arg_pack_len () < 1) return __openat_2 (__fd, __path, __oflag); return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); } # 253 "/usr/include/fcntl.h" 2 3 4 # 6 "ossplay.h" 2 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/limits.h" 1 3 4 # 34 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/limits.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/syslimits.h" 1 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/limits.h" 1 3 4 # 169 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 145 "/usr/include/limits.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/posix1_lim.h" 1 3 4 # 157 "/usr/include/arm-linux-gnueabi/bits/posix1_lim.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/local_lim.h" 1 3 4 # 39 "/usr/include/arm-linux-gnueabi/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 40 "/usr/include/arm-linux-gnueabi/bits/local_lim.h" 2 3 4 # 158 "/usr/include/arm-linux-gnueabi/bits/posix1_lim.h" 2 3 4 # 146 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/posix2_lim.h" 1 3 4 # 150 "/usr/include/limits.h" 2 3 4 # 170 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/limits.h" 2 3 4 # 8 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/syslimits.h" 2 3 4 # 35 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include-fixed/limits.h" 2 3 4 # 7 "ossplay.h" 2 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stdarg.h" 1 3 4 # 40 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 102 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 8 "ossplay.h" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 30 "/usr/include/stdio.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 35 "/usr/include/stdio.h" 2 3 4 # 45 "/usr/include/stdio.h" 3 4 struct _IO_FILE; typedef struct _IO_FILE FILE; # 65 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 75 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 32 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 15 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 16 "/usr/include/_G_config.h" 2 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 83 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; # 21 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 53 "/usr/include/_G_config.h" 3 4 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); # 33 "/usr/include/libio.h" 2 3 4 # 170 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 180 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 203 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 271 "/usr/include/libio.h" 3 4 struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 319 "/usr/include/libio.h" 3 4 __off64_t _offset; # 328 "/usr/include/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_; # 364 "/usr/include/libio.h" 3 4 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); # 416 "/usr/include/libio.h" 3 4 extern int __underflow (_IO_FILE *); extern int __uflow (_IO_FILE *); extern int __overflow (_IO_FILE *, int); # 460 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp); extern int _IO_putc (int __c, _IO_FILE *__fp); extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); extern int _IO_peekc_locked (_IO_FILE *__fp); extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); # 490 "/usr/include/libio.h" 3 4 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict); extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list); extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); # 76 "/usr/include/stdio.h" 2 3 4 # 109 "/usr/include/stdio.h" 3 4 typedef _G_fpos_t fpos_t; # 161 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/stdio_lim.h" 1 3 4 # 162 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (__const char *__filename) __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) __attribute__ ((__warn_unused_result__)); # 206 "/usr/include/stdio.h" 3 4 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 224 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 249 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 263 "/usr/include/stdio.h" 3 4 extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); # 292 "/usr/include/stdio.h" 3 4 # 303 "/usr/include/stdio.h" 3 4 extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 316 "/usr/include/stdio.h" 3 4 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); 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))); # 414 "/usr/include/stdio.h" 3 4 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, ...) __attribute__ ((__warn_unused_result__)); extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); # 445 "/usr/include/stdio.h" 3 4 extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") __attribute__ ((__warn_unused_result__)); extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") __attribute__ ((__warn_unused_result__)); extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__)) ; # 465 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); # 496 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf") __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf") __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); # 524 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 552 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 563 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 596 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)); # 658 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 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) __attribute__ ((__warn_unused_result__)); extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 730 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); 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) __attribute__ ((__warn_unused_result__)); extern void rewind (FILE *__stream); # 766 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); # 785 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, __const fpos_t *__pos); # 808 "/usr/include/stdio.h" 3 4 # 817 "/usr/include/stdio.h" 3 4 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern void perror (__const char *__s); # 1 "/usr/include/arm-linux-gnueabi/bits/sys_errlist.h" 1 3 4 # 27 "/usr/include/arm-linux-gnueabi/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern __const char *__const sys_errlist[]; # 847 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 866 "/usr/include/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__)); extern int pclose (FILE *__stream); extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); # 906 "/usr/include/stdio.h" 3 4 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); # 927 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/stdio.h" 1 3 4 # 44 "/usr/include/arm-linux-gnueabi/bits/stdio.h" 3 4 extern __inline int getchar (void) { return _IO_getc (stdin); } extern __inline int fgetc_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 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))); } # 125 "/usr/include/arm-linux-gnueabi/bits/stdio.h" 3 4 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); } # 928 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/stdio2.h" 1 3 4 # 24 "/usr/include/arm-linux-gnueabi/bits/stdio2.h" 3 4 extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__ ((__nothrow__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...) { return __builtin___sprintf_chk (__s, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap) { return __builtin___vsprintf_chk (__s, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __ap); } extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__ ((__nothrow__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...) { return __builtin___snprintf_chk (__s, __n, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap) { return __builtin___vsnprintf_chk (__s, __n, 2 - 1, __builtin_object_size (__s, 2 > 1), __fmt, __ap); } extern int __fprintf_chk (FILE *__restrict __stream, int __flag, __const char *__restrict __format, ...); extern int __printf_chk (int __flag, __const char *__restrict __format, ...); extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, __const char *__restrict __format, __gnuc_va_list __ap); extern int __vprintf_chk (int __flag, __const char *__restrict __format, __gnuc_va_list __ap); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...) { return __fprintf_chk (__stream, 2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int printf (__const char *__restrict __fmt, ...) { return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap) { return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int vfprintf (FILE *__restrict __stream, __const char *__restrict __fmt, __gnuc_va_list __ap) { return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); } # 220 "/usr/include/arm-linux-gnueabi/bits/stdio2.h" 3 4 extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); extern char *__gets_warn (char *__str) __asm__ ("" "gets") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * gets (char *__str) { if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); return __gets_warn (__str); } extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__)); extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * fgets (char *__restrict __s, int __n, FILE *__restrict __stream) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__n) || __n <= 0) return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); } return __fgets_alias (__s, __n, __stream); } extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__)); extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__builtin_object_size (__ptr, 0) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); if (__size * __n > __builtin_object_size (__ptr, 0)) return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); } return __fread_alias (__ptr, __size, __n, __stream); } # 319 "/usr/include/arm-linux-gnueabi/bits/stdio2.h" 3 4 extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") __attribute__ ((__warn_unused_result__)); extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) { if (__builtin_object_size (__ptr, 0) != (size_t) -1) { if (!__builtin_constant_p (__size) || !__builtin_constant_p (__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); if (__size * __n > __builtin_object_size (__ptr, 0)) return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); } if (__builtin_constant_p (__size) && __builtin_constant_p (__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) && __size * __n <= 8) { size_t __cnt = __size * __n; char *__cptr = (char *) __ptr; if (__cnt == 0) return 0; for (; __cnt > 0; --__cnt) { int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); if (__c == (-1)) break; *__cptr++ = __c; } return (__cptr - (char *) __ptr) / __size; } return __fread_unlocked_alias (__ptr, __size, __n, __stream); } # 931 "/usr/include/stdio.h" 2 3 4 # 9 "ossplay.h" 2 # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 324 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 3 4 typedef unsigned int wchar_t; # 34 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/waitflags.h" 1 3 4 # 43 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/waitstatus.h" 1 3 4 # 67 "/usr/include/arm-linux-gnueabi/bits/waitstatus.h" 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; }; # 44 "/usr/include/stdlib.h" 2 3 4 # 68 "/usr/include/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 96 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 140 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern double atof (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int atoi (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern long int atol (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 277 "/usr/include/stdlib.h" 3 4 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); } # 311 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern long int a64l (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 327 "/usr/include/stdlib.h" 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))); extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); # 1 "/usr/include/alloca.h" 1 3 4 # 25 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); # 498 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 531 "/usr/include/stdlib.h" 3 4 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__)); # 554 "/usr/include/stdlib.h" 3 4 extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern char *__secure_getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); 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__)) __attribute__ ((__nonnull__ (1))); extern int clearenv (void) __attribute__ ((__nothrow__)); # 606 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 620 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 642 "/usr/include/stdlib.h" 3 4 extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 663 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 712 "/usr/include/stdlib.h" 3 4 extern int system (__const char *__command) __attribute__ ((__warn_unused_result__)); # 734 "/usr/include/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); typedef int (*__compar_fn_t) (__const void *, __const void *); # 752 "/usr/include/stdlib.h" 3 4 extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); # 771 "/usr/include/stdlib.h" 3 4 extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern long long int llabs (long long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); # 808 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); 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__)) __attribute__ ((__warn_unused_result__)); extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); 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))) __attribute__ ((__warn_unused_result__)); # 896 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); # 948 "/usr/include/stdlib.h" 3 4 extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/arm-linux-gnueabi/bits/stdlib.h" 1 3 4 # 24 "/usr/include/arm-linux-gnueabi/bits/stdlib.h" 3 4 extern char *__realpath_chk (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved) { if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) { if (__builtin_object_size (__resolved, 2 > 1) < 4096) return __realpath_chk_warn (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); } return __realpath_alias (__name, __resolved); } extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __ptsname_r_alias (__fd, __buf, __buflen); } extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int __attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar) { if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); return __wctomb_alias (__s, __wchar); } extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__)); extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__)) ; extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__)) __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __mbstowcs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) return __mbstowcs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); } return __mbstowcs_alias (__dst, __src, __len); } extern size_t __wcstombs_chk (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__ ((__nothrow__)); extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__)) ; extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__)) __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) { if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); if (__len > __builtin_object_size (__dst, 2 > 1)) return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); } return __wcstombs_alias (__dst, __src, __len); } # 956 "/usr/include/stdlib.h" 2 3 4 # 964 "/usr/include/stdlib.h" 3 4 # 10 "ossplay.h" 2 # 1 "/usr/include/string.h" 1 3 4 # 29 "/usr/include/string.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 35 "/usr/include/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))); # 95 "/usr/include/string.h" 3 4 extern void *memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 126 "/usr/include/string.h" 3 4 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 # 28 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; typedef __locale_t locale_t; # 163 "/usr/include/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))); # 210 "/usr/include/string.h" 3 4 # 235 "/usr/include/string.h" 3 4 extern char *strchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 262 "/usr/include/string.h" 3 4 extern char *strrchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 281 "/usr/include/string.h" 3 4 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))); # 314 "/usr/include/string.h" 3 4 extern char *strpbrk (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 342 "/usr/include/string.h" 3 4 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))); # 397 "/usr/include/string.h" 3 4 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__)); # 427 "/usr/include/string.h" 3 4 extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 445 "/usr/include/string.h" 3 4 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__)); 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))); # 489 "/usr/include/string.h" 3 4 extern char *index (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 517 "/usr/include/string.h" 3 4 extern char *rindex (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 536 "/usr/include/string.h" 3 4 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))); # 559 "/usr/include/string.h" 3 4 extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __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))); # 634 "/usr/include/string.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/string.h" 1 3 4 # 635 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/string2.h" 1 3 4 # 80 "/usr/include/arm-linux-gnueabi/bits/string2.h" 3 4 typedef struct { unsigned char __arr[2]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR2; typedef struct { unsigned char __arr[3]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR3; typedef struct { unsigned char __arr[4]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR4; typedef struct { unsigned char __arr[5]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR5; typedef struct { unsigned char __arr[6]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR6; typedef struct { unsigned char __arr[7]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR7; typedef struct { unsigned char __arr[8]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR8; # 394 "/usr/include/arm-linux-gnueabi/bits/string2.h" 3 4 extern void *__rawmemchr (const void *__s, int __c); # 969 "/usr/include/arm-linux-gnueabi/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; } # 1045 "/usr/include/arm-linux-gnueabi/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; } # 1121 "/usr/include/arm-linux-gnueabi/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; } # 1172 "/usr/include/arm-linux-gnueabi/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; } # 1204 "/usr/include/arm-linux-gnueabi/bits/string2.h" 3 4 extern char *__strsep_g (char **__stringp, __const char *__delim); # 1222 "/usr/include/arm-linux-gnueabi/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; } # 1303 "/usr/include/arm-linux-gnueabi/bits/string2.h" 3 4 extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); # 1322 "/usr/include/arm-linux-gnueabi/bits/string2.h" 3 4 extern char *__strndup (__const char *__string, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); # 638 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/string3.h" 1 3 4 # 23 "/usr/include/arm-linux-gnueabi/bits/string3.h" 3 4 extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters"))) ; # 48 "/usr/include/arm-linux-gnueabi/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len) { return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__)) memmove (void *__dest, __const void *__src, size_t __len) { return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } # 76 "/usr/include/arm-linux-gnueabi/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * __attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len) { if (__builtin_constant_p (__len) && __len == 0 && (!__builtin_constant_p (__ch) || __ch != 0)) { __warn_memset_zero_len (); return __dest; } return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__)) bcopy (__const void *__src, void *__dest, size_t __len) { (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void __attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len) { (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src) { return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } # 117 "/usr/include/arm-linux-gnueabi/bits/string3.h" 3 4 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len) { return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n, size_t __destlen) __attribute__ ((__nothrow__)); extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__)) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n) { if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); return __stpncpy_alias (__dest, __src, __n); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src) { return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); } extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * __attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len) { return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); } # 643 "/usr/include/string.h" 2 3 4 # 11 "ossplay.h" 2 # 1 "/usr/include/unistd.h" 1 3 4 # 28 "/usr/include/unistd.h" 3 4 # 203 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/posix_opt.h" 1 3 4 # 204 "/usr/include/unistd.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/environments.h" 1 3 4 # 23 "/usr/include/arm-linux-gnueabi/bits/environments.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/wordsize.h" 1 3 4 # 24 "/usr/include/arm-linux-gnueabi/bits/environments.h" 2 3 4 # 208 "/usr/include/unistd.h" 2 3 4 # 227 "/usr/include/unistd.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 228 "/usr/include/unistd.h" 2 3 4 # 256 "/usr/include/unistd.h" 3 4 typedef __useconds_t useconds_t; # 268 "/usr/include/unistd.h" 3 4 typedef __intptr_t intptr_t; typedef __socklen_t socklen_t; # 288 "/usr/include/unistd.h" 3 4 extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 305 "/usr/include/unistd.h" 3 4 extern int faccessat (int __fd, __const char *__file, int __type, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); # 331 "/usr/include/unistd.h" 3 4 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__)); # 350 "/usr/include/unistd.h" 3 4 extern int close (int __fd); extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__)); extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__)); # 373 "/usr/include/unistd.h" 3 4 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __attribute__ ((__warn_unused_result__)); extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, __off_t __offset) __attribute__ ((__warn_unused_result__)); # 414 "/usr/include/unistd.h" 3 4 extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 429 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__)); # 441 "/usr/include/unistd.h" 3 4 extern unsigned int sleep (unsigned int __seconds); extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) __attribute__ ((__nothrow__)); extern int usleep (__useconds_t __useconds); # 466 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int fchownat (int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 508 "/usr/include/unistd.h" 3 4 extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 522 "/usr/include/unistd.h" 3 4 extern char *getwd (char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)); extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__)); # 540 "/usr/include/unistd.h" 3 4 extern char **__environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int execv (__const char *__path, char *__const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int execle (__const char *__path, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int execl (__const char *__path, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int execvp (__const char *__file, char *__const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int execlp (__const char *__file, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); # 595 "/usr/include/unistd.h" 3 4 extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "/usr/include/arm-linux-gnueabi/bits/confname.h" 1 3 4 # 26 "/usr/include/arm-linux-gnueabi/bits/confname.h" 3 4 enum { _PC_LINK_MAX, _PC_MAX_CANON, _PC_MAX_INPUT, _PC_NAME_MAX, _PC_PATH_MAX, _PC_PIPE_BUF, _PC_CHOWN_RESTRICTED, _PC_NO_TRUNC, _PC_VDISABLE, _PC_SYNC_IO, _PC_ASYNC_IO, _PC_PRIO_IO, _PC_SOCK_MAXBUF, _PC_FILESIZEBITS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, _PC_SYMLINK_MAX, _PC_2_SYMLINKS }; enum { _SC_ARG_MAX, _SC_CHILD_MAX, _SC_CLK_TCK, _SC_NGROUPS_MAX, _SC_OPEN_MAX, _SC_STREAM_MAX, _SC_TZNAME_MAX, _SC_JOB_CONTROL, _SC_SAVED_IDS, _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_AIO_LISTIO_MAX, _SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX, _SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_VERSION, _SC_PAGESIZE, _SC_RTSIG_MAX, _SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, _SC_TIMER_MAX, _SC_BC_BASE_MAX, _SC_BC_DIM_MAX, _SC_BC_SCALE_MAX, _SC_BC_STRING_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_EXPR_NEST_MAX, _SC_LINE_MAX, _SC_RE_DUP_MAX, _SC_CHARCLASS_NAME_MAX, _SC_2_VERSION, _SC_2_C_BIND, _SC_2_C_DEV, _SC_2_FORT_DEV, _SC_2_FORT_RUN, _SC_2_SW_DEV, _SC_2_LOCALEDEF, _SC_PII, _SC_PII_XTI, _SC_PII_SOCKET, _SC_PII_INTERNET, _SC_PII_OSI, _SC_POLL, _SC_SELECT, _SC_UIO_MAXIOV, _SC_IOV_MAX = _SC_UIO_MAXIOV, _SC_PII_INTERNET_STREAM, _SC_PII_INTERNET_DGRAM, _SC_PII_OSI_COTS, _SC_PII_OSI_CLTS, _SC_PII_OSI_M, _SC_T_IOV_MAX, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_GETGR_R_SIZE_MAX, _SC_GETPW_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_TTY_NAME_MAX, _SC_THREAD_DESTRUCTOR_ITERATIONS, _SC_THREAD_KEYS_MAX, _SC_THREAD_STACK_MIN, _SC_THREAD_THREADS_MAX, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED, _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES, _SC_ATEXIT_MAX, _SC_PASS_MAX, _SC_XOPEN_VERSION, _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, _SC_2_UPE, _SC_XOPEN_XPG2, _SC_XOPEN_XPG3, _SC_XOPEN_XPG4, _SC_CHAR_BIT, _SC_CHAR_MAX, _SC_CHAR_MIN, _SC_INT_MAX, _SC_INT_MIN, _SC_LONG_BIT, _SC_WORD_BIT, _SC_MB_LEN_MAX, _SC_NZERO, _SC_SSIZE_MAX, _SC_SCHAR_MAX, _SC_SCHAR_MIN, _SC_SHRT_MAX, _SC_SHRT_MIN, _SC_UCHAR_MAX, _SC_UINT_MAX, _SC_ULONG_MAX, _SC_USHRT_MAX, _SC_NL_ARGMAX, _SC_NL_LANGMAX, _SC_NL_MSGMAX, _SC_NL_NMAX, _SC_NL_SETMAX, _SC_NL_TEXTMAX, _SC_XBS5_ILP32_OFF32, _SC_XBS5_ILP32_OFFBIG, _SC_XBS5_LP64_OFF64, _SC_XBS5_LPBIG_OFFBIG, _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME, _SC_XOPEN_REALTIME_THREADS, _SC_ADVISORY_INFO, _SC_BARRIERS, _SC_BASE, _SC_C_LANG_SUPPORT, _SC_C_LANG_SUPPORT_R, _SC_CLOCK_SELECTION, _SC_CPUTIME, _SC_THREAD_CPUTIME, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_PIPE, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MONOTONIC_CLOCK, _SC_MULTI_PROCESS, _SC_SINGLE_PROCESS, _SC_NETWORKING, _SC_READER_WRITER_LOCKS, _SC_SPIN_LOCKS, _SC_REGEXP, _SC_REGEX_VERSION, _SC_SHELL, _SC_SIGNALS, _SC_SPAWN, _SC_SPORADIC_SERVER, _SC_THREAD_SPORADIC_SERVER, _SC_SYSTEM_DATABASE, _SC_SYSTEM_DATABASE_R, _SC_TIMEOUTS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_SYMLOOP_MAX, _SC_STREAMS, _SC_2_PBS_CHECKPOINT, _SC_V6_ILP32_OFF32, _SC_V6_ILP32_OFFBIG, _SC_V6_LP64_OFF64, _SC_V6_LPBIG_OFFBIG, _SC_HOST_NAME_MAX, _SC_TRACE, _SC_TRACE_EVENT_FILTER, _SC_TRACE_INHERIT, _SC_TRACE_LOG, _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE, _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE, _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, _SC_RAW_SOCKETS, _SC_V7_ILP32_OFF32, _SC_V7_ILP32_OFFBIG, _SC_V7_LP64_OFF64, _SC_V7_LPBIG_OFFBIG, _SC_SS_REPL_MAX, _SC_TRACE_EVENT_NAME_MAX, _SC_TRACE_NAME_MAX, _SC_TRACE_SYS_MAX, _SC_TRACE_USER_EVENT_MAX, _SC_XOPEN_STREAMS, _SC_THREAD_ROBUST_PRIO_INHERIT, _SC_THREAD_ROBUST_PRIO_PROTECT }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _CS_V5_WIDTH_RESTRICTED_ENVS, _CS_V7_WIDTH_RESTRICTED_ENVS, _CS_LFS_CFLAGS = 1000, _CS_LFS_LDFLAGS, _CS_LFS_LIBS, _CS_LFS_LINTFLAGS, _CS_LFS64_CFLAGS, _CS_LFS64_LDFLAGS, _CS_LFS64_LIBS, _CS_LFS64_LINTFLAGS, _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, _CS_XBS5_ILP32_OFF32_LDFLAGS, _CS_XBS5_ILP32_OFF32_LIBS, _CS_XBS5_ILP32_OFF32_LINTFLAGS, _CS_XBS5_ILP32_OFFBIG_CFLAGS, _CS_XBS5_ILP32_OFFBIG_LDFLAGS, _CS_XBS5_ILP32_OFFBIG_LIBS, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, _CS_XBS5_LP64_OFF64_CFLAGS, _CS_XBS5_LP64_OFF64_LDFLAGS, _CS_XBS5_LP64_OFF64_LIBS, _CS_XBS5_LP64_OFF64_LINTFLAGS, _CS_XBS5_LPBIG_OFFBIG_CFLAGS, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, _CS_XBS5_LPBIG_OFFBIG_LIBS, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V7_ILP32_OFF32_CFLAGS, _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, _CS_POSIX_V7_ILP32_OFF32_LIBS, _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V7_ILP32_OFFBIG_LIBS, _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V7_LP64_OFF64_CFLAGS, _CS_POSIX_V7_LP64_OFF64_LDFLAGS, _CS_POSIX_V7_LP64_OFF64_LIBS, _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, _CS_V6_ENV, _CS_V7_ENV }; # 607 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (__const char *__path, int __name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__)); extern long int sysconf (int __name) __attribute__ ((__nothrow__)); extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__)); extern __pid_t getpid (void) __attribute__ ((__nothrow__)); extern __pid_t getppid (void) __attribute__ ((__nothrow__)); extern __pid_t getpgrp (void) __attribute__ ((__nothrow__)); # 643 "/usr/include/unistd.h" 3 4 extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__)); # 669 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) __attribute__ ((__nothrow__)); # 686 "/usr/include/unistd.h" 3 4 extern __pid_t setsid (void) __attribute__ ((__nothrow__)); extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__)); extern __uid_t getuid (void) __attribute__ ((__nothrow__)); extern __uid_t geteuid (void) __attribute__ ((__nothrow__)); extern __gid_t getgid (void) __attribute__ ((__nothrow__)); extern __gid_t getegid (void) __attribute__ ((__nothrow__)); extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 719 "/usr/include/unistd.h" 3 4 extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__)); extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__)); extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__)); extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__)); extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__)); extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__)); # 775 "/usr/include/unistd.h" 3 4 extern __pid_t fork (void) __attribute__ ((__nothrow__)); extern __pid_t vfork (void) __attribute__ ((__nothrow__)); extern char *ttyname (int __fd) __attribute__ ((__nothrow__)); extern int ttyname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); extern int isatty (int __fd) __attribute__ ((__nothrow__)); extern int ttyslot (void) __attribute__ ((__nothrow__)); extern int link (__const char *__from, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern int linkat (int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__)); extern int symlink (__const char *__from, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern ssize_t readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern int symlinkat (__const char *__from, int __tofd, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); extern ssize_t readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int unlinkat (int __fd, __const char *__name, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__)); extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__)); extern char *getlogin (void); extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 890 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/getopt.h" 1 3 4 # 59 "/usr/include/getopt.h" 3 4 extern char *optarg; # 73 "/usr/include/getopt.h" 3 4 extern int optind; extern int opterr; extern int optopt; # 152 "/usr/include/getopt.h" 3 4 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __attribute__ ((__nothrow__)); # 891 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sethostname (__const char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int getdomainname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int setdomainname (__const char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int vhangup (void) __attribute__ ((__nothrow__)); extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int acct (__const char *__name) __attribute__ ((__nothrow__)); extern char *getusershell (void) __attribute__ ((__nothrow__)); extern void endusershell (void) __attribute__ ((__nothrow__)); extern void setusershell (void) __attribute__ ((__nothrow__)); extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); # 976 "/usr/include/unistd.h" 3 4 extern int fsync (int __fd); extern long int gethostid (void); extern void sync (void) __attribute__ ((__nothrow__)); extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern int getdtablesize (void) __attribute__ ((__nothrow__)); # 1007 "/usr/include/unistd.h" 3 4 extern int truncate (__const char *__file, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); # 1029 "/usr/include/unistd.h" 3 4 extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); # 1050 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__)); # 1071 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__)); # 1125 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes); # 1154 "/usr/include/unistd.h" 3 4 extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); # 1 "/usr/include/arm-linux-gnueabi/bits/unistd.h" 1 3 4 # 24 "/usr/include/arm-linux-gnueabi/bits/unistd.h" 3 4 extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __attribute__ ((__warn_unused_result__)); extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") __attribute__ ((__warn_unused_result__)); extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk") __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t read (int __fd, void *__buf, size_t __nbytes) { if (__builtin_object_size (__buf, 0) != (size_t) -1) { if (!__builtin_constant_p (__nbytes)) return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); if (__nbytes > __builtin_object_size (__buf, 0)) return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); } return __read_alias (__fd, __buf, __nbytes); } # 124 "/usr/include/arm-linux-gnueabi/bits/unistd.h" 3 4 extern ssize_t __readlink_chk (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t __attribute__ ((__nothrow__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); if ( __len > __builtin_object_size (__buf, 2 > 1)) return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); } return __readlink_alias (__path, __buf, __len); } extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t __attribute__ ((__nothrow__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); if (__len > __builtin_object_size (__buf, 2 > 1)) return __readlinkat_chk_warn (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); } return __readlinkat_alias (__fd, __path, __buf, __len); } extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__)) getcwd (char *__buf, size_t __size) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__size)) return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1)); if (__size > __builtin_object_size (__buf, 2 > 1)) return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1)); } return __getcwd_alias (__buf, __size); } extern char *__getwd_chk (char *__buf, size_t buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char * __attribute__ ((__nothrow__)) getwd (char *__buf) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1)); return __getwd_warn (__buf); } extern size_t __confstr_chk (int __name, char *__buf, size_t __len, size_t __buflen) __attribute__ ((__nothrow__)); extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__)) ; extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__)) __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t __attribute__ ((__nothrow__)) confstr (int __name, char *__buf, size_t __len) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__len)) return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); if (__builtin_object_size (__buf, 2 > 1) < __len) return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); } return __confstr_alias (__name, __buf, __len); } extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) getgroups (int __size, __gid_t __list[]) { if (__builtin_object_size (__list, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__size) || __size < 0) return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1)); if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1)) return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1)); } return __getgroups_alias (__size, __list); } extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) ttyname_r (int __fd, char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __ttyname_r_alias (__fd, __buf, __buflen); } extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nonnull__ (1))); extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") __attribute__ ((__nonnull__ (1))); extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk") __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int getlogin_r (char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __getlogin_r_alias (__buf, __buflen); } extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) gethostname (char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __gethostname_alias (__buf, __buflen); } extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer"))) ; extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int __attribute__ ((__nothrow__)) getdomainname (char *__buf, size_t __buflen) { if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) { if (!__builtin_constant_p (__buflen)) return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); if (__buflen > __builtin_object_size (__buf, 2 > 1)) return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); } return __getdomainname_alias (__buf, __buflen); } # 1161 "/usr/include/unistd.h" 2 3 4 # 12 "ossplay.h" 2 # 1 "/usr/include/arm-linux-gnueabi/sys/ioctl.h" 1 3 4 # 24 "/usr/include/arm-linux-gnueabi/sys/ioctl.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/ioctls.h" 1 3 4 # 24 "/usr/include/arm-linux-gnueabi/bits/ioctls.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/asm/ioctls.h" 1 3 4 # 1 "/usr/include/asm-generic/ioctls.h" 1 3 4 # 1 "/usr/include/linux/ioctl.h" 1 3 4 # 1 "/usr/include/arm-linux-gnueabi/asm/ioctl.h" 1 3 4 # 1 "/usr/include/asm-generic/ioctl.h" 1 3 4 # 1 "/usr/include/arm-linux-gnueabi/asm/ioctl.h" 2 3 4 # 5 "/usr/include/linux/ioctl.h" 2 3 4 # 5 "/usr/include/asm-generic/ioctls.h" 2 3 4 # 7 "/usr/include/arm-linux-gnueabi/asm/ioctls.h" 2 3 4 # 25 "/usr/include/arm-linux-gnueabi/bits/ioctls.h" 2 3 4 # 28 "/usr/include/arm-linux-gnueabi/sys/ioctl.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/ioctl-types.h" 1 3 4 # 28 "/usr/include/arm-linux-gnueabi/bits/ioctl-types.h" 3 4 struct winsize { unsigned short int ws_row; unsigned short int ws_col; unsigned short int ws_xpixel; unsigned short int ws_ypixel; }; struct termio { unsigned short int c_iflag; unsigned short int c_oflag; unsigned short int c_cflag; unsigned short int c_lflag; unsigned char c_line; unsigned char c_cc[8]; }; # 31 "/usr/include/arm-linux-gnueabi/sys/ioctl.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/sys/ttydefaults.h" 1 3 4 # 38 "/usr/include/arm-linux-gnueabi/sys/ioctl.h" 2 3 4 extern int ioctl (int __fd, unsigned long int __request, ...) __attribute__ ((__nothrow__)); # 13 "ossplay.h" 2 # 1 "../../include/soundcard.h" 1 # 109 "../../include/soundcard.h" typedef char oss_longname_t[64]; typedef char oss_label_t[16]; typedef char oss_devnode_t[32]; typedef char oss_devname_t[64]; typedef char oss_cmd_t[64]; typedef char oss_id_t[16]; typedef char oss_handle_t[32]; # 151 "../../include/soundcard.h" typedef struct synth_control { int devno; char data[4000]; } synth_control; typedef struct remove_sample { int devno; int bankno; int instrno; } remove_sample; typedef struct seq_event_rec { unsigned char arr[8]; } seq_event_rec; # 189 "../../include/soundcard.h" struct patch_info { unsigned short key; short device_no; short instr_no; unsigned int mode; # 223 "../../include/soundcard.h" int len; int loop_start, loop_end; # 242 "../../include/soundcard.h" unsigned int base_freq; unsigned int base_note; unsigned int high_note; unsigned int low_note; int panning; int detuning; unsigned char env_rate[6]; unsigned char env_offset[6]; unsigned char tremolo_sweep; unsigned char tremolo_rate; unsigned char tremolo_depth; unsigned char vibrato_sweep; unsigned char vibrato_rate; unsigned char vibrato_depth; int scale_frequency; unsigned int scale_factor; int volume; int fractions; int reserved1; int spare[2]; char data[1]; }; struct sysex_info { short key; short device_no; int len; unsigned char data[1]; }; # 450 "../../include/soundcard.h" typedef unsigned char sbi_instr_data[32]; struct sbi_instrument { unsigned short key; short device; int channel; sbi_instr_data operators; }; struct synth_info { char name[30]; int device; int synth_type; int synth_subtype; # 480 "../../include/soundcard.h" int perc_mode; int nr_voices; int nr_drums; int instr_bank_size; unsigned int capabilities; int dummies[19]; }; struct sound_timer_info { char name[32]; int caps; }; struct midi_info { char name[30]; int device; unsigned int capabilities; int dev_type; int dummies[18]; }; # 585 "../../include/soundcard.h" void seqbuf_dump (void); extern int OSS_init (int seqfd, int buflen); extern void OSS_seqbuf_dump (int fd, unsigned char *buf, int buflen); extern void OSS_seq_advbuf (int len, int fd, unsigned char *buf, int buflen); extern void OSS_seq_needbuf (int len, int fd, unsigned char *buf, int buflen); extern void OSS_patch_caching (int dev, int chn, int patch, int fd, unsigned char *buf, int buflen); extern void OSS_drum_caching (int dev, int chn, int patch, int fd, unsigned char *buf, int buflen); extern void OSS_write_patch (int fd, unsigned char *buf, int len); extern int OSS_write_patch2 (int fd, unsigned char *buf, int len); # 909 "../../include/soundcard.h" typedef struct { unsigned char hours, minutes, seconds, frames, qframes; char direction; unsigned char time_code_type; unsigned int flags; } oss_mtc_data_t; # 931 "../../include/soundcard.h" typedef unsigned long long oss_midi_time_t; typedef struct { int magic; unsigned short event_type; # 948 "../../include/soundcard.h" unsigned short options; oss_midi_time_t time; int parm; int filler[3]; } midi_packet_header_t; typedef struct { midi_packet_header_t hdr; unsigned char payload[1000]; } midi_packet_t; # 1081 "../../include/soundcard.h" typedef struct audio_buf_info { int fragments; int fragstotal; int fragsize; int bytes; } audio_buf_info; # 1184 "../../include/soundcard.h" typedef struct count_info { unsigned int bytes; int blocks; int ptr; } count_info; typedef struct buffmem_desc { unsigned *buffer; int size; } buffmem_desc; # 1209 "../../include/soundcard.h" typedef struct audio_errinfo { int play_underruns; int rec_overruns; unsigned int play_ptradjust; unsigned int rec_ptradjust; int play_errorcount; int rec_errorcount; int play_lasterror; int rec_lasterror; int play_errorparm; int rec_errorparm; int filler[16]; } audio_errinfo; # 1232 "../../include/soundcard.h" typedef struct oss_digital_control { unsigned int caps; # 1260 "../../include/soundcard.h" unsigned int valid; # 1275 "../../include/soundcard.h" unsigned int request, param; unsigned char cbitin[24]; unsigned char ubitin[24]; unsigned char cbitout[24]; unsigned char ubitout[24]; unsigned int outsel; int in_data; int in_locked; int in_quality; int in_vbit, out_vbit; unsigned int in_errors; int srate_in, srate_out; int bits_in, bits_out; int filler[32]; } oss_digital_control; # 1327 "../../include/soundcard.h" typedef struct oss_syncgroup { int id; int mode; int filler[16]; } oss_syncgroup; # 1381 "../../include/soundcard.h" typedef struct { long long samples; int fifo_samples; int filler[32]; } oss_count_t; # 1428 "../../include/soundcard.h" typedef unsigned short oss_peaks_t[128]; # 1666 "../../include/soundcard.h" typedef struct mixer_info { char id[16]; char name[32]; int modify_counter; int fillers[10]; } mixer_info; # 1704 "../../include/soundcard.h" typedef struct mixer_vol_table { int num; char name[32]; int levels[32]; } mixer_vol_table; # 1733 "../../include/soundcard.h" typedef unsigned char oss_reserved_t[512]; # 1747 "../../include/soundcard.h" typedef struct oss_sysinfo { char product[32]; char version[32]; int versionnum; char options[128]; int numaudios; int openedaudio[8]; int numsynths; int nummidis; int numtimers; int nummixers; int openedmidi[8]; int numcards; int numaudioengines; char license[16]; char revision_info[256]; int filler[172]; } oss_sysinfo; typedef struct oss_mixext { int dev; int ctrl; int type; # 1817 "../../include/soundcard.h" int maxvalue; int minvalue; int flags; # 1839 "../../include/soundcard.h" oss_id_t id; int parent; int dummy; int timestamp; char data[64]; unsigned char enum_present[32]; int control_no; unsigned int desc; char extname[32]; int update_counter; int rgbcolor; int filler[6]; } oss_mixext; # 1884 "../../include/soundcard.h" typedef struct oss_mixext_root { oss_id_t id; char name[48]; } oss_mixext_root; typedef struct oss_mixer_value { int dev; int ctrl; int value; int flags; int timestamp; int filler[8]; } oss_mixer_value; typedef struct oss_mixer_enuminfo { int dev; int ctrl; int nvalues; int version; short strindex[255]; char strings[3000]; } oss_mixer_enuminfo; # 1924 "../../include/soundcard.h" typedef struct oss_audioinfo { int dev; oss_devname_t name; int busy; int pid; int caps; int iformats, oformats; int magic; oss_cmd_t cmd; int card_number; int port_number; int mixer_dev; int legacy_device; int enabled; int flags; int min_rate, max_rate; int min_channels, max_channels; int binding; int rate_source; oss_handle_t handle; unsigned int nrates, rates[20]; oss_longname_t song_name; oss_label_t label; int latency; oss_devnode_t devnode; int next_play_engine; int next_rec_engine; int filler[184]; } oss_audioinfo; typedef struct oss_mixerinfo { int dev; oss_id_t id; char name[32]; int modify_counter; int card_number; int port_number; oss_handle_t handle; int magic; int enabled; int caps; int flags; int nrext; int priority; oss_devnode_t devnode; int legacy_device; int filler[245]; } oss_mixerinfo; typedef struct oss_midi_info { int dev; oss_devname_t name; int busy; int pid; oss_cmd_t cmd; int caps; # 2005 "../../include/soundcard.h" int magic; int card_number; int port_number; int enabled; int flags; oss_handle_t handle; oss_longname_t song_name; oss_label_t label; int latency; oss_devnode_t devnode; int legacy_device; int filler[235]; } oss_midi_info; typedef struct oss_card_info { int card; char shortname[16]; char longname[128]; int flags; char hw_info[400]; int intr_count, ack_count; int filler[154]; } oss_card_info; # 2065 "../../include/soundcard.h" typedef struct { int secret; int source, target; int function; int value; int options[16]; } oss_mixermatrix_t; # 15 "ossplay.h" 2 # 1 "ossplay_console.h" 1 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 150 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 3 4 typedef int ptrdiff_t; # 5 "ossplay_console.h" 2 typedef enum { ERRORM, HELPM, NORMALM, NOTIFYM, WARNM, STARTM, CONTM, ENDM, VERBOSEM } prtype_t; void clear_update (void); void ossplay_free (void *); void * ossplay_malloc (size_t); off_t ossplay_lseek_stdin (int, off_t, int); char * ossplay_strdup (const char *); int ossplay_dlclose (void *); void * ossplay_dlopen (const char *); const char * ossplay_dlerror (void); int ossplay_vdlsym (void *, ...); void perror_msg (const char * s); void print_msg (prtype_t, const char *, ...); void print_record_update (int, double, const char *, int); void print_update (int, double, const char *); char * totime (double); # 16 "ossplay.h" 2 # 42 "ossplay.h" # 1 "/usr/include/inttypes.h" 1 3 4 # 28 "/usr/include/inttypes.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stdint.h" 1 3 4 # 1 "/usr/include/stdint.h" 1 3 4 # 27 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/wchar.h" 1 3 4 # 28 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/arm-linux-gnueabi/bits/wordsize.h" 1 3 4 # 29 "/usr/include/stdint.h" 2 3 4 # 49 "/usr/include/stdint.h" 3 4 typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; __extension__ typedef unsigned long long int uint64_t; typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; __extension__ typedef long long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; __extension__ typedef unsigned long long int uint_least64_t; typedef signed char int_fast8_t; typedef int int_fast16_t; typedef int int_fast32_t; __extension__ typedef long long int int_fast64_t; typedef unsigned char uint_fast8_t; typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; __extension__ typedef unsigned long long int uint_fast64_t; # 129 "/usr/include/stdint.h" 3 4 typedef unsigned int uintptr_t; # 138 "/usr/include/stdint.h" 3 4 __extension__ typedef long long int intmax_t; __extension__ typedef unsigned long long int uintmax_t; # 4 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stdint.h" 2 3 4 # 29 "/usr/include/inttypes.h" 2 3 4 typedef unsigned int __gwchar_t; # 274 "/usr/include/inttypes.h" 3 4 # 288 "/usr/include/inttypes.h" 3 4 typedef struct { long long int quot; long long int rem; } imaxdiv_t; 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__)); # 379 "/usr/include/inttypes.h" 3 4 __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline intmax_t __attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base) { return __strtoll_internal (nptr, endptr, base, 0); } __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline uintmax_t __attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base) { return __strtoull_internal (nptr, endptr, base, 0); } __extension__ extern long long int __wcstoll_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline intmax_t __attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstoll_internal (nptr, endptr, base, 0); } __extension__ extern unsigned long long int __wcstoull_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t ** __restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); extern __inline uintmax_t __attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstoull_internal (nptr, endptr, base, 0); } # 43 "ossplay.h" 2 typedef long double ldouble_t; typedef int8_t int8; typedef uint8_t uint8; typedef int16_t int16; typedef uint16_t uint16; typedef int32_t int32; typedef uint32_t uint32; typedef char flag; typedef intptr_t intptr; typedef uintmax_t big_t; typedef intmax_t sbig_t; # 92 "ossplay.h" enum { AFMT_MS_ADPCM = -256, AFMT_MS_IMA_ADPCM, AFMT_MS_IMA_ADPCM_3BITS, AFMT_MAC_IMA_ADPCM, AFMT_S24_PACKED_BE, AFMT_CR_ADPCM_2, AFMT_CR_ADPCM_3, AFMT_CR_ADPCM_4, AFMT_FIBO_DELTA, AFMT_EXP_DELTA, AFMT_FLOAT32_BE, AFMT_FLOAT32_LE, AFMT_DOUBLE64_BE, AFMT_DOUBLE64_LE }; typedef struct { int fd; int format; int channels; int speed; int flags; int reclevel; char dname[32]; char current_songname[64]; char * recsrc; char * playtgt; } dspdev_t; typedef enum errors_t { E_OK, E_SETUP_ERROR, E_FORMAT_UNSUPPORTED, E_CHANNELS_UNSUPPORTED, E_DECODE, E_ENCODE, E_USAGE, SEEK_CONT_AFTER_DECODE } errors_t; # 1 "/usr/include/vorbis/vorbisfile.h" 1 3 4 # 27 "/usr/include/vorbis/vorbisfile.h" 3 4 # 1 "/usr/include/vorbis/codec.h" 1 3 4 # 26 "/usr/include/vorbis/codec.h" 3 4 # 1 "/usr/include/ogg/ogg.h" 1 3 4 # 24 "/usr/include/ogg/ogg.h" 3 4 # 1 "/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/include/stddef.h" 1 3 4 # 25 "/usr/include/ogg/ogg.h" 2 3 4 # 1 "/usr/include/ogg/os_types.h" 1 3 4 # 143 "/usr/include/ogg/os_types.h" 3 4 # 1 "/usr/include/ogg/config_types.h" 1 3 4 # 19 "/usr/include/ogg/config_types.h" 3 4 typedef short ogg_int16_t; typedef unsigned short ogg_uint16_t; typedef int ogg_int32_t; typedef unsigned int ogg_uint32_t; typedef long long ogg_int64_t; # 144 "/usr/include/ogg/os_types.h" 2 3 4 # 26 "/usr/include/ogg/ogg.h" 2 3 4 typedef struct { void *iov_base; size_t iov_len; } ogg_iovec_t; typedef struct { long endbyte; int endbit; unsigned char *buffer; unsigned char *ptr; long storage; } oggpack_buffer; typedef struct { unsigned char *header; long header_len; unsigned char *body; long body_len; } ogg_page; typedef struct { unsigned char *body_data; long body_storage; long body_fill; long body_returned; int *lacing_vals; ogg_int64_t *granule_vals; long lacing_storage; long lacing_fill; long lacing_packet; long lacing_returned; unsigned char header[282]; int header_fill; int e_o_s; int b_o_s; long serialno; long pageno; ogg_int64_t packetno; ogg_int64_t granulepos; } ogg_stream_state; typedef struct { unsigned char *packet; long bytes; long b_o_s; long e_o_s; ogg_int64_t granulepos; ogg_int64_t packetno; } ogg_packet; typedef struct { unsigned char *data; int storage; int fill; int returned; int unsynced; int headerbytes; int bodybytes; } ogg_sync_state; extern void oggpack_writeinit(oggpack_buffer *b); extern int oggpack_writecheck(oggpack_buffer *b); extern void oggpack_writetrunc(oggpack_buffer *b,long bits); extern void oggpack_writealign(oggpack_buffer *b); extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); extern void oggpack_reset(oggpack_buffer *b); extern void oggpack_writeclear(oggpack_buffer *b); extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); extern long oggpack_look(oggpack_buffer *b,int bits); extern long oggpack_look1(oggpack_buffer *b); extern void oggpack_adv(oggpack_buffer *b,int bits); extern void oggpack_adv1(oggpack_buffer *b); extern long oggpack_read(oggpack_buffer *b,int bits); extern long oggpack_read1(oggpack_buffer *b); extern long oggpack_bytes(oggpack_buffer *b); extern long oggpack_bits(oggpack_buffer *b); extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); extern void oggpackB_writeinit(oggpack_buffer *b); extern int oggpackB_writecheck(oggpack_buffer *b); extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); extern void oggpackB_writealign(oggpack_buffer *b); extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); extern void oggpackB_reset(oggpack_buffer *b); extern void oggpackB_writeclear(oggpack_buffer *b); extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); extern long oggpackB_look(oggpack_buffer *b,int bits); extern long oggpackB_look1(oggpack_buffer *b); extern void oggpackB_adv(oggpack_buffer *b,int bits); extern void oggpackB_adv1(oggpack_buffer *b); extern long oggpackB_read(oggpack_buffer *b,int bits); extern long oggpackB_read1(oggpack_buffer *b); extern long oggpackB_bytes(oggpack_buffer *b); extern long oggpackB_bits(oggpack_buffer *b); extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count, long e_o_s, ogg_int64_t granulepos); extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); extern int ogg_sync_init(ogg_sync_state *oy); extern int ogg_sync_clear(ogg_sync_state *oy); extern int ogg_sync_reset(ogg_sync_state *oy); extern int ogg_sync_destroy(ogg_sync_state *oy); extern int ogg_sync_check(ogg_sync_state *oy); extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); extern int ogg_stream_init(ogg_stream_state *os,int serialno); extern int ogg_stream_clear(ogg_stream_state *os); extern int ogg_stream_reset(ogg_stream_state *os); extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); extern int ogg_stream_destroy(ogg_stream_state *os); extern int ogg_stream_check(ogg_stream_state *os); extern int ogg_stream_eos(ogg_stream_state *os); extern void ogg_page_checksum_set(ogg_page *og); extern int ogg_page_version(const ogg_page *og); extern int ogg_page_continued(const ogg_page *og); extern int ogg_page_bos(const ogg_page *og); extern int ogg_page_eos(const ogg_page *og); extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); extern int ogg_page_serialno(const ogg_page *og); extern long ogg_page_pageno(const ogg_page *og); extern int ogg_page_packets(const ogg_page *og); extern void ogg_packet_clear(ogg_packet *op); # 27 "/usr/include/vorbis/codec.h" 2 3 4 typedef struct vorbis_info{ int version; int channels; long rate; # 48 "/usr/include/vorbis/codec.h" 3 4 long bitrate_upper; long bitrate_nominal; long bitrate_lower; long bitrate_window; void *codec_setup; } vorbis_info; typedef struct vorbis_dsp_state{ int analysisp; vorbis_info *vi; float **pcm; float **pcmret; int pcm_storage; int pcm_current; int pcm_returned; int preextrapolate; int eofflag; long lW; long W; long nW; long centerW; ogg_int64_t granulepos; ogg_int64_t sequence; ogg_int64_t glue_bits; ogg_int64_t time_bits; ogg_int64_t floor_bits; ogg_int64_t res_bits; void *backend_state; } vorbis_dsp_state; typedef struct vorbis_block{ float **pcm; oggpack_buffer opb; long lW; long W; long nW; int pcmend; int mode; int eofflag; ogg_int64_t granulepos; ogg_int64_t sequence; vorbis_dsp_state *vd; void *localstore; long localtop; long localalloc; long totaluse; struct alloc_chain *reap; long glue_bits; long time_bits; long floor_bits; long res_bits; void *internal; } vorbis_block; struct alloc_chain{ void *ptr; struct alloc_chain *next; }; # 140 "/usr/include/vorbis/codec.h" 3 4 typedef struct vorbis_comment{ char **user_comments; int *comment_lengths; int comments; char *vendor; } vorbis_comment; # 165 "/usr/include/vorbis/codec.h" 3 4 extern void vorbis_info_init(vorbis_info *vi); extern void vorbis_info_clear(vorbis_info *vi); extern int vorbis_info_blocksize(vorbis_info *vi,int zo); extern void vorbis_comment_init(vorbis_comment *vc); extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); extern void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents); extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); extern void vorbis_comment_clear(vorbis_comment *vc); extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); extern int vorbis_block_clear(vorbis_block *vb); extern void vorbis_dsp_clear(vorbis_dsp_state *v); extern double vorbis_granule_time(vorbis_dsp_state *v, ogg_int64_t granulepos); extern const char *vorbis_version_string(void); extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); extern int vorbis_analysis_headerout(vorbis_dsp_state *v, vorbis_comment *vc, ogg_packet *op, ogg_packet *op_comm, ogg_packet *op_code); extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); extern int vorbis_bitrate_addblock(vorbis_block *vb); extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op); extern int vorbis_synthesis_idheader(ogg_packet *op); extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, ogg_packet *op); extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); extern int vorbis_synthesis_restart(vorbis_dsp_state *v); extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); extern int vorbis_synthesis_halfrate_p(vorbis_info *v); # 28 "/usr/include/vorbis/vorbisfile.h" 2 3 4 # 39 "/usr/include/vorbis/vorbisfile.h" 3 4 typedef struct { size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); int (*seek_func) (void *datasource, ogg_int64_t offset, int whence); int (*close_func) (void *datasource); long (*tell_func) (void *datasource); } ov_callbacks; # 53 "/usr/include/vorbis/vorbisfile.h" 3 4 static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){ if(f==((void *)0))return(-1); return fseek(f,off,whence); } # 75 "/usr/include/vorbis/vorbisfile.h" 3 4 static ov_callbacks OV_CALLBACKS_DEFAULT = { (size_t (*)(void *, size_t, size_t, void *)) fread, (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, (int (*)(void *)) fclose, (long (*)(void *)) ftell }; static ov_callbacks OV_CALLBACKS_NOCLOSE = { (size_t (*)(void *, size_t, size_t, void *)) fread, (int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap, (int (*)(void *)) ((void *)0), (long (*)(void *)) ftell }; static ov_callbacks OV_CALLBACKS_STREAMONLY = { (size_t (*)(void *, size_t, size_t, void *)) fread, (int (*)(void *, ogg_int64_t, int)) ((void *)0), (int (*)(void *)) fclose, (long (*)(void *)) ((void *)0) }; static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = { (size_t (*)(void *, size_t, size_t, void *)) fread, (int (*)(void *, ogg_int64_t, int)) ((void *)0), (int (*)(void *)) ((void *)0), (long (*)(void *)) ((void *)0) }; # 111 "/usr/include/vorbis/vorbisfile.h" 3 4 typedef struct OggVorbis_File { void *datasource; int seekable; ogg_int64_t offset; ogg_int64_t end; ogg_sync_state oy; int links; ogg_int64_t *offsets; ogg_int64_t *dataoffsets; long *serialnos; ogg_int64_t *pcmlengths; vorbis_info *vi; vorbis_comment *vc; ogg_int64_t pcm_offset; int ready_state; long current_serialno; int current_link; double bittrack; double samptrack; ogg_stream_state os; vorbis_dsp_state vd; vorbis_block vb; ov_callbacks callbacks; } OggVorbis_File; extern int ov_clear(OggVorbis_File *vf); extern int ov_fopen(const char *path,OggVorbis_File *vf); extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, const char *initial, long ibytes, ov_callbacks callbacks); extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes); extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf, const char *initial, long ibytes, ov_callbacks callbacks); extern int ov_test_open(OggVorbis_File *vf); extern long ov_bitrate(OggVorbis_File *vf,int i); extern long ov_bitrate_instant(OggVorbis_File *vf); extern long ov_streams(OggVorbis_File *vf); extern long ov_seekable(OggVorbis_File *vf); extern long ov_serialnumber(OggVorbis_File *vf,int i); extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); extern double ov_time_total(OggVorbis_File *vf,int i); extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); extern int ov_time_seek(OggVorbis_File *vf,double pos); extern int ov_time_seek_page(OggVorbis_File *vf,double pos); extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos); extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos); extern int ov_time_seek_lap(OggVorbis_File *vf,double pos); extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos); extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf); extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); extern double ov_time_tell(OggVorbis_File *vf); extern vorbis_info *ov_info(OggVorbis_File *vf,int link); extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link); extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples, int *bitstream); extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length, int bigendianp,int word,int sgned,int *bitstream, void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); extern long ov_read(OggVorbis_File *vf,char *buffer,int length, int bigendianp,int word,int sgned,int *bitstream); extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2); extern int ov_halfrate(OggVorbis_File *vf,int flag); extern int ov_halfrate_p(OggVorbis_File *vf); # 148 "ossplay.h" 2 typedef struct { void * vorbisfile_handle; int (*ov_clear) (OggVorbis_File *); vorbis_comment * (*ov_comment) (OggVorbis_File *, int); vorbis_info * (*ov_info) (OggVorbis_File *, int); int (*ov_open_callbacks) (void *, OggVorbis_File *, char *, long, ov_callbacks); long (*ov_raw_tell) (OggVorbis_File *); long (*ov_read) (OggVorbis_File *, char *, int, int, int, int, int *); int (*ov_seekable) (OggVorbis_File *); double (*ov_time_total) (OggVorbis_File *, int); int (*ov_time_seek) (OggVorbis_File *, double); } dlopen_funcs_t; typedef struct { OggVorbis_File vf; dlopen_funcs_t * f; int bitstream, setup; dspdev_t * dsp; } ogg_data_t; # 178 "ossplay.h" typedef enum fctypes_t { RAW_FILE, WAVE_FILE, AU_FILE, AIFF_FILE, CAF_FILE, AIFC_FILE, WAVE_FILE_BE, _8SVX_FILE, _16SV_FILE, MAUD_FILE, W64_FILE, OGG_FILE } fctypes_t; # 203 "ossplay.h" typedef enum direction_t { CP = 0x1, CR = 0x2, CRP = 0x3 } direction_t; typedef struct fmt_struct { const char * name; const int fmt; const direction_t dir; const int may_conv; } format_t; typedef struct cnt_struct { const char * name; const fctypes_t type; const int dformat; const int dchannels; const int dspeed; } container_t; typedef struct { int coeff1, coeff2; } adpcm_coeff; typedef struct msadpcm_values { uint16 nBlockAlign; uint16 wSamplesPerBlock; uint16 wNumCoeff; uint16 bits; adpcm_coeff coeff[32]; int channels; } msadpcm_values_t; typedef ssize_t (decfunc_t) (unsigned char **, unsigned char *, ssize_t, void *); typedef errors_t (seekfunc_t) (int, big_t *, big_t, double, big_t, int, void *); typedef ssize_t (readfunc_t) (int, void *, size_t, void *); typedef enum decoder_flag_t { FREE_NONE = 0, FREE_OBUF = 1, FREE_META = 2 } decoder_flag_t; typedef struct decoders_queue { struct decoders_queue * next; decfunc_t * decoder; unsigned char * outbuf; void * metadata; decoder_flag_t flag; } decoders_queue_t; big_t be_int (const unsigned char *, int); const char * filepart (const char *); float format2bits (int); big_t le_int (const unsigned char *, int); ldouble_t ossplay_ldexpl (ldouble_t, int); int ossplay_parse_opts (int, char **, dspdev_t *); int ossrecord_parse_opts (int, char **, dspdev_t *); int play (dspdev_t *, int, big_t *, big_t, double, double, readfunc_t *, decoders_queue_t *, seekfunc_t *); int record (dspdev_t *, FILE *, const char *, double, big_t, big_t *, decoders_queue_t * dec); const char * sample_format_name (int); errors_t setup_device (dspdev_t *, int, int, int); errors_t silence (dspdev_t *, big_t, int); void select_playtgt (dspdev_t *); void select_recsrc (dspdev_t *); void open_device (dspdev_t *); void close_device (dspdev_t *); # 5 "ossplay_decode.h" 2 typedef struct verbose_values { char tstring[20]; double secs; double next_sec; double secs_timer2; double next_sec_timer2; double tsecs; double constant; int format; } verbose_values_t; errors_t decode_sound (dspdev_t *, int, big_t, int, int, int, void *); errors_t encode_sound (dspdev_t *, fctypes_t, const char *, int, int, int, big_t); int get_db_level (const unsigned char *, ssize_t, int); verbose_values_t * setup_verbose (int, double, double); # 18 "ossplay_decode.c" 2 # 1 "ossplay_wparser.h" 1 int write_head (FILE *, fctypes_t, big_t, int, int, int); int finalize_head (FILE *, fctypes_t, big_t, int, int, int); # 19 "ossplay_decode.c" 2 typedef struct cradpcm_values { const unsigned char * const * table; signed char limit; signed char shift; signed char step; unsigned char ratio; unsigned char pred; } cradpcm_values_t; typedef struct fib_values { unsigned char pred; const signed char * table; } fib_values_t; typedef struct ima_values { int channels; int16 pred[128]; int8 index[128]; } ima_values_t; # 64 "ossplay_decode.c" extern int amplification, eflag, force_speed, force_fmt, force_channels; extern flag int_conv, overwrite, verbose; extern char audio_devname[32]; extern off_t (*ossplay_lseek) (int, off_t, int); extern double seek_time; extern const format_t format_a[]; static void decode_ima (unsigned char *, unsigned char *, ssize_t, int16 *, int8 *, int, int); static void decode_ima_3bits (unsigned char *, unsigned char *, ssize_t, int16 *, int8 *, int, int); static decfunc_t decode_24; static decfunc_t decode_8_to_s16; static decfunc_t decode_amplify; static decfunc_t decode_cr; static decfunc_t decode_double64_be; static decfunc_t decode_double64_le; static decfunc_t decode_endian; static decfunc_t decode_fib; static decfunc_t decode_float32_be; static decfunc_t decode_float32_le; static decfunc_t decode_mac_ima; static decfunc_t decode_ms_ima; static decfunc_t decode_ms_adpcm; static decfunc_t decode_nul; static decfunc_t decode_raw_ima; static int32 float32_to_s32 (int, int, int); static int32 double64_to_s32 (int, int32, int32, int); static cradpcm_values_t * setup_cr (int, int); static fib_values_t * setup_fib (int, int); static decoders_queue_t * setup_normalize (int *, int *, decoders_queue_t *); static seekfunc_t seek_normal; static seekfunc_t seek_compressed; static readfunc_t read_normal; static readfunc_t read_ogg; static seekfunc_t seek_ogg; errors_t decode_sound (dspdev_t * dsp, int fd, big_t filesize, int format, int channels, int speed, void * metadata) { decoders_queue_t * dec, * decoders; readfunc_t * readf; seekfunc_t * seekf; int bsize, obsize; double constant, total_time; errors_t ret = E_DECODE; if (force_speed != 0) speed = force_speed; if (force_channels != 0) channels = force_channels; if (force_fmt != 0) format = force_fmt; if ((channels > 128) || (channels == 0)) { print_msg (ERRORM, "An unreasonable number of channels (%d), aborting\n", channels); return E_DECODE; } constant = format2bits (format) * speed * channels / 8.0; if (constant == 0) return E_DECODE; bsize = 1024; if (filesize < 2) return E_OK; decoders = dec = (decoders_queue_t *)ossplay_malloc (sizeof (decoders_queue_t)); dec->next = ((void *)0); dec->flag = 0; seekf = seek_normal; readf = read_normal; if (filesize != (18446744073709551615ULL)) total_time = filesize / constant; else total_time = 0; switch (format) { case AFMT_MS_ADPCM: if (metadata == ((void *)0)) { msadpcm_values_t * val = (msadpcm_values_t *)ossplay_malloc (sizeof (msadpcm_values_t)); val->channels = channels; if (speed < 22000) val->nBlockAlign = 256; else if (speed < 44000) val->nBlockAlign = 512; else val->nBlockAlign = 1024; val->wSamplesPerBlock = 8 * (val->nBlockAlign - 7 * channels) / (4 * channels) + 2; val->wNumCoeff = 7; val->coeff[0].coeff1 = 256; val->coeff[0].coeff2 = 0; val->coeff[1].coeff1 = 512; val->coeff[1].coeff2 = -256; val->coeff[2].coeff1 = 0; val->coeff[2].coeff2 = 0; val->coeff[3].coeff1 = 192; val->coeff[3].coeff2 = 64; val->coeff[4].coeff1 = 240; val->coeff[4].coeff2 = 0; val->coeff[5].coeff1 = 460; val->coeff[5].coeff2 = -208; val->coeff[6].coeff1 = 392; val->coeff[6].coeff2 = -232; bsize = val->nBlockAlign; total_time = 0; dec->metadata = (void *)val; dec->flag = FREE_META; } else { msadpcm_values_t * val = (msadpcm_values_t *)metadata; if (val->nBlockAlign == 0) { val->nBlockAlign = filesize - filesize % 4; } else { total_time = val->wSamplesPerBlock * filesize * channels / val->nBlockAlign / constant / 2; } bsize = val->nBlockAlign; dec->metadata = metadata; } dec->decoder = decode_ms_adpcm; obsize = 4 * bsize; dec->outbuf = (unsigned char *)ossplay_malloc (obsize); dec->flag |= FREE_OBUF; seekf = seek_compressed; format = 0x00000010; break; case AFMT_MS_IMA_ADPCM: case AFMT_MS_IMA_ADPCM_3BITS: dec->metadata = metadata; if (dec->metadata == ((void *)0)) { msadpcm_values_t * val = (msadpcm_values_t *)ossplay_malloc (sizeof (msadpcm_values_t)); val->channels = channels; val->bits = (format == AFMT_MS_IMA_ADPCM)?4:3; val->nBlockAlign = 256 * channels * (speed > 11000)?speed/11000:1; } else { msadpcm_values_t * val = (msadpcm_values_t *)metadata; if (val->nBlockAlign == 0) { val->nBlockAlign = filesize - filesize % 4; } else { total_time = val->wSamplesPerBlock * filesize * val->bits * channels / val->nBlockAlign / constant / 8.0; } bsize = val->nBlockAlign; } dec->decoder = decode_ms_ima; if (format == AFMT_MS_IMA_ADPCM_3BITS) obsize = (bsize * 16)/3 + 2; else obsize = 4 * bsize; dec->outbuf = (unsigned char *)ossplay_malloc (obsize); dec->flag = FREE_OBUF; seekf = seek_compressed; format = 0x00000010; break; case AFMT_MAC_IMA_ADPCM: dec->metadata = (void *)(intptr)channels; dec->decoder = decode_mac_ima; bsize -= bsize % (34 * channels); obsize = 4 * bsize; dec->outbuf = (unsigned char *)ossplay_malloc (obsize); dec->flag = FREE_OBUF; seekf = seek_compressed; format = 0x00000010; break; case 0x00000004: dec->metadata = (void *)ossplay_malloc (sizeof (ima_values_t)); memset (dec->metadata, 0, sizeof (ima_values_t)); ((ima_values_t *)(dec->metadata))->channels = channels; dec->decoder = decode_raw_ima; obsize = 4 * bsize; dec->outbuf = (unsigned char *)ossplay_malloc (obsize); dec->flag = FREE_OBUF | FREE_META; seekf = seek_compressed; format = 0x00000010; break; case AFMT_CR_ADPCM_2: case AFMT_CR_ADPCM_3: case AFMT_CR_ADPCM_4: dec->metadata = (void *)setup_cr (fd, format);; if (dec->metadata == ((void *)0)) goto exit; dec->decoder = decode_cr; obsize = ((cradpcm_values_t *)dec->metadata)->ratio * bsize; dec->outbuf = (unsigned char *)ossplay_malloc (obsize); dec->flag = FREE_OBUF | FREE_META; seekf = seek_compressed; if (filesize != (18446744073709551615ULL)) filesize--; format = 0x00000008; break; case AFMT_FIBO_DELTA: case AFMT_EXP_DELTA: dec->metadata = (void *)setup_fib (fd, format);; if (dec->metadata == ((void *)0)) goto exit; dec->decoder = decode_fib; obsize = 2 * bsize; dec->outbuf = (unsigned char *)ossplay_malloc (obsize); dec->flag = FREE_OBUF | FREE_META; seekf = seek_compressed; if (filesize != (18446744073709551615ULL)) filesize--; format = 0x00000008; break; case 0x00040000: case AFMT_S24_PACKED_BE: dec->metadata = (void *)(intptr)format; dec->decoder = decode_24; bsize -= bsize % 3; obsize = bsize/3*4; dec->outbuf = (unsigned char *)ossplay_malloc (obsize); dec->flag = FREE_OBUF; format = 0x00001000; break; case AFMT_FLOAT32_BE: case AFMT_FLOAT32_LE: if (format == AFMT_FLOAT32_BE) dec->decoder = decode_float32_be; else dec->decoder = decode_float32_le; bsize -= bsize % 4; obsize = bsize; dec->outbuf = ((void *)0); format = 0x00001000; break; case AFMT_DOUBLE64_BE: case AFMT_DOUBLE64_LE: if (format == AFMT_DOUBLE64_BE) dec->decoder = decode_double64_be; else dec->decoder = decode_double64_le; bsize -= bsize % 8; obsize = bsize/2; dec->outbuf = ((void *)0); format = 0x00001000; break; case 0x00000800: readf = read_ogg; dec->decoder = decode_nul; dec->metadata = metadata; obsize = bsize; if (metadata == ((void *)0)) goto exit; else { ogg_data_t * val = (ogg_data_t *)metadata; if (val->f->ov_seekable (&val->vf)) { seekf = seek_ogg; total_time = val->f->ov_time_total (&val->vf, -1); } else { seekf = ((void *)0); total_time = 0; } } format = 0x00000010; break; default: dec->decoder = decode_nul; obsize = bsize; break; } if (int_conv) decoders = setup_normalize (&format, &obsize, decoders); if ((amplification > 0) && (amplification != 100)) { decoders->next = (decoders_queue_t *)ossplay_malloc (sizeof (decoders_queue_t)); decoders = decoders->next; decoders->metadata = (void *)(intptr)format; decoders->decoder = decode_amplify; decoders->next = ((void *)0); decoders->outbuf = ((void *)0); decoders->flag = 0; } ret = setup_device (dsp, format, channels, speed); if (ret == E_FORMAT_UNSUPPORTED) { int i, tmp; for (i = 0; format_a[i].name != ((void *)0); i++) if (format_a[i].fmt == format) { tmp = format_a[i].may_conv; if ((tmp == 0) || (tmp == format)) continue; print_msg (WARNM, "Converting to format %s\n", sample_format_name (tmp)); ret = setup_device (dsp, tmp, channels, speed); if (ret == E_FORMAT_UNSUPPORTED) goto exit; decoders = setup_normalize (&format, &obsize, decoders); goto dcont; } goto exit; } dcont: # 415 "ossplay_decode.c" if (ret) goto exit; # 434 "ossplay_decode.c" ret = play (dsp, fd, &filesize, bsize, total_time, constant, readf, dec, seekf); exit: decoders = dec; while (decoders != ((void *)0)) { if (decoders->flag & FREE_META) ossplay_free (decoders->metadata); if (decoders->flag & FREE_OBUF) ossplay_free (decoders->outbuf); decoders = decoders->next; ossplay_free (dec); dec = decoders; } return ret; } errors_t encode_sound (dspdev_t * dsp, fctypes_t type, const char * fname, int format, int channels, int speed, big_t datalimit) { big_t datasize = 0; double constant; int fd = -1; decoders_queue_t * dec, * decoders = ((void *)0); errors_t ret; FILE * wave_fp; if ((ret = setup_device (dsp, format, channels, speed))) return ret; constant = format2bits (format) * speed * channels / 8.0; if (datalimit != 0) datalimit *= constant; if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (fname) && __builtin_constant_p ("-") && (__s1_len = __builtin_strlen (fname), __s2_len = __builtin_strlen ("-"), (!((size_t)(const void *)((fname) + 1) - (size_t)(const void *)(fname) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("-") + 1) - (size_t)(const void *)("-") == 1) || __s2_len >= 4)) ? __builtin_strcmp (fname, "-") : (__builtin_constant_p (fname) && ((size_t)(const void *)((fname) + 1) - (size_t)(const void *)(fname) == 1) && (__s1_len = __builtin_strlen (fname), __s1_len < 4) ? (__builtin_constant_p ("-") && ((size_t)(const void *)(("-") + 1) - (size_t)(const void *)("-") == 1) ? __builtin_strcmp (fname, "-") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("-"); register int __result = (((__const unsigned char *) (__const char *) (fname))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (fname))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (fname))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (fname))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-") && ((size_t)(const void *)(("-") + 1) - (size_t)(const void *)("-") == 1) && (__s2_len = __builtin_strlen ("-"), __s2_len < 4) ? (__builtin_constant_p (fname) && ((size_t)(const void *)((fname) + 1) - (size_t)(const void *)(fname) == 1) ? __builtin_strcmp (fname, "-") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (fname); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("-"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("-"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("-"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("-"))[3]); } } __result; }))) : __builtin_strcmp (fname, "-")))); }) == 0) { wave_fp = fdopen (1, "wb"); } else { fd = open (fname, 01 | 0100 | (overwrite?01000:0200), 0644); if (fd == -1) { perror (fname); return E_ENCODE; } wave_fp = fdopen (fd, "wb"); } if (wave_fp == ((void *)0)) { perror (fname); if (fd != -1) close (fd); return E_ENCODE; } if (channels == 1) print_msg (VERBOSEM, "Recording wav: Speed %dHz %d bits Mono\n", speed, (int)format2bits (format)); if (channels == 2) print_msg (VERBOSEM, "Recording wav: Speed %dHz %d bits Stereo\n", speed, (int)format2bits (format)); if (channels > 2) print_msg (VERBOSEM, "Recording wav: Speed %dHz %d bits %d channels\n", speed, (int)format2bits (format), channels); if (write_head (wave_fp, type, datalimit, format, channels, speed)) return E_ENCODE; decoders = dec = (decoders_queue_t *)ossplay_malloc (sizeof (decoders_queue_t)); dec->next = ((void *)0); dec->flag = 0; dec->decoder = decode_nul; if ((amplification > 0) && (amplification != 100)) { decoders->next = (decoders_queue_t *)ossplay_malloc (sizeof (decoders_queue_t)); decoders = decoders->next; decoders->metadata = (void *)(intptr)format; decoders->decoder = decode_amplify; decoders->next = ((void *)0); decoders->outbuf = ((void *)0); decoders->flag = 0; } ret = record (dsp, wave_fp, fname, constant, datalimit, &datasize, dec); finalize_head (wave_fp, type, datasize, format, channels, speed); fflush (wave_fp); if ((fsync (fileno (wave_fp)) == -1) && ((*__errno_location ()) != 22) && ((*__errno_location ()) != 30)) { perror (fname); ret = E_ENCODE; } if (fclose (wave_fp) != 0) { perror (fname); ret = E_ENCODE; } decoders = dec; while (decoders != ((void *)0)) { if (decoders->flag & FREE_META) ossplay_free (decoders->metadata); if (decoders->flag & FREE_OBUF) ossplay_free (decoders->outbuf); decoders = decoders->next; ossplay_free (dec); dec = decoders; } return ret; } static ssize_t decode_24 (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { big_t outlen = 0; ssize_t i; int v1; uint32 * u32; int32 sample_s32, * outbuf = (int32 *) * obuf; int format = (int)(intptr)metadata; if (format == 0x00040000) v1 = 8; else v1 = 24; for (i = 0; i < l-2; i += 3) { u32 = (uint32 *) &sample_s32; *u32 = (buf[i] << v1) | (buf[i + 1] << 16) | (buf[i + 2] << (32-v1)); outbuf[outlen++] = sample_s32; } return 4 * outlen; } static fib_values_t * setup_fib (int fd, int format) { static const signed char CodeToDelta[16] = { -34, -21, -13, -8, -5, -3, -2, -1, 0, 1, 2, 3, 5, 8, 13, 21 }; static const signed char CodeToExpDelta[16] = { -128, -64, -32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 32, 64 }; unsigned char buf; fib_values_t * val; if (read (fd, &buf, 1) <= 0) return ((void *)0); val = (fib_values_t *)ossplay_malloc (sizeof (fib_values_t)); if (format == AFMT_EXP_DELTA) val->table = CodeToExpDelta; else val->table = CodeToDelta; val->pred = buf; return val; } static cradpcm_values_t * setup_cr (int fd, int format) { static const unsigned char T2[4][3] = { { 128, 6, 1 }, { 32, 4, 1 }, { 8, 2, 1 }, { 2, 0, 1 } }; static const unsigned char T3[3][3] = { { 128, 5, 3 }, { 16, 2, 3 }, { 2, 0, 1 } }; static const unsigned char T4[2][3] = { { 128, 4, 7 }, { 8, 0, 7 } }; static const unsigned char * t_row[4]; unsigned char buf; cradpcm_values_t * val; int i; if (read (fd, &buf, 1) <= 0) return ((void *)0); val = (cradpcm_values_t *)ossplay_malloc (sizeof (cradpcm_values_t)); val->table = t_row; if (format == AFMT_CR_ADPCM_2) { val->limit = 1; val->step = val->shift = 2; val->ratio = 4; for (i=0; i < 4; i++) t_row[i] = T2[i]; } else if (format == AFMT_CR_ADPCM_3) { val->limit = 3; val->ratio = 3; val->step = val->shift = 0; for (i=0; i < 3; i++) t_row[i] = T3[i]; } else { val->limit = 5; val->ratio = 2; val->step = val->shift = 0; for (i=0; i < 2; i++) t_row[i] = T4[i]; } val->pred = buf; return val; } static ssize_t decode_8_to_s16 (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { int format = (int)(intptr)metadata; ssize_t i; int16 * outbuf = (int16 *) * obuf; static const int16 mu_law_table[256] = { -32124,-31100,-30076,-29052,-28028,-27004,-25980,-24956, -23932,-22908,-21884,-20860,-19836,-18812,-17788,-16764, -15996,-15484,-14972,-14460,-13948,-13436,-12924,-12412, -11900,-11388,-10876,-10364,-9852, -9340, -8828, -8316, -7932, -7676, -7420, -7164, -6908, -6652, -6396, -6140, -5884, -5628, -5372, -5116, -4860, -4604, -4348, -4092, -3900, -3772, -3644, -3516, -3388, -3260, -3132, -3004, -2876, -2748, -2620, -2492, -2364, -2236, -2108, -1980, -1884, -1820, -1756, -1692, -1628, -1564, -1500, -1436, -1372, -1308, -1244, -1180, -1116, -1052, -988, -924, -876, -844, -812, -780, -748, -716, -684, -652, -620, -588, -556, -524, -492, -460, -428, -396, -372, -356, -340, -324, -308, -292, -276, -260, -244, -228, -212, -196, -180, -164, -148, -132, -120, -112, -104, -96, -88, -80, -72, -64, -56, -48, -40, -32, -24, -16, -8, 0, 32124, 31100, 30076, 29052, 28028, 27004, 25980, 24956, 23932, 22908, 21884, 20860, 19836, 18812, 17788, 16764, 15996, 15484, 14972, 14460, 13948, 13436, 12924, 12412, 11900, 11388, 10876, 10364, 9852, 9340, 8828, 8316, 7932, 7676, 7420, 7164, 6908, 6652, 6396, 6140, 5884, 5628, 5372, 5116, 4860, 4604, 4348, 4092, 3900, 3772, 3644, 3516, 3388, 3260, 3132, 3004, 2876, 2748, 2620, 2492, 2364, 2236, 2108, 1980, 1884, 1820, 1756, 1692, 1628, 1564, 1500, 1436, 1372, 1308, 1244, 1180, 1116, 1052, 988, 924, 876, 844, 812, 780, 748, 716, 684, 652, 620, 588, 556, 524, 492, 460, 428, 396, 372, 356, 340, 324, 308, 292, 276, 260, 244, 228, 212, 196, 180, 164, 148, 132, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0 }; static const int16 a_law_table[256] = { -5504, -5248, -6016, -5760, -4480, -4224, -4992, -4736, -7552, -7296, -8064, -7808, -6528, -6272, -7040, -6784, -2752, -2624, -3008, -2880, -2240, -2112, -2496, -2368, -3776, -3648, -4032, -3904, -3264, -3136, -3520, -3392, -22016,-20992,-24064,-23040,-17920,-16896,-19968,-18944, -30208,-29184,-32256,-31232,-26112,-25088,-28160,-27136, -11008,-10496,-12032,-11520,-8960, -8448, -9984, -9472, -15104,-14592,-16128,-15616,-13056,-12544,-14080,-13568, -344, -328, -376, -360, -280, -264, -312, -296, -472, -456, -504, -488, -408, -392, -440, -424, -88, -72, -120, -104, -24, -8, -56, -40, -216, -200, -248, -232, -152, -136, -184, -168, -1376, -1312, -1504, -1440, -1120, -1056, -1248, -1184, -1888, -1824, -2016, -1952, -1632, -1568, -1760, -1696, -688, -656, -752, -720, -560, -528, -624, -592, -944, -912, -1008, -976, -816, -784, -880, -848, 5504, 5248, 6016, 5760, 4480, 4224, 4992, 4736, 7552, 7296, 8064, 7808, 6528, 6272, 7040, 6784, 2752, 2624, 3008, 2880, 2240, 2112, 2496, 2368, 3776, 3648, 4032, 3904, 3264, 3136, 3520, 3392, 22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944, 30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136, 11008, 10496, 12032, 11520, 8960, 8448, 9984, 9472, 15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568, 344, 328, 376, 360, 280, 264, 312, 296, 472, 456, 504, 488, 408, 392, 440, 424, 88, 72, 120, 104, 24, 8, 56, 40, 216, 200, 248, 232, 152, 136, 184, 168, 1376, 1312, 1504, 1440, 1120, 1056, 1248, 1184, 1888, 1824, 2016, 1952, 1632, 1568, 1760, 1696, 688, 656, 752, 720, 560, 528, 624, 592, 944, 912, 1008, 976, 816, 784, 880, 848 }; switch (format) { case 0x00000008: for (i = 0; i < l; i++) outbuf[i] = (buf[i] - 128) << 8; break; case 0x00000040: for (i = 0; i < l; i++) outbuf[i] = buf[i] << 8; break; case 0x00000001: for (i = 0; i < l; i++) outbuf[i] = mu_law_table[buf[i]]; break; case 0x00000002: for (i = 0; i < l; i++) outbuf[i] = a_law_table[buf[i]]; break; } return 2*l; } static ssize_t decode_cr (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { cradpcm_values_t * val = (cradpcm_values_t *) metadata; int j, pred = val->pred, step = val->step; unsigned char value; signed char sign; ssize_t i; for (i=0; i < l; i++) for (j=0; j < val->ratio; j++) { sign = (buf[i] & val->table[j][0])?-1:1; value = (buf[i] >> val->table[j][1]) & val->table[j][2]; pred += sign*(value << step); if (pred > 255) pred = 255; else if (pred < 0) pred = 0; (*obuf)[val->ratio*i+j] = pred; if ((value >= val->limit) && (step < 3+val->shift)) step++; if ((value == 0) && (step > val->shift)) step--; } val->pred = pred; val->step = step; return val->ratio*l; } static ssize_t decode_fib (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { fib_values_t * val = (fib_values_t *)metadata; int x = val->pred; unsigned char d; ssize_t i; for (i = 0; i < 2*l; i++) { d = buf[i/2]; if (i & 1) d &= 0xF; else d >>= 4; x += val->table[d]; if (x > 255) x = 255; if (x < 0) x = 0; (*obuf)[i] = x; } val->pred = x; return 2*l; } static ssize_t decode_ms_adpcm (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { msadpcm_values_t * val = (msadpcm_values_t *)metadata; int error_delta, i_delta, i = 0, nib = 0, channels = val->channels; int AdaptionTable[16] = { 230, 230, 230, 230, 307, 409, 512, 614, 768, 614, 512, 409, 307, 230, 230, 230 }; ssize_t outp = 0, x = 0; int16 * wbuf = (int16 *)*obuf; int32 delta[128], samp1[128], samp2[128], predictor[128], new_samp, pred, n = 0; # 836 "ossplay_decode.c" for (i = 0; i < channels; i++) { predictor[i] = buf[x]; if (predictor[i] > val->wNumCoeff) predictor[i] = val->wNumCoeff; x++; } for (i = 0; i < channels; i++) { delta[i] = (int16) le_int (&buf[x], 2); x += 2; } for (i = 0; i < channels; i++) { samp1[i] = (int16) le_int (&buf[x], 2); x += 2; do { if (samp1[i] > 32767) samp1[i] = 32767; else if (samp1[i] < -32768) samp1[i] = -32768; wbuf[outp++] = samp1[i]; n += 2; } while(0); } for (i = 0; i < channels; i++) { samp2[i] = (int16) le_int (&buf[x], 2); x += 2; do { if (samp2[i] > 32767) samp2[i] = 32767; else if (samp2[i] < -32768) samp2[i] = -32768; wbuf[outp++] = samp2[i]; n += 2; } while(0); } while (n < (val->wSamplesPerBlock * 2 * channels)) for (i = 0; i < channels; i++) { pred = ((samp1[i] * val->coeff[predictor[i]].coeff1) + (samp2[i] * val->coeff[predictor[i]].coeff2)) / 256; if (x > l) return 2*outp; i_delta = error_delta = ((nib == 0) ? (buf[x + nib++] >> 4) & 0x0f : buf[x++ + --nib] & 0x0f ); if (i_delta & 0x08) i_delta -= 0x10; new_samp = pred + (delta[i] * i_delta); do { if (new_samp > 32767) new_samp = 32767; else if (new_samp < -32768) new_samp = -32768; wbuf[outp++] = new_samp; n += 2; } while(0); delta[i] = delta[i] * AdaptionTable[error_delta] / 256; if (delta[i] < 16) delta[i] = 16; samp2[i] = samp1[i]; samp1[i] = new_samp; } return 2*outp; } static ssize_t decode_nul (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { *obuf = buf; return l; } static ssize_t decode_endian (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { int format = (int)(intptr)metadata; ssize_t i; switch (format) { case 0x00000020: { int16 * s = (int16 *)buf; for (i = 0; i < l / 2; i++) s[i] = ((s[i] >> 8) & 0x00FF) | ((s[i] << 8) & 0xFF00); } break; case 0x00002000: case 0x00010000: { int32 * s = (int32 *)buf; for (i = 0; i < l / 4; i++) s[i] = ((s[i] >> 24) & 0x000000FF) | ((s[i] << 8) & 0x00FF0000) | ((s[i] >> 8) & 0x0000FF00) | ((s[i] << 24) & 0xFF000000); } break; case 0x00000100: { int16 * s = (int16 *)buf; for (i = 0; i < l / 2; i++) s[i] = (((s[i] >> 8) & 0x00FF) | ((s[i] << 8) & 0xFF00)) - (32767 * 2 + 1)/2; } break; case 0x00000080: { int16 * s = (int16 *)buf; for (i = 0; i < l / 2; i++) s[i] -= (32767 * 2 + 1)/2; } break; } *obuf = buf; return l; } static ssize_t decode_amplify (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { int format = (int)(intptr)metadata; ssize_t i, len; switch (format) { case 0x00000010: { int16 *s = (int16 *)buf; int32 tmp; len = l / 2; for (i = 0; i < len ; i++) { tmp = (int32)s[i] * amplification / 100; if (tmp > 32767) s[i] = 32767; else if (tmp < (-32767 - 1)) s[i] = (-32767 - 1); else s[i] = tmp; } } break; case 0x00001000: case 0x00008000: { int32 *s = (int32 *)buf; sbig_t tmp; len = l / 4; for (i = 0; i < len; i++) { tmp = (sbig_t)s[i] * amplification / 100; if (tmp > (2147483647)) s[i] = (2147483647); else if (tmp < (-2147483647-1)) s[i] = (-2147483647-1); else s[i] = tmp; } } break; } *obuf = buf; return l; } static void decode_ima (unsigned char * obuf, unsigned char * buf, ssize_t l, int16 * pred0, int8 * index0, int channels, int ch) { int j; int32 pred = *pred0; int16 step; int16 * outbuf = (int16 *) obuf; int8 index = *index0, value; signed char sign; ssize_t i; static const int step_tab[89] = { 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 }; static const int8 iTab4[16] = {-1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8}; for (i=0; i < l; i++) for (j=0; j < 2; j++) { value = (buf[i] >> 4*j) & 15; step = step_tab[index]; index += iTab4[value]; if (index < 0) index = 0; else if (index > 88) index = 88; sign = 1 - 2 * ((value >> 3) & 1); value &= 7; pred += sign * (2 * value + 1) * step / 4; if (pred > 32767) pred = 32767; else if (pred < -32768) pred = -32768; outbuf[channels*(2*i+j)+ch] = pred; } *index0 = index; *pred0 = pred; return; } static void decode_ima_3bits (unsigned char * obuf, unsigned char * buf, ssize_t l, int16 * pred0, int8 * index0, int channels, int ch) { int j; signed char sign; ssize_t i; int32 pred = *pred0, raw; int8 index = *index0, value; int16 * outbuf = (int16 *) obuf, step; static const int step_tab[89] = { 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 }; static const int8 iTab3[8] = {-1, -1, 1, 2, -1, -1, 1, 2}; for (i=0; i < l-2; i += 3) { raw = buf[i] + (buf[i+1] << 8) + (buf[i+2] << 16); for (j = 0; j < 8; j++) { value = (raw >> (3*j)) & 7; step = step_tab[index]; index += iTab3[value]; if (index < 0) index = 0; else if (index > 88) index = 88; sign = 1 - 2 * ((value >> 2) & 1); value &= 3; pred += sign * (2 * value + 1) * step / 4; if (pred > 32767) pred = 32767; else if (pred < -32768) pred = -32768; outbuf[channels*(8*i/3+j)+ch] = pred; } } *index0 = index; *pred0 = pred; return; } static ssize_t decode_mac_ima (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { ssize_t len = 0, olen = 0; int i, channels = (int)(intptr)metadata; int16 pred; int8 index; while (len < l) { for (i = 0; i < channels; i++) { if (len + 34 > l) return olen; pred = (int16)((buf[len] << 8) | (buf[len+1] & 128)); index = buf[len+1] & 127; if (index > 88) index = 88; len += 2; decode_ima (*obuf + olen, buf + len, 34 - 2, &pred, &index, channels, i); len += 34 -2; } olen += 4*(34 - 2)*channels; } return olen; } static ssize_t decode_ms_ima (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { int i; ssize_t len = 0, olen = 0; msadpcm_values_t * val = (msadpcm_values_t *)metadata; int8 index[128]; int16 * outbuf = (int16 *) * obuf, pred[128]; for (i = 0; i < val->channels; i++) { if (len >= l) return olen; pred[i] = (int16) le_int (buf + len, 2); outbuf[i] = pred[i]; olen += 2; index[i] = buf[len + 2]; if (index[i] > 88) index[i] = 88; if (index[i] < 0) index[i] = 0; len += 4; } if (val->bits == 4) while (len < l) { for (i = 0; i < val->channels; i++) { if (len + 4 > l) return olen; decode_ima (*obuf + olen, buf + len, 4, &pred[i], &index[i], val->channels, i); len += 4; } olen += 2*8*val->channels; } else { unsigned char rbuf[12]; int j; while (len < l) { if (len + 12*val->channels > l) return olen; for (i = 0; i < val->channels; i++) { for (j = 0; j < 12; j++) rbuf[j] = buf[len + j%4 + (j/4)*(val->channels*4) + i*4]; decode_ima_3bits (*obuf + olen, rbuf, 12, &pred[i], &index[i], val->channels, i); } len += 12*val->channels; olen += 64*val->channels; } } return olen; } static ssize_t decode_raw_ima (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { ima_values_t * val = (ima_values_t *)metadata; ssize_t olen = 0; decode_ima (*obuf, buf, l, &val->pred[0], &val->index[0], 1, 0); olen = 4*l; return olen; } static ssize_t decode_float32_be (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { ssize_t i; int exp, man; int32 * wbuf = (int32 *) buf; for (i=0; i < l-3; i += 4) { exp = ((buf[i] & 0x7F) << 1) | ((buf[i+1] & 0x80) / 0x80); man = ((buf[i+1] & 0x7F) << 16) | (buf[i+2] << 8) | buf[i+3]; *wbuf++ = float32_to_s32 (exp, man, (buf[i] & 0x80)); } *obuf = buf; return l; } static ssize_t decode_float32_le (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { ssize_t i; int exp, man; int32 * wbuf = (int32 *) buf; for (i=0; i < l-3; i += 4) { exp = ((buf[i+3] & 0x7F) << 1) | ((buf[i+2] & 0x80) / 0x80); man = ((buf[i+2] & 0x7F) << 16) | (buf[i+1] << 8) | buf[i]; *wbuf++ = float32_to_s32 (exp, man, (buf[i+3] & 0x80)); } *obuf = buf; return l; } static ssize_t decode_double64_be (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { ssize_t i; int exp; int32 * wbuf = (int32 *) buf, lower, upper; for (i=0; i < l-7; i += 8) { exp = ((buf[i] & 0x7F) << 4) | ((buf[i+1] >> 4) & 0xF) ; upper = ((buf[i+1] & 0xF) << 24) | (buf[i+2] << 16) | (buf[i+3] << 8) | buf[i+4]; lower = (buf[i+5] << 16) | (buf[i+6] << 8) | buf[i+7]; *wbuf++ = double64_to_s32 (exp, upper, lower, buf[i] & 0x80); } *obuf = buf; return l/2; } static ssize_t decode_double64_le (unsigned char ** obuf, unsigned char * buf, ssize_t l, void * metadata) { ssize_t i; int exp; int32 * wbuf = (int32 *) buf, lower, upper; for (i=0; i < l-7; i += 8) { exp = ((buf[i+7] & 0x7F) << 4) | ((buf[i+6] >> 4) & 0xF); upper = ((buf[i+6] & 0xF) << 24) | (buf[i+5] << 16) | (buf[i+4] << 8) | buf[i+3]; lower = (buf[i+2] << 16) | (buf[i+1] << 8) | buf[i]; *wbuf++ = double64_to_s32 (exp, upper, lower, buf[i+7] & 0x80); } *obuf = buf; return l/2; } static int32 double64_to_s32 (int exp, int32 upper, int32 lower, int sign) { ldouble_t out, value; if ((exp != 0) && (exp != 2047)) { value = (upper + lower / ((double)0x1000000))/((double)0x10000000) + 1; value = ossplay_ldexpl (value, exp - 1023); } else if (exp == 0) { return 0; } else { print_msg (WARNM, "exp == 2047 in file!\n"); return 0; } out = (sign ? 1 : -1) * value * (-2147483647-1); if (out > (2147483647)) out = (2147483647); else if (out < (-2147483647-1)) out = (-2147483647-1); return out; } static int32 float32_to_s32 (int exp, int man, int sign) { ldouble_t out, value; if ((exp != 0) && (exp != 255)) { value = man ? (float)man/(float)0x800000 + 1 : 0.0; value = ossplay_ldexpl (value, exp - 127); } else if (exp == 0) { return 0; } else { print_msg (WARNM, "exp == 255 in file!\n"); return 0; } out = (sign ? 1 : -1) * value * (-2147483647-1); if (out > (2147483647)) out = (2147483647); else if (out < (-2147483647-1)) out = (-2147483647-1); return out; } int get_db_level (const unsigned char * buf, ssize_t l, int format) { static const unsigned char db_table[256] = { 0, 0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }; int32 level, v = 0; ssize_t i; level = 0; if ((buf == ((void *)0)) || (l == 0)) return 0; switch (format) { case 0x00000008: { uint8 * p; p = (uint8 *)buf; for (i = 0; i < l; i++) { v = (*p++); if (v > level) level = v; } } case 0x00000040: { int8 * p; p = (int8 *)buf; for (i = 0; i < l; i++) { v = *p++; if (v < 0) { if (v != -v) v = -v; else v = -(v+1); } if (v > level) level = v; } } break; case 0x00000010: { int16 * p; p = (int16 *)buf; for (i = 0; i < l / 2; i++) { v = *p++; if (v < 0) { if (v != -v) v = -v; else v = -(v+1); } if (v > level) level = v; } } level >>= 8; break; case 0x00008000: case 0x00001000: { int32 * p; p = (int32 *)buf; for (i = 0; i < l / 4; i++) { v = *p++; if (v < 0) { if (v != -v) v = -v; else v = -(v+1); } if (v > level) level = v; } } level >>= 24; break; default: return -1; } if (level > 255) level = 255; v = db_table[level]; return v; } static decoders_queue_t * setup_normalize (int * format, int * obsize, decoders_queue_t * decoders) { if ((*format == 0x00000020) || (*format == 0x00002000) || (*format == 0x00010000) || (*format == 0x00000080) || (*format == 0x00000100)) { decoders->next = (decoders_queue_t *)ossplay_malloc (sizeof (decoders_queue_t)); decoders = decoders->next; decoders->decoder = decode_endian; decoders->metadata = (void *)(intptr)*format; switch (*format) { case 0x00002000: *format = 0x00001000; break; case 0x00010000: *format = 0x00008000; break; default: *format = 0x00000010; break; } decoders->next = ((void *)0); decoders->outbuf = ((void *)0); decoders->flag = 0; } else if ((*format == 0x00000008) || (*format == 0x00000001) || (*format == 0x00000040) || (*format == 0x00000002)) { decoders->next = (decoders_queue_t *)ossplay_malloc (sizeof (decoders_queue_t)); decoders = decoders->next; decoders->decoder = decode_8_to_s16; decoders->metadata = (void *)(intptr)*format; decoders->next = ((void *)0); *obsize *= 2; decoders->outbuf = (unsigned char *)ossplay_malloc (*obsize); decoders->flag = FREE_OBUF; *format = 0x00000010; } return decoders; } verbose_values_t * setup_verbose (int format, double oconstant, double total_time) { verbose_values_t * val; val = (verbose_values_t *)ossplay_malloc (sizeof (verbose_values_t)); if (total_time == 0) { val->tsecs = 0; strcpy (val->tstring, "unknown"); } else { char * p; val->tsecs = total_time; p = totime (val->tsecs); strncpy (val->tstring, p, sizeof (val->tstring)); ossplay_free (p); val->tsecs -= 1.0/1000; } val->secs = 0; val->secs_timer2 = 0; val->next_sec = 0; val->next_sec_timer2 = 0; val->format = format; val->constant = oconstant; return val; } static errors_t seek_normal (int fd, big_t * datamark, big_t filesize, double constant, big_t rsize, int channels, void * metadata) { big_t pos = seek_time * constant; int ret; pos -= pos % channels; if ((pos > filesize) || (pos < *datamark)) return E_DECODE; ret = ossplay_lseek (fd, pos - *datamark, 1); if (ret == -1) { seek_time = 0; return E_DECODE; } *datamark = ret; return E_OK; } static errors_t seek_compressed (int fd, big_t * datamark, big_t filesize, double constant, big_t rsize, int channels, void * metadata) { big_t pos = seek_time * constant; if (pos > filesize) { seek_time = 0; return E_DECODE; } if (*datamark + rsize < pos) { return SEEK_CONT_AFTER_DECODE; } else { seek_time = *datamark / constant; return E_OK; } } static ssize_t read_normal (int fd, void * buf, size_t len, void * metadata) { return read (fd, buf, len); } static errors_t seek_ogg (int fd, big_t * datamark, big_t filesize, double constant, big_t rsize, int channels, void * metadata) { ogg_data_t * val = (ogg_data_t *)metadata; if (val->f->ov_time_seek (&val->vf, seek_time) < 0) { seek_time = 0; return E_DECODE; } *datamark = (big_t)val->f->ov_raw_tell (&val->vf); return E_OK; } static ssize_t read_ogg (int fd, void * buf, size_t len, void * metadata) { int c_bitstream; ssize_t ret = 0; ogg_data_t * val = (ogg_data_t *)metadata; if (val->setup == 1) { vorbis_info * vi; vi = val->f->ov_info (&val->vf, -1); ret = setup_device (val->dsp, 0x00000010, vi->channels, vi->rate); if (ret < 0) return -1; val->setup = 0; } do { c_bitstream = val->bitstream; ret = (ssize_t)val->f->ov_read (&val->vf, (char *)buf, (int)len, 0, 2, 1, &val->bitstream); } while (ret == -3); if (ret == 0) return 0; else if (ret < 0) return ret; if ((c_bitstream != val->bitstream) && (c_bitstream != -1)) { val->bitstream = c_bitstream; val->setup = 1; } return ret; }