Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VSs > VSs__H264__App
diff libavcodec/sscc_h264_ompss.c @ 9:ea1ba68cf0ed
update to match api changes + add sscc produced source
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Wed, 05 Jun 2013 14:43:26 +0200 |
| parents | |
| children | 4d1f82230449 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/libavcodec/sscc_h264_ompss.c Wed Jun 05 14:43:26 2013 +0200 1.3 @@ -0,0 +1,8547 @@ 1.4 +const char *__nanos_family __attribute__((weak)) = "master"; 1.5 +int __nanos_version __attribute__((weak)) = 5015; 1.6 +int __mcc_master __attribute__((weak)) = 5015; 1.7 +int __mcc_openmp __attribute__((weak)) = 5; 1.8 +int __mcc_trunk __attribute__((weak)) = 399; 1.9 +int __mcc_worksharing __attribute__((weak)) = 1000; 1.10 +typedef unsigned char __u_char; 1.11 +typedef unsigned short int __u_short; 1.12 +typedef unsigned int __u_int; 1.13 +typedef unsigned long int __u_long; 1.14 +typedef signed char __int8_t; 1.15 +typedef unsigned char __uint8_t; 1.16 +typedef signed short int __int16_t; 1.17 +typedef unsigned short int __uint16_t; 1.18 +typedef signed int __int32_t; 1.19 +typedef unsigned int __uint32_t; 1.20 +typedef signed long int __int64_t; 1.21 +typedef unsigned long int __uint64_t; 1.22 +typedef long int __quad_t; 1.23 +typedef unsigned long int __u_quad_t; 1.24 +typedef unsigned long int __dev_t; 1.25 +typedef unsigned int __uid_t; 1.26 +typedef unsigned int __gid_t; 1.27 +typedef unsigned long int __ino_t; 1.28 +typedef unsigned long int __ino64_t; 1.29 +typedef unsigned int __mode_t; 1.30 +typedef unsigned long int __nlink_t; 1.31 +typedef long int __off_t; 1.32 +typedef long int __off64_t; 1.33 +typedef int __pid_t; 1.34 +typedef struct 1.35 +{ 1.36 + int __val[2]; 1.37 +} __fsid_t; 1.38 +typedef long int __clock_t; 1.39 +typedef unsigned long int __rlim_t; 1.40 +typedef unsigned long int __rlim64_t; 1.41 +typedef unsigned int __id_t; 1.42 +typedef long int __time_t; 1.43 +typedef unsigned int __useconds_t; 1.44 +typedef long int __suseconds_t; 1.45 +typedef int __daddr_t; 1.46 +typedef long int __swblk_t; 1.47 +typedef int __key_t; 1.48 +typedef int __clockid_t; 1.49 +typedef void *__timer_t; 1.50 +typedef long int __blksize_t; 1.51 +typedef long int __blkcnt_t; 1.52 +typedef long int __blkcnt64_t; 1.53 +typedef unsigned long int __fsblkcnt_t; 1.54 +typedef unsigned long int __fsblkcnt64_t; 1.55 +typedef unsigned long int __fsfilcnt_t; 1.56 +typedef unsigned long int __fsfilcnt64_t; 1.57 +typedef long int __ssize_t; 1.58 +typedef __off64_t __loff_t; 1.59 +typedef __quad_t *__qaddr_t; 1.60 +typedef char *__caddr_t; 1.61 +typedef long int __intptr_t; 1.62 +typedef unsigned int __socklen_t; 1.63 +typedef __ssize_t ssize_t; 1.64 +typedef long unsigned int size_t; 1.65 +typedef __gid_t gid_t; 1.66 +typedef __uid_t uid_t; 1.67 +typedef __off_t off_t; 1.68 +typedef __useconds_t useconds_t; 1.69 +typedef __pid_t pid_t; 1.70 +typedef __intptr_t intptr_t; 1.71 +typedef __socklen_t socklen_t; 1.72 +extern int access(__const char *__name, int __type) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.73 +extern int faccessat(int __fd, __const char *__file, int __type, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__)); 1.74 +extern __off_t lseek(int __fd, __off_t __offset, int __whence) __attribute__((__nothrow__, __leaf__)); 1.75 +extern int close(int __fd); 1.76 +extern ssize_t read(int __fd, void *__buf, size_t __nbytes) __attribute__((__warn_unused_result__)); 1.77 +extern ssize_t write(int __fd, __const void *__buf, size_t __n) __attribute__((__warn_unused_result__)); 1.78 +extern ssize_t pread(int __fd, void *__buf, size_t __nbytes, __off_t __offset) __attribute__((__warn_unused_result__)); 1.79 +extern ssize_t pwrite(int __fd, __const void *__buf, size_t __n, __off_t __offset) __attribute__((__warn_unused_result__)); 1.80 +extern int pipe(int __pipedes[2]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.81 +extern unsigned int alarm(unsigned int __seconds) __attribute__((__nothrow__, __leaf__)); 1.82 +extern unsigned int sleep(unsigned int __seconds); 1.83 +extern __useconds_t ualarm(__useconds_t __value, __useconds_t __interval) __attribute__((__nothrow__, __leaf__)); 1.84 +extern int usleep(__useconds_t __useconds); 1.85 +extern int pause(void); 1.86 +extern int chown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.87 +extern int fchown(int __fd, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.88 +extern int lchown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.89 +extern int fchownat(int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__)); 1.90 +extern int chdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.91 +extern int fchdir(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.92 +extern char *getcwd(char *__buf, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.93 +extern char *getwd(char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)) __attribute__((__warn_unused_result__)); 1.94 +extern int dup(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.95 +extern int dup2(int __fd, int __fd2) __attribute__((__nothrow__, __leaf__)); 1.96 +extern char **__environ; 1.97 +extern int execve(__const char *__path, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.98 +extern int fexecve(int __fd, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.99 +extern int execv(__const char *__path, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.100 +extern int execle(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.101 +extern int execl(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.102 +extern int execvp(__const char *__file, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.103 +extern int execlp(__const char *__file, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.104 +extern int nice(int __inc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.105 +extern void _exit(int __status) __attribute__((__noreturn__)); 1.106 +enum 1.107 +{ 1.108 + _PC_LINK_MAX, 1.109 + _PC_MAX_CANON, 1.110 + _PC_MAX_INPUT, 1.111 + _PC_NAME_MAX, 1.112 + _PC_PATH_MAX, 1.113 + _PC_PIPE_BUF, 1.114 + _PC_CHOWN_RESTRICTED, 1.115 + _PC_NO_TRUNC, 1.116 + _PC_VDISABLE, 1.117 + _PC_SYNC_IO, 1.118 + _PC_ASYNC_IO, 1.119 + _PC_PRIO_IO, 1.120 + _PC_SOCK_MAXBUF, 1.121 + _PC_FILESIZEBITS, 1.122 + _PC_REC_INCR_XFER_SIZE, 1.123 + _PC_REC_MAX_XFER_SIZE, 1.124 + _PC_REC_MIN_XFER_SIZE, 1.125 + _PC_REC_XFER_ALIGN, 1.126 + _PC_ALLOC_SIZE_MIN, 1.127 + _PC_SYMLINK_MAX, 1.128 + _PC_2_SYMLINKS 1.129 +}; 1.130 +enum 1.131 +{ 1.132 + _SC_ARG_MAX, 1.133 + _SC_CHILD_MAX, 1.134 + _SC_CLK_TCK, 1.135 + _SC_NGROUPS_MAX, 1.136 + _SC_OPEN_MAX, 1.137 + _SC_STREAM_MAX, 1.138 + _SC_TZNAME_MAX, 1.139 + _SC_JOB_CONTROL, 1.140 + _SC_SAVED_IDS, 1.141 + _SC_REALTIME_SIGNALS, 1.142 + _SC_PRIORITY_SCHEDULING, 1.143 + _SC_TIMERS, 1.144 + _SC_ASYNCHRONOUS_IO, 1.145 + _SC_PRIORITIZED_IO, 1.146 + _SC_SYNCHRONIZED_IO, 1.147 + _SC_FSYNC, 1.148 + _SC_MAPPED_FILES, 1.149 + _SC_MEMLOCK, 1.150 + _SC_MEMLOCK_RANGE, 1.151 + _SC_MEMORY_PROTECTION, 1.152 + _SC_MESSAGE_PASSING, 1.153 + _SC_SEMAPHORES, 1.154 + _SC_SHARED_MEMORY_OBJECTS, 1.155 + _SC_AIO_LISTIO_MAX, 1.156 + _SC_AIO_MAX, 1.157 + _SC_AIO_PRIO_DELTA_MAX, 1.158 + _SC_DELAYTIMER_MAX, 1.159 + _SC_MQ_OPEN_MAX, 1.160 + _SC_MQ_PRIO_MAX, 1.161 + _SC_VERSION, 1.162 + _SC_PAGESIZE, 1.163 + _SC_RTSIG_MAX, 1.164 + _SC_SEM_NSEMS_MAX, 1.165 + _SC_SEM_VALUE_MAX, 1.166 + _SC_SIGQUEUE_MAX, 1.167 + _SC_TIMER_MAX, 1.168 + _SC_BC_BASE_MAX, 1.169 + _SC_BC_DIM_MAX, 1.170 + _SC_BC_SCALE_MAX, 1.171 + _SC_BC_STRING_MAX, 1.172 + _SC_COLL_WEIGHTS_MAX, 1.173 + _SC_EQUIV_CLASS_MAX, 1.174 + _SC_EXPR_NEST_MAX, 1.175 + _SC_LINE_MAX, 1.176 + _SC_RE_DUP_MAX, 1.177 + _SC_CHARCLASS_NAME_MAX, 1.178 + _SC_2_VERSION, 1.179 + _SC_2_C_BIND, 1.180 + _SC_2_C_DEV, 1.181 + _SC_2_FORT_DEV, 1.182 + _SC_2_FORT_RUN, 1.183 + _SC_2_SW_DEV, 1.184 + _SC_2_LOCALEDEF, 1.185 + _SC_PII, 1.186 + _SC_PII_XTI, 1.187 + _SC_PII_SOCKET, 1.188 + _SC_PII_INTERNET, 1.189 + _SC_PII_OSI, 1.190 + _SC_POLL, 1.191 + _SC_SELECT, 1.192 + _SC_UIO_MAXIOV, 1.193 + _SC_IOV_MAX = _SC_UIO_MAXIOV, 1.194 + _SC_PII_INTERNET_STREAM, 1.195 + _SC_PII_INTERNET_DGRAM, 1.196 + _SC_PII_OSI_COTS, 1.197 + _SC_PII_OSI_CLTS, 1.198 + _SC_PII_OSI_M, 1.199 + _SC_T_IOV_MAX, 1.200 + _SC_THREADS, 1.201 + _SC_THREAD_SAFE_FUNCTIONS, 1.202 + _SC_GETGR_R_SIZE_MAX, 1.203 + _SC_GETPW_R_SIZE_MAX, 1.204 + _SC_LOGIN_NAME_MAX, 1.205 + _SC_TTY_NAME_MAX, 1.206 + _SC_THREAD_DESTRUCTOR_ITERATIONS, 1.207 + _SC_THREAD_KEYS_MAX, 1.208 + _SC_THREAD_STACK_MIN, 1.209 + _SC_THREAD_THREADS_MAX, 1.210 + _SC_THREAD_ATTR_STACKADDR, 1.211 + _SC_THREAD_ATTR_STACKSIZE, 1.212 + _SC_THREAD_PRIORITY_SCHEDULING, 1.213 + _SC_THREAD_PRIO_INHERIT, 1.214 + _SC_THREAD_PRIO_PROTECT, 1.215 + _SC_THREAD_PROCESS_SHARED, 1.216 + _SC_NPROCESSORS_CONF, 1.217 + _SC_NPROCESSORS_ONLN, 1.218 + _SC_PHYS_PAGES, 1.219 + _SC_AVPHYS_PAGES, 1.220 + _SC_ATEXIT_MAX, 1.221 + _SC_PASS_MAX, 1.222 + _SC_XOPEN_VERSION, 1.223 + _SC_XOPEN_XCU_VERSION, 1.224 + _SC_XOPEN_UNIX, 1.225 + _SC_XOPEN_CRYPT, 1.226 + _SC_XOPEN_ENH_I18N, 1.227 + _SC_XOPEN_SHM, 1.228 + _SC_2_CHAR_TERM, 1.229 + _SC_2_C_VERSION, 1.230 + _SC_2_UPE, 1.231 + _SC_XOPEN_XPG2, 1.232 + _SC_XOPEN_XPG3, 1.233 + _SC_XOPEN_XPG4, 1.234 + _SC_CHAR_BIT, 1.235 + _SC_CHAR_MAX, 1.236 + _SC_CHAR_MIN, 1.237 + _SC_INT_MAX, 1.238 + _SC_INT_MIN, 1.239 + _SC_LONG_BIT, 1.240 + _SC_WORD_BIT, 1.241 + _SC_MB_LEN_MAX, 1.242 + _SC_NZERO, 1.243 + _SC_SSIZE_MAX, 1.244 + _SC_SCHAR_MAX, 1.245 + _SC_SCHAR_MIN, 1.246 + _SC_SHRT_MAX, 1.247 + _SC_SHRT_MIN, 1.248 + _SC_UCHAR_MAX, 1.249 + _SC_UINT_MAX, 1.250 + _SC_ULONG_MAX, 1.251 + _SC_USHRT_MAX, 1.252 + _SC_NL_ARGMAX, 1.253 + _SC_NL_LANGMAX, 1.254 + _SC_NL_MSGMAX, 1.255 + _SC_NL_NMAX, 1.256 + _SC_NL_SETMAX, 1.257 + _SC_NL_TEXTMAX, 1.258 + _SC_XBS5_ILP32_OFF32, 1.259 + _SC_XBS5_ILP32_OFFBIG, 1.260 + _SC_XBS5_LP64_OFF64, 1.261 + _SC_XBS5_LPBIG_OFFBIG, 1.262 + _SC_XOPEN_LEGACY, 1.263 + _SC_XOPEN_REALTIME, 1.264 + _SC_XOPEN_REALTIME_THREADS, 1.265 + _SC_ADVISORY_INFO, 1.266 + _SC_BARRIERS, 1.267 + _SC_BASE, 1.268 + _SC_C_LANG_SUPPORT, 1.269 + _SC_C_LANG_SUPPORT_R, 1.270 + _SC_CLOCK_SELECTION, 1.271 + _SC_CPUTIME, 1.272 + _SC_THREAD_CPUTIME, 1.273 + _SC_DEVICE_IO, 1.274 + _SC_DEVICE_SPECIFIC, 1.275 + _SC_DEVICE_SPECIFIC_R, 1.276 + _SC_FD_MGMT, 1.277 + _SC_FIFO, 1.278 + _SC_PIPE, 1.279 + _SC_FILE_ATTRIBUTES, 1.280 + _SC_FILE_LOCKING, 1.281 + _SC_FILE_SYSTEM, 1.282 + _SC_MONOTONIC_CLOCK, 1.283 + _SC_MULTI_PROCESS, 1.284 + _SC_SINGLE_PROCESS, 1.285 + _SC_NETWORKING, 1.286 + _SC_READER_WRITER_LOCKS, 1.287 + _SC_SPIN_LOCKS, 1.288 + _SC_REGEXP, 1.289 + _SC_REGEX_VERSION, 1.290 + _SC_SHELL, 1.291 + _SC_SIGNALS, 1.292 + _SC_SPAWN, 1.293 + _SC_SPORADIC_SERVER, 1.294 + _SC_THREAD_SPORADIC_SERVER, 1.295 + _SC_SYSTEM_DATABASE, 1.296 + _SC_SYSTEM_DATABASE_R, 1.297 + _SC_TIMEOUTS, 1.298 + _SC_TYPED_MEMORY_OBJECTS, 1.299 + _SC_USER_GROUPS, 1.300 + _SC_USER_GROUPS_R, 1.301 + _SC_2_PBS, 1.302 + _SC_2_PBS_ACCOUNTING, 1.303 + _SC_2_PBS_LOCATE, 1.304 + _SC_2_PBS_MESSAGE, 1.305 + _SC_2_PBS_TRACK, 1.306 + _SC_SYMLOOP_MAX, 1.307 + _SC_STREAMS, 1.308 + _SC_2_PBS_CHECKPOINT, 1.309 + _SC_V6_ILP32_OFF32, 1.310 + _SC_V6_ILP32_OFFBIG, 1.311 + _SC_V6_LP64_OFF64, 1.312 + _SC_V6_LPBIG_OFFBIG, 1.313 + _SC_HOST_NAME_MAX, 1.314 + _SC_TRACE, 1.315 + _SC_TRACE_EVENT_FILTER, 1.316 + _SC_TRACE_INHERIT, 1.317 + _SC_TRACE_LOG, 1.318 + _SC_LEVEL1_ICACHE_SIZE, 1.319 + _SC_LEVEL1_ICACHE_ASSOC, 1.320 + _SC_LEVEL1_ICACHE_LINESIZE, 1.321 + _SC_LEVEL1_DCACHE_SIZE, 1.322 + _SC_LEVEL1_DCACHE_ASSOC, 1.323 + _SC_LEVEL1_DCACHE_LINESIZE, 1.324 + _SC_LEVEL2_CACHE_SIZE, 1.325 + _SC_LEVEL2_CACHE_ASSOC, 1.326 + _SC_LEVEL2_CACHE_LINESIZE, 1.327 + _SC_LEVEL3_CACHE_SIZE, 1.328 + _SC_LEVEL3_CACHE_ASSOC, 1.329 + _SC_LEVEL3_CACHE_LINESIZE, 1.330 + _SC_LEVEL4_CACHE_SIZE, 1.331 + _SC_LEVEL4_CACHE_ASSOC, 1.332 + _SC_LEVEL4_CACHE_LINESIZE, 1.333 + _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, 1.334 + _SC_RAW_SOCKETS, 1.335 + _SC_V7_ILP32_OFF32, 1.336 + _SC_V7_ILP32_OFFBIG, 1.337 + _SC_V7_LP64_OFF64, 1.338 + _SC_V7_LPBIG_OFFBIG, 1.339 + _SC_SS_REPL_MAX, 1.340 + _SC_TRACE_EVENT_NAME_MAX, 1.341 + _SC_TRACE_NAME_MAX, 1.342 + _SC_TRACE_SYS_MAX, 1.343 + _SC_TRACE_USER_EVENT_MAX, 1.344 + _SC_XOPEN_STREAMS, 1.345 + _SC_THREAD_ROBUST_PRIO_INHERIT, 1.346 + _SC_THREAD_ROBUST_PRIO_PROTECT 1.347 +}; 1.348 +enum 1.349 +{ 1.350 + _CS_PATH, 1.351 + _CS_V6_WIDTH_RESTRICTED_ENVS, 1.352 + _CS_GNU_LIBC_VERSION, 1.353 + _CS_GNU_LIBPTHREAD_VERSION, 1.354 + _CS_V5_WIDTH_RESTRICTED_ENVS, 1.355 + _CS_V7_WIDTH_RESTRICTED_ENVS, 1.356 + _CS_LFS_CFLAGS = 1000, 1.357 + _CS_LFS_LDFLAGS, 1.358 + _CS_LFS_LIBS, 1.359 + _CS_LFS_LINTFLAGS, 1.360 + _CS_LFS64_CFLAGS, 1.361 + _CS_LFS64_LDFLAGS, 1.362 + _CS_LFS64_LIBS, 1.363 + _CS_LFS64_LINTFLAGS, 1.364 + _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, 1.365 + _CS_XBS5_ILP32_OFF32_LDFLAGS, 1.366 + _CS_XBS5_ILP32_OFF32_LIBS, 1.367 + _CS_XBS5_ILP32_OFF32_LINTFLAGS, 1.368 + _CS_XBS5_ILP32_OFFBIG_CFLAGS, 1.369 + _CS_XBS5_ILP32_OFFBIG_LDFLAGS, 1.370 + _CS_XBS5_ILP32_OFFBIG_LIBS, 1.371 + _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, 1.372 + _CS_XBS5_LP64_OFF64_CFLAGS, 1.373 + _CS_XBS5_LP64_OFF64_LDFLAGS, 1.374 + _CS_XBS5_LP64_OFF64_LIBS, 1.375 + _CS_XBS5_LP64_OFF64_LINTFLAGS, 1.376 + _CS_XBS5_LPBIG_OFFBIG_CFLAGS, 1.377 + _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, 1.378 + _CS_XBS5_LPBIG_OFFBIG_LIBS, 1.379 + _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, 1.380 + _CS_POSIX_V6_ILP32_OFF32_CFLAGS, 1.381 + _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, 1.382 + _CS_POSIX_V6_ILP32_OFF32_LIBS, 1.383 + _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, 1.384 + _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, 1.385 + _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, 1.386 + _CS_POSIX_V6_ILP32_OFFBIG_LIBS, 1.387 + _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, 1.388 + _CS_POSIX_V6_LP64_OFF64_CFLAGS, 1.389 + _CS_POSIX_V6_LP64_OFF64_LDFLAGS, 1.390 + _CS_POSIX_V6_LP64_OFF64_LIBS, 1.391 + _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, 1.392 + _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, 1.393 + _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, 1.394 + _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, 1.395 + _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, 1.396 + _CS_POSIX_V7_ILP32_OFF32_CFLAGS, 1.397 + _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, 1.398 + _CS_POSIX_V7_ILP32_OFF32_LIBS, 1.399 + _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, 1.400 + _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, 1.401 + _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, 1.402 + _CS_POSIX_V7_ILP32_OFFBIG_LIBS, 1.403 + _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, 1.404 + _CS_POSIX_V7_LP64_OFF64_CFLAGS, 1.405 + _CS_POSIX_V7_LP64_OFF64_LDFLAGS, 1.406 + _CS_POSIX_V7_LP64_OFF64_LIBS, 1.407 + _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, 1.408 + _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, 1.409 + _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, 1.410 + _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, 1.411 + _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, 1.412 + _CS_V6_ENV, 1.413 + _CS_V7_ENV 1.414 +}; 1.415 +extern long int pathconf(__const char *__path, int __name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.416 +extern long int fpathconf(int __fd, int __name) __attribute__((__nothrow__, __leaf__)); 1.417 +extern long int sysconf(int __name) __attribute__((__nothrow__, __leaf__)); 1.418 +extern size_t confstr(int __name, char *__buf, size_t __len) __attribute__((__nothrow__, __leaf__)); 1.419 +extern __pid_t getpid(void) __attribute__((__nothrow__, __leaf__)); 1.420 +extern __pid_t getppid(void) __attribute__((__nothrow__, __leaf__)); 1.421 +extern __pid_t getpgrp(void) __attribute__((__nothrow__, __leaf__)); 1.422 +extern __pid_t __getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.423 +extern __pid_t getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.424 +extern int setpgid(__pid_t __pid, __pid_t __pgid) __attribute__((__nothrow__, __leaf__)); 1.425 +extern int setpgrp(void) __attribute__((__nothrow__, __leaf__)); 1.426 +extern __pid_t setsid(void) __attribute__((__nothrow__, __leaf__)); 1.427 +extern __pid_t getsid(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.428 +extern __uid_t getuid(void) __attribute__((__nothrow__, __leaf__)); 1.429 +extern __uid_t geteuid(void) __attribute__((__nothrow__, __leaf__)); 1.430 +extern __gid_t getgid(void) __attribute__((__nothrow__, __leaf__)); 1.431 +extern __gid_t getegid(void) __attribute__((__nothrow__, __leaf__)); 1.432 +extern int getgroups(int __size, __gid_t __list[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.433 +extern int setuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__)); 1.434 +extern int setreuid(__uid_t __ruid, __uid_t __euid) __attribute__((__nothrow__, __leaf__)); 1.435 +extern int seteuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__)); 1.436 +extern int setgid(__gid_t __gid) __attribute__((__nothrow__, __leaf__)); 1.437 +extern int setregid(__gid_t __rgid, __gid_t __egid) __attribute__((__nothrow__, __leaf__)); 1.438 +extern int setegid(__gid_t __gid) __attribute__((__nothrow__, __leaf__)); 1.439 +extern __pid_t fork(void) __attribute__((__nothrow__)); 1.440 +extern __pid_t vfork(void) __attribute__((__nothrow__, __leaf__)); 1.441 +extern char *ttyname(int __fd) __attribute__((__nothrow__, __leaf__)); 1.442 +extern int ttyname_r(int __fd, char *__buf, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__)); 1.443 +extern int isatty(int __fd) __attribute__((__nothrow__, __leaf__)); 1.444 +extern int ttyslot(void) __attribute__((__nothrow__, __leaf__)); 1.445 +extern int link(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.446 +extern int linkat(int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4))) __attribute__((__warn_unused_result__)); 1.447 +extern int symlink(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.448 +extern ssize_t readlink(__const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.449 +extern int symlinkat(__const char *__from, int __tofd, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3))) __attribute__((__warn_unused_result__)); 1.450 +extern ssize_t readlinkat(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)); 1.451 +extern int unlink(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.452 +extern int unlinkat(int __fd, __const char *__name, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.453 +extern int rmdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.454 +extern __pid_t tcgetpgrp(int __fd) __attribute__((__nothrow__, __leaf__)); 1.455 +extern int tcsetpgrp(int __fd, __pid_t __pgrp_id) __attribute__((__nothrow__, __leaf__)); 1.456 +extern char *getlogin(void); 1.457 +extern int getlogin_r(char *__name, size_t __name_len) __attribute__((__nonnull__(1))); 1.458 +extern int setlogin(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.459 +extern char *optarg; 1.460 +extern int optind; 1.461 +extern int opterr; 1.462 +extern int optopt; 1.463 +extern int getopt(int ___argc, char *const *___argv, const char *__shortopts) __attribute__((__nothrow__, __leaf__)); 1.464 +extern int gethostname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.465 +extern int sethostname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.466 +extern int sethostid(long int __id) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.467 +extern int getdomainname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.468 +extern int setdomainname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.469 +extern int vhangup(void) __attribute__((__nothrow__, __leaf__)); 1.470 +extern int revoke(__const char *__file) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.471 +extern int profil(unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.472 +extern int acct(__const char *__name) __attribute__((__nothrow__, __leaf__)); 1.473 +extern char *getusershell(void) __attribute__((__nothrow__, __leaf__)); 1.474 +extern void endusershell(void) __attribute__((__nothrow__, __leaf__)); 1.475 +extern void setusershell(void) __attribute__((__nothrow__, __leaf__)); 1.476 +extern int daemon(int __nochdir, int __noclose) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.477 +extern int chroot(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.478 +extern char *getpass(__const char *__prompt) __attribute__((__nonnull__(1))); 1.479 +extern int fsync(int __fd); 1.480 +extern long int gethostid(void); 1.481 +extern void sync(void) __attribute__((__nothrow__, __leaf__)); 1.482 +extern int getpagesize(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.483 +extern int getdtablesize(void) __attribute__((__nothrow__, __leaf__)); 1.484 +extern int truncate(__const char *__file, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.485 +extern int ftruncate(int __fd, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.486 +extern int brk(void *__addr) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.487 +extern void *sbrk(intptr_t __delta) __attribute__((__nothrow__, __leaf__)); 1.488 +extern long int syscall(long int __sysno, ...) __attribute__((__nothrow__, __leaf__)); 1.489 +extern int lockf(int __fd, int __cmd, __off_t __len) __attribute__((__warn_unused_result__)); 1.490 +extern int fdatasync(int __fildes); 1.491 +extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__)); 1.492 +extern ssize_t __read_chk(int __fd, void *__buf, size_t __nbytes, size_t __buflen) __attribute__((__warn_unused_result__)); 1.493 +extern ssize_t __read_alias(int __fd, void *__buf, size_t __nbytes) __asm__ ("""read") __attribute__((__warn_unused_result__)); 1.494 +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"))); 1.495 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) ssize_t read(int __fd, void *__buf, size_t __nbytes) 1.496 +{ 1.497 + if (__builtin_object_size(__buf, 0) != (size_t) - 1) 1.498 + { 1.499 + if (!__builtin_constant_p(__nbytes)) 1.500 + return __read_chk(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0)); 1.501 + if (__nbytes > __builtin_object_size(__buf, 0)) 1.502 + return __read_chk_warn(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0)); 1.503 + } 1.504 + return __read_alias(__fd, __buf, __nbytes); 1.505 +} 1.506 +extern ssize_t __readlink_chk(__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.507 +extern ssize_t __readlink_alias(__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("""readlink") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)); 1.508 +extern ssize_t __readlink_chk_warn(__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("""__readlink_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("readlink called with bigger length ""than size of destination buffer"))); 1.509 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)) ssize_t __attribute__((__nothrow__, __leaf__)) readlink(__const char *__restrict __path, char *__restrict __buf, size_t __len) 1.510 +{ 1.511 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.512 + { 1.513 + if (!__builtin_constant_p(__len)) 1.514 + return __readlink_chk(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.515 + if (__len > __builtin_object_size(__buf, 2 > 1)) 1.516 + return __readlink_chk_warn(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.517 + } 1.518 + return __readlink_alias(__path, __buf, __len); 1.519 +} 1.520 +extern ssize_t __readlinkat_chk(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)); 1.521 +extern ssize_t __readlinkat_alias(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("""readlinkat") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)); 1.522 +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__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("readlinkat called with bigger ""length than size of destination ""buffer"))); 1.523 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)) ssize_t __attribute__((__nothrow__, __leaf__)) readlinkat(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) 1.524 +{ 1.525 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.526 + { 1.527 + if (!__builtin_constant_p(__len)) 1.528 + return __readlinkat_chk(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.529 + if (__len > __builtin_object_size(__buf, 2 > 1)) 1.530 + return __readlinkat_chk_warn(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.531 + } 1.532 + return __readlinkat_alias(__fd, __path, __buf, __len); 1.533 +} 1.534 +extern char *__getcwd_chk(char *__buf, size_t __size, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.535 +extern char *__getcwd_alias(char *__buf, size_t __size) __asm__ ("""getcwd") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.536 +extern char *__getcwd_chk_warn(char *__buf, size_t __size, size_t __buflen) __asm__ ("""__getcwd_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getcwd caller with bigger length than size of ""destination buffer"))); 1.537 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) getcwd(char *__buf, size_t __size) 1.538 +{ 1.539 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.540 + { 1.541 + if (!__builtin_constant_p(__size)) 1.542 + return __getcwd_chk(__buf, __size, __builtin_object_size(__buf, 2 > 1)); 1.543 + if (__size > __builtin_object_size(__buf, 2 > 1)) 1.544 + return __getcwd_chk_warn(__buf, __size, __builtin_object_size(__buf, 2 > 1)); 1.545 + } 1.546 + return __getcwd_alias(__buf, __size); 1.547 +} 1.548 +extern char *__getwd_chk(char *__buf, size_t buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.549 +extern char *__getwd_warn(char *__buf) __asm__ ("""getwd") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("please use getcwd instead, as getwd ""doesn't specify buffer size"))); 1.550 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) getwd(char *__buf) 1.551 +{ 1.552 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.553 + return __getwd_chk(__buf, __builtin_object_size(__buf, 2 > 1)); 1.554 + return __getwd_warn(__buf); 1.555 +} 1.556 +extern size_t __confstr_chk(int __name, char *__buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)); 1.557 +extern size_t __confstr_alias(int __name, char *__buf, size_t __len) __asm__ ("""confstr") __attribute__((__nothrow__, __leaf__)); 1.558 +extern size_t __confstr_chk_warn(int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("""__confstr_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warning__("confstr called with bigger length than size of destination ""buffer"))); 1.559 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) confstr(int __name, char *__buf, size_t __len) 1.560 +{ 1.561 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.562 + { 1.563 + if (!__builtin_constant_p(__len)) 1.564 + return __confstr_chk(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.565 + if (__builtin_object_size(__buf, 2 > 1) < __len) 1.566 + return __confstr_chk_warn(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1)); 1.567 + } 1.568 + return __confstr_alias(__name, __buf, __len); 1.569 +} 1.570 +extern int __getgroups_chk(int __size, __gid_t __list[], size_t __listlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.571 +extern int __getgroups_alias(int __size, __gid_t __list[]) __asm__ ("""getgroups") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.572 +extern int __getgroups_chk_warn(int __size, __gid_t __list[], size_t __listlen) __asm__ ("""__getgroups_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getgroups called with bigger group count than what ""can fit into destination buffer"))); 1.573 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getgroups(int __size, __gid_t __list[]) 1.574 +{ 1.575 + if (__builtin_object_size(__list, 2 > 1) != (size_t) - 1) 1.576 + { 1.577 + if (!__builtin_constant_p(__size) || __size < 0) 1.578 + return __getgroups_chk(__size, __list, __builtin_object_size(__list, 2 > 1)); 1.579 + if (__size * sizeof(__gid_t) > __builtin_object_size(__list, 2 > 1)) 1.580 + return __getgroups_chk_warn(__size, __list, __builtin_object_size(__list, 2 > 1)); 1.581 + } 1.582 + return __getgroups_alias(__size, __list); 1.583 +} 1.584 +extern int __ttyname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.585 +extern int __ttyname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ttyname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.586 +extern int __ttyname_r_chk_warn(int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__ttyname_r_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warning__("ttyname_r called with bigger buflen than ""size of destination buffer"))); 1.587 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ttyname_r(int __fd, char *__buf, size_t __buflen) 1.588 +{ 1.589 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.590 + { 1.591 + if (!__builtin_constant_p(__buflen)) 1.592 + return __ttyname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.593 + if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.594 + return __ttyname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.595 + } 1.596 + return __ttyname_r_alias(__fd, __buf, __buflen); 1.597 +} 1.598 +extern int __getlogin_r_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nonnull__(1))); 1.599 +extern int __getlogin_r_alias(char *__buf, size_t __buflen) __asm__ ("""getlogin_r") __attribute__((__nonnull__(1))); 1.600 +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"))); 1.601 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int getlogin_r(char *__buf, size_t __buflen) 1.602 +{ 1.603 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.604 + { 1.605 + if (!__builtin_constant_p(__buflen)) 1.606 + return __getlogin_r_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.607 + if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.608 + return __getlogin_r_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.609 + } 1.610 + return __getlogin_r_alias(__buf, __buflen); 1.611 +} 1.612 +extern int __gethostname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.613 +extern int __gethostname_alias(char *__buf, size_t __buflen) __asm__ ("""gethostname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.614 +extern int __gethostname_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__gethostname_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warning__("gethostname called with bigger buflen than ""size of destination buffer"))); 1.615 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) gethostname(char *__buf, size_t __buflen) 1.616 +{ 1.617 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.618 + { 1.619 + if (!__builtin_constant_p(__buflen)) 1.620 + return __gethostname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.621 + if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.622 + return __gethostname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.623 + } 1.624 + return __gethostname_alias(__buf, __buflen); 1.625 +} 1.626 +extern int __getdomainname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.627 +extern int __getdomainname_alias(char *__buf, size_t __buflen) __asm__ ("""getdomainname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.628 +extern int __getdomainname_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__getdomainname_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getdomainname called with bigger ""buflen than size of destination ""buffer"))); 1.629 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getdomainname(char *__buf, size_t __buflen) 1.630 +{ 1.631 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.632 + { 1.633 + if (!__builtin_constant_p(__buflen)) 1.634 + return __getdomainname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.635 + if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.636 + return __getdomainname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.637 + } 1.638 + return __getdomainname_alias(__buf, __buflen); 1.639 +} 1.640 +struct _IO_FILE; 1.641 +typedef struct _IO_FILE FILE; 1.642 +typedef struct _IO_FILE __FILE; 1.643 +typedef struct 1.644 +{ 1.645 + int __count; 1.646 + union 1.647 + { 1.648 + unsigned int __wch; 1.649 + char __wchb[4]; 1.650 + } __value; 1.651 +} __mbstate_t; 1.652 +typedef struct 1.653 +{ 1.654 + __off_t __pos; 1.655 + __mbstate_t __state; 1.656 +} _G_fpos_t; 1.657 +typedef struct 1.658 +{ 1.659 + __off64_t __pos; 1.660 + __mbstate_t __state; 1.661 +} _G_fpos64_t; 1.662 +typedef int _G_int16_t __attribute__((__mode__(__HI__))); 1.663 +typedef int _G_int32_t __attribute__((__mode__(__SI__))); 1.664 +typedef unsigned int _G_uint16_t __attribute__((__mode__(__HI__))); 1.665 +typedef unsigned int _G_uint32_t __attribute__((__mode__(__SI__))); 1.666 +typedef __builtin_va_list __gnuc_va_list; 1.667 +struct _IO_jump_t; 1.668 +struct _IO_FILE; 1.669 +typedef void _IO_lock_t; 1.670 +struct _IO_marker 1.671 +{ 1.672 + struct _IO_marker *_next; 1.673 + struct _IO_FILE *_sbuf; 1.674 + int _pos; 1.675 +}; 1.676 +enum __codecvt_result 1.677 +{ 1.678 + __codecvt_ok, 1.679 + __codecvt_partial, 1.680 + __codecvt_error, 1.681 + __codecvt_noconv 1.682 +}; 1.683 +struct _IO_FILE 1.684 +{ 1.685 + int _flags; 1.686 + char *_IO_read_ptr; 1.687 + char *_IO_read_end; 1.688 + char *_IO_read_base; 1.689 + char *_IO_write_base; 1.690 + char *_IO_write_ptr; 1.691 + char *_IO_write_end; 1.692 + char *_IO_buf_base; 1.693 + char *_IO_buf_end; 1.694 + char *_IO_save_base; 1.695 + char *_IO_backup_base; 1.696 + char *_IO_save_end; 1.697 + struct _IO_marker *_markers; 1.698 + struct _IO_FILE *_chain; 1.699 + int _fileno; 1.700 + int _flags2; 1.701 + __off_t _old_offset; 1.702 + unsigned short _cur_column; 1.703 + signed char _vtable_offset; 1.704 + char _shortbuf[1]; 1.705 + _IO_lock_t *_lock; 1.706 + __off64_t _offset; 1.707 + void *__pad1; 1.708 + void *__pad2; 1.709 + void *__pad3; 1.710 + void *__pad4; 1.711 + size_t __pad5; 1.712 + int _mode; 1.713 + char _unused2[15 * sizeof(int) - 4 * sizeof(void *) - sizeof(size_t)]; 1.714 +}; 1.715 +typedef struct _IO_FILE _IO_FILE; 1.716 +struct _IO_FILE_plus; 1.717 +extern struct _IO_FILE_plus _IO_2_1_stdin_; 1.718 +extern struct _IO_FILE_plus _IO_2_1_stdout_; 1.719 +extern struct _IO_FILE_plus _IO_2_1_stderr_; 1.720 +typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __nbytes); 1.721 +typedef __ssize_t __io_write_fn(void *__cookie, __const char *__buf, size_t __n); 1.722 +typedef int __io_seek_fn(void *__cookie, __off64_t *__pos, int __w); 1.723 +typedef int __io_close_fn(void *__cookie); 1.724 +extern int __underflow(_IO_FILE *); 1.725 +extern int __uflow(_IO_FILE *); 1.726 +extern int __overflow(_IO_FILE *, int); 1.727 +extern int _IO_getc(_IO_FILE *__fp); 1.728 +extern int _IO_putc(int __c, _IO_FILE *__fp); 1.729 +extern int _IO_feof(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__)); 1.730 +extern int _IO_ferror(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__)); 1.731 +extern int _IO_peekc_locked(_IO_FILE *__fp); 1.732 +extern void _IO_flockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.733 +extern void _IO_funlockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.734 +extern int _IO_ftrylockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.735 +extern int _IO_vfscanf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list, int *__restrict ); 1.736 +extern int _IO_vfprintf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list); 1.737 +extern __ssize_t _IO_padn(_IO_FILE *, int, __ssize_t); 1.738 +extern size_t _IO_sgetn(_IO_FILE *, void *, size_t); 1.739 +extern __off64_t _IO_seekoff(_IO_FILE *, __off64_t, int, int); 1.740 +extern __off64_t _IO_seekpos(_IO_FILE *, __off64_t, int); 1.741 +extern void _IO_free_backup_area(_IO_FILE *) __attribute__((__nothrow__, __leaf__)); 1.742 +typedef __gnuc_va_list va_list; 1.743 +typedef _G_fpos_t fpos_t; 1.744 +extern struct _IO_FILE *stdin; 1.745 +extern struct _IO_FILE *stdout; 1.746 +extern struct _IO_FILE *stderr; 1.747 +extern int remove(__const char *__filename) __attribute__((__nothrow__, __leaf__)); 1.748 +extern int rename(__const char *__old, __const char *__new) __attribute__((__nothrow__, __leaf__)); 1.749 +extern int renameat(int __oldfd, __const char *__old, int __newfd, __const char *__new) __attribute__((__nothrow__, __leaf__)); 1.750 +extern FILE *tmpfile(void) __attribute__((__warn_unused_result__)); 1.751 +extern char *tmpnam(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.752 +extern char *tmpnam_r(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.753 +extern char *tempnam(__const char *__dir, __const char *__pfx) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.754 +extern int fclose(FILE *__stream); 1.755 +extern int fflush(FILE *__stream); 1.756 +extern int fflush_unlocked(FILE *__stream); 1.757 +extern FILE *fopen(__const char *__restrict __filename, __const char *__restrict __modes) __attribute__((__warn_unused_result__)); 1.758 +extern FILE *freopen(__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.759 +extern FILE *fdopen(int __fd, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.760 +extern FILE *fmemopen(void *__s, size_t __len, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.761 +extern FILE *open_memstream(char **__bufloc, size_t *__sizeloc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.762 +extern void setbuf(FILE *__restrict __stream, char *__restrict __buf) __attribute__((__nothrow__, __leaf__)); 1.763 +extern int setvbuf(FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__((__nothrow__, __leaf__)); 1.764 +extern void setbuffer(FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__((__nothrow__, __leaf__)); 1.765 +extern void setlinebuf(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.766 +extern int fprintf(FILE *__restrict __stream, __const char *__restrict __format, ...); 1.767 +extern int printf(__const char *__restrict __format, ...); 1.768 +extern int sprintf(char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__)); 1.769 +extern int vfprintf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg); 1.770 +extern int vprintf(__const char *__restrict __format, __gnuc_va_list __arg); 1.771 +extern int vsprintf(char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__)); 1.772 +extern int snprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 4))); 1.773 +extern int vsnprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 0))); 1.774 +extern int vdprintf(int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__((__format__(__printf__, 2, 0))); 1.775 +extern int dprintf(int __fd, __const char *__restrict __fmt, ...) __attribute__((__format__(__printf__, 2, 3))); 1.776 +extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __attribute__((__warn_unused_result__)); 1.777 +extern int scanf(__const char *__restrict __format, ...) __attribute__((__warn_unused_result__)); 1.778 +extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__)); 1.779 +extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("""__isoc99_fscanf") __attribute__((__warn_unused_result__)); 1.780 +extern int scanf(__const char *__restrict __format, ...) __asm__ ("""__isoc99_scanf") __attribute__((__warn_unused_result__)); 1.781 +extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("""__isoc99_sscanf") __attribute__((__nothrow__, __leaf__)); 1.782 +extern int vfscanf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 2, 0))) __attribute__((__warn_unused_result__)); 1.783 +extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__)); 1.784 +extern int vsscanf(__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__format__(__scanf__, 2, 0))); 1.785 +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__)); 1.786 +extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vscanf") __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__)); 1.787 +extern int vsscanf(__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vsscanf") __attribute__((__nothrow__, __leaf__)) __attribute__((__format__(__scanf__, 2, 0))); 1.788 +extern int fgetc(FILE *__stream); 1.789 +extern int getc(FILE *__stream); 1.790 +extern int getchar(void); 1.791 +extern int getc_unlocked(FILE *__stream); 1.792 +extern int getchar_unlocked(void); 1.793 +extern int fgetc_unlocked(FILE *__stream); 1.794 +extern int fputc(int __c, FILE *__stream); 1.795 +extern int putc(int __c, FILE *__stream); 1.796 +extern int putchar(int __c); 1.797 +extern int fputc_unlocked(int __c, FILE *__stream); 1.798 +extern int putc_unlocked(int __c, FILE *__stream); 1.799 +extern int putchar_unlocked(int __c); 1.800 +extern int getw(FILE *__stream); 1.801 +extern int putw(int __w, FILE *__stream); 1.802 +extern char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.803 +extern char *gets(char *__s) __attribute__((__warn_unused_result__)); 1.804 +extern __ssize_t __getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.805 +extern __ssize_t getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.806 +extern __ssize_t getline(char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.807 +extern int fputs(__const char *__restrict __s, FILE *__restrict __stream); 1.808 +extern int puts(__const char *__s); 1.809 +extern int ungetc(int __c, FILE *__stream); 1.810 +extern size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.811 +extern size_t fwrite(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); 1.812 +extern size_t fread_unlocked(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.813 +extern size_t fwrite_unlocked(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); 1.814 +extern int fseek(FILE *__stream, long int __off, int __whence); 1.815 +extern long int ftell(FILE *__stream) __attribute__((__warn_unused_result__)); 1.816 +extern void rewind(FILE *__stream); 1.817 +extern int fseeko(FILE *__stream, __off_t __off, int __whence); 1.818 +extern __off_t ftello(FILE *__stream) __attribute__((__warn_unused_result__)); 1.819 +extern int fgetpos(FILE *__restrict __stream, fpos_t *__restrict __pos); 1.820 +extern int fsetpos(FILE *__stream, __const fpos_t *__pos); 1.821 +extern void clearerr(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.822 +extern int feof(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.823 +extern int ferror(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.824 +extern void clearerr_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.825 +extern int feof_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.826 +extern int ferror_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.827 +extern void perror(__const char *__s); 1.828 +extern int sys_nerr; 1.829 +extern __const char *__const sys_errlist[]; 1.830 +extern int fileno(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.831 +extern int fileno_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.832 +extern FILE *popen(__const char *__command, __const char *__modes) __attribute__((__warn_unused_result__)); 1.833 +extern int pclose(FILE *__stream); 1.834 +extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__)); 1.835 +extern void flockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.836 +extern int ftrylockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.837 +extern void funlockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)); 1.838 +extern __inline __attribute__((__gnu_inline__)) int getchar(void) 1.839 +{ 1.840 + return _IO_getc(stdin); 1.841 +} 1.842 +extern __inline __attribute__((__gnu_inline__)) int fgetc_unlocked(FILE *__fp) 1.843 +{ 1.844 + return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1.845 +} 1.846 +extern __inline __attribute__((__gnu_inline__)) int getc_unlocked(FILE *__fp) 1.847 +{ 1.848 + return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); 1.849 +} 1.850 +extern __inline __attribute__((__gnu_inline__)) int getchar_unlocked(void) 1.851 +{ 1.852 + return (__builtin_expect(((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow(stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); 1.853 +} 1.854 +extern __inline __attribute__((__gnu_inline__)) int putchar(int __c) 1.855 +{ 1.856 + return _IO_putc(__c, stdout); 1.857 +} 1.858 +extern __inline __attribute__((__gnu_inline__)) int fputc_unlocked(int __c, FILE *__stream) 1.859 +{ 1.860 + return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1.861 +} 1.862 +extern __inline __attribute__((__gnu_inline__)) int putc_unlocked(int __c, FILE *__stream) 1.863 +{ 1.864 + return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); 1.865 +} 1.866 +extern __inline __attribute__((__gnu_inline__)) int putchar_unlocked(int __c) 1.867 +{ 1.868 + return (__builtin_expect(((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow(stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); 1.869 +} 1.870 +extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) feof_unlocked(FILE *__stream) 1.871 +{ 1.872 + return (((__stream)->_flags & 0x10) != 0); 1.873 +} 1.874 +extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) ferror_unlocked(FILE *__stream) 1.875 +{ 1.876 + return (((__stream)->_flags & 0x20) != 0); 1.877 +} 1.878 +extern int __sprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__)); 1.879 +extern int __vsprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__((__nothrow__, __leaf__)); 1.880 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) sprintf(char *__restrict __s, __const char *__restrict __fmt, ...) 1.881 +{ 1.882 + return __builtin___sprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack()); 1.883 +} 1.884 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) vsprintf(char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap) 1.885 +{ 1.886 + return __builtin___vsprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap); 1.887 +} 1.888 +extern int __snprintf_chk(char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__)); 1.889 +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__, __leaf__)); 1.890 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) snprintf(char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...) 1.891 +{ 1.892 + return __builtin___snprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack()); 1.893 +} 1.894 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) vsnprintf(char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap) 1.895 +{ 1.896 + return __builtin___vsnprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap); 1.897 +} 1.898 +extern int __fprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, ...); 1.899 +extern int __printf_chk(int __flag, __const char *__restrict __format, ...); 1.900 +extern int __vfprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, __gnuc_va_list __ap); 1.901 +extern int __vprintf_chk(int __flag, __const char *__restrict __format, __gnuc_va_list __ap); 1.902 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int fprintf(FILE *__restrict __stream, __const char *__restrict __fmt, ...) 1.903 +{ 1.904 + return __fprintf_chk(__stream, 2 - 1, __fmt, __builtin_va_arg_pack()); 1.905 +} 1.906 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int printf(__const char *__restrict __fmt, ...) 1.907 +{ 1.908 + return __printf_chk(2 - 1, __fmt, __builtin_va_arg_pack()); 1.909 +} 1.910 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vprintf(__const char *__restrict __fmt, __gnuc_va_list __ap) 1.911 +{ 1.912 + return __vfprintf_chk(stdout, 2 - 1, __fmt, __ap); 1.913 +} 1.914 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vfprintf(FILE *__restrict __stream, __const char *__restrict __fmt, __gnuc_va_list __ap) 1.915 +{ 1.916 + return __vfprintf_chk(__stream, 2 - 1, __fmt, __ap); 1.917 +} 1.918 +extern char *__gets_chk(char *__str, size_t) __attribute__((__warn_unused_result__)); 1.919 +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"))); 1.920 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *gets(char *__str) 1.921 +{ 1.922 + if (__builtin_object_size(__str, 2 > 1) != (size_t) - 1) 1.923 + return __gets_chk(__str, __builtin_object_size(__str, 2 > 1)); 1.924 + return __gets_warn(__str); 1.925 +} 1.926 +extern char *__fgets_chk(char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.927 +extern char *__fgets_alias(char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("""fgets") __attribute__((__warn_unused_result__)); 1.928 +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"))); 1.929 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream) 1.930 +{ 1.931 + if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1) 1.932 + { 1.933 + if (!__builtin_constant_p(__n) || __n <= 0) 1.934 + return __fgets_chk(__s, __builtin_object_size(__s, 2 > 1), __n, __stream); 1.935 + if ((size_t) __n > __builtin_object_size(__s, 2 > 1)) 1.936 + return __fgets_chk_warn(__s, __builtin_object_size(__s, 2 > 1), __n, __stream); 1.937 + } 1.938 + return __fgets_alias(__s, __n, __stream); 1.939 +} 1.940 +extern size_t __fread_chk(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__)); 1.941 +extern size_t __fread_alias(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""fread") __attribute__((__warn_unused_result__)); 1.942 +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"))); 1.943 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) 1.944 +{ 1.945 + if (__builtin_object_size(__ptr, 0) != (size_t) - 1) 1.946 + { 1.947 + if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2))) 1.948 + return __fread_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.949 + if (__size * __n > __builtin_object_size(__ptr, 0)) 1.950 + return __fread_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.951 + } 1.952 + return __fread_alias(__ptr, __size, __n, __stream); 1.953 +} 1.954 +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__)); 1.955 +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__)); 1.956 +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"))); 1.957 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) size_t fread_unlocked(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) 1.958 +{ 1.959 + if (__builtin_object_size(__ptr, 0) != (size_t) - 1) 1.960 + { 1.961 + if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2))) 1.962 + return __fread_unlocked_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.963 + if (__size * __n > __builtin_object_size(__ptr, 0)) 1.964 + return __fread_unlocked_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream); 1.965 + } 1.966 + if (__builtin_constant_p(__size) && __builtin_constant_p(__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof(size_t) / 2)) && __size * __n <= 8) 1.967 + { 1.968 + size_t __cnt = __size * __n; 1.969 + char *__cptr = (char *) __ptr; 1.970 + if (__cnt == 0) 1.971 + return 0; 1.972 + for (; 1.973 + __cnt > 0; 1.974 + --__cnt) 1.975 + { 1.976 + int __c = (__builtin_expect(((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow(__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); 1.977 + if (__c == (- 1)) 1.978 + break; 1.979 + *__cptr++ = __c; 1.980 + } 1.981 + return (__cptr - (char *) __ptr) / __size; 1.982 + } 1.983 + return __fread_unlocked_alias(__ptr, __size, __n, __stream); 1.984 +} 1.985 +typedef signed char int8_t; 1.986 +typedef short int int16_t; 1.987 +typedef int int32_t; 1.988 +typedef long int int64_t; 1.989 +typedef unsigned char uint8_t; 1.990 +typedef unsigned short int uint16_t; 1.991 +typedef unsigned int uint32_t; 1.992 +typedef unsigned long int uint64_t; 1.993 +typedef signed char int_least8_t; 1.994 +typedef short int int_least16_t; 1.995 +typedef int int_least32_t; 1.996 +typedef long int int_least64_t; 1.997 +typedef unsigned char uint_least8_t; 1.998 +typedef unsigned short int uint_least16_t; 1.999 +typedef unsigned int uint_least32_t; 1.1000 +typedef unsigned long int uint_least64_t; 1.1001 +typedef signed char int_fast8_t; 1.1002 +typedef long int int_fast16_t; 1.1003 +typedef long int int_fast32_t; 1.1004 +typedef long int int_fast64_t; 1.1005 +typedef unsigned char uint_fast8_t; 1.1006 +typedef unsigned long int uint_fast16_t; 1.1007 +typedef unsigned long int uint_fast32_t; 1.1008 +typedef unsigned long int uint_fast64_t; 1.1009 +typedef unsigned long int uintptr_t; 1.1010 +typedef long int intmax_t; 1.1011 +typedef unsigned long int uintmax_t; 1.1012 +typedef long int ptrdiff_t; 1.1013 +typedef int wchar_t; 1.1014 +typedef struct 1.1015 +{ 1.1016 + void **address; 1.1017 + ptrdiff_t offset; 1.1018 + struct 1.1019 + { 1.1020 + _Bool input : 1; 1.1021 + _Bool output : 1; 1.1022 + _Bool can_rename : 1; 1.1023 + _Bool commutative : 1; 1.1024 + } flags; 1.1025 + size_t size; 1.1026 +} nanos_dependence_internal_t; 1.1027 +typedef enum 1.1028 +{ 1.1029 + NANOS_PRIVATE, 1.1030 + NANOS_SHARED 1.1031 +} nanos_sharing_t; 1.1032 +typedef struct 1.1033 +{ 1.1034 + void *original; 1.1035 + void *privates; 1.1036 + void (*bop)(void *, void *); 1.1037 + void (*vop)(int n, void *, void *); 1.1038 + void (*cleanup)(void *); 1.1039 +} nanos_reduction_t; 1.1040 +typedef struct 1.1041 +{ 1.1042 + uint64_t address; 1.1043 + nanos_sharing_t sharing; 1.1044 + struct 1.1045 + { 1.1046 + _Bool input : 1; 1.1047 + _Bool output : 1; 1.1048 + } flags; 1.1049 + size_t size; 1.1050 +} nanos_copy_data_internal_t; 1.1051 +typedef nanos_dependence_internal_t nanos_dependence_t; 1.1052 +typedef nanos_copy_data_internal_t nanos_copy_data_t; 1.1053 +typedef void *nanos_thread_t; 1.1054 +typedef void *nanos_wd_t; 1.1055 +typedef struct 1.1056 +{ 1.1057 + int nsect; 1.1058 + nanos_wd_t lwd[]; 1.1059 +} nanos_compound_wd_data_t; 1.1060 +typedef struct 1.1061 +{ 1.1062 + int n; 1.1063 +} nanos_repeat_n_info_t; 1.1064 +typedef struct 1.1065 +{ 1.1066 + int lower; 1.1067 + int upper; 1.1068 + int step; 1.1069 + _Bool last; 1.1070 + int chunk; 1.1071 + int stride; 1.1072 + int thid; 1.1073 + void *args; 1.1074 +} nanos_loop_info_t; 1.1075 +typedef void *nanos_ws_t; 1.1076 +typedef void *nanos_ws_info_t; 1.1077 +typedef void *nanos_ws_data_t; 1.1078 +typedef void *nanos_ws_item_t; 1.1079 +typedef struct 1.1080 +{ 1.1081 + int lower_bound; 1.1082 + int upper_bound; 1.1083 + int loop_step; 1.1084 + int chunk_size; 1.1085 +} nanos_ws_info_loop_t; 1.1086 +typedef struct 1.1087 +{ 1.1088 + int lower; 1.1089 + int upper; 1.1090 + _Bool execute : 1; 1.1091 + _Bool last : 1; 1.1092 +} nanos_ws_item_loop_t; 1.1093 +typedef struct nanos_ws_desc 1.1094 +{ 1.1095 + volatile nanos_ws_t ws; 1.1096 + nanos_ws_data_t data; 1.1097 + struct nanos_ws_desc *next; 1.1098 + nanos_thread_t *threads; 1.1099 + int nths; 1.1100 +} nanos_ws_desc_t; 1.1101 +typedef struct 1.1102 +{ 1.1103 + _Bool mandatory_creation : 1; 1.1104 + _Bool tied : 1; 1.1105 + _Bool reserved0 : 1; 1.1106 + _Bool reserved1 : 1; 1.1107 + _Bool reserved2 : 1; 1.1108 + _Bool reserved3 : 1; 1.1109 + _Bool reserved4 : 1; 1.1110 + _Bool reserved5 : 1; 1.1111 +} nanos_wd_props_t; 1.1112 +typedef struct 1.1113 +{ 1.1114 + nanos_thread_t tie_to; 1.1115 + unsigned int priority; 1.1116 +} nanos_wd_dyn_props_t; 1.1117 +typedef struct 1.1118 +{ 1.1119 + void *(*factory)(void *arg); 1.1120 + void *arg; 1.1121 +} nanos_device_t; 1.1122 +typedef enum 1.1123 +{ 1.1124 + NANOS_STATE_START, 1.1125 + NANOS_STATE_END, 1.1126 + NANOS_SUBSTATE_START, 1.1127 + NANOS_SUBSTATE_END, 1.1128 + NANOS_BURST_START, 1.1129 + NANOS_BURST_END, 1.1130 + NANOS_PTP_START, 1.1131 + NANOS_PTP_END, 1.1132 + NANOS_POINT, 1.1133 + EVENT_TYPES 1.1134 +} nanos_event_type_t; 1.1135 +typedef enum 1.1136 +{ 1.1137 + NANOS_NOT_CREATED, 1.1138 + NANOS_NOT_RUNNING, 1.1139 + NANOS_STARTUP, 1.1140 + NANOS_SHUTDOWN, 1.1141 + NANOS_ERROR, 1.1142 + NANOS_IDLE, 1.1143 + NANOS_RUNTIME, 1.1144 + NANOS_RUNNING, 1.1145 + NANOS_SYNCHRONIZATION, 1.1146 + NANOS_SCHEDULING, 1.1147 + NANOS_CREATION, 1.1148 + NANOS_MEM_TRANSFER_IN, 1.1149 + NANOS_MEM_TRANSFER_OUT, 1.1150 + NANOS_MEM_TRANSFER_LOCAL, 1.1151 + NANOS_MEM_TRANSFER_DEVICE_IN, 1.1152 + NANOS_MEM_TRANSFER_DEVICE_OUT, 1.1153 + NANOS_MEM_TRANSFER_DEVICE_LOCAL, 1.1154 + NANOS_CACHE, 1.1155 + NANOS_YIELD, 1.1156 + NANOS_ACQUIRING_LOCK, 1.1157 + NANOS_CONTEXT_SWITCH, 1.1158 + NANOS_DEBUG, 1.1159 + NANOS_EVENT_STATE_TYPES 1.1160 +} nanos_event_state_value_t; 1.1161 +typedef enum 1.1162 +{ 1.1163 + NANOS_WD_DOMAIN, 1.1164 + NANOS_WD_DEPENDENCY, 1.1165 + NANOS_WAIT, 1.1166 + NANOS_WD_REMOTE, 1.1167 + NANOS_XFER_PUT, 1.1168 + NANOS_XFER_GET 1.1169 +} nanos_event_domain_t; 1.1170 +typedef long long nanos_event_id_t; 1.1171 +typedef unsigned int nanos_event_key_t; 1.1172 +typedef unsigned long long nanos_event_value_t; 1.1173 +typedef struct 1.1174 +{ 1.1175 + nanos_event_key_t key; 1.1176 + nanos_event_value_t value; 1.1177 +} nanos_event_burst_t; 1.1178 +typedef struct 1.1179 +{ 1.1180 + nanos_event_state_value_t value; 1.1181 +} nanos_event_state_t; 1.1182 +typedef struct 1.1183 +{ 1.1184 + unsigned int nkvs; 1.1185 + nanos_event_key_t *keys; 1.1186 + nanos_event_value_t *values; 1.1187 +} nanos_event_point_t; 1.1188 +typedef struct 1.1189 +{ 1.1190 + nanos_event_domain_t domain; 1.1191 + nanos_event_id_t id; 1.1192 + unsigned int nkvs; 1.1193 + nanos_event_key_t *keys; 1.1194 + nanos_event_value_t *values; 1.1195 +} nanos_event_ptp_t; 1.1196 +typedef struct 1.1197 +{ 1.1198 + nanos_event_type_t type; 1.1199 + union 1.1200 + { 1.1201 + nanos_event_burst_t burst; 1.1202 + nanos_event_state_t state; 1.1203 + nanos_event_point_t point; 1.1204 + nanos_event_ptp_t ptp; 1.1205 + } info; 1.1206 +} nanos_event_t; 1.1207 +typedef enum 1.1208 +{ 1.1209 + NANOS_LOCK_FREE = 0, 1.1210 + NANOS_LOCK_BUSY = 1 1.1211 +} nanos_lock_state_t; 1.1212 +typedef struct nanos_lock_t 1.1213 +{ 1.1214 + volatile nanos_lock_state_t _state; 1.1215 +} nanos_lock_t; 1.1216 +typedef void (*nanos_translate_args_t)(void *, nanos_wd_t); 1.1217 +typedef void (nanos_init_func_t)(void *); 1.1218 +typedef struct 1.1219 +{ 1.1220 + nanos_init_func_t *func; 1.1221 + void *data; 1.1222 +} nanos_init_desc_t; 1.1223 +typedef void *nanos_wg_t; 1.1224 +typedef void *nanos_team_t; 1.1225 +typedef void *nanos_sched_t; 1.1226 +typedef void *nanos_slicer_t; 1.1227 +typedef void *nanos_dd_t; 1.1228 +typedef void *nanos_sync_cond_t; 1.1229 +typedef unsigned int nanos_copy_id_t; 1.1230 +typedef struct nanos_const_wd_definition_tag 1.1231 +{ 1.1232 + nanos_wd_props_t props; 1.1233 + size_t data_alignment; 1.1234 + size_t num_copies; 1.1235 + size_t num_devices; 1.1236 +} nanos_const_wd_definition_t; 1.1237 +typedef struct 1.1238 +{ 1.1239 + int nthreads; 1.1240 + void *arch; 1.1241 +} nanos_constraint_t; 1.1242 +typedef enum 1.1243 +{ 1.1244 + NANOS_OK = 0, 1.1245 + NANOS_UNKNOWN_ERR, 1.1246 + NANOS_UNIMPLEMENTED 1.1247 +} nanos_err_t; 1.1248 +typedef struct 1.1249 +{ 1.1250 + void (*outline)(void *); 1.1251 +} nanos_smp_args_t; 1.1252 +extern nanos_wd_t nanos_current_wd_(void); 1.1253 +extern nanos_wd_t nanos_current_wd(void); 1.1254 +extern int nanos_get_wd_id_(nanos_wd_t wd); 1.1255 +extern int nanos_get_wd_id(nanos_wd_t wd); 1.1256 +extern nanos_slicer_t nanos_find_slicer_(const char *slicer); 1.1257 +extern nanos_slicer_t nanos_find_slicer(const char *slicer); 1.1258 +extern nanos_ws_t nanos_find_worksharing_(const char *label); 1.1259 +extern nanos_ws_t nanos_find_worksharing(const char *label); 1.1260 +extern nanos_err_t nanos_create_wd_compact_(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, nanos_wg_t wg, nanos_copy_data_t **copies); 1.1261 +extern nanos_err_t nanos_create_wd_compact(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, nanos_wg_t wg, nanos_copy_data_t **copies); 1.1262 +extern nanos_err_t nanos_set_translate_function_(nanos_wd_t wd, nanos_translate_args_t translate_args); 1.1263 +extern nanos_err_t nanos_set_translate_function(nanos_wd_t wd, nanos_translate_args_t translate_args); 1.1264 +extern nanos_err_t nanos_create_sliced_wd_(nanos_wd_t *uwd, size_t num_devices, nanos_device_t *devices, size_t outline_data_size, int outline_data_align, void **outline_data, nanos_wg_t uwg, nanos_slicer_t slicer, nanos_wd_props_t *props, nanos_wd_dyn_props_t *dyn_props, size_t num_copies, nanos_copy_data_t **copies); 1.1265 +extern nanos_err_t nanos_create_sliced_wd(nanos_wd_t *uwd, size_t num_devices, nanos_device_t *devices, size_t outline_data_size, int outline_data_align, void **outline_data, nanos_wg_t uwg, nanos_slicer_t slicer, nanos_wd_props_t *props, nanos_wd_dyn_props_t *dyn_props, size_t num_copies, nanos_copy_data_t **copies); 1.1266 +extern nanos_err_t nanos_submit_(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team); 1.1267 +extern nanos_err_t nanos_submit(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team); 1.1268 +extern nanos_err_t nanos_create_wd_and_run_compact_(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_deps, nanos_dependence_t *deps, nanos_copy_data_t *copies, nanos_translate_args_t translate_args); 1.1269 +extern nanos_err_t nanos_create_wd_and_run_compact(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_deps, nanos_dependence_t *deps, nanos_copy_data_t *copies, nanos_translate_args_t translate_args); 1.1270 +extern nanos_err_t nanos_create_for_(void); 1.1271 +extern nanos_err_t nanos_create_for(void); 1.1272 +extern nanos_err_t nanos_set_internal_wd_data_(nanos_wd_t wd, void *data); 1.1273 +extern nanos_err_t nanos_set_internal_wd_data(nanos_wd_t wd, void *data); 1.1274 +extern nanos_err_t nanos_get_internal_wd_data_(nanos_wd_t wd, void **data); 1.1275 +extern nanos_err_t nanos_get_internal_wd_data(nanos_wd_t wd, void **data); 1.1276 +extern nanos_err_t nanos_yield_(void); 1.1277 +extern nanos_err_t nanos_yield(void); 1.1278 +extern nanos_err_t nanos_slicer_get_specific_data_(nanos_slicer_t slicer, void **data); 1.1279 +extern nanos_err_t nanos_slicer_get_specific_data(nanos_slicer_t slicer, void **data); 1.1280 +extern nanos_err_t nanos_create_team_(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, nanos_constraint_t *constraints, _Bool reuse, nanos_thread_t *info); 1.1281 +extern nanos_err_t nanos_create_team(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, nanos_constraint_t *constraints, _Bool reuse, nanos_thread_t *info); 1.1282 +extern nanos_err_t nanos_create_team_mapped_(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping); 1.1283 +extern nanos_err_t nanos_create_team_mapped(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping); 1.1284 +extern nanos_err_t nanos_leave_team_(); 1.1285 +extern nanos_err_t nanos_leave_team(); 1.1286 +extern nanos_err_t nanos_end_team_(nanos_team_t team); 1.1287 +extern nanos_err_t nanos_end_team(nanos_team_t team); 1.1288 +extern nanos_err_t nanos_team_barrier_(void); 1.1289 +extern nanos_err_t nanos_team_barrier(void); 1.1290 +extern nanos_err_t nanos_single_guard_(_Bool *); 1.1291 +extern nanos_err_t nanos_single_guard(_Bool *); 1.1292 +extern nanos_err_t nanos_enter_sync_init_(_Bool *b); 1.1293 +extern nanos_err_t nanos_enter_sync_init(_Bool *b); 1.1294 +extern nanos_err_t nanos_wait_sync_init_(void); 1.1295 +extern nanos_err_t nanos_wait_sync_init(void); 1.1296 +extern nanos_err_t nanos_release_sync_init_(void); 1.1297 +extern nanos_err_t nanos_release_sync_init(void); 1.1298 +extern nanos_err_t nanos_team_get_num_starring_threads_(int *n); 1.1299 +extern nanos_err_t nanos_team_get_num_starring_threads(int *n); 1.1300 +extern nanos_err_t nanos_team_get_starring_threads_(int *n, nanos_thread_t *list_of_threads); 1.1301 +extern nanos_err_t nanos_team_get_starring_threads(int *n, nanos_thread_t *list_of_threads); 1.1302 +extern nanos_err_t nanos_team_get_num_supporting_threads_(int *n); 1.1303 +extern nanos_err_t nanos_team_get_num_supporting_threads(int *n); 1.1304 +extern nanos_err_t nanos_team_get_supporting_threads_(int *n, nanos_thread_t *list_of_threads); 1.1305 +extern nanos_err_t nanos_team_get_supporting_threads(int *n, nanos_thread_t *list_of_threads); 1.1306 +extern nanos_err_t nanos_register_reduction_(nanos_reduction_t *red); 1.1307 +extern nanos_err_t nanos_register_reduction(nanos_reduction_t *red); 1.1308 +extern nanos_err_t nanos_reduction_get_private_data_(void **copy, void *sink); 1.1309 +extern nanos_err_t nanos_reduction_get_private_data(void **copy, void *sink); 1.1310 +extern nanos_err_t nanos_worksharing_create_(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b); 1.1311 +extern nanos_err_t nanos_worksharing_create(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b); 1.1312 +extern nanos_err_t nanos_worksharing_next_item_(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi); 1.1313 +extern nanos_err_t nanos_worksharing_next_item(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi); 1.1314 +extern nanos_err_t nanos_wg_wait_completion_(nanos_wg_t wg, _Bool avoid_flush); 1.1315 +extern nanos_err_t nanos_wg_wait_completion(nanos_wg_t wg, _Bool avoid_flush); 1.1316 +extern nanos_err_t nanos_create_int_sync_cond_(nanos_sync_cond_t *sync_cond, volatile int *p, int condition); 1.1317 +extern nanos_err_t nanos_create_int_sync_cond(nanos_sync_cond_t *sync_cond, volatile int *p, int condition); 1.1318 +extern nanos_err_t nanos_create_bool_sync_cond_(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition); 1.1319 +extern nanos_err_t nanos_create_bool_sync_cond(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition); 1.1320 +extern nanos_err_t nanos_sync_cond_wait_(nanos_sync_cond_t *sync_cond); 1.1321 +extern nanos_err_t nanos_sync_cond_wait(nanos_sync_cond_t *sync_cond); 1.1322 +extern nanos_err_t nanos_sync_cond_signal_(nanos_sync_cond_t *sync_cond); 1.1323 +extern nanos_err_t nanos_sync_cond_signal(nanos_sync_cond_t *sync_cond); 1.1324 +extern nanos_err_t nanos_destroy_sync_cond_(nanos_sync_cond_t *sync_cond); 1.1325 +extern nanos_err_t nanos_destroy_sync_cond(nanos_sync_cond_t *sync_cond); 1.1326 +extern nanos_err_t nanos_wait_on_(size_t num_deps, nanos_dependence_t *deps); 1.1327 +extern nanos_err_t nanos_wait_on(size_t num_deps, nanos_dependence_t *deps); 1.1328 +extern nanos_err_t nanos_init_lock_(nanos_lock_t **lock); 1.1329 +extern nanos_err_t nanos_init_lock(nanos_lock_t **lock); 1.1330 +extern nanos_err_t nanos_set_lock_(nanos_lock_t *lock); 1.1331 +extern nanos_err_t nanos_set_lock(nanos_lock_t *lock); 1.1332 +extern nanos_err_t nanos_unset_lock_(nanos_lock_t *lock); 1.1333 +extern nanos_err_t nanos_unset_lock(nanos_lock_t *lock); 1.1334 +extern nanos_err_t nanos_try_lock_(nanos_lock_t *lock, _Bool *result); 1.1335 +extern nanos_err_t nanos_try_lock(nanos_lock_t *lock, _Bool *result); 1.1336 +extern nanos_err_t nanos_destroy_lock_(nanos_lock_t *lock); 1.1337 +extern nanos_err_t nanos_destroy_lock(nanos_lock_t *lock); 1.1338 +extern nanos_err_t nanos_get_addr_(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd); 1.1339 +extern nanos_err_t nanos_get_addr(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd); 1.1340 +extern nanos_err_t nanos_copy_value_(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd); 1.1341 +extern nanos_err_t nanos_copy_value(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd); 1.1342 +extern nanos_err_t nanos_get_num_running_tasks_(int *num); 1.1343 +extern nanos_err_t nanos_get_num_running_tasks(int *num); 1.1344 +extern nanos_err_t nanos_start_scheduler_(); 1.1345 +extern nanos_err_t nanos_start_scheduler(); 1.1346 +extern nanos_err_t nanos_stop_scheduler_(); 1.1347 +extern nanos_err_t nanos_stop_scheduler(); 1.1348 +extern nanos_err_t nanos_scheduler_enabled_(_Bool *res); 1.1349 +extern nanos_err_t nanos_scheduler_enabled(_Bool *res); 1.1350 +extern nanos_err_t nanos_wait_until_threads_paused_(); 1.1351 +extern nanos_err_t nanos_wait_until_threads_paused(); 1.1352 +extern nanos_err_t nanos_wait_until_threads_unpaused_(); 1.1353 +extern nanos_err_t nanos_wait_until_threads_unpaused(); 1.1354 +extern nanos_err_t nanos_delay_start_(); 1.1355 +extern nanos_err_t nanos_delay_start(); 1.1356 +extern nanos_err_t nanos_start_(); 1.1357 +extern nanos_err_t nanos_start(); 1.1358 +extern nanos_err_t nanos_finish_(); 1.1359 +extern nanos_err_t nanos_finish(); 1.1360 +extern nanos_err_t nanos_malloc_(void **p, size_t size, const char *file, int line); 1.1361 +extern nanos_err_t nanos_malloc(void **p, size_t size, const char *file, int line); 1.1362 +extern nanos_err_t nanos_free_(void *p); 1.1363 +extern nanos_err_t nanos_free(void *p); 1.1364 +extern void nanos_handle_error_(nanos_err_t err); 1.1365 +extern void nanos_handle_error(nanos_err_t err); 1.1366 +extern void *nanos_smp_factory_(void *args); 1.1367 +extern void *nanos_smp_factory(void *args); 1.1368 +extern nanos_err_t nanos_instrument_register_key_(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered); 1.1369 +extern nanos_err_t nanos_instrument_register_key(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered); 1.1370 +extern nanos_err_t nanos_instrument_register_value_(nanos_event_value_t *event_value, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1371 +extern nanos_err_t nanos_instrument_register_value(nanos_event_value_t *event_value, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1372 +extern nanos_err_t nanos_instrument_register_value_with_val_(nanos_event_value_t val, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1373 +extern nanos_err_t nanos_instrument_register_value_with_val(nanos_event_value_t val, const char *key, const char *value, const char *description, _Bool abort_when_registered); 1.1374 +extern nanos_err_t nanos_instrument_get_key_(const char *key, nanos_event_key_t *event_key); 1.1375 +extern nanos_err_t nanos_instrument_get_key(const char *key, nanos_event_key_t *event_key); 1.1376 +extern nanos_err_t nanos_instrument_get_value_(const char *key, const char *value, nanos_event_value_t *event_value); 1.1377 +extern nanos_err_t nanos_instrument_get_value(const char *key, const char *value, nanos_event_value_t *event_value); 1.1378 +extern nanos_err_t nanos_instrument_events_(unsigned int num_events, nanos_event_t events[]); 1.1379 +extern nanos_err_t nanos_instrument_events(unsigned int num_events, nanos_event_t events[]); 1.1380 +extern nanos_err_t nanos_instrument_enter_state_(nanos_event_state_value_t state); 1.1381 +extern nanos_err_t nanos_instrument_enter_state(nanos_event_state_value_t state); 1.1382 +extern nanos_err_t nanos_instrument_leave_state_(void); 1.1383 +extern nanos_err_t nanos_instrument_leave_state(void); 1.1384 +extern nanos_err_t nanos_instrument_enter_burst_(nanos_event_key_t key, nanos_event_value_t value); 1.1385 +extern nanos_err_t nanos_instrument_enter_burst(nanos_event_key_t key, nanos_event_value_t value); 1.1386 +extern nanos_err_t nanos_instrument_leave_burst_(nanos_event_key_t key); 1.1387 +extern nanos_err_t nanos_instrument_leave_burst(nanos_event_key_t key); 1.1388 +extern nanos_err_t nanos_instrument_point_event_(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1389 +extern nanos_err_t nanos_instrument_point_event(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1390 +extern nanos_err_t nanos_instrument_ptp_start_(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1391 +extern nanos_err_t nanos_instrument_ptp_start(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1392 +extern nanos_err_t nanos_instrument_ptp_end_(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1393 +extern nanos_err_t nanos_instrument_ptp_end(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values); 1.1394 +extern nanos_err_t nanos_instrument_disable_state_events_(nanos_event_state_value_t state); 1.1395 +extern nanos_err_t nanos_instrument_disable_state_events(nanos_event_state_value_t state); 1.1396 +extern nanos_err_t nanos_instrument_enable_state_events_(void); 1.1397 +extern nanos_err_t nanos_instrument_enable_state_events(void); 1.1398 +extern nanos_err_t nanos_instrument_close_user_fun_event_(); 1.1399 +extern nanos_err_t nanos_instrument_close_user_fun_event(); 1.1400 +extern nanos_err_t nanos_instrument_enable_(void); 1.1401 +extern nanos_err_t nanos_instrument_enable(void); 1.1402 +extern nanos_err_t nanos_instrument_disable_(void); 1.1403 +extern nanos_err_t nanos_instrument_disable(void); 1.1404 +void nanos_reduction_int_vop(int, void *, void *); 1.1405 +void nanos_reduction_bop_add_char(void *arg1, void *arg2); 1.1406 +void nanos_reduction_vop_add_char(int i, void *arg1, void *arg2); 1.1407 +void nanos_reduction_bop_add_uchar(void *arg1, void *arg2); 1.1408 +void nanos_reduction_vop_add_uchar(int i, void *arg1, void *arg2); 1.1409 +void nanos_reduction_bop_add_schar(void *arg1, void *arg2); 1.1410 +void nanos_reduction_vop_add_schar(int i, void *arg1, void *arg2); 1.1411 +void nanos_reduction_bop_add_short(void *arg1, void *arg2); 1.1412 +void nanos_reduction_vop_add_short(int i, void *arg1, void *arg2); 1.1413 +void nanos_reduction_bop_add_ushort(void *arg1, void *arg2); 1.1414 +void nanos_reduction_vop_add_ushort(int i, void *arg1, void *arg2); 1.1415 +void nanos_reduction_bop_add_int(void *arg1, void *arg2); 1.1416 +void nanos_reduction_vop_add_int(int i, void *arg1, void *arg2); 1.1417 +void nanos_reduction_bop_add_uint(void *arg1, void *arg2); 1.1418 +void nanos_reduction_vop_add_uint(int i, void *arg1, void *arg2); 1.1419 +void nanos_reduction_bop_add_long(void *arg1, void *arg2); 1.1420 +void nanos_reduction_vop_add_long(int i, void *arg1, void *arg2); 1.1421 +void nanos_reduction_bop_add_ulong(void *arg1, void *arg2); 1.1422 +void nanos_reduction_vop_add_ulong(int i, void *arg1, void *arg2); 1.1423 +void nanos_reduction_bop_add_longlong(void *arg1, void *arg2); 1.1424 +void nanos_reduction_vop_add_longlong(int i, void *arg1, void *arg2); 1.1425 +void nanos_reduction_bop_add_ulonglong(void *arg1, void *arg2); 1.1426 +void nanos_reduction_vop_add_ulonglong(int i, void *arg1, void *arg2); 1.1427 +void nanos_reduction_bop_add__Bool(void *arg1, void *arg2); 1.1428 +void nanos_reduction_vop_add__Bool(int i, void *arg1, void *arg2); 1.1429 +void nanos_reduction_bop_add_float(void *arg1, void *arg2); 1.1430 +void nanos_reduction_vop_add_float(int i, void *arg1, void *arg2); 1.1431 +void nanos_reduction_bop_add_double(void *arg1, void *arg2); 1.1432 +void nanos_reduction_vop_add_double(int i, void *arg1, void *arg2); 1.1433 +void nanos_reduction_bop_add_longdouble(void *arg1, void *arg2); 1.1434 +void nanos_reduction_vop_add_longdouble(int i, void *arg1, void *arg2); 1.1435 +void nanos_reduction_bop_sub_char(void *arg1, void *arg2); 1.1436 +void nanos_reduction_vop_sub_char(int i, void *arg1, void *arg2); 1.1437 +void nanos_reduction_bop_sub_uchar(void *arg1, void *arg2); 1.1438 +void nanos_reduction_vop_sub_uchar(int i, void *arg1, void *arg2); 1.1439 +void nanos_reduction_bop_sub_schar(void *arg1, void *arg2); 1.1440 +void nanos_reduction_vop_sub_schar(int i, void *arg1, void *arg2); 1.1441 +void nanos_reduction_bop_sub_short(void *arg1, void *arg2); 1.1442 +void nanos_reduction_vop_sub_short(int i, void *arg1, void *arg2); 1.1443 +void nanos_reduction_bop_sub_ushort(void *arg1, void *arg2); 1.1444 +void nanos_reduction_vop_sub_ushort(int i, void *arg1, void *arg2); 1.1445 +void nanos_reduction_bop_sub_int(void *arg1, void *arg2); 1.1446 +void nanos_reduction_vop_sub_int(int i, void *arg1, void *arg2); 1.1447 +void nanos_reduction_bop_sub_uint(void *arg1, void *arg2); 1.1448 +void nanos_reduction_vop_sub_uint(int i, void *arg1, void *arg2); 1.1449 +void nanos_reduction_bop_sub_long(void *arg1, void *arg2); 1.1450 +void nanos_reduction_vop_sub_long(int i, void *arg1, void *arg2); 1.1451 +void nanos_reduction_bop_sub_ulong(void *arg1, void *arg2); 1.1452 +void nanos_reduction_vop_sub_ulong(int i, void *arg1, void *arg2); 1.1453 +void nanos_reduction_bop_sub_longlong(void *arg1, void *arg2); 1.1454 +void nanos_reduction_vop_sub_longlong(int i, void *arg1, void *arg2); 1.1455 +void nanos_reduction_bop_sub_ulonglong(void *arg1, void *arg2); 1.1456 +void nanos_reduction_vop_sub_ulonglong(int i, void *arg1, void *arg2); 1.1457 +void nanos_reduction_bop_sub__Bool(void *arg1, void *arg2); 1.1458 +void nanos_reduction_vop_sub__Bool(int i, void *arg1, void *arg2); 1.1459 +void nanos_reduction_bop_sub_float(void *arg1, void *arg2); 1.1460 +void nanos_reduction_vop_sub_float(int i, void *arg1, void *arg2); 1.1461 +void nanos_reduction_bop_sub_double(void *arg1, void *arg2); 1.1462 +void nanos_reduction_vop_sub_double(int i, void *arg1, void *arg2); 1.1463 +void nanos_reduction_bop_sub_longdouble(void *arg1, void *arg2); 1.1464 +void nanos_reduction_vop_sub_longdouble(int i, void *arg1, void *arg2); 1.1465 +void nanos_reduction_bop_prod_char(void *arg1, void *arg2); 1.1466 +void nanos_reduction_vop_prod_char(int i, void *arg1, void *arg2); 1.1467 +void nanos_reduction_bop_prod_uchar(void *arg1, void *arg2); 1.1468 +void nanos_reduction_vop_prod_uchar(int i, void *arg1, void *arg2); 1.1469 +void nanos_reduction_bop_prod_schar(void *arg1, void *arg2); 1.1470 +void nanos_reduction_vop_prod_schar(int i, void *arg1, void *arg2); 1.1471 +void nanos_reduction_bop_prod_short(void *arg1, void *arg2); 1.1472 +void nanos_reduction_vop_prod_short(int i, void *arg1, void *arg2); 1.1473 +void nanos_reduction_bop_prod_ushort(void *arg1, void *arg2); 1.1474 +void nanos_reduction_vop_prod_ushort(int i, void *arg1, void *arg2); 1.1475 +void nanos_reduction_bop_prod_int(void *arg1, void *arg2); 1.1476 +void nanos_reduction_vop_prod_int(int i, void *arg1, void *arg2); 1.1477 +void nanos_reduction_bop_prod_uint(void *arg1, void *arg2); 1.1478 +void nanos_reduction_vop_prod_uint(int i, void *arg1, void *arg2); 1.1479 +void nanos_reduction_bop_prod_long(void *arg1, void *arg2); 1.1480 +void nanos_reduction_vop_prod_long(int i, void *arg1, void *arg2); 1.1481 +void nanos_reduction_bop_prod_ulong(void *arg1, void *arg2); 1.1482 +void nanos_reduction_vop_prod_ulong(int i, void *arg1, void *arg2); 1.1483 +void nanos_reduction_bop_prod_longlong(void *arg1, void *arg2); 1.1484 +void nanos_reduction_vop_prod_longlong(int i, void *arg1, void *arg2); 1.1485 +void nanos_reduction_bop_prod_ulonglong(void *arg1, void *arg2); 1.1486 +void nanos_reduction_vop_prod_ulonglong(int i, void *arg1, void *arg2); 1.1487 +void nanos_reduction_bop_prod__Bool(void *arg1, void *arg2); 1.1488 +void nanos_reduction_vop_prod__Bool(int i, void *arg1, void *arg2); 1.1489 +void nanos_reduction_bop_prod_float(void *arg1, void *arg2); 1.1490 +void nanos_reduction_vop_prod_float(int i, void *arg1, void *arg2); 1.1491 +void nanos_reduction_bop_prod_double(void *arg1, void *arg2); 1.1492 +void nanos_reduction_vop_prod_double(int i, void *arg1, void *arg2); 1.1493 +void nanos_reduction_bop_prod_longdouble(void *arg1, void *arg2); 1.1494 +void nanos_reduction_vop_prod_longdouble(int i, void *arg1, void *arg2); 1.1495 +void nanos_reduction_bop_and_char(void *arg1, void *arg2); 1.1496 +void nanos_reduction_vop_and_char(int i, void *arg1, void *arg2); 1.1497 +void nanos_reduction_bop_and_uchar(void *arg1, void *arg2); 1.1498 +void nanos_reduction_vop_and_uchar(int i, void *arg1, void *arg2); 1.1499 +void nanos_reduction_bop_and_schar(void *arg1, void *arg2); 1.1500 +void nanos_reduction_vop_and_schar(int i, void *arg1, void *arg2); 1.1501 +void nanos_reduction_bop_and_short(void *arg1, void *arg2); 1.1502 +void nanos_reduction_vop_and_short(int i, void *arg1, void *arg2); 1.1503 +void nanos_reduction_bop_and_ushort(void *arg1, void *arg2); 1.1504 +void nanos_reduction_vop_and_ushort(int i, void *arg1, void *arg2); 1.1505 +void nanos_reduction_bop_and_int(void *arg1, void *arg2); 1.1506 +void nanos_reduction_vop_and_int(int i, void *arg1, void *arg2); 1.1507 +void nanos_reduction_bop_and_uint(void *arg1, void *arg2); 1.1508 +void nanos_reduction_vop_and_uint(int i, void *arg1, void *arg2); 1.1509 +void nanos_reduction_bop_and_long(void *arg1, void *arg2); 1.1510 +void nanos_reduction_vop_and_long(int i, void *arg1, void *arg2); 1.1511 +void nanos_reduction_bop_and_ulong(void *arg1, void *arg2); 1.1512 +void nanos_reduction_vop_and_ulong(int i, void *arg1, void *arg2); 1.1513 +void nanos_reduction_bop_and_longlong(void *arg1, void *arg2); 1.1514 +void nanos_reduction_vop_and_longlong(int i, void *arg1, void *arg2); 1.1515 +void nanos_reduction_bop_and_ulonglong(void *arg1, void *arg2); 1.1516 +void nanos_reduction_vop_and_ulonglong(int i, void *arg1, void *arg2); 1.1517 +void nanos_reduction_bop_and__Bool(void *arg1, void *arg2); 1.1518 +void nanos_reduction_vop_and__Bool(int i, void *arg1, void *arg2); 1.1519 +void nanos_reduction_bop_or_char(void *arg1, void *arg2); 1.1520 +void nanos_reduction_vop_or_char(int i, void *arg1, void *arg2); 1.1521 +void nanos_reduction_bop_or_uchar(void *arg1, void *arg2); 1.1522 +void nanos_reduction_vop_or_uchar(int i, void *arg1, void *arg2); 1.1523 +void nanos_reduction_bop_or_schar(void *arg1, void *arg2); 1.1524 +void nanos_reduction_vop_or_schar(int i, void *arg1, void *arg2); 1.1525 +void nanos_reduction_bop_or_short(void *arg1, void *arg2); 1.1526 +void nanos_reduction_vop_or_short(int i, void *arg1, void *arg2); 1.1527 +void nanos_reduction_bop_or_ushort(void *arg1, void *arg2); 1.1528 +void nanos_reduction_vop_or_ushort(int i, void *arg1, void *arg2); 1.1529 +void nanos_reduction_bop_or_int(void *arg1, void *arg2); 1.1530 +void nanos_reduction_vop_or_int(int i, void *arg1, void *arg2); 1.1531 +void nanos_reduction_bop_or_uint(void *arg1, void *arg2); 1.1532 +void nanos_reduction_vop_or_uint(int i, void *arg1, void *arg2); 1.1533 +void nanos_reduction_bop_or_long(void *arg1, void *arg2); 1.1534 +void nanos_reduction_vop_or_long(int i, void *arg1, void *arg2); 1.1535 +void nanos_reduction_bop_or_ulong(void *arg1, void *arg2); 1.1536 +void nanos_reduction_vop_or_ulong(int i, void *arg1, void *arg2); 1.1537 +void nanos_reduction_bop_or_longlong(void *arg1, void *arg2); 1.1538 +void nanos_reduction_vop_or_longlong(int i, void *arg1, void *arg2); 1.1539 +void nanos_reduction_bop_or_ulonglong(void *arg1, void *arg2); 1.1540 +void nanos_reduction_vop_or_ulonglong(int i, void *arg1, void *arg2); 1.1541 +void nanos_reduction_bop_or__Bool(void *arg1, void *arg2); 1.1542 +void nanos_reduction_vop_or__Bool(int i, void *arg1, void *arg2); 1.1543 +void nanos_reduction_bop_xor_char(void *arg1, void *arg2); 1.1544 +void nanos_reduction_vop_xor_char(int i, void *arg1, void *arg2); 1.1545 +void nanos_reduction_bop_xor_uchar(void *arg1, void *arg2); 1.1546 +void nanos_reduction_vop_xor_uchar(int i, void *arg1, void *arg2); 1.1547 +void nanos_reduction_bop_xor_schar(void *arg1, void *arg2); 1.1548 +void nanos_reduction_vop_xor_schar(int i, void *arg1, void *arg2); 1.1549 +void nanos_reduction_bop_xor_short(void *arg1, void *arg2); 1.1550 +void nanos_reduction_vop_xor_short(int i, void *arg1, void *arg2); 1.1551 +void nanos_reduction_bop_xor_ushort(void *arg1, void *arg2); 1.1552 +void nanos_reduction_vop_xor_ushort(int i, void *arg1, void *arg2); 1.1553 +void nanos_reduction_bop_xor_int(void *arg1, void *arg2); 1.1554 +void nanos_reduction_vop_xor_int(int i, void *arg1, void *arg2); 1.1555 +void nanos_reduction_bop_xor_uint(void *arg1, void *arg2); 1.1556 +void nanos_reduction_vop_xor_uint(int i, void *arg1, void *arg2); 1.1557 +void nanos_reduction_bop_xor_long(void *arg1, void *arg2); 1.1558 +void nanos_reduction_vop_xor_long(int i, void *arg1, void *arg2); 1.1559 +void nanos_reduction_bop_xor_ulong(void *arg1, void *arg2); 1.1560 +void nanos_reduction_vop_xor_ulong(int i, void *arg1, void *arg2); 1.1561 +void nanos_reduction_bop_xor_longlong(void *arg1, void *arg2); 1.1562 +void nanos_reduction_vop_xor_longlong(int i, void *arg1, void *arg2); 1.1563 +void nanos_reduction_bop_xor_ulonglong(void *arg1, void *arg2); 1.1564 +void nanos_reduction_vop_xor_ulonglong(int i, void *arg1, void *arg2); 1.1565 +void nanos_reduction_bop_xor__Bool(void *arg1, void *arg2); 1.1566 +void nanos_reduction_vop_xor__Bool(int i, void *arg1, void *arg2); 1.1567 +void nanos_reduction_bop_land_char(void *arg1, void *arg2); 1.1568 +void nanos_reduction_vop_land_char(int i, void *arg1, void *arg2); 1.1569 +void nanos_reduction_bop_land_uchar(void *arg1, void *arg2); 1.1570 +void nanos_reduction_vop_land_uchar(int i, void *arg1, void *arg2); 1.1571 +void nanos_reduction_bop_land_schar(void *arg1, void *arg2); 1.1572 +void nanos_reduction_vop_land_schar(int i, void *arg1, void *arg2); 1.1573 +void nanos_reduction_bop_land_short(void *arg1, void *arg2); 1.1574 +void nanos_reduction_vop_land_short(int i, void *arg1, void *arg2); 1.1575 +void nanos_reduction_bop_land_ushort(void *arg1, void *arg2); 1.1576 +void nanos_reduction_vop_land_ushort(int i, void *arg1, void *arg2); 1.1577 +void nanos_reduction_bop_land_int(void *arg1, void *arg2); 1.1578 +void nanos_reduction_vop_land_int(int i, void *arg1, void *arg2); 1.1579 +void nanos_reduction_bop_land_uint(void *arg1, void *arg2); 1.1580 +void nanos_reduction_vop_land_uint(int i, void *arg1, void *arg2); 1.1581 +void nanos_reduction_bop_land_long(void *arg1, void *arg2); 1.1582 +void nanos_reduction_vop_land_long(int i, void *arg1, void *arg2); 1.1583 +void nanos_reduction_bop_land_ulong(void *arg1, void *arg2); 1.1584 +void nanos_reduction_vop_land_ulong(int i, void *arg1, void *arg2); 1.1585 +void nanos_reduction_bop_land_longlong(void *arg1, void *arg2); 1.1586 +void nanos_reduction_vop_land_longlong(int i, void *arg1, void *arg2); 1.1587 +void nanos_reduction_bop_land_ulonglong(void *arg1, void *arg2); 1.1588 +void nanos_reduction_vop_land_ulonglong(int i, void *arg1, void *arg2); 1.1589 +void nanos_reduction_bop_land__Bool(void *arg1, void *arg2); 1.1590 +void nanos_reduction_vop_land__Bool(int i, void *arg1, void *arg2); 1.1591 +void nanos_reduction_bop_land_float(void *arg1, void *arg2); 1.1592 +void nanos_reduction_vop_land_float(int i, void *arg1, void *arg2); 1.1593 +void nanos_reduction_bop_land_double(void *arg1, void *arg2); 1.1594 +void nanos_reduction_vop_land_double(int i, void *arg1, void *arg2); 1.1595 +void nanos_reduction_bop_land_longdouble(void *arg1, void *arg2); 1.1596 +void nanos_reduction_vop_land_longdouble(int i, void *arg1, void *arg2); 1.1597 +void nanos_reduction_bop_lor_char(void *arg1, void *arg2); 1.1598 +void nanos_reduction_vop_lor_char(int i, void *arg1, void *arg2); 1.1599 +void nanos_reduction_bop_lor_uchar(void *arg1, void *arg2); 1.1600 +void nanos_reduction_vop_lor_uchar(int i, void *arg1, void *arg2); 1.1601 +void nanos_reduction_bop_lor_schar(void *arg1, void *arg2); 1.1602 +void nanos_reduction_vop_lor_schar(int i, void *arg1, void *arg2); 1.1603 +void nanos_reduction_bop_lor_short(void *arg1, void *arg2); 1.1604 +void nanos_reduction_vop_lor_short(int i, void *arg1, void *arg2); 1.1605 +void nanos_reduction_bop_lor_ushort(void *arg1, void *arg2); 1.1606 +void nanos_reduction_vop_lor_ushort(int i, void *arg1, void *arg2); 1.1607 +void nanos_reduction_bop_lor_int(void *arg1, void *arg2); 1.1608 +void nanos_reduction_vop_lor_int(int i, void *arg1, void *arg2); 1.1609 +void nanos_reduction_bop_lor_uint(void *arg1, void *arg2); 1.1610 +void nanos_reduction_vop_lor_uint(int i, void *arg1, void *arg2); 1.1611 +void nanos_reduction_bop_lor_long(void *arg1, void *arg2); 1.1612 +void nanos_reduction_vop_lor_long(int i, void *arg1, void *arg2); 1.1613 +void nanos_reduction_bop_lor_ulong(void *arg1, void *arg2); 1.1614 +void nanos_reduction_vop_lor_ulong(int i, void *arg1, void *arg2); 1.1615 +void nanos_reduction_bop_lor_longlong(void *arg1, void *arg2); 1.1616 +void nanos_reduction_vop_lor_longlong(int i, void *arg1, void *arg2); 1.1617 +void nanos_reduction_bop_lor_ulonglong(void *arg1, void *arg2); 1.1618 +void nanos_reduction_vop_lor_ulonglong(int i, void *arg1, void *arg2); 1.1619 +void nanos_reduction_bop_lor__Bool(void *arg1, void *arg2); 1.1620 +void nanos_reduction_vop_lor__Bool(int i, void *arg1, void *arg2); 1.1621 +void nanos_reduction_bop_lor_float(void *arg1, void *arg2); 1.1622 +void nanos_reduction_vop_lor_float(int i, void *arg1, void *arg2); 1.1623 +void nanos_reduction_bop_lor_double(void *arg1, void *arg2); 1.1624 +void nanos_reduction_vop_lor_double(int i, void *arg1, void *arg2); 1.1625 +void nanos_reduction_bop_lor_longdouble(void *arg1, void *arg2); 1.1626 +void nanos_reduction_vop_lor_longdouble(int i, void *arg1, void *arg2); 1.1627 +void nanos_reduction_bop_max_char(void *arg1, void *arg2); 1.1628 +void nanos_reduction_vop_max_char(int i, void *arg1, void *arg2); 1.1629 +void nanos_reduction_bop_max_uchar(void *arg1, void *arg2); 1.1630 +void nanos_reduction_vop_max_uchar(int i, void *arg1, void *arg2); 1.1631 +void nanos_reduction_bop_max_schar(void *arg1, void *arg2); 1.1632 +void nanos_reduction_vop_max_schar(int i, void *arg1, void *arg2); 1.1633 +void nanos_reduction_bop_max_short(void *arg1, void *arg2); 1.1634 +void nanos_reduction_vop_max_short(int i, void *arg1, void *arg2); 1.1635 +void nanos_reduction_bop_max_ushort(void *arg1, void *arg2); 1.1636 +void nanos_reduction_vop_max_ushort(int i, void *arg1, void *arg2); 1.1637 +void nanos_reduction_bop_max_int(void *arg1, void *arg2); 1.1638 +void nanos_reduction_vop_max_int(int i, void *arg1, void *arg2); 1.1639 +void nanos_reduction_bop_max_uint(void *arg1, void *arg2); 1.1640 +void nanos_reduction_vop_max_uint(int i, void *arg1, void *arg2); 1.1641 +void nanos_reduction_bop_max_long(void *arg1, void *arg2); 1.1642 +void nanos_reduction_vop_max_long(int i, void *arg1, void *arg2); 1.1643 +void nanos_reduction_bop_max_ulong(void *arg1, void *arg2); 1.1644 +void nanos_reduction_vop_max_ulong(int i, void *arg1, void *arg2); 1.1645 +void nanos_reduction_bop_max_longlong(void *arg1, void *arg2); 1.1646 +void nanos_reduction_vop_max_longlong(int i, void *arg1, void *arg2); 1.1647 +void nanos_reduction_bop_max_ulonglong(void *arg1, void *arg2); 1.1648 +void nanos_reduction_vop_max_ulonglong(int i, void *arg1, void *arg2); 1.1649 +void nanos_reduction_bop_max__Bool(void *arg1, void *arg2); 1.1650 +void nanos_reduction_vop_max__Bool(int i, void *arg1, void *arg2); 1.1651 +void nanos_reduction_bop_max_float(void *arg1, void *arg2); 1.1652 +void nanos_reduction_vop_max_float(int i, void *arg1, void *arg2); 1.1653 +void nanos_reduction_bop_max_double(void *arg1, void *arg2); 1.1654 +void nanos_reduction_vop_max_double(int i, void *arg1, void *arg2); 1.1655 +void nanos_reduction_bop_max_longdouble(void *arg1, void *arg2); 1.1656 +void nanos_reduction_vop_max_longdouble(int i, void *arg1, void *arg2); 1.1657 +void nanos_reduction_bop_min_char(void *arg1, void *arg2); 1.1658 +void nanos_reduction_vop_min_char(int i, void *arg1, void *arg2); 1.1659 +void nanos_reduction_bop_min_uchar(void *arg1, void *arg2); 1.1660 +void nanos_reduction_vop_min_uchar(int i, void *arg1, void *arg2); 1.1661 +void nanos_reduction_bop_min_schar(void *arg1, void *arg2); 1.1662 +void nanos_reduction_vop_min_schar(int i, void *arg1, void *arg2); 1.1663 +void nanos_reduction_bop_min_short(void *arg1, void *arg2); 1.1664 +void nanos_reduction_vop_min_short(int i, void *arg1, void *arg2); 1.1665 +void nanos_reduction_bop_min_ushort(void *arg1, void *arg2); 1.1666 +void nanos_reduction_vop_min_ushort(int i, void *arg1, void *arg2); 1.1667 +void nanos_reduction_bop_min_int(void *arg1, void *arg2); 1.1668 +void nanos_reduction_vop_min_int(int i, void *arg1, void *arg2); 1.1669 +void nanos_reduction_bop_min_uint(void *arg1, void *arg2); 1.1670 +void nanos_reduction_vop_min_uint(int i, void *arg1, void *arg2); 1.1671 +void nanos_reduction_bop_min_long(void *arg1, void *arg2); 1.1672 +void nanos_reduction_vop_min_long(int i, void *arg1, void *arg2); 1.1673 +void nanos_reduction_bop_min_ulong(void *arg1, void *arg2); 1.1674 +void nanos_reduction_vop_min_ulong(int i, void *arg1, void *arg2); 1.1675 +void nanos_reduction_bop_min_longlong(void *arg1, void *arg2); 1.1676 +void nanos_reduction_vop_min_longlong(int i, void *arg1, void *arg2); 1.1677 +void nanos_reduction_bop_min_ulonglong(void *arg1, void *arg2); 1.1678 +void nanos_reduction_vop_min_ulonglong(int i, void *arg1, void *arg2); 1.1679 +void nanos_reduction_bop_min__Bool(void *arg1, void *arg2); 1.1680 +void nanos_reduction_vop_min__Bool(int i, void *arg1, void *arg2); 1.1681 +void nanos_reduction_bop_min_float(void *arg1, void *arg2); 1.1682 +void nanos_reduction_vop_min_float(int i, void *arg1, void *arg2); 1.1683 +void nanos_reduction_bop_min_double(void *arg1, void *arg2); 1.1684 +void nanos_reduction_vop_min_double(int i, void *arg1, void *arg2); 1.1685 +void nanos_reduction_bop_min_longdouble(void *arg1, void *arg2); 1.1686 +void nanos_reduction_vop_min_longdouble(int i, void *arg1, void *arg2); 1.1687 +void nanos_reduction_default_cleanup_char(void *r); 1.1688 +void nanos_reduction_default_cleanup_uchar(void *r); 1.1689 +void nanos_reduction_default_cleanup_schar(void *r); 1.1690 +void nanos_reduction_default_cleanup_short(void *r); 1.1691 +void nanos_reduction_default_cleanup_ushort(void *r); 1.1692 +void nanos_reduction_default_cleanup_int(void *r); 1.1693 +void nanos_reduction_default_cleanup_uint(void *r); 1.1694 +void nanos_reduction_default_cleanup_long(void *r); 1.1695 +void nanos_reduction_default_cleanup_ulong(void *r); 1.1696 +void nanos_reduction_default_cleanup_longlong(void *r); 1.1697 +void nanos_reduction_default_cleanup_ulonglong(void *r); 1.1698 +void nanos_reduction_default_cleanup__Bool(void *r); 1.1699 +void nanos_reduction_default_cleanup_float(void *r); 1.1700 +void nanos_reduction_default_cleanup_double(void *r); 1.1701 +void nanos_reduction_default_cleanup_longdouble(void *r); 1.1702 +typedef void *omp_lock_t; 1.1703 +typedef void *omp_nest_lock_t; 1.1704 +typedef enum omp_sched_t 1.1705 +{ 1.1706 + omp_sched_static = 1, 1.1707 + omp_sched_dynamic = 2, 1.1708 + omp_sched_guided = 3, 1.1709 + omp_sched_auto = 4 1.1710 +} omp_sched_t; 1.1711 +extern void omp_set_num_threads(int num_threads); 1.1712 +extern int omp_get_num_threads(void); 1.1713 +extern int omp_get_max_threads(void); 1.1714 +extern int omp_get_thread_num(void); 1.1715 +extern int omp_get_num_procs(void); 1.1716 +extern int omp_in_parallel(void); 1.1717 +extern void omp_set_dynamic(int dynamic_threads); 1.1718 +extern int omp_get_dynamic(void); 1.1719 +extern void omp_set_nested(int nested); 1.1720 +extern int omp_get_nested(void); 1.1721 +extern int omp_get_thread_limit(void); 1.1722 +extern void omp_set_max_active_levels(int max_active_levels); 1.1723 +extern int omp_get_max_active_levels(void); 1.1724 +extern void omp_set_schedule(omp_sched_t kind, int modifier); 1.1725 +extern void omp_get_schedule(omp_sched_t *kind, int *modifier); 1.1726 +extern int omp_get_level(void); 1.1727 +extern int omp_get_ancestor_thread_num(int level); 1.1728 +extern int omp_get_team_size(int level); 1.1729 +extern int omp_get_active_level(void); 1.1730 +extern void omp_init_lock(omp_lock_t *lock); 1.1731 +extern void omp_destroy_lock(omp_lock_t *lock); 1.1732 +extern void omp_set_lock(omp_lock_t *lock); 1.1733 +extern void omp_unset_lock(omp_lock_t *lock); 1.1734 +extern int omp_test_lock(omp_lock_t *lock); 1.1735 +extern void omp_init_nest_lock(omp_nest_lock_t *lock); 1.1736 +extern void omp_destroy_nest_lock(omp_nest_lock_t *lock); 1.1737 +extern void omp_set_nest_lock(omp_nest_lock_t *lock); 1.1738 +extern void omp_unset_nest_lock(omp_nest_lock_t *lock); 1.1739 +extern int omp_test_nest_lock(omp_nest_lock_t *lock); 1.1740 +extern double omp_get_wtime(void); 1.1741 +extern double omp_get_wtick(void); 1.1742 +extern int omp_in_final(void); 1.1743 +nanos_err_t nanos_omp_single(_Bool *); 1.1744 +nanos_err_t nanos_omp_barrier(void); 1.1745 +void nanos_omp_set_interface(void *); 1.1746 +nanos_err_t nanos_omp_set_implicit(nanos_wd_t uwd); 1.1747 +int nanos_omp_get_max_threads(void); 1.1748 +nanos_ws_t nanos_omp_find_worksharing(omp_sched_t kind); 1.1749 +nanos_err_t nanos_omp_get_schedule(omp_sched_t *kind, int *modifier); 1.1750 +typedef __time_t time_t; 1.1751 +struct timespec 1.1752 +{ 1.1753 + __time_t tv_sec; 1.1754 + long int tv_nsec; 1.1755 +}; 1.1756 +struct sched_param 1.1757 +{ 1.1758 + int __sched_priority; 1.1759 +}; 1.1760 +struct __sched_param 1.1761 +{ 1.1762 + int __sched_priority; 1.1763 +}; 1.1764 +typedef unsigned long int __cpu_mask; 1.1765 +typedef struct 1.1766 +{ 1.1767 + __cpu_mask __bits[1024 / (8 * sizeof(__cpu_mask))]; 1.1768 +} cpu_set_t; 1.1769 +extern int __sched_cpucount(size_t __setsize, const cpu_set_t *__setp) __attribute__((__nothrow__, __leaf__)); 1.1770 +extern cpu_set_t *__sched_cpualloc(size_t __count) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.1771 +extern void __sched_cpufree(cpu_set_t *__set) __attribute__((__nothrow__, __leaf__)); 1.1772 +extern int sched_setparam(__pid_t __pid, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)); 1.1773 +extern int sched_getparam(__pid_t __pid, struct sched_param *__param) __attribute__((__nothrow__, __leaf__)); 1.1774 +extern int sched_setscheduler(__pid_t __pid, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)); 1.1775 +extern int sched_getscheduler(__pid_t __pid) __attribute__((__nothrow__, __leaf__)); 1.1776 +extern int sched_yield(void) __attribute__((__nothrow__, __leaf__)); 1.1777 +extern int sched_get_priority_max(int __algorithm) __attribute__((__nothrow__, __leaf__)); 1.1778 +extern int sched_get_priority_min(int __algorithm) __attribute__((__nothrow__, __leaf__)); 1.1779 +extern int sched_rr_get_interval(__pid_t __pid, struct timespec *__t) __attribute__((__nothrow__, __leaf__)); 1.1780 +typedef __clock_t clock_t; 1.1781 +typedef __clockid_t clockid_t; 1.1782 +typedef __timer_t timer_t; 1.1783 +struct tm 1.1784 +{ 1.1785 + int tm_sec; 1.1786 + int tm_min; 1.1787 + int tm_hour; 1.1788 + int tm_mday; 1.1789 + int tm_mon; 1.1790 + int tm_year; 1.1791 + int tm_wday; 1.1792 + int tm_yday; 1.1793 + int tm_isdst; 1.1794 + long int tm_gmtoff; 1.1795 + __const char *tm_zone; 1.1796 +}; 1.1797 +struct itimerspec 1.1798 +{ 1.1799 + struct timespec it_interval; 1.1800 + struct timespec it_value; 1.1801 +}; 1.1802 +struct sigevent; 1.1803 +extern clock_t clock(void) __attribute__((__nothrow__, __leaf__)); 1.1804 +extern time_t time(time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.1805 +extern double difftime(time_t __time1, time_t __time0) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.1806 +extern time_t mktime(struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.1807 +extern size_t strftime(char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__)); 1.1808 +typedef struct __locale_struct 1.1809 +{ 1.1810 + struct __locale_data *__locales[13]; 1.1811 + const unsigned short int *__ctype_b; 1.1812 + const int *__ctype_tolower; 1.1813 + const int *__ctype_toupper; 1.1814 + const char *__names[13]; 1.1815 +} *__locale_t; 1.1816 +typedef __locale_t locale_t; 1.1817 +extern size_t strftime_l(char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) __attribute__((__nothrow__, __leaf__)); 1.1818 +extern struct tm *gmtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.1819 +extern struct tm *localtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.1820 +extern struct tm *gmtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__)); 1.1821 +extern struct tm *localtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__)); 1.1822 +extern char *asctime(__const struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.1823 +extern char *ctime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__)); 1.1824 +extern char *asctime_r(__const struct tm *__restrict __tp, char *__restrict __buf) __attribute__((__nothrow__, __leaf__)); 1.1825 +extern char *ctime_r(__const time_t *__restrict __timer, char *__restrict __buf) __attribute__((__nothrow__, __leaf__)); 1.1826 +extern char *__tzname[2]; 1.1827 +extern int __daylight; 1.1828 +extern long int __timezone; 1.1829 +extern char *tzname[2]; 1.1830 +extern void tzset(void) __attribute__((__nothrow__, __leaf__)); 1.1831 +extern int daylight; 1.1832 +extern long int timezone; 1.1833 +extern int stime(__const time_t *__when) __attribute__((__nothrow__, __leaf__)); 1.1834 +extern time_t timegm(struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.1835 +extern time_t timelocal(struct tm *__tp) __attribute__((__nothrow__, __leaf__)); 1.1836 +extern int dysize(int __year) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.1837 +extern int nanosleep(__const struct timespec *__requested_time, struct timespec *__remaining); 1.1838 +extern int clock_getres(clockid_t __clock_id, struct timespec *__res) __attribute__((__nothrow__, __leaf__)); 1.1839 +extern int clock_gettime(clockid_t __clock_id, struct timespec *__tp) __attribute__((__nothrow__, __leaf__)); 1.1840 +extern int clock_settime(clockid_t __clock_id, __const struct timespec *__tp) __attribute__((__nothrow__, __leaf__)); 1.1841 +extern int clock_nanosleep(clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); 1.1842 +extern int clock_getcpuclockid(pid_t __pid, clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__)); 1.1843 +extern int timer_create(clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__((__nothrow__, __leaf__)); 1.1844 +extern int timer_delete(timer_t __timerid) __attribute__((__nothrow__, __leaf__)); 1.1845 +extern int timer_settime(timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__((__nothrow__, __leaf__)); 1.1846 +extern int timer_gettime(timer_t __timerid, struct itimerspec *__value) __attribute__((__nothrow__, __leaf__)); 1.1847 +extern int timer_getoverrun(timer_t __timerid) __attribute__((__nothrow__, __leaf__)); 1.1848 +typedef unsigned long int pthread_t; 1.1849 +typedef union 1.1850 +{ 1.1851 + char __size[56]; 1.1852 + long int __align; 1.1853 +} pthread_attr_t; 1.1854 +typedef struct __pthread_internal_list 1.1855 +{ 1.1856 + struct __pthread_internal_list *__prev; 1.1857 + struct __pthread_internal_list *__next; 1.1858 +} __pthread_list_t; 1.1859 +typedef union 1.1860 +{ 1.1861 + struct __pthread_mutex_s 1.1862 + { 1.1863 + int __lock; 1.1864 + unsigned int __count; 1.1865 + int __owner; 1.1866 + unsigned int __nusers; 1.1867 + int __kind; 1.1868 + int __spins; 1.1869 + __pthread_list_t __list; 1.1870 + } __data; 1.1871 + char __size[40]; 1.1872 + long int __align; 1.1873 +} pthread_mutex_t; 1.1874 +typedef union 1.1875 +{ 1.1876 + char __size[4]; 1.1877 + int __align; 1.1878 +} pthread_mutexattr_t; 1.1879 +typedef union 1.1880 +{ 1.1881 + struct 1.1882 + { 1.1883 + int __lock; 1.1884 + unsigned int __futex; 1.1885 + __extension__ 1.1886 + unsigned long long int __total_seq; 1.1887 + __extension__ 1.1888 + unsigned long long int __wakeup_seq; 1.1889 + __extension__ 1.1890 + unsigned long long int __woken_seq; 1.1891 + void *__mutex; 1.1892 + unsigned int __nwaiters; 1.1893 + unsigned int __broadcast_seq; 1.1894 + } __data; 1.1895 + char __size[48]; 1.1896 + __extension__ 1.1897 + long long int __align; 1.1898 +} pthread_cond_t; 1.1899 +typedef union 1.1900 +{ 1.1901 + char __size[4]; 1.1902 + int __align; 1.1903 +} pthread_condattr_t; 1.1904 +typedef unsigned int pthread_key_t; 1.1905 +typedef int pthread_once_t; 1.1906 +typedef union 1.1907 +{ 1.1908 + struct 1.1909 + { 1.1910 + int __lock; 1.1911 + unsigned int __nr_readers; 1.1912 + unsigned int __readers_wakeup; 1.1913 + unsigned int __writer_wakeup; 1.1914 + unsigned int __nr_readers_queued; 1.1915 + unsigned int __nr_writers_queued; 1.1916 + int __writer; 1.1917 + int __shared; 1.1918 + unsigned long int __pad1; 1.1919 + unsigned long int __pad2; 1.1920 + unsigned int __flags; 1.1921 + } __data; 1.1922 + char __size[56]; 1.1923 + long int __align; 1.1924 +} pthread_rwlock_t; 1.1925 +typedef union 1.1926 +{ 1.1927 + char __size[8]; 1.1928 + long int __align; 1.1929 +} pthread_rwlockattr_t; 1.1930 +typedef volatile int pthread_spinlock_t; 1.1931 +typedef union 1.1932 +{ 1.1933 + char __size[32]; 1.1934 + long int __align; 1.1935 +} pthread_barrier_t; 1.1936 +typedef union 1.1937 +{ 1.1938 + char __size[4]; 1.1939 + int __align; 1.1940 +} pthread_barrierattr_t; 1.1941 +typedef long int __jmp_buf[8]; 1.1942 +enum 1.1943 +{ 1.1944 + PTHREAD_CREATE_JOINABLE, 1.1945 + PTHREAD_CREATE_DETACHED 1.1946 +}; 1.1947 +enum 1.1948 +{ 1.1949 + PTHREAD_MUTEX_TIMED_NP, 1.1950 + PTHREAD_MUTEX_RECURSIVE_NP, 1.1951 + PTHREAD_MUTEX_ERRORCHECK_NP, 1.1952 + PTHREAD_MUTEX_ADAPTIVE_NP, 1.1953 + PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 1.1954 + PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 1.1955 + PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 1.1956 + PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 1.1957 +}; 1.1958 +enum 1.1959 +{ 1.1960 + PTHREAD_MUTEX_STALLED, 1.1961 + PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 1.1962 + PTHREAD_MUTEX_ROBUST, 1.1963 + PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST 1.1964 +}; 1.1965 +enum 1.1966 +{ 1.1967 + PTHREAD_RWLOCK_PREFER_READER_NP, 1.1968 + PTHREAD_RWLOCK_PREFER_WRITER_NP, 1.1969 + PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 1.1970 + PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP 1.1971 +}; 1.1972 +enum 1.1973 +{ 1.1974 + PTHREAD_INHERIT_SCHED, 1.1975 + PTHREAD_EXPLICIT_SCHED 1.1976 +}; 1.1977 +enum 1.1978 +{ 1.1979 + PTHREAD_SCOPE_SYSTEM, 1.1980 + PTHREAD_SCOPE_PROCESS 1.1981 +}; 1.1982 +enum 1.1983 +{ 1.1984 + PTHREAD_PROCESS_PRIVATE, 1.1985 + PTHREAD_PROCESS_SHARED 1.1986 +}; 1.1987 +struct _pthread_cleanup_buffer 1.1988 +{ 1.1989 + void (*__routine)(void *); 1.1990 + void *__arg; 1.1991 + int __canceltype; 1.1992 + struct _pthread_cleanup_buffer *__prev; 1.1993 +}; 1.1994 +enum 1.1995 +{ 1.1996 + PTHREAD_CANCEL_ENABLE, 1.1997 + PTHREAD_CANCEL_DISABLE 1.1998 +}; 1.1999 +enum 1.2000 +{ 1.2001 + PTHREAD_CANCEL_DEFERRED, 1.2002 + PTHREAD_CANCEL_ASYNCHRONOUS 1.2003 +}; 1.2004 +extern int pthread_create(pthread_t *__restrict __newthread, __const pthread_attr_t *__restrict __attr, void *(*__start_routine)(void *), void *__restrict __arg) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 3))); 1.2005 +extern void pthread_exit(void *__retval) __attribute__((__noreturn__)); 1.2006 +extern int pthread_join(pthread_t __th, void **__thread_return); 1.2007 +extern int pthread_detach(pthread_t __th) __attribute__((__nothrow__, __leaf__)); 1.2008 +extern pthread_t pthread_self(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2009 +extern int pthread_equal(pthread_t __thread1, pthread_t __thread2) __attribute__((__nothrow__, __leaf__)); 1.2010 +extern int pthread_attr_init(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2011 +extern int pthread_attr_destroy(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2012 +extern int pthread_attr_getdetachstate(__const pthread_attr_t *__attr, int *__detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2013 +extern int pthread_attr_setdetachstate(pthread_attr_t *__attr, int __detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2014 +extern int pthread_attr_getguardsize(__const pthread_attr_t *__attr, size_t *__guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2015 +extern int pthread_attr_setguardsize(pthread_attr_t *__attr, size_t __guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2016 +extern int pthread_attr_getschedparam(__const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2017 +extern int pthread_attr_setschedparam(pthread_attr_t *__restrict __attr, __const struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2018 +extern int pthread_attr_getschedpolicy(__const pthread_attr_t *__restrict __attr, int *__restrict __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2019 +extern int pthread_attr_setschedpolicy(pthread_attr_t *__attr, int __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2020 +extern int pthread_attr_getinheritsched(__const pthread_attr_t *__restrict __attr, int *__restrict __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2021 +extern int pthread_attr_setinheritsched(pthread_attr_t *__attr, int __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2022 +extern int pthread_attr_getscope(__const pthread_attr_t *__restrict __attr, int *__restrict __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2023 +extern int pthread_attr_setscope(pthread_attr_t *__attr, int __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2024 +extern int pthread_attr_getstackaddr(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__deprecated__)); 1.2025 +extern int pthread_attr_setstackaddr(pthread_attr_t *__attr, void *__stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)); 1.2026 +extern int pthread_attr_getstacksize(__const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2027 +extern int pthread_attr_setstacksize(pthread_attr_t *__attr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2028 +extern int pthread_attr_getstack(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2, 3))); 1.2029 +extern int pthread_attr_setstack(pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2030 +extern int pthread_setschedparam(pthread_t __target_thread, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))); 1.2031 +extern int pthread_getschedparam(pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))); 1.2032 +extern int pthread_setschedprio(pthread_t __target_thread, int __prio) __attribute__((__nothrow__, __leaf__)); 1.2033 +extern int pthread_once(pthread_once_t *__once_control, void (*__init_routine)(void)) __attribute__((__nonnull__(1, 2))); 1.2034 +extern int pthread_setcancelstate(int __state, int *__oldstate); 1.2035 +extern int pthread_setcanceltype(int __type, int *__oldtype); 1.2036 +extern int pthread_cancel(pthread_t __th); 1.2037 +extern void pthread_testcancel(void); 1.2038 +typedef struct 1.2039 +{ 1.2040 + struct 1.2041 + { 1.2042 + __jmp_buf __cancel_jmp_buf; 1.2043 + int __mask_was_saved; 1.2044 + } __cancel_jmp_buf[1]; 1.2045 + void *__pad[4]; 1.2046 +} __pthread_unwind_buf_t __attribute__((__aligned__)); 1.2047 +struct __pthread_cleanup_frame 1.2048 +{ 1.2049 + void (*__cancel_routine)(void *); 1.2050 + void *__cancel_arg; 1.2051 + int __do_it; 1.2052 + int __cancel_type; 1.2053 +}; 1.2054 +extern void __pthread_register_cancel(__pthread_unwind_buf_t *__buf); 1.2055 +extern void __pthread_unregister_cancel(__pthread_unwind_buf_t *__buf); 1.2056 +extern void __pthread_unwind_next(__pthread_unwind_buf_t *__buf) __attribute__((__noreturn__)) __attribute__((__weak__)); 1.2057 +struct __jmp_buf_tag; 1.2058 +extern int __sigsetjmp(struct __jmp_buf_tag *__env, int __savemask) __attribute__((__nothrow__, __leaf__)); 1.2059 +extern int pthread_mutex_init(pthread_mutex_t *__mutex, __const pthread_mutexattr_t *__mutexattr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2060 +extern int pthread_mutex_destroy(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2061 +extern int pthread_mutex_trylock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2062 +extern int pthread_mutex_lock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2063 +extern int pthread_mutex_timedlock(pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2))); 1.2064 +extern int pthread_mutex_unlock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2065 +extern int pthread_mutex_getprioceiling(__const pthread_mutex_t *__restrict __mutex, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2066 +extern int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3))); 1.2067 +extern int pthread_mutex_consistent(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2068 +extern int pthread_mutexattr_init(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2069 +extern int pthread_mutexattr_destroy(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2070 +extern int pthread_mutexattr_getpshared(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2071 +extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2072 +extern int pthread_mutexattr_gettype(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2073 +extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2074 +extern int pthread_mutexattr_getprotocol(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2075 +extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t *__attr, int __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2076 +extern int pthread_mutexattr_getprioceiling(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2077 +extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *__attr, int __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2078 +extern int pthread_mutexattr_getrobust(__const pthread_mutexattr_t *__attr, int *__robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2079 +extern int pthread_mutexattr_setrobust(pthread_mutexattr_t *__attr, int __robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2080 +extern int pthread_rwlock_init(pthread_rwlock_t *__restrict __rwlock, __const pthread_rwlockattr_t *__restrict __attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2081 +extern int pthread_rwlock_destroy(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2082 +extern int pthread_rwlock_rdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2083 +extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2084 +extern int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2))); 1.2085 +extern int pthread_rwlock_wrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2086 +extern int pthread_rwlock_trywrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2087 +extern int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2))); 1.2088 +extern int pthread_rwlock_unlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2089 +extern int pthread_rwlockattr_init(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2090 +extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2091 +extern int pthread_rwlockattr_getpshared(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2092 +extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2093 +extern int pthread_rwlockattr_getkind_np(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2094 +extern int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *__attr, int __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2095 +extern int pthread_cond_init(pthread_cond_t *__restrict __cond, __const pthread_condattr_t *__restrict __cond_attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2096 +extern int pthread_cond_destroy(pthread_cond_t *__cond) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2097 +extern int pthread_cond_signal(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2098 +extern int pthread_cond_broadcast(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2099 +extern int pthread_cond_wait(pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__((__nonnull__(1, 2))); 1.2100 +extern int pthread_cond_timedwait(pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__((__nonnull__(1, 2, 3))); 1.2101 +extern int pthread_condattr_init(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2102 +extern int pthread_condattr_destroy(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2103 +extern int pthread_condattr_getpshared(__const pthread_condattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2104 +extern int pthread_condattr_setpshared(pthread_condattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2105 +extern int pthread_condattr_getclock(__const pthread_condattr_t *__restrict __attr, __clockid_t *__restrict __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2106 +extern int pthread_condattr_setclock(pthread_condattr_t *__attr, __clockid_t __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2107 +extern int pthread_spin_init(pthread_spinlock_t *__lock, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2108 +extern int pthread_spin_destroy(pthread_spinlock_t *__lock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2109 +extern int pthread_spin_lock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2110 +extern int pthread_spin_trylock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2111 +extern int pthread_spin_unlock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2112 +extern int pthread_barrier_init(pthread_barrier_t *__restrict __barrier, __const pthread_barrierattr_t *__restrict __attr, unsigned int __count) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2113 +extern int pthread_barrier_destroy(pthread_barrier_t *__barrier) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2114 +extern int pthread_barrier_wait(pthread_barrier_t *__barrier) __attribute__((__nothrow__)) __attribute__((__nonnull__(1))); 1.2115 +extern int pthread_barrierattr_init(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2116 +extern int pthread_barrierattr_destroy(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2117 +extern int pthread_barrierattr_getpshared(__const pthread_barrierattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.2118 +extern int pthread_barrierattr_setpshared(pthread_barrierattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2119 +extern int pthread_key_create(pthread_key_t *__key, void (*__destr_function)(void *)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.2120 +extern int pthread_key_delete(pthread_key_t __key) __attribute__((__nothrow__, __leaf__)); 1.2121 +extern void *pthread_getspecific(pthread_key_t __key) __attribute__((__nothrow__, __leaf__)); 1.2122 +extern int pthread_setspecific(pthread_key_t __key, __const void *__pointer) __attribute__((__nothrow__, __leaf__)); 1.2123 +extern int pthread_getcpuclockid(pthread_t __thread_id, __clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.2124 +extern int pthread_atfork(void (*__prepare)(void), void (*__parent)(void), void (*__child)(void)) __attribute__((__nothrow__, __leaf__)); 1.2125 +extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) pthread_equal(pthread_t __thread1, pthread_t __thread2) 1.2126 +{ 1.2127 + return __thread1 == __thread2; 1.2128 +} 1.2129 +extern int *__errno_location(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2130 +void *av_malloc(unsigned int size) __attribute__((__malloc__)); 1.2131 +void *av_realloc(void *ptr, unsigned int size); 1.2132 +void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size); 1.2133 +void av_fast_malloc(void *ptr, unsigned int *size, unsigned int min_size); 1.2134 +void av_free(void *ptr); 1.2135 +void *av_mallocz(unsigned int size) __attribute__((__malloc__)); 1.2136 +char *av_strdup(const char *s) __attribute__((__malloc__)); 1.2137 +void av_freep(void *ptr); 1.2138 +static __attribute__((always_inline)) inline uint32_t pack16to32(int a, int b) 1.2139 +{ 1.2140 + return (a & 0xFFFF) + (b << 16); 1.2141 +} 1.2142 +static __attribute__((always_inline)) inline uint16_t pack8to16(int a, int b) 1.2143 +{ 1.2144 + return (a & 0xFF) + (b << 8); 1.2145 +} 1.2146 +typedef short DCTELEM; 1.2147 +enum AVColorPrimaries 1.2148 +{ 1.2149 + AVCOL_PRI_BT709 = 1, 1.2150 + AVCOL_PRI_UNSPECIFIED = 2, 1.2151 + AVCOL_PRI_BT470M = 4, 1.2152 + AVCOL_PRI_BT470BG = 5, 1.2153 + AVCOL_PRI_SMPTE170M = 6, 1.2154 + AVCOL_PRI_SMPTE240M = 7, 1.2155 + AVCOL_PRI_FILM = 8, 1.2156 + AVCOL_PRI_NB 1.2157 +}; 1.2158 +enum AVColorTransferCharacteristic 1.2159 +{ 1.2160 + AVCOL_TRC_BT709 = 1, 1.2161 + AVCOL_TRC_UNSPECIFIED = 2, 1.2162 + AVCOL_TRC_GAMMA22 = 4, 1.2163 + AVCOL_TRC_GAMMA28 = 5, 1.2164 + AVCOL_TRC_NB 1.2165 +}; 1.2166 +enum AVColorSpace 1.2167 +{ 1.2168 + AVCOL_SPC_RGB = 0, 1.2169 + AVCOL_SPC_BT709 = 1, 1.2170 + AVCOL_SPC_UNSPECIFIED = 2, 1.2171 + AVCOL_SPC_FCC = 4, 1.2172 + AVCOL_SPC_BT470BG = 5, 1.2173 + AVCOL_SPC_SMPTE170M = 6, 1.2174 + AVCOL_SPC_SMPTE240M = 7, 1.2175 + AVCOL_SPC_NB 1.2176 +}; 1.2177 +enum AVColorRange 1.2178 +{ 1.2179 + AVCOL_RANGE_UNSPECIFIED = 0, 1.2180 + AVCOL_RANGE_MPEG = 1, 1.2181 + AVCOL_RANGE_JPEG = 2, 1.2182 + AVCOL_RANGE_NB 1.2183 +}; 1.2184 +typedef enum MMCOOpcode 1.2185 +{ 1.2186 + MMCO_END = 0, 1.2187 + MMCO_SHORT2UNUSED, 1.2188 + MMCO_LONG2UNUSED, 1.2189 + MMCO_SHORT2LONG, 1.2190 + MMCO_SET_MAX_LONG, 1.2191 + MMCO_RESET, 1.2192 + MMCO_LONG 1.2193 +} MMCOOpcode; 1.2194 +enum 1.2195 +{ 1.2196 + NAL_SLICE = 1, 1.2197 + NAL_DPA, 1.2198 + NAL_DPB, 1.2199 + NAL_DPC, 1.2200 + NAL_IDR_SLICE, 1.2201 + NAL_SEI, 1.2202 + NAL_SPS, 1.2203 + NAL_PPS, 1.2204 + NAL_AUD, 1.2205 + NAL_END_SEQUENCE, 1.2206 + NAL_END_STREAM, 1.2207 + NAL_FILLER_DATA, 1.2208 + NAL_SPS_EXT, 1.2209 + NAL_AUXILIARY_SLICE = 19 1.2210 +}; 1.2211 +typedef enum 1.2212 +{ 1.2213 + SEI_BUFFERING_PERIOD = 0, 1.2214 + SEI_TYPE_PIC_TIMING = 1, 1.2215 + SEI_TYPE_USER_DATA_UNREGISTERED = 5, 1.2216 + SEI_TYPE_RECOVERY_POINT = 6 1.2217 +} SEI_Type; 1.2218 +typedef enum 1.2219 +{ 1.2220 + SEI_PIC_STRUCT_FRAME = 0, 1.2221 + SEI_PIC_STRUCT_TOP_FIELD = 1, 1.2222 + SEI_PIC_STRUCT_BOTTOM_FIELD = 2, 1.2223 + SEI_PIC_STRUCT_TOP_BOTTOM = 3, 1.2224 + SEI_PIC_STRUCT_BOTTOM_TOP = 4, 1.2225 + SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, 1.2226 + SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, 1.2227 + SEI_PIC_STRUCT_FRAME_DOUBLING = 7, 1.2228 + SEI_PIC_STRUCT_FRAME_TRIPLING = 8 1.2229 +} SEI_PicStructType; 1.2230 +typedef struct SPS 1.2231 +{ 1.2232 + int profile_idc; 1.2233 + int level_idc; 1.2234 + int chroma_format_idc; 1.2235 + int transform_bypass; 1.2236 + int log2_max_frame_num; 1.2237 + int poc_type; 1.2238 + int log2_max_poc_lsb; 1.2239 + int delta_pic_order_always_zero_flag; 1.2240 + int offset_for_non_ref_pic; 1.2241 + int offset_for_top_to_bottom_field; 1.2242 + int poc_cycle_length; 1.2243 + int ref_frame_count; 1.2244 + int gaps_in_frame_num_allowed_flag; 1.2245 + int mb_width; 1.2246 + int mb_height; 1.2247 + int frame_mbs_only_flag; 1.2248 + int mb_aff; 1.2249 + int direct_8x8_inference_flag; 1.2250 + int crop; 1.2251 + unsigned int crop_left; 1.2252 + unsigned int crop_right; 1.2253 + unsigned int crop_top; 1.2254 + unsigned int crop_bottom; 1.2255 + int vui_parameters_present_flag; 1.2256 + int num, den; 1.2257 + int video_signal_type_present_flag; 1.2258 + int full_range; 1.2259 + int colour_description_present_flag; 1.2260 + enum AVColorPrimaries color_primaries; 1.2261 + enum AVColorTransferCharacteristic color_trc; 1.2262 + enum AVColorSpace colorspace; 1.2263 + int timing_info_present_flag; 1.2264 + uint32_t num_units_in_tick; 1.2265 + uint32_t time_scale; 1.2266 + int fixed_frame_rate_flag; 1.2267 + short offset_for_ref_frame[256]; 1.2268 + int bitstream_restriction_flag; 1.2269 + int num_reorder_frames; 1.2270 + int scaling_matrix_present; 1.2271 + uint8_t scaling_matrix4[6][16]; 1.2272 + uint8_t scaling_matrix8[2][64]; 1.2273 + int nal_hrd_parameters_present_flag; 1.2274 + int vcl_hrd_parameters_present_flag; 1.2275 + int pic_struct_present_flag; 1.2276 + int time_offset_length; 1.2277 + int cpb_cnt; 1.2278 + int initial_cpb_removal_delay_length; 1.2279 + int cpb_removal_delay_length; 1.2280 + int dpb_output_delay_length; 1.2281 + int bit_depth_luma; 1.2282 + int bit_depth_chroma; 1.2283 + int residual_color_transform_flag; 1.2284 +} SPS; 1.2285 +typedef struct PPS 1.2286 +{ 1.2287 + unsigned int sps_id; 1.2288 + int cabac; 1.2289 + int pic_order_present; 1.2290 + int slice_group_count; 1.2291 + int mb_slice_group_map_type; 1.2292 + unsigned int ref_count[2]; 1.2293 + int weighted_pred; 1.2294 + int weighted_bipred_idc; 1.2295 + int init_qp; 1.2296 + int init_qs; 1.2297 + int chroma_qp_index_offset[2]; 1.2298 + int deblocking_filter_parameters_present; 1.2299 + int constrained_intra_pred; 1.2300 + int redundant_pic_cnt_present; 1.2301 + int transform_8x8_mode; 1.2302 + uint8_t scaling_matrix4[6][16]; 1.2303 + uint8_t scaling_matrix8[2][64]; 1.2304 + uint8_t chroma_qp_table[2][64]; 1.2305 + int chroma_qp_diff; 1.2306 +} PPS; 1.2307 +typedef struct TopBorder 1.2308 +{ 1.2309 + uint8_t unfiltered_y[16]; 1.2310 + uint8_t unfiltered_cb[8]; 1.2311 + uint8_t unfiltered_cr[8]; 1.2312 + uint8_t top_borders_y[16 * 4]; 1.2313 + uint8_t top_borders_cb[8 * 2]; 1.2314 + uint8_t top_borders_cr[8 * 2]; 1.2315 +} TopBorder; 1.2316 +typedef struct LeftBorder 1.2317 +{ 1.2318 + uint8_t unfiltered_y[17]; 1.2319 + uint8_t unfiltered_cb[9]; 1.2320 + uint8_t unfiltered_cr[9]; 1.2321 +} LeftBorder; 1.2322 +typedef struct H264Mb 1.2323 +{ 1.2324 + int16_t mb_x, mb_y; 1.2325 + int32_t mb_type; 1.2326 + uint16_t cbp; 1.2327 + int8_t qscale_mb_xy; 1.2328 + int8_t qscale_left_mb_xy; 1.2329 + int8_t qscale_top_mb_xy; 1.2330 + uint16_t __attribute__((aligned(8))) sub_mb_type[4]; 1.2331 + uint8_t __attribute__((aligned(8))) non_zero_count[24]; 1.2332 + int16_t __attribute__((aligned(16))) mb[16 * 24]; 1.2333 + union 1.2334 + { 1.2335 + struct 1.2336 + { 1.2337 + int8_t __attribute__((aligned(8))) ref_index[2][4]; 1.2338 + int16_t __attribute__((aligned(16))) mvd[2][16][2]; 1.2339 + }; 1.2340 + struct 1.2341 + { 1.2342 + int8_t __attribute__((aligned(8))) intra4x4_pred_mode[16]; 1.2343 + int8_t chroma_pred_mode; 1.2344 + int8_t intra16x16_pred_mode; 1.2345 + }; 1.2346 + }; 1.2347 + uint8_t __attribute__((aligned(8))) top_border[16 + 2 * 8]; 1.2348 + uint8_t __attribute__((aligned(8))) top_border_next[8]; 1.2349 + uint8_t __attribute__((aligned(8))) left_border[17 + 2 * 9]; 1.2350 + int8_t intra4x4_pred_mode_left[4]; 1.2351 +} H264Mb; 1.2352 +typedef struct RawFrame 1.2353 +{ 1.2354 + uint8_t *data; 1.2355 + int size; 1.2356 + unsigned int data_size; 1.2357 + int64_t pos; 1.2358 + int state; 1.2359 +} RawFrame; 1.2360 +typedef struct PictureInfo 1.2361 +{ 1.2362 + int ref_poc[2][16]; 1.2363 + int ref_count[2]; 1.2364 + int poc; 1.2365 + int frame_num; 1.2366 + int pic_id; 1.2367 + int long_ref; 1.2368 + int cpn; 1.2369 + int slice_type_nos; 1.2370 + int reference; 1.2371 +} PictureInfo; 1.2372 +typedef struct DecodedPicture 1.2373 +{ 1.2374 + int16_t (*motion_val[2])[2]; 1.2375 + int16_t (*motion_val_base[2])[2]; 1.2376 + int8_t *ref_index[2]; 1.2377 + uint32_t *mb_type; 1.2378 + uint32_t *mb_type_base; 1.2379 + int8_t *intra4x4_pred_mode; 1.2380 + int8_t *non_zero_count; 1.2381 + uint8_t *data[3]; 1.2382 + int linesize[3]; 1.2383 + uint8_t *base[3]; 1.2384 + int cpn; 1.2385 + int poc; 1.2386 + int reference; 1.2387 + int key_frame; 1.2388 + int mmco_reset; 1.2389 +} DecodedPicture; 1.2390 +extern void __assert_fail(__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.2391 +extern void __assert_perror_fail(int __errnum, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.2392 +extern void __assert(const char *__assertion, const char *__file, int __line) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.2393 +typedef int64_t x86_reg; 1.2394 +typedef struct CABACContext 1.2395 +{ 1.2396 + int low; 1.2397 + int range; 1.2398 + int outstanding_count; 1.2399 + const uint8_t *bytestream_start; 1.2400 + const uint8_t *bytestream; 1.2401 + const uint8_t *bytestream_end; 1.2402 + uint8_t cabac_state[460]; 1.2403 +} CABACContext; 1.2404 +extern uint8_t ff_h264_mlps_state[4 * 64]; 1.2405 +extern uint8_t ff_h264_lps_range[4 * 2 * 64]; 1.2406 +extern uint8_t ff_h264_mps_state[2 * 64]; 1.2407 +extern uint8_t ff_h264_lps_state[2 * 64]; 1.2408 +extern const uint8_t ff_h264_norm_shift[512]; 1.2409 +void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size); 1.2410 +void ff_init_cabac_states(void); 1.2411 +static void refill(CABACContext *c) 1.2412 +{ 1.2413 + c->low += (c->bytestream[0] << 9) + (c->bytestream[1] << 1); 1.2414 + c->low -= ((1 << 16) - 1); 1.2415 + c->bytestream += 16 / 8; 1.2416 +} 1.2417 +static void refill2(CABACContext *c) 1.2418 +{ 1.2419 + int i, x; 1.2420 + x = c->low ^ (c->low - 1); 1.2421 + i = 7 - ff_h264_norm_shift[x >> (16 - 1)]; 1.2422 + x = - ((1 << 16) - 1); 1.2423 + x += (c->bytestream[0] << 9) + (c->bytestream[1] << 1); 1.2424 + c->low += x << i; 1.2425 + c->bytestream += 16 / 8; 1.2426 +} 1.2427 +static inline void renorm_cabac_decoder(CABACContext *c) 1.2428 +{ 1.2429 + while (c->range < 0x100) 1.2430 + { 1.2431 + c->range += c->range; 1.2432 + c->low += c->low; 1.2433 + if (!(c->low & ((1 << 16) - 1))) 1.2434 + refill(c); 1.2435 + } 1.2436 +} 1.2437 +static inline void renorm_cabac_decoder_once(CABACContext *c) 1.2438 +{ 1.2439 + int shift = (uint32_t) (c->range - 0x100) >> 31; 1.2440 + c->range <<= shift; 1.2441 + c->low <<= shift; 1.2442 + if (!(c->low & ((1 << 16) - 1))) 1.2443 + refill(c); 1.2444 +} 1.2445 +static __attribute__((always_inline)) inline int get_cabac_inline(CABACContext *c, uint8_t *const state) 1.2446 +{ 1.2447 + int s = *state; 1.2448 + int RangeLPS = ff_h264_lps_range[2 * (c->range & 0xC0) + s]; 1.2449 + int bit, lps_mask __attribute__((unused)); 1.2450 + c->range -= RangeLPS; 1.2451 + lps_mask = ((c->range << (16 + 1)) - c->low) >> 31; 1.2452 + c->low -= (c->range << (16 + 1)) & lps_mask; 1.2453 + c->range += (RangeLPS - c->range) & lps_mask; 1.2454 + s ^= lps_mask; 1.2455 + *state = (ff_h264_mlps_state + 128)[s]; 1.2456 + bit = s & 1; 1.2457 + lps_mask = ff_h264_norm_shift[c->range]; 1.2458 + c->range <<= lps_mask; 1.2459 + c->low <<= lps_mask; 1.2460 + if (!(c->low & ((1 << 16) - 1))) 1.2461 + refill2(c); 1.2462 + return bit; 1.2463 +} 1.2464 +static int __attribute__((noinline)) __attribute__((unused)) get_cabac_noinline(CABACContext *c, uint8_t *const state) 1.2465 +{ 1.2466 + return get_cabac_inline(c, state); 1.2467 +} 1.2468 +static int __attribute__((unused)) get_cabac(CABACContext *c, uint8_t *const state) 1.2469 +{ 1.2470 + return get_cabac_inline(c, state); 1.2471 +} 1.2472 +static int __attribute__((unused)) get_cabac_bypass(CABACContext *c) 1.2473 +{ 1.2474 + int range; 1.2475 + c->low += c->low; 1.2476 + if (!(c->low & ((1 << 16) - 1))) 1.2477 + refill(c); 1.2478 + range = c->range << (16 + 1); 1.2479 + if (c->low < range) 1.2480 + { 1.2481 + return 0; 1.2482 + } 1.2483 + else 1.2484 + { 1.2485 + c->low -= range; 1.2486 + return 1; 1.2487 + } 1.2488 +} 1.2489 +static __attribute__((always_inline)) inline int get_cabac_bypass_sign(CABACContext *c, int val) 1.2490 +{ 1.2491 + int range, mask; 1.2492 + c->low += c->low; 1.2493 + if (!(c->low & ((1 << 16) - 1))) 1.2494 + refill(c); 1.2495 + range = c->range << (16 + 1); 1.2496 + c->low -= range; 1.2497 + mask = c->low >> 31; 1.2498 + range &= mask; 1.2499 + c->low += range; 1.2500 + return (val ^ mask) - mask; 1.2501 +} 1.2502 +static int __attribute__((unused)) get_cabac_terminate(CABACContext *c) 1.2503 +{ 1.2504 + c->range -= 2; 1.2505 + if (c->low < c->range << (16 + 1)) 1.2506 + { 1.2507 + renorm_cabac_decoder_once(c); 1.2508 + return 0; 1.2509 + } 1.2510 + else 1.2511 + { 1.2512 + return c->bytestream - c->bytestream_start; 1.2513 + } 1.2514 +} 1.2515 +static __attribute__((always_inline)) inline __attribute__((const)) uint16_t bswap_16(uint16_t x) 1.2516 +{ 1.2517 + __asm__ ("rorw $8, %0": "+r" (x): ); 1.2518 + return x; 1.2519 +} 1.2520 +static __attribute__((always_inline)) inline __attribute__((const)) uint32_t bswap_32(uint32_t x) 1.2521 +{ 1.2522 + __asm__ ("bswap %0": "+r" (x): ); 1.2523 + return x; 1.2524 +} 1.2525 +static inline uint64_t __attribute__((const)) bswap_64(uint64_t x) 1.2526 +{ 1.2527 + __asm__ ("bswap %0": "=r" (x): "0" (x)); 1.2528 + return x; 1.2529 +} 1.2530 +enum 1.2531 +{ 1.2532 + _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 1.2533 + _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 1.2534 + _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 1.2535 + _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 1.2536 + _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 1.2537 + _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 1.2538 + _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 1.2539 + _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 1.2540 + _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 1.2541 + _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 1.2542 + _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 1.2543 + _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) 1.2544 +}; 1.2545 +extern __const unsigned short int **__ctype_b_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const)); 1.2546 +extern __const __int32_t **__ctype_tolower_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const)); 1.2547 +extern __const __int32_t **__ctype_toupper_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const)); 1.2548 +extern int isalnum(int) __attribute__((__nothrow__, __leaf__)); 1.2549 +extern int isalpha(int) __attribute__((__nothrow__, __leaf__)); 1.2550 +extern int iscntrl(int) __attribute__((__nothrow__, __leaf__)); 1.2551 +extern int isdigit(int) __attribute__((__nothrow__, __leaf__)); 1.2552 +extern int islower(int) __attribute__((__nothrow__, __leaf__)); 1.2553 +extern int isgraph(int) __attribute__((__nothrow__, __leaf__)); 1.2554 +extern int isprint(int) __attribute__((__nothrow__, __leaf__)); 1.2555 +extern int ispunct(int) __attribute__((__nothrow__, __leaf__)); 1.2556 +extern int isspace(int) __attribute__((__nothrow__, __leaf__)); 1.2557 +extern int isupper(int) __attribute__((__nothrow__, __leaf__)); 1.2558 +extern int isxdigit(int) __attribute__((__nothrow__, __leaf__)); 1.2559 +extern int tolower(int __c) __attribute__((__nothrow__, __leaf__)); 1.2560 +extern int toupper(int __c) __attribute__((__nothrow__, __leaf__)); 1.2561 +extern int isblank(int) __attribute__((__nothrow__, __leaf__)); 1.2562 +extern int isascii(int __c) __attribute__((__nothrow__, __leaf__)); 1.2563 +extern int toascii(int __c) __attribute__((__nothrow__, __leaf__)); 1.2564 +extern int _toupper(int) __attribute__((__nothrow__, __leaf__)); 1.2565 +extern int _tolower(int) __attribute__((__nothrow__, __leaf__)); 1.2566 +extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) tolower(int __c) 1.2567 +{ 1.2568 + return __c >= - 128 && __c < 256 ? (*__ctype_tolower_loc())[__c] : __c; 1.2569 +} 1.2570 +extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) toupper(int __c) 1.2571 +{ 1.2572 + return __c >= - 128 && __c < 256 ? (*__ctype_toupper_loc())[__c] : __c; 1.2573 +} 1.2574 +extern int isalnum_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2575 +extern int isalpha_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2576 +extern int iscntrl_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2577 +extern int isdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2578 +extern int islower_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2579 +extern int isgraph_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2580 +extern int isprint_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2581 +extern int ispunct_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2582 +extern int isspace_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2583 +extern int isupper_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2584 +extern int isxdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2585 +extern int isblank_l(int, __locale_t) __attribute__((__nothrow__, __leaf__)); 1.2586 +extern int __tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2587 +extern int tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2588 +extern int __toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2589 +extern int toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.2590 +typedef int __gwchar_t; 1.2591 +typedef struct 1.2592 +{ 1.2593 + long int quot; 1.2594 + long int rem; 1.2595 +} imaxdiv_t; 1.2596 +extern intmax_t imaxabs(intmax_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2597 +extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2598 +extern intmax_t strtoimax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2599 +extern uintmax_t strtoumax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2600 +extern intmax_t wcstoimax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2601 +extern uintmax_t wcstoumax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)); 1.2602 +extern long int __strtol_internal(__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2603 +extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) strtoimax(__const char *__restrict nptr, char **__restrict endptr, int base) 1.2604 +{ 1.2605 + return __strtol_internal(nptr, endptr, base, 0); 1.2606 +} 1.2607 +extern unsigned long int __strtoul_internal(__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2608 +extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) strtoumax(__const char *__restrict nptr, char **__restrict endptr, int base) 1.2609 +{ 1.2610 + return __strtoul_internal(nptr, endptr, base, 0); 1.2611 +} 1.2612 +extern long int __wcstol_internal(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2613 +extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) wcstoimax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) 1.2614 +{ 1.2615 + return __wcstol_internal(nptr, endptr, base, 0); 1.2616 +} 1.2617 +extern unsigned long int __wcstoul_internal(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.2618 +extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) wcstoumax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) 1.2619 +{ 1.2620 + return __wcstoul_internal(nptr, endptr, base, 0); 1.2621 +} 1.2622 +typedef float float_t; 1.2623 +typedef double double_t; 1.2624 +extern double acos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2625 +extern double __acos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2626 +extern double asin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2627 +extern double __asin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2628 +extern double atan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2629 +extern double __atan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2630 +extern double atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__)); 1.2631 +extern double __atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__)); 1.2632 +extern double cos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2633 +extern double __cos(double __x) __attribute__((__nothrow__, __leaf__)); 1.2634 +extern double sin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2635 +extern double __sin(double __x) __attribute__((__nothrow__, __leaf__)); 1.2636 +extern double tan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2637 +extern double __tan(double __x) __attribute__((__nothrow__, __leaf__)); 1.2638 +extern double cosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2639 +extern double __cosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2640 +extern double sinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2641 +extern double __sinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2642 +extern double tanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2643 +extern double __tanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2644 +extern double acosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2645 +extern double __acosh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2646 +extern double asinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2647 +extern double __asinh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2648 +extern double atanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2649 +extern double __atanh(double __x) __attribute__((__nothrow__, __leaf__)); 1.2650 +extern double exp(double __x) __attribute__((__nothrow__, __leaf__)); 1.2651 +extern double __exp(double __x) __attribute__((__nothrow__, __leaf__)); 1.2652 +extern double frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2653 +extern double __frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2654 +extern double ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2655 +extern double __ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2656 +extern double log(double __x) __attribute__((__nothrow__, __leaf__)); 1.2657 +extern double __log(double __x) __attribute__((__nothrow__, __leaf__)); 1.2658 +extern double log10(double __x) __attribute__((__nothrow__, __leaf__)); 1.2659 +extern double __log10(double __x) __attribute__((__nothrow__, __leaf__)); 1.2660 +extern double modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__)); 1.2661 +extern double __modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.2662 +extern double expm1(double __x) __attribute__((__nothrow__, __leaf__)); 1.2663 +extern double __expm1(double __x) __attribute__((__nothrow__, __leaf__)); 1.2664 +extern double log1p(double __x) __attribute__((__nothrow__, __leaf__)); 1.2665 +extern double __log1p(double __x) __attribute__((__nothrow__, __leaf__)); 1.2666 +extern double logb(double __x) __attribute__((__nothrow__, __leaf__)); 1.2667 +extern double __logb(double __x) __attribute__((__nothrow__, __leaf__)); 1.2668 +extern double exp2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2669 +extern double __exp2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2670 +extern double log2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2671 +extern double __log2(double __x) __attribute__((__nothrow__, __leaf__)); 1.2672 +extern double pow(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2673 +extern double __pow(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2674 +extern double sqrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2675 +extern double __sqrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2676 +extern double hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2677 +extern double __hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2678 +extern double cbrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2679 +extern double __cbrt(double __x) __attribute__((__nothrow__, __leaf__)); 1.2680 +extern double ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2681 +extern double __ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2682 +extern double fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2683 +extern double __fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2684 +extern double floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2685 +extern double __floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2686 +extern double fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2687 +extern double __fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2688 +extern int __isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2689 +extern int __finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2690 +extern int isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2691 +extern int finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2692 +extern double drem(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2693 +extern double __drem(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2694 +extern double significand(double __x) __attribute__((__nothrow__, __leaf__)); 1.2695 +extern double __significand(double __x) __attribute__((__nothrow__, __leaf__)); 1.2696 +extern double copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2697 +extern double __copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2698 +extern double nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2699 +extern double __nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2700 +extern int __isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2701 +extern int isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2702 +extern double j0(double) __attribute__((__nothrow__, __leaf__)); 1.2703 +extern double __j0(double) __attribute__((__nothrow__, __leaf__)); 1.2704 +extern double j1(double) __attribute__((__nothrow__, __leaf__)); 1.2705 +extern double __j1(double) __attribute__((__nothrow__, __leaf__)); 1.2706 +extern double jn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2707 +extern double __jn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2708 +extern double y0(double) __attribute__((__nothrow__, __leaf__)); 1.2709 +extern double __y0(double) __attribute__((__nothrow__, __leaf__)); 1.2710 +extern double y1(double) __attribute__((__nothrow__, __leaf__)); 1.2711 +extern double __y1(double) __attribute__((__nothrow__, __leaf__)); 1.2712 +extern double yn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2713 +extern double __yn(int, double) __attribute__((__nothrow__, __leaf__)); 1.2714 +extern double erf(double) __attribute__((__nothrow__, __leaf__)); 1.2715 +extern double __erf(double) __attribute__((__nothrow__, __leaf__)); 1.2716 +extern double erfc(double) __attribute__((__nothrow__, __leaf__)); 1.2717 +extern double __erfc(double) __attribute__((__nothrow__, __leaf__)); 1.2718 +extern double lgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2719 +extern double __lgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2720 +extern double tgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2721 +extern double __tgamma(double) __attribute__((__nothrow__, __leaf__)); 1.2722 +extern double gamma(double) __attribute__((__nothrow__, __leaf__)); 1.2723 +extern double __gamma(double) __attribute__((__nothrow__, __leaf__)); 1.2724 +extern double lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.2725 +extern double __lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.2726 +extern double rint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2727 +extern double __rint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2728 +extern double nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2729 +extern double __nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2730 +extern double nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2731 +extern double __nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2732 +extern double remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2733 +extern double __remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2734 +extern double scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.2735 +extern double __scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.2736 +extern int ilogb(double __x) __attribute__((__nothrow__, __leaf__)); 1.2737 +extern int __ilogb(double __x) __attribute__((__nothrow__, __leaf__)); 1.2738 +extern double scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.2739 +extern double __scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.2740 +extern double nearbyint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2741 +extern double __nearbyint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2742 +extern double round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2743 +extern double __round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2744 +extern double trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2745 +extern double __trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2746 +extern double remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.2747 +extern double __remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.2748 +extern long int lrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2749 +extern long int __lrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2750 +extern long long int llrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2751 +extern long long int __llrint(double __x) __attribute__((__nothrow__, __leaf__)); 1.2752 +extern long int lround(double __x) __attribute__((__nothrow__, __leaf__)); 1.2753 +extern long int __lround(double __x) __attribute__((__nothrow__, __leaf__)); 1.2754 +extern long long int llround(double __x) __attribute__((__nothrow__, __leaf__)); 1.2755 +extern long long int __llround(double __x) __attribute__((__nothrow__, __leaf__)); 1.2756 +extern double fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2757 +extern double __fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2758 +extern double fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2759 +extern double __fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2760 +extern double fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2761 +extern double __fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__)); 1.2762 +extern int __fpclassify(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2763 +extern int __signbit(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2764 +extern double fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__)); 1.2765 +extern double __fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__)); 1.2766 +extern double scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__)); 1.2767 +extern double __scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__)); 1.2768 +extern float acosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2769 +extern float __acosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2770 +extern float asinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2771 +extern float __asinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2772 +extern float atanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2773 +extern float __atanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2774 +extern float atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__)); 1.2775 +extern float __atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__)); 1.2776 +extern float cosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2777 +extern float __cosf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2778 +extern float sinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2779 +extern float __sinf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2780 +extern float tanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2781 +extern float __tanf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2782 +extern float coshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2783 +extern float __coshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2784 +extern float sinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2785 +extern float __sinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2786 +extern float tanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2787 +extern float __tanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2788 +extern float acoshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2789 +extern float __acoshf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2790 +extern float asinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2791 +extern float __asinhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2792 +extern float atanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2793 +extern float __atanhf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2794 +extern float expf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2795 +extern float __expf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2796 +extern float frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2797 +extern float __frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2798 +extern float ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2799 +extern float __ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2800 +extern float logf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2801 +extern float __logf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2802 +extern float log10f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2803 +extern float __log10f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2804 +extern float modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__)); 1.2805 +extern float __modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.2806 +extern float expm1f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2807 +extern float __expm1f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2808 +extern float log1pf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2809 +extern float __log1pf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2810 +extern float logbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2811 +extern float __logbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2812 +extern float exp2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2813 +extern float __exp2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2814 +extern float log2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2815 +extern float __log2f(float __x) __attribute__((__nothrow__, __leaf__)); 1.2816 +extern float powf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2817 +extern float __powf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2818 +extern float sqrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2819 +extern float __sqrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2820 +extern float hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2821 +extern float __hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2822 +extern float cbrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2823 +extern float __cbrtf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2824 +extern float ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2825 +extern float __ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2826 +extern float fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2827 +extern float __fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2828 +extern float floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2829 +extern float __floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2830 +extern float fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2831 +extern float __fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2832 +extern int __isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2833 +extern int __finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2834 +extern int isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2835 +extern int finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2836 +extern float dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2837 +extern float __dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2838 +extern float significandf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2839 +extern float __significandf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2840 +extern float copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2841 +extern float __copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2842 +extern float nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2843 +extern float __nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2844 +extern int __isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2845 +extern int isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2846 +extern float j0f(float) __attribute__((__nothrow__, __leaf__)); 1.2847 +extern float __j0f(float) __attribute__((__nothrow__, __leaf__)); 1.2848 +extern float j1f(float) __attribute__((__nothrow__, __leaf__)); 1.2849 +extern float __j1f(float) __attribute__((__nothrow__, __leaf__)); 1.2850 +extern float jnf(int, float) __attribute__((__nothrow__, __leaf__)); 1.2851 +extern float __jnf(int, float) __attribute__((__nothrow__, __leaf__)); 1.2852 +extern float y0f(float) __attribute__((__nothrow__, __leaf__)); 1.2853 +extern float __y0f(float) __attribute__((__nothrow__, __leaf__)); 1.2854 +extern float y1f(float) __attribute__((__nothrow__, __leaf__)); 1.2855 +extern float __y1f(float) __attribute__((__nothrow__, __leaf__)); 1.2856 +extern float ynf(int, float) __attribute__((__nothrow__, __leaf__)); 1.2857 +extern float __ynf(int, float) __attribute__((__nothrow__, __leaf__)); 1.2858 +extern float erff(float) __attribute__((__nothrow__, __leaf__)); 1.2859 +extern float __erff(float) __attribute__((__nothrow__, __leaf__)); 1.2860 +extern float erfcf(float) __attribute__((__nothrow__, __leaf__)); 1.2861 +extern float __erfcf(float) __attribute__((__nothrow__, __leaf__)); 1.2862 +extern float lgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.2863 +extern float __lgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.2864 +extern float tgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.2865 +extern float __tgammaf(float) __attribute__((__nothrow__, __leaf__)); 1.2866 +extern float gammaf(float) __attribute__((__nothrow__, __leaf__)); 1.2867 +extern float __gammaf(float) __attribute__((__nothrow__, __leaf__)); 1.2868 +extern float lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.2869 +extern float __lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.2870 +extern float rintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2871 +extern float __rintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2872 +extern float nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2873 +extern float __nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2874 +extern float nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2875 +extern float __nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2876 +extern float remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2877 +extern float __remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2878 +extern float scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.2879 +extern float __scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.2880 +extern int ilogbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2881 +extern int __ilogbf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2882 +extern float scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.2883 +extern float __scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.2884 +extern float nearbyintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2885 +extern float __nearbyintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2886 +extern float roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2887 +extern float __roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2888 +extern float truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2889 +extern float __truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2890 +extern float remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.2891 +extern float __remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.2892 +extern long int lrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2893 +extern long int __lrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2894 +extern long long int llrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2895 +extern long long int __llrintf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2896 +extern long int lroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2897 +extern long int __lroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2898 +extern long long int llroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2899 +extern long long int __llroundf(float __x) __attribute__((__nothrow__, __leaf__)); 1.2900 +extern float fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2901 +extern float __fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2902 +extern float fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2903 +extern float __fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2904 +extern float fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2905 +extern float __fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__)); 1.2906 +extern int __fpclassifyf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2907 +extern int __signbitf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2908 +extern float fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__)); 1.2909 +extern float __fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__)); 1.2910 +extern float scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__)); 1.2911 +extern float __scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__)); 1.2912 +extern long double acosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2913 +extern long double __acosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2914 +extern long double asinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2915 +extern long double __asinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2916 +extern long double atanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2917 +extern long double __atanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2918 +extern long double atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__)); 1.2919 +extern long double __atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__)); 1.2920 +extern long double cosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2921 +extern long double __cosl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2922 +extern long double sinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2923 +extern long double __sinl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2924 +extern long double tanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2925 +extern long double __tanl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2926 +extern long double coshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2927 +extern long double __coshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2928 +extern long double sinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2929 +extern long double __sinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2930 +extern long double tanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2931 +extern long double __tanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2932 +extern long double acoshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2933 +extern long double __acoshl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2934 +extern long double asinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2935 +extern long double __asinhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2936 +extern long double atanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2937 +extern long double __atanhl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2938 +extern long double expl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2939 +extern long double __expl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2940 +extern long double frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2941 +extern long double __frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__)); 1.2942 +extern long double ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2943 +extern long double __ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__)); 1.2944 +extern long double logl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2945 +extern long double __logl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2946 +extern long double log10l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2947 +extern long double __log10l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2948 +extern long double modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__)); 1.2949 +extern long double __modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.2950 +extern long double expm1l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2951 +extern long double __expm1l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2952 +extern long double log1pl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2953 +extern long double __log1pl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2954 +extern long double logbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2955 +extern long double __logbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2956 +extern long double exp2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2957 +extern long double __exp2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2958 +extern long double log2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2959 +extern long double __log2l(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2960 +extern long double powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2961 +extern long double __powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2962 +extern long double sqrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2963 +extern long double __sqrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2964 +extern long double hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2965 +extern long double __hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2966 +extern long double cbrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2967 +extern long double __cbrtl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2968 +extern long double ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2969 +extern long double __ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2970 +extern long double fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2971 +extern long double __fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2972 +extern long double floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2973 +extern long double __floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2974 +extern long double fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2975 +extern long double __fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2976 +extern int __isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2977 +extern int __finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2978 +extern int isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2979 +extern int finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2980 +extern long double dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2981 +extern long double __dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.2982 +extern long double significandl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2983 +extern long double __significandl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.2984 +extern long double copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2985 +extern long double __copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2986 +extern long double nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2987 +extern long double __nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2988 +extern int __isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2989 +extern int isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.2990 +extern long double j0l(long double) __attribute__((__nothrow__, __leaf__)); 1.2991 +extern long double __j0l(long double) __attribute__((__nothrow__, __leaf__)); 1.2992 +extern long double j1l(long double) __attribute__((__nothrow__, __leaf__)); 1.2993 +extern long double __j1l(long double) __attribute__((__nothrow__, __leaf__)); 1.2994 +extern long double jnl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.2995 +extern long double __jnl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.2996 +extern long double y0l(long double) __attribute__((__nothrow__, __leaf__)); 1.2997 +extern long double __y0l(long double) __attribute__((__nothrow__, __leaf__)); 1.2998 +extern long double y1l(long double) __attribute__((__nothrow__, __leaf__)); 1.2999 +extern long double __y1l(long double) __attribute__((__nothrow__, __leaf__)); 1.3000 +extern long double ynl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.3001 +extern long double __ynl(int, long double) __attribute__((__nothrow__, __leaf__)); 1.3002 +extern long double erfl(long double) __attribute__((__nothrow__, __leaf__)); 1.3003 +extern long double __erfl(long double) __attribute__((__nothrow__, __leaf__)); 1.3004 +extern long double erfcl(long double) __attribute__((__nothrow__, __leaf__)); 1.3005 +extern long double __erfcl(long double) __attribute__((__nothrow__, __leaf__)); 1.3006 +extern long double lgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3007 +extern long double __lgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3008 +extern long double tgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3009 +extern long double __tgammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3010 +extern long double gammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3011 +extern long double __gammal(long double) __attribute__((__nothrow__, __leaf__)); 1.3012 +extern long double lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.3013 +extern long double __lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__)); 1.3014 +extern long double rintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3015 +extern long double __rintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3016 +extern long double nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3017 +extern long double __nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3018 +extern long double nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3019 +extern long double __nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3020 +extern long double remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3021 +extern long double __remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3022 +extern long double scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3023 +extern long double __scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__)); 1.3024 +extern int ilogbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3025 +extern int __ilogbl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3026 +extern long double scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3027 +extern long double __scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__)); 1.3028 +extern long double nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3029 +extern long double __nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3030 +extern long double roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3031 +extern long double __roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3032 +extern long double truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3033 +extern long double __truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3034 +extern long double remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3035 +extern long double __remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__)); 1.3036 +extern long int lrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3037 +extern long int __lrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3038 +extern long long int llrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3039 +extern long long int __llrintl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3040 +extern long int lroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3041 +extern long int __lroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3042 +extern long long int llroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3043 +extern long long int __llroundl(long double __x) __attribute__((__nothrow__, __leaf__)); 1.3044 +extern long double fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3045 +extern long double __fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3046 +extern long double fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3047 +extern long double __fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3048 +extern long double fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3049 +extern long double __fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)); 1.3050 +extern int __fpclassifyl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3051 +extern int __signbitl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3052 +extern long double fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__)); 1.3053 +extern long double __fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__)); 1.3054 +extern long double scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__)); 1.3055 +extern long double __scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__)); 1.3056 +extern int signgam; 1.3057 +enum 1.3058 +{ 1.3059 + FP_NAN, 1.3060 + FP_INFINITE, 1.3061 + FP_ZERO, 1.3062 + FP_SUBNORMAL, 1.3063 + FP_NORMAL 1.3064 +}; 1.3065 +typedef enum 1.3066 +{ 1.3067 + _IEEE_ = - 1, 1.3068 + _SVID_, 1.3069 + _XOPEN_, 1.3070 + _POSIX_, 1.3071 + _ISOC_ 1.3072 +} _LIB_VERSION_TYPE; 1.3073 +extern _LIB_VERSION_TYPE _LIB_VERSION; 1.3074 +struct exception 1.3075 +{ 1.3076 + int type; 1.3077 + char *name; 1.3078 + double arg1; 1.3079 + double arg2; 1.3080 + double retval; 1.3081 +}; 1.3082 +extern int matherr(struct exception *__exc); 1.3083 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitf(float __x) 1.3084 +{ 1.3085 + int __m; 1.3086 + __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x)); 1.3087 + return __m & 0x8; 1.3088 +} 1.3089 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbit(double __x) 1.3090 +{ 1.3091 + int __m; 1.3092 + __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x)); 1.3093 + return __m & 0x80; 1.3094 +} 1.3095 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitl(long double __x) 1.3096 +{ 1.3097 + __extension__ 1.3098 + union 1.3099 + { 1.3100 + long double __l; 1.3101 + int __i[3]; 1.3102 + } __u = {__l:__x}; 1.3103 + return (__u.__i[2] & 0x8000) != 0; 1.3104 +} 1.3105 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrintf(float __x) 1.3106 +{ 1.3107 + long int __res; 1.3108 + __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x)); 1.3109 + return __res; 1.3110 +} 1.3111 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrint(double __x) 1.3112 +{ 1.3113 + long int __res; 1.3114 + __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x)); 1.3115 + return __res; 1.3116 +} 1.3117 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrintf(float __x) 1.3118 +{ 1.3119 + long long int __res; 1.3120 + __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x)); 1.3121 + return __res; 1.3122 +} 1.3123 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrint(double __x) 1.3124 +{ 1.3125 + long long int __res; 1.3126 + __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x)); 1.3127 + return __res; 1.3128 +} 1.3129 +union wait 1.3130 +{ 1.3131 + int w_status; 1.3132 + struct 1.3133 + { 1.3134 + unsigned int __w_termsig : 7; 1.3135 + unsigned int __w_coredump : 1; 1.3136 + unsigned int __w_retcode : 8; 1.3137 + unsigned int : 16; 1.3138 + } __wait_terminated; 1.3139 + struct 1.3140 + { 1.3141 + unsigned int __w_stopval : 8; 1.3142 + unsigned int __w_stopsig : 8; 1.3143 + unsigned int : 16; 1.3144 + } __wait_stopped; 1.3145 +}; 1.3146 +typedef union 1.3147 +{ 1.3148 + union wait *__uptr; 1.3149 + int *__iptr; 1.3150 +} __WAIT_STATUS __attribute__((__transparent_union__)); 1.3151 +typedef struct 1.3152 +{ 1.3153 + int quot; 1.3154 + int rem; 1.3155 +} div_t; 1.3156 +typedef struct 1.3157 +{ 1.3158 + long int quot; 1.3159 + long int rem; 1.3160 +} ldiv_t; 1.3161 +__extension__ 1.3162 +typedef struct 1.3163 +{ 1.3164 + long long int quot; 1.3165 + long long int rem; 1.3166 +} lldiv_t; 1.3167 +extern size_t __ctype_get_mb_cur_max(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3168 +extern double atof(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3169 +extern int atoi(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3170 +extern long int atol(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3171 +__extension__ 1.3172 +extern long long int atoll(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3173 +extern double strtod(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3174 +extern float strtof(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3175 +extern long double strtold(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3176 +extern long int strtol(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3177 +extern unsigned long int strtoul(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3178 +__extension__ 1.3179 +extern long long int strtoq(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3180 +__extension__ 1.3181 +extern unsigned long long int strtouq(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3182 +__extension__ 1.3183 +extern long long int strtoll(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3184 +__extension__ 1.3185 +extern unsigned long long int strtoull(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3186 +extern __inline __attribute__((__gnu_inline__)) double __attribute__((__nothrow__, __leaf__)) atof(__const char *__nptr) 1.3187 +{ 1.3188 + return strtod(__nptr, (char **) ((void *) 0)); 1.3189 +} 1.3190 +extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) atoi(__const char *__nptr) 1.3191 +{ 1.3192 + return (int) strtol(__nptr, (char **) ((void *) 0), 10); 1.3193 +} 1.3194 +extern __inline __attribute__((__gnu_inline__)) long int __attribute__((__nothrow__, __leaf__)) atol(__const char *__nptr) 1.3195 +{ 1.3196 + return strtol(__nptr, (char **) ((void *) 0), 10); 1.3197 +} 1.3198 +__extension__ 1.3199 +extern __inline __attribute__((__gnu_inline__)) long long int __attribute__((__nothrow__, __leaf__)) atoll(__const char *__nptr) 1.3200 +{ 1.3201 + return strtoll(__nptr, (char **) ((void *) 0), 10); 1.3202 +} 1.3203 +extern char *l64a(long int __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3204 +extern long int a64l(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3205 +typedef __u_char u_char; 1.3206 +typedef __u_short u_short; 1.3207 +typedef __u_int u_int; 1.3208 +typedef __u_long u_long; 1.3209 +typedef __quad_t quad_t; 1.3210 +typedef __u_quad_t u_quad_t; 1.3211 +typedef __fsid_t fsid_t; 1.3212 +typedef __loff_t loff_t; 1.3213 +typedef __ino_t ino_t; 1.3214 +typedef __dev_t dev_t; 1.3215 +typedef __mode_t mode_t; 1.3216 +typedef __nlink_t nlink_t; 1.3217 +typedef __id_t id_t; 1.3218 +typedef __daddr_t daddr_t; 1.3219 +typedef __caddr_t caddr_t; 1.3220 +typedef __key_t key_t; 1.3221 +typedef unsigned long int ulong; 1.3222 +typedef unsigned short int ushort; 1.3223 +typedef unsigned int uint; 1.3224 +typedef unsigned int u_int8_t __attribute__((__mode__(__QI__))); 1.3225 +typedef unsigned int u_int16_t __attribute__((__mode__(__HI__))); 1.3226 +typedef unsigned int u_int32_t __attribute__((__mode__(__SI__))); 1.3227 +typedef unsigned int u_int64_t __attribute__((__mode__(__DI__))); 1.3228 +typedef int register_t __attribute__((__mode__(__word__))); 1.3229 +typedef int __sig_atomic_t; 1.3230 +typedef struct 1.3231 +{ 1.3232 + unsigned long int __val[(1024 / (8 * sizeof(unsigned long int)))]; 1.3233 +} __sigset_t; 1.3234 +typedef __sigset_t sigset_t; 1.3235 +struct timeval 1.3236 +{ 1.3237 + __time_t tv_sec; 1.3238 + __suseconds_t tv_usec; 1.3239 +}; 1.3240 +typedef __suseconds_t suseconds_t; 1.3241 +typedef long int __fd_mask; 1.3242 +typedef struct 1.3243 +{ 1.3244 + __fd_mask __fds_bits[1024 / (8 * (int) sizeof(__fd_mask))]; 1.3245 +} fd_set; 1.3246 +typedef __fd_mask fd_mask; 1.3247 +extern int select(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); 1.3248 +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); 1.3249 +extern unsigned long int __fdelt_chk(unsigned long int __d); 1.3250 +extern unsigned long int __fdelt_warn(unsigned long int __d) __attribute__((__warning__("bit outside of fd_set selected"))); 1.3251 +__extension__ 1.3252 +extern unsigned int gnu_dev_major(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3253 +__extension__ 1.3254 +extern unsigned int gnu_dev_minor(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3255 +__extension__ 1.3256 +extern unsigned long long int gnu_dev_makedev(unsigned int __major, unsigned int __minor) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3257 +__extension__ 1.3258 +extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_major(unsigned long long int __dev) 1.3259 +{ 1.3260 + return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); 1.3261 +} 1.3262 +__extension__ 1.3263 +extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_minor(unsigned long long int __dev) 1.3264 +{ 1.3265 + return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); 1.3266 +} 1.3267 +__extension__ 1.3268 +extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned long long int __attribute__((__nothrow__, __leaf__)) gnu_dev_makedev(unsigned int __major, unsigned int __minor) 1.3269 +{ 1.3270 + return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); 1.3271 +} 1.3272 +typedef __blksize_t blksize_t; 1.3273 +typedef __blkcnt_t blkcnt_t; 1.3274 +typedef __fsblkcnt_t fsblkcnt_t; 1.3275 +typedef __fsfilcnt_t fsfilcnt_t; 1.3276 +extern long int random(void) __attribute__((__nothrow__, __leaf__)); 1.3277 +extern void srandom(unsigned int __seed) __attribute__((__nothrow__, __leaf__)); 1.3278 +extern char *initstate(unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3279 +extern char *setstate(char *__statebuf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3280 +struct random_data 1.3281 +{ 1.3282 + int32_t *fptr; 1.3283 + int32_t *rptr; 1.3284 + int32_t *state; 1.3285 + int rand_type; 1.3286 + int rand_deg; 1.3287 + int rand_sep; 1.3288 + int32_t *end_ptr; 1.3289 +}; 1.3290 +extern int random_r(struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3291 +extern int srandom_r(unsigned int __seed, struct random_data *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3292 +extern int initstate_r(unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4))); 1.3293 +extern int setstate_r(char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3294 +extern int rand(void) __attribute__((__nothrow__, __leaf__)); 1.3295 +extern void srand(unsigned int __seed) __attribute__((__nothrow__, __leaf__)); 1.3296 +extern int rand_r(unsigned int *__seed) __attribute__((__nothrow__, __leaf__)); 1.3297 +extern double drand48(void) __attribute__((__nothrow__, __leaf__)); 1.3298 +extern double erand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3299 +extern long int lrand48(void) __attribute__((__nothrow__, __leaf__)); 1.3300 +extern long int nrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3301 +extern long int mrand48(void) __attribute__((__nothrow__, __leaf__)); 1.3302 +extern long int jrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3303 +extern void srand48(long int __seedval) __attribute__((__nothrow__, __leaf__)); 1.3304 +extern unsigned short int *seed48(unsigned short int __seed16v[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3305 +extern void lcong48(unsigned short int __param[7]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3306 +struct drand48_data 1.3307 +{ 1.3308 + unsigned short int __x[3]; 1.3309 + unsigned short int __old_x[3]; 1.3310 + unsigned short int __c; 1.3311 + unsigned short int __init; 1.3312 + unsigned long long int __a; 1.3313 +}; 1.3314 +extern int drand48_r(struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3315 +extern int erand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3316 +extern int lrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3317 +extern int nrand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3318 +extern int mrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3319 +extern int jrand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3320 +extern int srand48_r(long int __seedval, struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3321 +extern int seed48_r(unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3322 +extern int lcong48_r(unsigned short int __param[7], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3323 +extern void *malloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.3324 +extern void *calloc(size_t __nmemb, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.3325 +extern void *realloc(void *__ptr, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3326 +extern void free(void *__ptr) __attribute__((__nothrow__, __leaf__)); 1.3327 +extern void cfree(void *__ptr) __attribute__((__nothrow__, __leaf__)); 1.3328 +extern void *alloca(size_t __size) __attribute__((__nothrow__, __leaf__)); 1.3329 +extern void *valloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)); 1.3330 +extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3331 +extern void abort(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.3332 +extern int atexit(void (*__func)(void)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3333 +extern int on_exit(void (*__func)(int __status, void *__arg), void *__arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3334 +extern void exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.3335 +extern void _Exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__)); 1.3336 +extern char *getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3337 +extern char *__secure_getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3338 +extern int putenv(char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3339 +extern int setenv(__const char *__name, __const char *__value, int __replace) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3340 +extern int unsetenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3341 +extern int clearenv(void) __attribute__((__nothrow__, __leaf__)); 1.3342 +extern char *mktemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3343 +extern int mkstemp(char *__template) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3344 +extern int mkstemps(char *__template, int __suffixlen) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3345 +extern char *mkdtemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3346 +extern int system(__const char *__command) __attribute__((__warn_unused_result__)); 1.3347 +extern char *realpath(__const char *__restrict __name, char *__restrict __resolved) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3348 +typedef int (*__compar_fn_t)(__const void *, __const void *); 1.3349 +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__)); 1.3350 +extern void qsort(void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__((__nonnull__(1, 4))); 1.3351 +extern int abs(int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3352 +extern long int labs(long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3353 +__extension__ 1.3354 +extern long long int llabs(long long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3355 +extern div_t div(int __numer, int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3356 +extern ldiv_t ldiv(long int __numer, long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3357 +__extension__ 1.3358 +extern lldiv_t lldiv(long long int __numer, long long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__)); 1.3359 +extern char *ecvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3360 +extern char *fcvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3361 +extern char *gcvt(double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__)); 1.3362 +extern char *qecvt(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3363 +extern char *qfcvt(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__)); 1.3364 +extern char *qgcvt(long double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__)); 1.3365 +extern int ecvt_r(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3366 +extern int fcvt_r(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3367 +extern int qecvt_r(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3368 +extern int qfcvt_r(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5))); 1.3369 +extern int mblen(__const char *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3370 +extern int mbtowc(wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3371 +extern int wctomb(char *__s, wchar_t __wchar) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3372 +extern size_t mbstowcs(wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__)); 1.3373 +extern size_t wcstombs(char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) __attribute__((__nothrow__, __leaf__)); 1.3374 +extern int rpmatch(__const char *__response) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)); 1.3375 +extern int getsubopt(char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2, 3))) __attribute__((__warn_unused_result__)); 1.3376 +extern int getloadavg(double __loadavg[], int __nelem) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3377 +extern char *__realpath_chk(__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3378 +extern char *__realpath_alias(__const char *__restrict __name, char *__restrict __resolved) __asm__ ("""realpath") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3379 +extern char *__realpath_chk_warn(__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("""__realpath_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("second argument of realpath must be either NULL or at ""least PATH_MAX bytes long buffer"))); 1.3380 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) realpath(__const char *__restrict __name, char *__restrict __resolved) 1.3381 +{ 1.3382 + if (__builtin_object_size(__resolved, 2 > 1) != (size_t) - 1) 1.3383 + { 1.3384 + if (__builtin_object_size(__resolved, 2 > 1) < 4096) 1.3385 + return __realpath_chk_warn(__name, __resolved, __builtin_object_size(__resolved, 2 > 1)); 1.3386 + return __realpath_chk(__name, __resolved, __builtin_object_size(__resolved, 2 > 1)); 1.3387 + } 1.3388 + return __realpath_alias(__name, __resolved); 1.3389 +} 1.3390 +extern int __ptsname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3391 +extern int __ptsname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ptsname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3392 +extern int __ptsname_r_chk_warn(int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__ptsname_r_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warning__("ptsname_r called with buflen bigger than ""size of buf"))); 1.3393 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ptsname_r(int __fd, char *__buf, size_t __buflen) 1.3394 +{ 1.3395 + if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1) 1.3396 + { 1.3397 + if (!__builtin_constant_p(__buflen)) 1.3398 + return __ptsname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.3399 + if (__buflen > __builtin_object_size(__buf, 2 > 1)) 1.3400 + return __ptsname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1)); 1.3401 + } 1.3402 + return __ptsname_r_alias(__fd, __buf, __buflen); 1.3403 +} 1.3404 +extern int __wctomb_chk(char *__s, wchar_t __wchar, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3405 +extern int __wctomb_alias(char *__s, wchar_t __wchar) __asm__ ("""wctomb") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)); 1.3406 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) int __attribute__((__nothrow__, __leaf__)) wctomb(char *__s, wchar_t __wchar) 1.3407 +{ 1.3408 + if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1 && 16 > __builtin_object_size(__s, 2 > 1)) 1.3409 + return __wctomb_chk(__s, __wchar, __builtin_object_size(__s, 2 > 1)); 1.3410 + return __wctomb_alias(__s, __wchar); 1.3411 +} 1.3412 +extern size_t __mbstowcs_chk(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__)); 1.3413 +extern size_t __mbstowcs_alias(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("""mbstowcs") __attribute__((__nothrow__, __leaf__)); 1.3414 +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__, __leaf__)) __attribute__((__warning__("mbstowcs called with dst buffer smaller than len ""* sizeof (wchar_t)"))); 1.3415 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) mbstowcs(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) 1.3416 +{ 1.3417 + if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1) 1.3418 + { 1.3419 + if (!__builtin_constant_p(__len)) 1.3420 + return __mbstowcs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t)); 1.3421 + if (__len > __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t)) 1.3422 + return __mbstowcs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t)); 1.3423 + } 1.3424 + return __mbstowcs_alias(__dst, __src, __len); 1.3425 +} 1.3426 +extern size_t __wcstombs_chk(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__)); 1.3427 +extern size_t __wcstombs_alias(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("""wcstombs") __attribute__((__nothrow__, __leaf__)); 1.3428 +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__, __leaf__)) __attribute__((__warning__("wcstombs called with dst buffer smaller than len"))); 1.3429 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) wcstombs(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) 1.3430 +{ 1.3431 + if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1) 1.3432 + { 1.3433 + if (!__builtin_constant_p(__len)) 1.3434 + return __wcstombs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1)); 1.3435 + if (__len > __builtin_object_size(__dst, 2 > 1)) 1.3436 + return __wcstombs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1)); 1.3437 + } 1.3438 + return __wcstombs_alias(__dst, __src, __len); 1.3439 +} 1.3440 +extern void *memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3441 +extern void *memmove(void *__dest, __const void *__src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3442 +extern void *memccpy(void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3443 +extern void *memset(void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3444 +extern int memcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3445 +extern void *memchr(__const void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3446 +extern char *strcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3447 +extern char *strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3448 +extern char *strcat(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3449 +extern char *strncat(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3450 +extern int strcmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3451 +extern int strncmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3452 +extern int strcoll(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3453 +extern size_t strxfrm(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3454 +extern int strcoll_l(__const char *__s1, __const char *__s2, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2, 3))); 1.3455 +extern size_t strxfrm_l(char *__dest, __const char *__src, size_t __n, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4))); 1.3456 +extern char *strdup(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1))); 1.3457 +extern char *strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1))); 1.3458 +extern char *strchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3459 +extern char *strrchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3460 +extern size_t strcspn(__const char *__s, __const char *__reject) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3461 +extern size_t strspn(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3462 +extern char *strpbrk(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3463 +extern char *strstr(__const char *__haystack, __const char *__needle) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3464 +extern char *strtok(char *__restrict __s, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3465 +extern char *__strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))); 1.3466 +extern char *strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))); 1.3467 +extern size_t strlen(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3468 +extern size_t strnlen(__const char *__string, size_t __maxlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3469 +extern char *strerror(int __errnum) __attribute__((__nothrow__, __leaf__)); 1.3470 +extern int strerror_r(int __errnum, char *__buf, size_t __buflen) __asm__ ("""__xpg_strerror_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))); 1.3471 +extern char *strerror_l(int __errnum, __locale_t __l) __attribute__((__nothrow__, __leaf__)); 1.3472 +extern void __bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3473 +extern void bcopy(__const void *__src, void *__dest, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3474 +extern void bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))); 1.3475 +extern int bcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3476 +extern char *index(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3477 +extern char *rindex(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))); 1.3478 +extern int ffs(int __i) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)); 1.3479 +extern int strcasecmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3480 +extern int strncasecmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2))); 1.3481 +extern char *strsep(char **__restrict __stringp, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3482 +extern char *strsignal(int __sig) __attribute__((__nothrow__, __leaf__)); 1.3483 +extern char *__stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3484 +extern char *stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3485 +extern char *__stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3486 +extern char *stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))); 1.3487 +extern void *__rawmemchr(const void *__s, int __c); 1.3488 +extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject); 1.3489 +extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject) 1.3490 +{ 1.3491 + register size_t __result = 0; 1.3492 + while (__s[__result] != '\0' && __s[__result] != __reject) 1.3493 + ++__result; 1.3494 + return __result; 1.3495 +} 1.3496 +extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2); 1.3497 +extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2) 1.3498 +{ 1.3499 + register size_t __result = 0; 1.3500 + while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) 1.3501 + ++__result; 1.3502 + return __result; 1.3503 +} 1.3504 +extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3); 1.3505 +extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3) 1.3506 +{ 1.3507 + register size_t __result = 0; 1.3508 + while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) 1.3509 + ++__result; 1.3510 + return __result; 1.3511 +} 1.3512 +extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept); 1.3513 +extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept) 1.3514 +{ 1.3515 + register size_t __result = 0; 1.3516 + while (__s[__result] == __accept) 1.3517 + ++__result; 1.3518 + return __result; 1.3519 +} 1.3520 +extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2); 1.3521 +extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2) 1.3522 +{ 1.3523 + register size_t __result = 0; 1.3524 + while (__s[__result] == __accept1 || __s[__result] == __accept2) 1.3525 + ++__result; 1.3526 + return __result; 1.3527 +} 1.3528 +extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3); 1.3529 +extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3) 1.3530 +{ 1.3531 + register size_t __result = 0; 1.3532 + while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) 1.3533 + ++__result; 1.3534 + return __result; 1.3535 +} 1.3536 +extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2); 1.3537 +extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2) 1.3538 +{ 1.3539 + while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) 1.3540 + ++__s; 1.3541 + return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s; 1.3542 +} 1.3543 +extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3); 1.3544 +extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3) 1.3545 +{ 1.3546 + while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) 1.3547 + ++__s; 1.3548 + return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s; 1.3549 +} 1.3550 +extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp); 1.3551 +extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp) 1.3552 +{ 1.3553 + char *__result; 1.3554 + if (__s == ((void *) 0)) 1.3555 + __s = *__nextp; 1.3556 + while (*__s == __sep) 1.3557 + ++__s; 1.3558 + __result = ((void *) 0); 1.3559 + if (*__s != '\0') 1.3560 + { 1.3561 + __result = __s++; 1.3562 + while (*__s != '\0') 1.3563 + if (*__s++ == __sep) 1.3564 + { 1.3565 + __s[- 1] = '\0'; 1.3566 + break; 1.3567 + } 1.3568 + } 1.3569 + *__nextp = __s; 1.3570 + return __result; 1.3571 +} 1.3572 +extern char *__strsep_g(char **__stringp, __const char *__delim); 1.3573 +extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject); 1.3574 +extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject) 1.3575 +{ 1.3576 + register char *__retval = *__s; 1.3577 + 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)) 1.3578 + *(*__s)++ = '\0'; 1.3579 + return __retval; 1.3580 +} 1.3581 +extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2); 1.3582 +extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2) 1.3583 +{ 1.3584 + register char *__retval = *__s; 1.3585 + if (__retval != ((void *) 0)) 1.3586 + { 1.3587 + register char *__cp = __retval; 1.3588 + while (1) 1.3589 + { 1.3590 + if (*__cp == '\0') 1.3591 + { 1.3592 + __cp = ((void *) 0); 1.3593 + break; 1.3594 + } 1.3595 + if (*__cp == __reject1 || *__cp == __reject2) 1.3596 + { 1.3597 + *__cp++ = '\0'; 1.3598 + break; 1.3599 + } 1.3600 + ++__cp; 1.3601 + } 1.3602 + *__s = __cp; 1.3603 + } 1.3604 + return __retval; 1.3605 +} 1.3606 +extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3); 1.3607 +extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3) 1.3608 +{ 1.3609 + register char *__retval = *__s; 1.3610 + if (__retval != ((void *) 0)) 1.3611 + { 1.3612 + register char *__cp = __retval; 1.3613 + while (1) 1.3614 + { 1.3615 + if (*__cp == '\0') 1.3616 + { 1.3617 + __cp = ((void *) 0); 1.3618 + break; 1.3619 + } 1.3620 + if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) 1.3621 + { 1.3622 + *__cp++ = '\0'; 1.3623 + break; 1.3624 + } 1.3625 + ++__cp; 1.3626 + } 1.3627 + *__s = __cp; 1.3628 + } 1.3629 + return __retval; 1.3630 +} 1.3631 +extern char *__strdup(__const char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)); 1.3632 +extern char *__strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)); 1.3633 +extern void __warn_memset_zero_len(void) __attribute__((__warning__("memset used with constant zero length parameter; this could be due to transposed parameters"))); 1.3634 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __len) 1.3635 +{ 1.3636 + return __builtin___memcpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 0)); 1.3637 +} 1.3638 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memmove(void *__dest, __const void *__src, size_t __len) 1.3639 +{ 1.3640 + return __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0)); 1.3641 +} 1.3642 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memset(void *__dest, int __ch, size_t __len) 1.3643 +{ 1.3644 + if (__builtin_constant_p(__len) && __len == 0 && (!__builtin_constant_p(__ch) || __ch != 0)) 1.3645 + { 1.3646 + __warn_memset_zero_len(); 1.3647 + return __dest; 1.3648 + } 1.3649 + return __builtin___memset_chk(__dest, __ch, __len, __builtin_object_size(__dest, 0)); 1.3650 +} 1.3651 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bcopy(__const void *__src, void *__dest, size_t __len) 1.3652 +{ 1.3653 + (void) __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0)); 1.3654 +} 1.3655 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bzero(void *__dest, size_t __len) 1.3656 +{ 1.3657 + (void) __builtin___memset_chk(__dest, '\0', __len, __builtin_object_size(__dest, 0)); 1.3658 +} 1.3659 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcpy(char *__restrict __dest, __const char *__restrict __src) 1.3660 +{ 1.3661 + return __builtin___strcpy_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1)); 1.3662 +} 1.3663 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __len) 1.3664 +{ 1.3665 + return __builtin___strncpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1)); 1.3666 +} 1.3667 +extern char *__stpncpy_chk(char *__dest, __const char *__src, size_t __n, size_t __destlen) __attribute__((__nothrow__, __leaf__)); 1.3668 +extern char *__stpncpy_alias(char *__dest, __const char *__src, size_t __n) __asm__ ("""stpncpy") __attribute__((__nothrow__, __leaf__)); 1.3669 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) stpncpy(char *__dest, __const char *__src, size_t __n) 1.3670 +{ 1.3671 + if (__builtin_object_size(__dest, 2 > 1) != (size_t) - 1 && (!__builtin_constant_p(__n) || __n <= __builtin_object_size(__dest, 2 > 1))) 1.3672 + return __stpncpy_chk(__dest, __src, __n, __builtin_object_size(__dest, 2 > 1)); 1.3673 + return __stpncpy_alias(__dest, __src, __n); 1.3674 +} 1.3675 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcat(char *__restrict __dest, __const char *__restrict __src) 1.3676 +{ 1.3677 + return __builtin___strcat_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1)); 1.3678 +} 1.3679 +extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncat(char *__restrict __dest, __const char *__restrict __src, size_t __len) 1.3680 +{ 1.3681 + return __builtin___strncat_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1)); 1.3682 +} 1.3683 +extern const uint8_t ff_log2_tab[256]; 1.3684 +static inline __attribute__((const)) int av_log2_c(unsigned int v) 1.3685 +{ 1.3686 + int n = 0; 1.3687 + if (v & 0xffff0000) 1.3688 + { 1.3689 + v >>= 16; 1.3690 + n += 16; 1.3691 + } 1.3692 + if (v & 0xff00) 1.3693 + { 1.3694 + v >>= 8; 1.3695 + n += 8; 1.3696 + } 1.3697 + n += ff_log2_tab[v]; 1.3698 + return n; 1.3699 +} 1.3700 +static inline __attribute__((const)) int av_log2_16bit_c(unsigned int v) 1.3701 +{ 1.3702 + int n = 0; 1.3703 + if (v & 0xff00) 1.3704 + { 1.3705 + v >>= 8; 1.3706 + n += 8; 1.3707 + } 1.3708 + n += ff_log2_tab[v]; 1.3709 + return n; 1.3710 +} 1.3711 +static inline __attribute__((const)) int av_clip(int a, int amin, int amax) 1.3712 +{ 1.3713 + if (a < amin) 1.3714 + return amin; 1.3715 + else 1.3716 + if (a > amax) 1.3717 + return amax; 1.3718 + else 1.3719 + return a; 1.3720 +} 1.3721 +static inline __attribute__((const)) uint8_t av_clip_uint8(int a) 1.3722 +{ 1.3723 + if (a & (~0xFF)) 1.3724 + return (- a) >> 31; 1.3725 + else 1.3726 + return a; 1.3727 +} 1.3728 +static inline __attribute__((const)) uint16_t av_clip_uint16(int a) 1.3729 +{ 1.3730 + if (a & (~0xFFFF)) 1.3731 + return (- a) >> 31; 1.3732 + else 1.3733 + return a; 1.3734 +} 1.3735 +static inline __attribute__((const)) int16_t av_clip_int16(int a) 1.3736 +{ 1.3737 + if ((a + 0x8000) & ~0xFFFF) 1.3738 + return (a >> 31) ^ 0x7FFF; 1.3739 + else 1.3740 + return a; 1.3741 +} 1.3742 +static inline __attribute__((const)) int32_t av_clipl_int32(int64_t a) 1.3743 +{ 1.3744 + if ((a + 0x80000000u) & ~0xFFFFFFFFUL) 1.3745 + return (a >> 63) ^ 0x7FFFFFFF; 1.3746 + else 1.3747 + return a; 1.3748 +} 1.3749 +static inline __attribute__((const)) float av_clipf(float a, float amin, float amax) 1.3750 +{ 1.3751 + if (a < amin) 1.3752 + return amin; 1.3753 + else 1.3754 + if (a > amax) 1.3755 + return amax; 1.3756 + else 1.3757 + return a; 1.3758 +} 1.3759 +static inline __attribute__((const)) int av_ceil_log2(int x) 1.3760 +{ 1.3761 + return av_log2_c((x - 1) << 1); 1.3762 +} 1.3763 +typedef union 1.3764 +{ 1.3765 + uint64_t u64; 1.3766 + uint32_t u32[2]; 1.3767 + uint16_t u16[4]; 1.3768 + uint8_t u8[8]; 1.3769 + double f64; 1.3770 + float f32[2]; 1.3771 +} __attribute__((__may_alias__)) av_alias64; 1.3772 +typedef union 1.3773 +{ 1.3774 + uint32_t u32; 1.3775 + uint16_t u16[2]; 1.3776 + uint8_t u8[4]; 1.3777 + float f32; 1.3778 +} __attribute__((__may_alias__)) av_alias32; 1.3779 +typedef union 1.3780 +{ 1.3781 + uint16_t u16; 1.3782 + uint8_t u8[2]; 1.3783 +} __attribute__((__may_alias__)) av_alias16; 1.3784 +static __attribute__((always_inline)) inline void AV_COPY64(void *d, const void *s) 1.3785 +{ 1.3786 + __asm__ ("movq %1, %%mm0 \n\t""movq %%mm0, %0 \n\t": "=m" (*(uint64_t *) d): "m" (*(const uint64_t *) s): "mm0"); 1.3787 +} 1.3788 +static __attribute__((always_inline)) inline void AV_SWAP64(void *a, void *b) 1.3789 +{ 1.3790 + __asm__ ("movq %1, %%mm0 \n\t""movq %0, %%mm1 \n\t""movq %%mm0, %0 \n\t""movq %%mm1, %1 \n\t": "+m" (*(uint64_t *) a), "+m" (*(uint64_t *) b): : "mm0", "mm1"); 1.3791 +} 1.3792 +static __attribute__((always_inline)) inline void AV_ZERO64(void *d) 1.3793 +{ 1.3794 + __asm__ ("pxor %%mm0, %%mm0 \n\t""movq %%mm0, %0 \n\t": "=m" (*(uint64_t *) d): : "mm0"); 1.3795 +} 1.3796 +static __attribute__((always_inline)) inline void AV_COPY128(void *d, const void *s) 1.3797 +{ 1.3798 + struct v 1.3799 + { 1.3800 + uint64_t v[2]; 1.3801 + }; 1.3802 + __asm__ ("movaps %1, %%xmm0 \n\t""movaps %%xmm0, %0 \n\t": "=m" (*(struct v *) d): "m" (*(const struct v *) s): "xmm0"); 1.3803 +} 1.3804 +static __attribute__((always_inline)) inline void AV_ZERO128(void *d) 1.3805 +{ 1.3806 + struct v 1.3807 + { 1.3808 + uint64_t v[2]; 1.3809 + }; 1.3810 + __asm__ ("pxor %%xmm0, %%xmm0 \n\t""movdqa %%xmm0, %0 \n\t": "=m" (*(struct v *) d): : "xmm0"); 1.3811 +} 1.3812 +void ff_h264_idct8_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.3813 +void ff_h264_idct_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.3814 +void ff_h264_idct8_dc_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.3815 +void ff_h264_idct_dc_add_c(uint8_t *dst, DCTELEM *block, int stride); 1.3816 +void ff_h264_lowres_idct_add_c(uint8_t *dst, int stride, DCTELEM *block); 1.3817 +void ff_h264_lowres_idct_put_c(uint8_t *dst, int stride, DCTELEM *block); 1.3818 +void ff_h264_idct_add16_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.3819 +void ff_h264_idct_add16intra_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.3820 +void ff_h264_idct8_add4_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.3821 +void ff_h264_idct_add8_c(uint8_t **dest, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.3822 +void h264_luma_dc_dequant_idct_c(DCTELEM *block, int qmul); 1.3823 +void chroma_dc_dequant_idct_c(DCTELEM *block, int qmul); 1.3824 +void ff_vector_fmul_window_c(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len); 1.3825 +void ff_float_to_int16_c(int16_t *dst, const float *src, long len); 1.3826 +void ff_float_to_int16_interleave_c(int16_t *dst, const float **src, long len, int channels); 1.3827 +extern const uint8_t ff_alternate_horizontal_scan[64]; 1.3828 +extern const uint8_t ff_alternate_vertical_scan[64]; 1.3829 +extern const uint8_t ff_zigzag_direct[64]; 1.3830 +extern const uint8_t ff_zigzag248_direct[64]; 1.3831 +extern uint32_t ff_squareTbl[512]; 1.3832 +extern uint8_t ff_cropTbl[256 + 2 * 1024]; 1.3833 +void ff_vp3_idct_c(DCTELEM *block); 1.3834 +void ff_vp3_idct_put_c(uint8_t *dest, int line_size, DCTELEM *block); 1.3835 +void ff_vp3_idct_add_c(uint8_t *dest, int line_size, DCTELEM *block); 1.3836 +void ff_vp3_idct_dc_add_c(uint8_t *dest, int line_size, const DCTELEM *block); 1.3837 +void ff_vp3_v_loop_filter_c(uint8_t *src, int stride, int *bounding_values); 1.3838 +void ff_vp3_h_loop_filter_c(uint8_t *src, int stride, int *bounding_values); 1.3839 +void ff_vp6_filter_diag4_c(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights); 1.3840 +void ff_bink_idct_c(DCTELEM *block); 1.3841 +void ff_bink_idct_add_c(uint8_t *dest, int linesize, DCTELEM *block); 1.3842 +void ff_bink_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block); 1.3843 +void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.3844 +void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.3845 +void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.3846 +void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride); 1.3847 +void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd); 1.3848 +void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd); 1.3849 +void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block); 1.3850 +void ff_img_copy_plane(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.3851 +void ff_shrink22(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.3852 +void ff_shrink44(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.3853 +void ff_shrink88(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); 1.3854 +void ff_gmc_c(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy, int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height); 1.3855 +typedef void (*op_pixels_func)(uint8_t *block, const uint8_t *pixels, int line_size, int h); 1.3856 +typedef void (*tpel_mc_func)(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h); 1.3857 +typedef void (*qpel_mc_func)(uint8_t *dst, uint8_t *src, int stride); 1.3858 +typedef void (*h264_chroma_mc_func)(uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y); 1.3859 +typedef void (*op_fill_func)(uint8_t *block, uint8_t value, int line_size, int h); 1.3860 +void ff_put_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3861 +void ff_put_no_rnd_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3862 +void ff_avg_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3863 +void ff_put_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3864 +void ff_put_no_rnd_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3865 +void ff_avg_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3866 +void ff_put_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3867 +void ff_put_no_rnd_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3868 +void ff_avg_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3869 +void ff_put_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3870 +void ff_put_no_rnd_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3871 +void ff_avg_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3872 +void ff_put_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3873 +void ff_put_no_rnd_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3874 +void ff_avg_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3875 +void ff_put_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3876 +void ff_put_no_rnd_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3877 +void ff_avg_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3878 +void ff_put_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3879 +void ff_put_no_rnd_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3880 +void ff_avg_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3881 +void ff_put_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3882 +void ff_put_no_rnd_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3883 +void ff_avg_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3884 +void ff_put_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3885 +void ff_put_no_rnd_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3886 +void ff_avg_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3887 +void ff_put_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3888 +void ff_put_no_rnd_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3889 +void ff_avg_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3890 +void ff_put_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3891 +void ff_put_no_rnd_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3892 +void ff_avg_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3893 +void ff_put_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3894 +void ff_put_no_rnd_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3895 +void ff_avg_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride); 1.3896 +typedef int (*me_cmp_func)(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h); 1.3897 +typedef struct ScanTable 1.3898 +{ 1.3899 + const uint8_t *scantable; 1.3900 + uint8_t permutated[64]; 1.3901 + uint8_t raster_end[64]; 1.3902 +} ScanTable; 1.3903 +void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable); 1.3904 +void ff_emulated_edge_mc(uint8_t *buf, uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h); 1.3905 +typedef struct DSPContext 1.3906 +{ 1.3907 + void (*get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size); 1.3908 + void (*diff_pixels)(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride); 1.3909 + void (*put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.3910 + void (*put_signed_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.3911 + void (*put_pixels_nonclamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.3912 + void (*add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size); 1.3913 + void (*add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size); 1.3914 + void (*add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size); 1.3915 + void (*clear_block)(DCTELEM *block); 1.3916 + void (*clear_blocks)(DCTELEM *blocks); 1.3917 + op_pixels_func put_pixels_tab[4][4]; 1.3918 + op_pixels_func avg_pixels_tab[4][4]; 1.3919 + op_pixels_func put_no_rnd_pixels_tab[4][4]; 1.3920 + op_pixels_func avg_no_rnd_pixels_tab[4][4]; 1.3921 + void (*put_no_rnd_pixels_l2[2])(uint8_t *block, const uint8_t *a, const uint8_t *b, int line_size, int h); 1.3922 + qpel_mc_func put_qpel_pixels_tab[2][16]; 1.3923 + qpel_mc_func avg_qpel_pixels_tab[2][16]; 1.3924 + qpel_mc_func put_no_rnd_qpel_pixels_tab[2][16]; 1.3925 + qpel_mc_func avg_no_rnd_qpel_pixels_tab[2][16]; 1.3926 + qpel_mc_func put_mspel_pixels_tab[8]; 1.3927 + h264_chroma_mc_func put_h264_chroma_pixels_tab[3]; 1.3928 + h264_chroma_mc_func avg_h264_chroma_pixels_tab[3]; 1.3929 + h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3]; 1.3930 + h264_chroma_mc_func avg_no_rnd_vc1_chroma_pixels_tab[3]; 1.3931 + qpel_mc_func put_h264_qpel_pixels_tab[4][16]; 1.3932 + qpel_mc_func avg_h264_qpel_pixels_tab[4][16]; 1.3933 + qpel_mc_func put_2tap_qpel_pixels_tab[4][16]; 1.3934 + qpel_mc_func avg_2tap_qpel_pixels_tab[4][16]; 1.3935 + void (*fdct)(DCTELEM *block); 1.3936 + void (*fdct248)(DCTELEM *block); 1.3937 + void (*idct)(DCTELEM *block); 1.3938 + void (*idct_put)(uint8_t *dest, int line_size, DCTELEM *block); 1.3939 + void (*idct_add)(uint8_t *dest, int line_size, DCTELEM *block); 1.3940 + void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w); 1.3941 + void (*prefetch)(void *mem, int stride, int h); 1.3942 +} DSPContext; 1.3943 +void dsputil_static_init(void); 1.3944 +void dsputil_init(DSPContext *p); 1.3945 +int ff_check_alignment(void); 1.3946 +void ff_block_permute(DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last); 1.3947 +void ff_set_cmp(DSPContext *c, me_cmp_func *cmp, int type); 1.3948 +static inline uint32_t rnd_avg32(uint32_t a, uint32_t b) 1.3949 +{ 1.3950 + return (a | b) - (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1); 1.3951 +} 1.3952 +static inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b) 1.3953 +{ 1.3954 + return (a & b) + (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1); 1.3955 +} 1.3956 +int mm_support(void); 1.3957 +extern int mm_flags; 1.3958 +void dsputil_init_arm(DSPContext *c); 1.3959 +void dsputil_init_mmx(DSPContext *c); 1.3960 +void dsputil_init_ppc(DSPContext *c); 1.3961 +void ff_dsputil_init_dwt(DSPContext *c); 1.3962 +static inline void emms(void) 1.3963 +{ 1.3964 + __asm__ volatile("emms;": : : "memory"); 1.3965 +} 1.3966 +static inline void copy_block2(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.3967 +{ 1.3968 + int i; 1.3969 + for (i = 0; 1.3970 + i < h; 1.3971 + i++) 1.3972 + { 1.3973 + do 1.3974 + { 1.3975 + ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.3976 + ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.3977 + } 1.3978 + while (0); 1.3979 + dst += dstStride; 1.3980 + src += srcStride; 1.3981 + } 1.3982 +} 1.3983 +static inline void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.3984 +{ 1.3985 + int i; 1.3986 + for (i = 0; 1.3987 + i < h; 1.3988 + i++) 1.3989 + { 1.3990 + do 1.3991 + { 1.3992 + ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.3993 + ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.3994 + ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.3995 + ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.3996 + } 1.3997 + while (0); 1.3998 + dst += dstStride; 1.3999 + src += srcStride; 1.4000 + } 1.4001 +} 1.4002 +static inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4003 +{ 1.4004 + int i; 1.4005 + for (i = 0; 1.4006 + i < h; 1.4007 + i++) 1.4008 + { 1.4009 + do 1.4010 + { 1.4011 + ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4012 + ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4013 + ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4014 + ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4015 + } 1.4016 + while (0); 1.4017 + do 1.4018 + { 1.4019 + ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4020 + ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4021 + ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4022 + ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4023 + } 1.4024 + while (0); 1.4025 + dst += dstStride; 1.4026 + src += srcStride; 1.4027 + } 1.4028 +} 1.4029 +static inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4030 +{ 1.4031 + int i; 1.4032 + for (i = 0; 1.4033 + i < h; 1.4034 + i++) 1.4035 + { 1.4036 + do 1.4037 + { 1.4038 + ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4039 + ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4040 + ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4041 + ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4042 + } 1.4043 + while (0); 1.4044 + do 1.4045 + { 1.4046 + ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4047 + ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4048 + ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4049 + ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4050 + } 1.4051 + while (0); 1.4052 + dst[8] = src[8]; 1.4053 + dst += dstStride; 1.4054 + src += srcStride; 1.4055 + } 1.4056 +} 1.4057 +static inline void copy_block16(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4058 +{ 1.4059 + int i; 1.4060 + for (i = 0; 1.4061 + i < h; 1.4062 + i++) 1.4063 + { 1.4064 + do 1.4065 + { 1.4066 + ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4067 + ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4068 + ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4069 + ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4070 + } 1.4071 + while (0); 1.4072 + do 1.4073 + { 1.4074 + ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4075 + ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4076 + ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4077 + ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4078 + } 1.4079 + while (0); 1.4080 + do 1.4081 + { 1.4082 + ((uint8_t *) (dst + 8))[0] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])); 1.4083 + ((uint8_t *) (dst + 8))[1] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 8; 1.4084 + ((uint8_t *) (dst + 8))[2] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 16; 1.4085 + ((uint8_t *) (dst + 8))[3] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 24; 1.4086 + } 1.4087 + while (0); 1.4088 + do 1.4089 + { 1.4090 + ((uint8_t *) (dst + 12))[0] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])); 1.4091 + ((uint8_t *) (dst + 12))[1] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 8; 1.4092 + ((uint8_t *) (dst + 12))[2] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 16; 1.4093 + ((uint8_t *) (dst + 12))[3] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 24; 1.4094 + } 1.4095 + while (0); 1.4096 + dst += dstStride; 1.4097 + src += srcStride; 1.4098 + } 1.4099 +} 1.4100 +static inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) 1.4101 +{ 1.4102 + int i; 1.4103 + for (i = 0; 1.4104 + i < h; 1.4105 + i++) 1.4106 + { 1.4107 + do 1.4108 + { 1.4109 + ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])); 1.4110 + ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8; 1.4111 + ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16; 1.4112 + ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24; 1.4113 + } 1.4114 + while (0); 1.4115 + do 1.4116 + { 1.4117 + ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])); 1.4118 + ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8; 1.4119 + ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16; 1.4120 + ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24; 1.4121 + } 1.4122 + while (0); 1.4123 + do 1.4124 + { 1.4125 + ((uint8_t *) (dst + 8))[0] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])); 1.4126 + ((uint8_t *) (dst + 8))[1] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 8; 1.4127 + ((uint8_t *) (dst + 8))[2] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 16; 1.4128 + ((uint8_t *) (dst + 8))[3] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 24; 1.4129 + } 1.4130 + while (0); 1.4131 + do 1.4132 + { 1.4133 + ((uint8_t *) (dst + 12))[0] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])); 1.4134 + ((uint8_t *) (dst + 12))[1] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 8; 1.4135 + ((uint8_t *) (dst + 12))[2] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 16; 1.4136 + ((uint8_t *) (dst + 12))[3] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 24; 1.4137 + } 1.4138 + while (0); 1.4139 + dst[16] = src[16]; 1.4140 + dst += dstStride; 1.4141 + src += srcStride; 1.4142 + } 1.4143 +} 1.4144 +typedef void (*h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset); 1.4145 +typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset); 1.4146 +typedef struct H264DSPContext 1.4147 +{ 1.4148 + h264_weight_func weight_h264_pixels_tab[10]; 1.4149 + h264_biweight_func biweight_h264_pixels_tab[10]; 1.4150 + void (*h264_v_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4151 + void (*h264_h_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4152 + void (*h264_v_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4153 + void (*h264_h_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4154 + void (*h264_v_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4155 + void (*h264_h_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0); 1.4156 + void (*h264_v_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4157 + void (*h264_h_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta); 1.4158 + void (*h264_loop_filter_strength)(int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field); 1.4159 + void (*h264_idct_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4160 + void (*h264_idct8_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4161 + void (*h264_idct_dc_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4162 + void (*h264_idct8_dc_add)(uint8_t *dst, DCTELEM *block, int stride); 1.4163 + void (*h264_dct)(DCTELEM block[4][4]); 1.4164 + void (*h264_idct_add16)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4165 + void (*h264_idct8_add4)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4166 + void (*h264_idct_add8)(uint8_t **dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4167 + void (*h264_idct_add16intra)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]); 1.4168 + qpel_mc_func (*qpel_put)[16]; 1.4169 + qpel_mc_func (*qpel_avg)[16]; 1.4170 +} H264DSPContext; 1.4171 +void ff_h264dsp_init(H264DSPContext *c); 1.4172 +void ff_h264dsp_init_arm(H264DSPContext *c); 1.4173 +void ff_h264dsp_init_ppc(H264DSPContext *c); 1.4174 +void ff_h264dsp_init_x86(H264DSPContext *c); 1.4175 +typedef struct H264PredContext 1.4176 +{ 1.4177 + void (*pred4x4[9 + 3 + 3])(uint8_t *src, uint8_t *topright, int stride); 1.4178 + void (*pred8x8l[9 + 3])(uint8_t *src, int topleft, int topright, int stride); 1.4179 + void (*pred8x8[4 + 3 + 4])(uint8_t *src, int stride); 1.4180 + void (*pred16x16[4 + 3])(uint8_t *src, int stride); 1.4181 + void (*pred4x4_add[2])(uint8_t *pix, const DCTELEM *block, int stride); 1.4182 + void (*pred8x8l_add[2])(uint8_t *pix, const DCTELEM *block, int stride); 1.4183 + void (*pred8x8_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride); 1.4184 + void (*pred16x16_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride); 1.4185 +} H264PredContext; 1.4186 +void ff_h264_pred_init(H264PredContext *h); 1.4187 +void ff_h264_pred_init_arm(H264PredContext *h); 1.4188 +typedef struct 1.4189 +{ 1.4190 + const char *class_name; 1.4191 + const char *(*item_name)(void *ctx); 1.4192 + const struct AVOption *option; 1.4193 + int version; 1.4194 +} AVClass; 1.4195 +void av_log(int level, const char *fmt, ...); 1.4196 +void av_vlog(int level, const char *fmt, va_list); 1.4197 +int av_log_get_level(void); 1.4198 +void av_log_set_level(int); 1.4199 +void av_log_set_callback(void (*)(int, const char *, va_list)); 1.4200 +void av_log_default_callback(int level, const char *fmt, va_list vl); 1.4201 +static inline uint64_t read_time(void) 1.4202 +{ 1.4203 + uint32_t a, d; 1.4204 + __asm__ volatile("rdtsc": "=a" (a), "=d" (d): ); 1.4205 + return ((uint64_t) d << 32) + a; 1.4206 +} 1.4207 +static inline int32_t NEG_SSR32(int32_t a, int8_t s) 1.4208 +{ 1.4209 + __asm__ ("sarl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s))); 1.4210 + return a; 1.4211 +} 1.4212 +static inline uint32_t NEG_USR32(uint32_t a, int8_t s) 1.4213 +{ 1.4214 + __asm__ ("shrl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s))); 1.4215 + return a; 1.4216 +} 1.4217 +static __attribute__((always_inline)) inline int MULH(int a, int b) 1.4218 +{ 1.4219 + return ((int64_t) (a) * (int64_t) (b)) >> 32; 1.4220 +} 1.4221 +static __attribute__((always_inline)) inline unsigned UMULH(unsigned a, unsigned b) 1.4222 +{ 1.4223 + return ((uint64_t) (a) * (uint64_t) (b)) >> 32; 1.4224 +} 1.4225 +static inline __attribute__((const)) int mid_pred(int a, int b, int c) 1.4226 +{ 1.4227 + if (a > b) 1.4228 + { 1.4229 + if (c > b) 1.4230 + { 1.4231 + if (c > a) 1.4232 + b = a; 1.4233 + else 1.4234 + b = c; 1.4235 + } 1.4236 + } 1.4237 + else 1.4238 + { 1.4239 + if (b > c) 1.4240 + { 1.4241 + if (c > a) 1.4242 + b = c; 1.4243 + else 1.4244 + b = a; 1.4245 + } 1.4246 + } 1.4247 + return b; 1.4248 +} 1.4249 +static inline __attribute__((const)) int sign_extend(int val, unsigned bits) 1.4250 +{ 1.4251 + return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits); 1.4252 +} 1.4253 +static inline __attribute__((const)) unsigned zero_extend(unsigned val, unsigned bits) 1.4254 +{ 1.4255 + return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits); 1.4256 +} 1.4257 +typedef struct GetBitContext 1.4258 +{ 1.4259 + uint8_t *rbsp; 1.4260 + unsigned int rbsp_size; 1.4261 + uint8_t *raw; 1.4262 + const uint8_t *buffer, *buffer_end; 1.4263 + unsigned int alloc_size; 1.4264 + unsigned int buf_size; 1.4265 + uint32_t *buffer_ptr; 1.4266 + uint32_t cache0; 1.4267 + uint32_t cache1; 1.4268 + int bit_count; 1.4269 + int size_in_bits; 1.4270 +} GetBitContext; 1.4271 +static inline int get_bits_count(const GetBitContext *s) 1.4272 +{ 1.4273 + return ((uint8_t *) s->buffer_ptr - s->buffer) * 8 - 32 + s->bit_count; 1.4274 +} 1.4275 +static inline void skip_bits_long(GetBitContext *s, int n) 1.4276 +{ 1.4277 + int re_bit_count = (s)->bit_count; 1.4278 + uint32_t re_cache0 = (s)->cache0; 1.4279 + uint32_t re_cache1 = (s)->cache1; 1.4280 + uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4281 + re_bit_count += n; 1.4282 + re_buffer_ptr += re_bit_count >> 5; 1.4283 + re_bit_count &= 31; 1.4284 + re_cache0 = bswap_32(re_buffer_ptr[- 1]) << re_bit_count; 1.4285 + re_cache1 = 0; 1.4286 + if (re_bit_count > 0) 1.4287 + { 1.4288 + const uint32_t next = bswap_32(*re_buffer_ptr); 1.4289 + re_cache0 |= NEG_USR32(next, re_bit_count); 1.4290 + re_cache1 |= next << re_bit_count; 1.4291 + re_buffer_ptr++; 1.4292 + re_bit_count -= 32; 1.4293 + } 1.4294 + (s)->bit_count = re_bit_count; 1.4295 + (s)->cache0 = re_cache0; 1.4296 + (s)->cache1 = re_cache1; 1.4297 + (s)->buffer_ptr = re_buffer_ptr; 1.4298 +} 1.4299 +static inline int get_xbits(GetBitContext *s, int n) 1.4300 +{ 1.4301 + register int sign; 1.4302 + register int32_t cache; 1.4303 + int re_bit_count = (s)->bit_count; 1.4304 + uint32_t re_cache0 = (s)->cache0; 1.4305 + uint32_t re_cache1 = (s)->cache1; 1.4306 + uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4307 + if (re_bit_count > 0) 1.4308 + { 1.4309 + const uint32_t next = bswap_32(*re_buffer_ptr); 1.4310 + re_cache0 |= NEG_USR32(next, re_bit_count); 1.4311 + re_cache1 |= next << re_bit_count; 1.4312 + re_buffer_ptr++; 1.4313 + re_bit_count -= 32; 1.4314 + } 1.4315 + cache = (re_cache0); 1.4316 + sign = (~cache) >> 31; 1.4317 + { 1.4318 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.4319 + re_bit_count += (n); 1.4320 + } 1.4321 + (s)->bit_count = re_bit_count; 1.4322 + (s)->cache0 = re_cache0; 1.4323 + (s)->cache1 = re_cache1; 1.4324 + (s)->buffer_ptr = re_buffer_ptr; 1.4325 + return (NEG_USR32(sign ^ cache, n) ^ sign) - sign; 1.4326 +} 1.4327 +static inline int get_sbits(GetBitContext *s, int n) 1.4328 +{ 1.4329 + register int tmp; 1.4330 + int re_bit_count = (s)->bit_count; 1.4331 + uint32_t re_cache0 = (s)->cache0; 1.4332 + uint32_t re_cache1 = (s)->cache1; 1.4333 + uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4334 + if (re_bit_count > 0) 1.4335 + { 1.4336 + const uint32_t next = bswap_32(*re_buffer_ptr); 1.4337 + re_cache0 |= NEG_USR32(next, re_bit_count); 1.4338 + re_cache1 |= next << re_bit_count; 1.4339 + re_buffer_ptr++; 1.4340 + re_bit_count -= 32; 1.4341 + } 1.4342 + tmp = NEG_SSR32(re_cache0, n); 1.4343 + { 1.4344 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.4345 + re_bit_count += (n); 1.4346 + } 1.4347 + (s)->bit_count = re_bit_count; 1.4348 + (s)->cache0 = re_cache0; 1.4349 + (s)->cache1 = re_cache1; 1.4350 + (s)->buffer_ptr = re_buffer_ptr; 1.4351 + return tmp; 1.4352 +} 1.4353 +static inline unsigned int get_bits(GetBitContext *s, int n) 1.4354 +{ 1.4355 + register int tmp; 1.4356 + int re_bit_count = (s)->bit_count; 1.4357 + uint32_t re_cache0 = (s)->cache0; 1.4358 + uint32_t re_cache1 = (s)->cache1; 1.4359 + uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4360 + if (re_bit_count > 0) 1.4361 + { 1.4362 + const uint32_t next = bswap_32(*re_buffer_ptr); 1.4363 + re_cache0 |= NEG_USR32(next, re_bit_count); 1.4364 + re_cache1 |= next << re_bit_count; 1.4365 + re_buffer_ptr++; 1.4366 + re_bit_count -= 32; 1.4367 + } 1.4368 + tmp = NEG_USR32(re_cache0, n); 1.4369 + { 1.4370 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.4371 + re_bit_count += (n); 1.4372 + } 1.4373 + (s)->bit_count = re_bit_count; 1.4374 + (s)->cache0 = re_cache0; 1.4375 + (s)->cache1 = re_cache1; 1.4376 + (s)->buffer_ptr = re_buffer_ptr; 1.4377 + return tmp; 1.4378 +} 1.4379 +static inline unsigned int show_bits(GetBitContext *s, int n) 1.4380 +{ 1.4381 + register int tmp; 1.4382 + int re_bit_count = (s)->bit_count; 1.4383 + uint32_t re_cache0 = (s)->cache0; 1.4384 + uint32_t re_cache1 = (s)->cache1; 1.4385 + uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4386 + if (re_bit_count > 0) 1.4387 + { 1.4388 + const uint32_t next = bswap_32(*re_buffer_ptr); 1.4389 + re_cache0 |= NEG_USR32(next, re_bit_count); 1.4390 + re_cache1 |= next << re_bit_count; 1.4391 + re_buffer_ptr++; 1.4392 + re_bit_count -= 32; 1.4393 + } 1.4394 + tmp = NEG_USR32(re_cache0, n); 1.4395 + return tmp; 1.4396 +} 1.4397 +static inline void skip_bits(GetBitContext *s, int n) 1.4398 +{ 1.4399 + int re_bit_count = (s)->bit_count; 1.4400 + uint32_t re_cache0 = (s)->cache0; 1.4401 + uint32_t re_cache1 = (s)->cache1; 1.4402 + uint32_t *re_buffer_ptr = (s)->buffer_ptr; 1.4403 + if (re_bit_count > 0) 1.4404 + { 1.4405 + const uint32_t next = bswap_32(*re_buffer_ptr); 1.4406 + re_cache0 |= NEG_USR32(next, re_bit_count); 1.4407 + re_cache1 |= next << re_bit_count; 1.4408 + re_buffer_ptr++; 1.4409 + re_bit_count -= 32; 1.4410 + } 1.4411 + { 1.4412 + __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n))); 1.4413 + re_bit_count += (n); 1.4414 + } 1.4415 + (s)->bit_count = re_bit_count; 1.4416 + (s)->cache0 = re_cache0; 1.4417 + (s)->cache1 = re_cache1; 1.4418 + (s)->buffer_ptr = re_buffer_ptr; 1.4419 +} 1.4420 +static inline unsigned int get_bits1(GetBitContext *s) 1.4421 +{ 1.4422 + return get_bits(s, 1); 1.4423 +} 1.4424 +static inline unsigned int show_bits1(GetBitContext *s) 1.4425 +{ 1.4426 + return show_bits(s, 1); 1.4427 +} 1.4428 +static inline void skip_bits1(GetBitContext *s) 1.4429 +{ 1.4430 + skip_bits(s, 1); 1.4431 +} 1.4432 +static inline unsigned int get_bits_long(GetBitContext *s, int n) 1.4433 +{ 1.4434 + if (n <= 32) 1.4435 + return get_bits(s, n); 1.4436 + else 1.4437 + { 1.4438 + int ret = get_bits(s, 16) << (n - 16); 1.4439 + return ret | get_bits(s, n - 16); 1.4440 + } 1.4441 +} 1.4442 +static inline int get_sbits_long(GetBitContext *s, int n) 1.4443 +{ 1.4444 + return sign_extend(get_bits_long(s, n), n); 1.4445 +} 1.4446 +static inline unsigned int show_bits_long(GetBitContext *s, int n) 1.4447 +{ 1.4448 + if (n <= 32) 1.4449 + return show_bits(s, n); 1.4450 + else 1.4451 + { 1.4452 + GetBitContext gb = *s; 1.4453 + return get_bits_long(&gb, n); 1.4454 + } 1.4455 +} 1.4456 +static inline int check_marker(GetBitContext *s, const char *msg) 1.4457 +{ 1.4458 + int bit = get_bits1(s); 1.4459 + if (!bit) 1.4460 + av_log(32, "Marker bit missing %s\n", msg); 1.4461 + return bit; 1.4462 +} 1.4463 +static inline void init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size) 1.4464 +{ 1.4465 + int buffer_size = (bit_size + 7) >> 3; 1.4466 + if (buffer_size < 0 || bit_size < 0) 1.4467 + { 1.4468 + buffer_size = bit_size = 0; 1.4469 + buffer = ((void *) 0); 1.4470 + } 1.4471 + s->buffer = buffer; 1.4472 + s->size_in_bits = bit_size; 1.4473 + s->buffer_end = buffer + buffer_size; 1.4474 + s->buffer_ptr = (uint32_t *) ((intptr_t) buffer & (~3)); 1.4475 + s->bit_count = 32 + 8 * ((intptr_t) buffer & 3); 1.4476 + skip_bits_long(s, 0); 1.4477 +} 1.4478 +static inline void align_get_bits(GetBitContext *s) 1.4479 +{ 1.4480 + int n = (- get_bits_count(s)) & 7; 1.4481 + if (n) 1.4482 + skip_bits(s, n); 1.4483 +} 1.4484 +static inline int get_bits_left(GetBitContext *gb) 1.4485 +{ 1.4486 + return gb->size_in_bits - get_bits_count(gb); 1.4487 +} 1.4488 +enum 1.4489 +{ 1.4490 + PARSE = 0, 1.4491 + ENTROPY, 1.4492 + REORDER, 1.4493 + REORDER2, 1.4494 + MBDEC, 1.4495 + OUTPUT, 1.4496 + STAGES 1.4497 +}; 1.4498 +enum 1.4499 +{ 1.4500 + TOTAL = 0, 1.4501 + FRONT, 1.4502 + ED, 1.4503 + REC, 1.4504 + PROFILE_STAGES 1.4505 +}; 1.4506 +typedef struct ParserContext 1.4507 +{ 1.4508 + int ifile; 1.4509 + int ofile; 1.4510 + int buffer_size; 1.4511 + int eof_reached; 1.4512 + uint8_t *data; 1.4513 + int size; 1.4514 + uint8_t *cur_ptr; 1.4515 + int cur_len; 1.4516 + int64_t frame_offset; 1.4517 + int64_t cur_offset; 1.4518 + int64_t next_frame_offset; 1.4519 + int pict_type; 1.4520 + int repeat_pict; 1.4521 + int key_frame; 1.4522 + int64_t pos; 1.4523 + int64_t last_pos; 1.4524 + int final_frame; 1.4525 + uint8_t overread[5]; 1.4526 + int overread_cnt; 1.4527 + int index; 1.4528 + int last_index; 1.4529 + int frame_start_found; 1.4530 + uint32_t state; 1.4531 +} ParserContext; 1.4532 +typedef struct NalContext 1.4533 +{ 1.4534 + SPS *sps_buffers[32]; 1.4535 + PPS *pps_buffers[256]; 1.4536 + SPS sps; 1.4537 + PictureInfo picture[16 + 1]; 1.4538 + PictureInfo *release_ref[66]; 1.4539 + PictureInfo *short_ref[32]; 1.4540 + PictureInfo *long_ref[32]; 1.4541 + int long_ref_count; 1.4542 + int short_ref_count; 1.4543 + uint32_t coded_pic_num; 1.4544 + int poc_lsb; 1.4545 + int poc_msb; 1.4546 + uint32_t poc_offset; 1.4547 + int delta_poc; 1.4548 + int frame_num; 1.4549 + int prev_poc_msb; 1.4550 + int prev_poc_lsb; 1.4551 + int frame_num_offset; 1.4552 + int prev_frame_num_offset; 1.4553 + int prev_frame_num; 1.4554 + int max_pic_num; 1.4555 + int redundant_pic_count; 1.4556 + int outputed_poc; 1.4557 + int ip_id; 1.4558 + int b4_stride; 1.4559 + int mb_stride; 1.4560 + int mb_width; 1.4561 + int mb_height; 1.4562 + int width; 1.4563 + int height; 1.4564 + int has_b_frames; 1.4565 + SEI_PicStructType sei_pic_struct; 1.4566 + int sei_ct_type; 1.4567 + int sei_dpb_output_delay; 1.4568 + int sei_cpb_removal_delay; 1.4569 + int sei_recovery_frame_cnt; 1.4570 + int sei_buffering_period_present; 1.4571 + int initial_cpb_removal_delay[32]; 1.4572 +} NalContext; 1.4573 +typedef struct EntropyContext 1.4574 +{ 1.4575 + CABACContext c; 1.4576 + H264Mb *m; 1.4577 + int top_cbp; 1.4578 + int left_cbp; 1.4579 + int neighbor_transform_size; 1.4580 + uint32_t top_type; 1.4581 + uint32_t left_type; 1.4582 + uint32_t topright_type; 1.4583 + uint32_t topleft_type; 1.4584 + int curr_qscale; 1.4585 + int chroma_qp[2]; 1.4586 + int last_qscale_diff; 1.4587 + uint32_t dequant4_buffer[6][52][16]; 1.4588 + uint32_t dequant8_buffer[2][52][64]; 1.4589 + uint32_t (*dequant4_coeff[6])[16]; 1.4590 + uint32_t (*dequant8_coeff[2])[64]; 1.4591 + uint8_t (*non_zero_count_top)[8]; 1.4592 + uint8_t (*non_zero_count)[8]; 1.4593 + uint8_t (*non_zero_count_row[2])[8]; 1.4594 + uint8_t __attribute__((aligned(8))) non_zero_count_left[8]; 1.4595 + uint8_t (*mvd_top[2])[2]; 1.4596 + uint8_t (*mvd[2])[2]; 1.4597 + uint8_t (*mvd_table[2][2])[2]; 1.4598 + uint8_t *direct_top; 1.4599 + uint8_t *direct; 1.4600 + uint8_t *direct_table[2]; 1.4601 + uint8_t *chroma_pred_mode_top; 1.4602 + uint8_t *chroma_pred_mode; 1.4603 + uint8_t *chroma_pred_mode_table[2]; 1.4604 + uint16_t *cbp_top; 1.4605 + uint16_t *cbp; 1.4606 + uint16_t *cbp_table[2]; 1.4607 + int8_t *qscale_top; 1.4608 + int8_t *qscale; 1.4609 + int8_t *qscale_table[2]; 1.4610 + int8_t *ref_index_top[2]; 1.4611 + int8_t *ref_index[2]; 1.4612 + int8_t *ref_index_table[2][2]; 1.4613 + uint32_t *mb_type_top; 1.4614 + uint32_t *mb_type; 1.4615 + uint32_t *mb_type_table[2]; 1.4616 + int b_stride; 1.4617 + int mb_stride; 1.4618 + int mb_width; 1.4619 + int mb_height; 1.4620 + uint8_t *zigzag_scan; 1.4621 + uint8_t *zigzag_scan8x8; 1.4622 + uint8_t direct_cache[5 * 8]; 1.4623 + int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8]; 1.4624 + int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2]; 1.4625 + int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8]; 1.4626 + uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8]; 1.4627 + uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2]; 1.4628 +} EntropyContext; 1.4629 +typedef struct H264Slice 1.4630 +{ 1.4631 + PPS pps; 1.4632 + PictureInfo *current_picture_info; 1.4633 + DecodedPicture *curr_pic; 1.4634 + int slice_num; 1.4635 + int release_ref_cpn[66]; 1.4636 + int release_cnt; 1.4637 + int qp_thresh; 1.4638 + int use_weight; 1.4639 + int use_weight_chroma; 1.4640 + int luma_log2_weight_denom; 1.4641 + int chroma_log2_weight_denom; 1.4642 + int16_t luma_weight[16][2][2]; 1.4643 + int16_t chroma_weight[16][2][2][2]; 1.4644 + int16_t implicit_weight[16][16][2]; 1.4645 + int ref_list_cpn[2][16]; 1.4646 + PictureInfo *ref_list[2][16]; 1.4647 + DecodedPicture *dp_ref_list[2][16]; 1.4648 + int ref_count[2]; 1.4649 + int slice_type; 1.4650 + int slice_type_nos; 1.4651 + int slice_alpha_c0_offset; 1.4652 + int slice_beta_offset; 1.4653 + int direct_8x8_inference_flag; 1.4654 + uint8_t list_count; 1.4655 + uint32_t coded_pic_num; 1.4656 + int poc; 1.4657 + int key_frame; 1.4658 + int mmco_reset; 1.4659 + int ip_id; 1.4660 + int transform_bypass; 1.4661 + int direct_spatial_mv_pred; 1.4662 + int map_col_to_list0[2][16]; 1.4663 + int dist_scale_factor[16]; 1.4664 + int cabac_init_idc; 1.4665 + int nal_ref_idc; 1.4666 + int nal_unit_type; 1.4667 + int ref2frm[2][64]; 1.4668 + int qscale; 1.4669 +} H264Slice; 1.4670 +typedef struct 1.4671 +{ 1.4672 + H264Slice slice; 1.4673 + H264Mb *mbs; 1.4674 + DecodedPicture *dp; 1.4675 + GetBitContext gb; 1.4676 + int lines_taken; 1.4677 + int lines_total; 1.4678 + int state; 1.4679 + int initialized; 1.4680 +} SliceBufferEntry; 1.4681 +typedef struct RingLineEntry 1.4682 +{ 1.4683 + union 1.4684 + { 1.4685 + volatile int32_t __attribute__((aligned(64))) mb_cnt; 1.4686 + int32_t __attribute__((aligned(64))) pad[16]; 1.4687 + }; 1.4688 + SliceBufferEntry *sbe; 1.4689 + int id; 1.4690 + int line; 1.4691 + TopBorder *top; 1.4692 + struct RingLineEntry *prev_line; 1.4693 +} RingLineEntry; 1.4694 +typedef struct SuperMBTask 1.4695 +{ 1.4696 + int smb_x; 1.4697 + int smb_y; 1.4698 +} SuperMBTask; 1.4699 +typedef struct SuperMBContext 1.4700 +{ 1.4701 + int nsmb_width; 1.4702 + int nsmb_height; 1.4703 + int nsmb_3dheight; 1.4704 + int smb_width; 1.4705 + int smb_height; 1.4706 + int refcount; 1.4707 + int index; 1.4708 + SuperMBTask *smbs[2]; 1.4709 +} SuperMBContext; 1.4710 +typedef struct MBRecState 1.4711 +{ 1.4712 + int8_t *ref_index_top[2]; 1.4713 + int8_t *ref_index[2]; 1.4714 + int16_t (*motion_val_top[2])[2]; 1.4715 + int16_t (*motion_val[2])[2]; 1.4716 + uint32_t *mb_type_top; 1.4717 + uint32_t *mb_type; 1.4718 + int8_t *list1_ref_index[2]; 1.4719 + int16_t (*list1_motion_val[2])[2]; 1.4720 + uint32_t *list1_mb_type; 1.4721 + int8_t *intra4x4_pred_mode_top; 1.4722 + int8_t *intra4x4_pred_mode; 1.4723 + int8_t *non_zero_count_top; 1.4724 + int8_t *non_zero_count; 1.4725 + unsigned int topleft_samples_available; 1.4726 + unsigned int topright_samples_available; 1.4727 + unsigned int top_samples_available; 1.4728 + unsigned int left_samples_available; 1.4729 + int top_type; 1.4730 + int left_type; 1.4731 + int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8]; 1.4732 + int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2]; 1.4733 + int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8]; 1.4734 + uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8]; 1.4735 + uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2]; 1.4736 + int16_t __attribute__((aligned(8))) bS[2][4][4]; 1.4737 + uint8_t edges[2]; 1.4738 +} MBRecState; 1.4739 +typedef struct MBRecContext 1.4740 +{ 1.4741 + DSPContext dsp; 1.4742 + H264DSPContext hdsp; 1.4743 + H264PredContext hpc; 1.4744 + MBRecState *mrs; 1.4745 + RingLineEntry *rle; 1.4746 + uint8_t *scratchpad_y; 1.4747 + uint8_t *scratchpad_cb; 1.4748 + uint8_t *scratchpad_cr; 1.4749 + int linesize; 1.4750 + int uvlinesize; 1.4751 + int mb_width; 1.4752 + int mb_height; 1.4753 + int mb_stride; 1.4754 + int b_stride; 1.4755 + int width; 1.4756 + int height; 1.4757 + int block_offset[16 + 8]; 1.4758 +} MBRecContext; 1.4759 +typedef struct OutputContext 1.4760 +{ 1.4761 + int bit_buffer_size; 1.4762 + uint8_t *bit_buffer; 1.4763 + uint64_t video_size; 1.4764 + int frame_number; 1.4765 + DecodedPicture *delayed_pic[33]; 1.4766 + int dp_cnt; 1.4767 +} OutputContext; 1.4768 +typedef struct 1.4769 +{ 1.4770 + pthread_mutex_t lock; 1.4771 + pthread_cond_t cond; 1.4772 + SliceBufferEntry **queue; 1.4773 + int size; 1.4774 + int cnt; 1.4775 + int fi; 1.4776 + int fo; 1.4777 +} SliceBufferQueue; 1.4778 +typedef struct 1.4779 +{ 1.4780 + pthread_mutex_t wslock; 1.4781 + pthread_cond_t wscond; 1.4782 + pthread_mutex_t swlock; 1.4783 + pthread_cond_t swcond; 1.4784 + RingLineEntry **queue; 1.4785 + int size; 1.4786 + int ready; 1.4787 + int free; 1.4788 + int fi; 1.4789 + int fo; 1.4790 +} RingLineQueue; 1.4791 +typedef struct H264Context 1.4792 +{ 1.4793 + SliceBufferQueue sb_q[STAGES]; 1.4794 + RingLineQueue rl_q; 1.4795 + pthread_mutex_t lock[STAGES]; 1.4796 + pthread_cond_t cond[STAGES]; 1.4797 + pthread_mutex_t task_lock; 1.4798 + pthread_cond_t task_cond; 1.4799 + pthread_attr_t ed_rec_attr[80]; 1.4800 + pthread_t ed_rec_thr[80]; 1.4801 + int init_threads; 1.4802 + pthread_mutex_t ilock; 1.4803 + pthread_cond_t icond; 1.4804 + const char *file_name; 1.4805 + int profile; 1.4806 + int start; 1.4807 + int touch_start; 1.4808 + int setaff; 1.4809 + int touch_done; 1.4810 + int rl_side_touch; 1.4811 + int statmbd; 1.4812 + pthread_mutex_t slock; 1.4813 + pthread_cond_t scond; 1.4814 + pthread_mutex_t tlock; 1.4815 + pthread_cond_t tcond; 1.4816 + pthread_mutex_t tdlock; 1.4817 + pthread_cond_t tdcond; 1.4818 + int ed_ppe_threads; 1.4819 + int threads; 1.4820 + int smt; 1.4821 + int acdpb_cnt; 1.4822 + int reldpb_cnt; 1.4823 + int sb_size; 1.4824 + SliceBufferEntry *sb; 1.4825 + int free_sb_cnt; 1.4826 + int slice_bufs; 1.4827 + int max_dpb_cnt; 1.4828 + DecodedPicture *dpb; 1.4829 + int free_dpb_cnt; 1.4830 + int ifile; 1.4831 + int ofile; 1.4832 + int frame_width; 1.4833 + int frame_height; 1.4834 + int num_frames; 1.4835 + int width; 1.4836 + int height; 1.4837 + int mb_width; 1.4838 + int mb_height; 1.4839 + int mb_stride; 1.4840 + int b4_stride; 1.4841 + int b_stride; 1.4842 + int smb_height; 1.4843 + int smb_width; 1.4844 + pthread_mutex_t smb_lock; 1.4845 + pthread_cond_t sdl_cond; 1.4846 + pthread_mutex_t sdl_lock; 1.4847 + SuperMBContext *smbc; 1.4848 + int wave_order; 1.4849 + int static_3d; 1.4850 + int pipe_bufs; 1.4851 + uint8_t zigzag_scan[16]; 1.4852 + uint8_t zigzag_scan8x8[64]; 1.4853 + int verbose; 1.4854 + int no_mbd; 1.4855 + int display; 1.4856 + int fullscreen; 1.4857 + int quit; 1.4858 + struct timespec start_time[PROFILE_STAGES]; 1.4859 + struct timespec end_time[PROFILE_STAGES]; 1.4860 + double last_time[PROFILE_STAGES]; 1.4861 + double total_time[PROFILE_STAGES]; 1.4862 +} H264Context; 1.4863 +void av_read_frame_internal(ParserContext *pc, GetBitContext *gb); 1.4864 +ParserContext *get_parse_context(int ifile); 1.4865 +void free_parse_context(ParserContext *pc); 1.4866 +int decode_nal_units(NalContext *n, H264Slice *s, GetBitContext *gb); 1.4867 +NalContext *get_nal_context(int width, int height); 1.4868 +void free_nal_context(NalContext *nc); 1.4869 +int ff_h264_decode_mb_cabac(EntropyContext *ec, H264Slice *s, CABACContext *c); 1.4870 +void ff_h264_init_cabac_states(EntropyContext *ec, H264Slice *s, CABACContext *c); 1.4871 +int init_entropy_buf(EntropyContext *ec, H264Slice *s, int line); 1.4872 +EntropyContext *get_entropy_context(H264Context *h); 1.4873 +void init_dequant_tables(H264Slice *s, EntropyContext *ec); 1.4874 +void free_entropy_context(EntropyContext *ec); 1.4875 +MBRecContext *get_mbrec_context(H264Context *h); 1.4876 +void free_mbrec_context(MBRecContext *d); 1.4877 +void h264_decode_mb_internal(MBRecContext *d, MBRecState *mrs, H264Slice *s, H264Mb *m); 1.4878 +void init_mbrec_context(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int line); 1.4879 +void ff_h264_pred_direct_motion_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int *mb_type); 1.4880 +int pred_motion_mb_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, H264Mb *m); 1.4881 +void start_timer(H264Context *h, int stage); 1.4882 +void stop_timer(H264Context *h, int stage); 1.4883 +void init_sb_entry(H264Context *h, SliceBufferEntry *sbe); 1.4884 +void free_sb_entry(SliceBufferEntry *sb); 1.4885 +SliceBufferEntry *get_sb_entry(H264Context *h); 1.4886 +void release_sb_entry(H264Context *h, SliceBufferEntry *sb); 1.4887 +DecodedPicture *get_dpb_entry(H264Context *h, H264Slice *s); 1.4888 +void release_dpb_entry(H264Context *h, DecodedPicture *pic, int mode); 1.4889 +void draw_edges(MBRecContext *d, H264Slice *s, int line); 1.4890 +int ff_init_slice(NalContext *n, H264Slice *s); 1.4891 +void free_picture(PictureInfo *pic); 1.4892 +void free_dp(DecodedPicture *pic); 1.4893 +void av_start_timer(); 1.4894 +int copyEDtoH264Slice(H264Slice *ms, H264Slice *es); 1.4895 +void print_report(int frame_number, uint64_t video_size, int is_last_report, int verbose); 1.4896 +int ff_alloc_picture_info(NalContext *n, H264Slice *s, PictureInfo *pic); 1.4897 +DecodedPicture *output_frame(H264Context *h, OutputContext *oc, DecodedPicture *pic, int fd, int frame_width, int frame_height); 1.4898 +OutputContext *get_output_context(H264Context *h); 1.4899 +void free_output_context(OutputContext *oc); 1.4900 +void freeSuperMBContext(SuperMBContext *smbc); 1.4901 +SuperMBContext *getSuperMBContext(H264Context *h, int smb_width, int smb_height); 1.4902 +void release_smbc(H264Context *h, SuperMBContext *smbc); 1.4903 +SuperMBContext *acquire_smbc(H264Context *h); 1.4904 +static inline int get_chroma_qp(H264Slice *s, int t, int qscale) 1.4905 +{ 1.4906 + return s->pps.chroma_qp_table[t][qscale]; 1.4907 +} 1.4908 +static void parse_task(H264Context *h, ParserContext *pc, NalContext *nc, SliceBufferEntry *sbe) 1.4909 +{ 1.4910 + H264Slice *s; 1.4911 + if (!sbe->initialized) 1.4912 + { 1.4913 + init_sb_entry(h, sbe); 1.4914 + sbe->lines_total = h->mb_height; 1.4915 + } 1.4916 + av_read_frame_internal(pc, &sbe->gb); 1.4917 + s = &sbe->slice; 1.4918 + decode_nal_units(nc, s, &sbe->gb); 1.4919 +} 1.4920 +static void decode_slice_entropy_task(H264Context *h, EntropyContext *ec, SliceBufferEntry *sbe) 1.4921 +{ 1.4922 + int i, j; 1.4923 + H264Slice *s = &sbe->slice; 1.4924 + GetBitContext *gb = &sbe->gb; 1.4925 + H264Mb *mbs = sbe->mbs; 1.4926 + CABACContext *c = &ec->c; 1.4927 + if (!s->pps.cabac) 1.4928 + { 1.4929 + av_log(16, "Only cabac encoded streams are supported\n"); 1.4930 + return; 1.4931 + } 1.4932 + init_dequant_tables(s, ec); 1.4933 + ec->curr_qscale = s->qscale; 1.4934 + ec->last_qscale_diff = 0; 1.4935 + ec->chroma_qp[0] = get_chroma_qp((H264Slice *) s, 0, s->qscale); 1.4936 + ec->chroma_qp[1] = get_chroma_qp((H264Slice *) s, 1, s->qscale); 1.4937 + align_get_bits(gb); 1.4938 + ff_init_cabac_decoder(c, gb->buffer + get_bits_count(gb) / 8, (get_bits_left(gb) + 7) / 8); 1.4939 + ff_h264_init_cabac_states(ec, s, c); 1.4940 + for (j = 0; 1.4941 + j < ec->mb_height; 1.4942 + j++) 1.4943 + { 1.4944 + init_entropy_buf(ec, s, j); 1.4945 + for (i = 0; 1.4946 + i < ec->mb_width; 1.4947 + i++) 1.4948 + { 1.4949 + int eos, ret; 1.4950 + H264Mb *m = &mbs[i + j * ec->mb_width]; 1.4951 + m->mb_x = i; 1.4952 + m->mb_y = j; 1.4953 + ec->m = m; 1.4954 + ret = ff_h264_decode_mb_cabac(ec, s, c); 1.4955 + eos = get_cabac_terminate(c); 1.4956 + (void) eos; 1.4957 + if (ret < 0 || c->bytestream > c->bytestream_end + 2) 1.4958 + { 1.4959 + av_log(16, "error while decoding MB %d %d, bytestream (%td)\n", m->mb_x, m->mb_y, c->bytestream_end - c->bytestream); 1.4960 + return; 1.4961 + } 1.4962 + } 1.4963 + } 1.4964 +} 1.4965 +static void decode_super_mb_block(MBRecContext *d, H264Slice *s, SuperMBContext *smbc, H264Mb *mbs, int smb_x, int smb_y) 1.4966 +{ 1.4967 + MBRecState mrs; 1.4968 + for (int k = 0, i = smb_y; 1.4969 + i < smb_y + smbc->smb_height; 1.4970 + i++ , k++) 1.4971 + { 1.4972 + init_mbrec_context(d, &mrs, s, i); 1.4973 + for (int j = smb_x - k; 1.4974 + j < smb_x - k + smbc->smb_width; 1.4975 + j++) 1.4976 + { 1.4977 + if (i < d->mb_height && j >= 0 && j < d->mb_width) 1.4978 + { 1.4979 + h264_decode_mb_internal(d, &mrs, s, &mbs[i * d->mb_width + j]); 1.4980 + } 1.4981 + } 1.4982 + } 1.4983 +} 1.4984 +static void decode_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *m) 1.4985 +{ 1.4986 + H264Slice *s = &sbe->slice; 1.4987 + H264Mb *mbs = sbe->mbs; 1.4988 + decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); 1.4989 +} 1.4990 +static void draw_edges_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *sm, int line) 1.4991 +{ 1.4992 + H264Slice *s = &sbe->slice; 1.4993 + for (int i = line * smbc->smb_height; 1.4994 + i < (line + 1) * smbc->smb_height && i < d->mb_height; 1.4995 + i++) 1.4996 + draw_edges(d, s, i); 1.4997 +} 1.4998 +typedef struct _nx_data_env_0_t_tag 1.4999 +{ 1.5000 + struct MBRecContext *__tmp_0_0; 1.5001 + SliceBufferEntry *__tmp_1_0; 1.5002 + struct SuperMBContext *__tmp_2_0; 1.5003 + struct SuperMBTask *__tmp_3_0; 1.5004 + struct SuperMBTask *__tmp_4_0; 1.5005 + struct SuperMBTask *__tmp_5_0; 1.5006 +} _nx_data_env_0_t; 1.5007 +static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe); 1.5008 +static void _smp__ol_decode_mb_in_slice_0(_nx_data_env_0_t *const __restrict__ _args) 1.5009 +{ 1.5010 + struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.5011 + SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.5012 + struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.5013 + struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.5014 + struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.5015 + struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0; 1.5016 + /* Translation is done by the runtime */ 1.5017 + { 1.5018 + decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.5019 + } 1.5020 +} 1.5021 +typedef struct _nx_data_env_1_t_tag 1.5022 +{ 1.5023 + struct MBRecContext *__tmp_0_0; 1.5024 + SliceBufferEntry *__tmp_1_0; 1.5025 + struct SuperMBContext *__tmp_2_0; 1.5026 + struct SuperMBTask *__tmp_3_0; 1.5027 + int __tmp_4_0; 1.5028 +} _nx_data_env_1_t; 1.5029 +static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe); 1.5030 +static void _smp__ol_decode_mb_in_slice_1(_nx_data_env_1_t *const __restrict__ _args) 1.5031 +{ 1.5032 + struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.5033 + SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.5034 + struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.5035 + struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.5036 + int ___tmp_4_0 = _args->__tmp_4_0; 1.5037 + /* Translation is done by the runtime */ 1.5038 + { 1.5039 + draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0)); 1.5040 + } 1.5041 +} 1.5042 +static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe) 1.5043 +{ 1.5044 + int i, j; 1.5045 + SuperMBContext *smbc = acquire_smbc(h); 1.5046 + int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width; 1.5047 + SuperMBTask *smbs = smbc->smbs[0]; 1.5048 + SuperMBTask *sm = ((void *) 0), *sml, *smur; 1.5049 + for (j = 0; 1.5050 + j < smb_height; 1.5051 + j++) 1.5052 + { 1.5053 + for (i = 0; 1.5054 + i < smb_width; 1.5055 + i++) 1.5056 + { 1.5057 + sm = smbs + j * smb_width + i; 1.5058 + sml = sm - ((i > 0) ? 1 : 0); 1.5059 + smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0); 1.5060 + { 1.5061 + struct MBRecContext *__tmp_0 = d; 1.5062 + SliceBufferEntry *__tmp_1 = sbe; 1.5063 + struct SuperMBContext *__tmp_2 = smbc; 1.5064 + struct SuperMBTask *__tmp_3 = sml; 1.5065 + struct SuperMBTask *__tmp_4 = smur; 1.5066 + struct SuperMBTask *__tmp_5 = sm; 1.5067 + { 1.5068 + /* SMP device descriptor */ 1.5069 + static nanos_smp_args_t _ol_decode_mb_in_slice_0_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_0}; 1.5070 + _nx_data_env_0_t *ol_args = (_nx_data_env_0_t *) 0; 1.5071 + nanos_wd_t wd = (nanos_wd_t) 0; 1.5072 + struct nanos_const_wd_definition_local_t 1.5073 + { 1.5074 + nanos_const_wd_definition_t base; 1.5075 + nanos_device_t devices[1]; 1.5076 + }; 1.5077 + static struct nanos_const_wd_definition_local_t _const_def = { 1.5078 + { 1.5079 + { 1.5080 + 0, 1.5081 + 1, 1.5082 + 0, 1.5083 + 0, 1.5084 + 0, 1.5085 + 0, 1.5086 + 0, 1.5087 + 0 1.5088 + }, 1.5089 + __alignof__(_nx_data_env_0_t), 1.5090 + 0, 1.5091 + 1 1.5092 + }, 1.5093 + {{ 1.5094 + nanos_smp_factory, 1.5095 + &_ol_decode_mb_in_slice_0_smp_args 1.5096 + }} 1.5097 + }; 1.5098 + nanos_wd_dyn_props_t dyn_props = {0}; 1.5099 + nanos_err_t err; 1.5100 + dyn_props.priority = 0; 1.5101 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_0_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.5102 + if (err != NANOS_OK) 1.5103 + nanos_handle_error(err); 1.5104 + if (wd != (nanos_wd_t) 0) 1.5105 + { 1.5106 + ol_args->__tmp_0_0 = __tmp_0; 1.5107 + ol_args->__tmp_1_0 = __tmp_1; 1.5108 + ol_args->__tmp_2_0 = __tmp_2; 1.5109 + ol_args->__tmp_3_0 = __tmp_3; 1.5110 + ol_args->__tmp_4_0 = __tmp_4; 1.5111 + ol_args->__tmp_5_0 = __tmp_5; 1.5112 + nanos_dependence_t _dependences[5] = { 1.5113 + { 1.5114 + (void **) &ol_args->__tmp_0_0, 1.5115 + ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.5116 + { 1.5117 + 1, 1.5118 + 0, 1.5119 + 1, 1.5120 + 0 1.5121 + }, 1.5122 + sizeof(struct MBRecContext) 1.5123 + }, 1.5124 + { 1.5125 + (void **) &ol_args->__tmp_1_0, 1.5126 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.5127 + { 1.5128 + 1, 1.5129 + 0, 1.5130 + 1, 1.5131 + 0 1.5132 + }, 1.5133 + sizeof(SliceBufferEntry) 1.5134 + }, 1.5135 + { 1.5136 + (void **) &ol_args->__tmp_3_0, 1.5137 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.5138 + { 1.5139 + 1, 1.5140 + 0, 1.5141 + 1, 1.5142 + 0 1.5143 + }, 1.5144 + sizeof(struct SuperMBTask) 1.5145 + }, 1.5146 + { 1.5147 + (void **) &ol_args->__tmp_4_0, 1.5148 + ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.5149 + { 1.5150 + 1, 1.5151 + 0, 1.5152 + 1, 1.5153 + 0 1.5154 + }, 1.5155 + sizeof(struct SuperMBTask) 1.5156 + }, 1.5157 + { 1.5158 + (void **) &ol_args->__tmp_5_0, 1.5159 + ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.5160 + { 1.5161 + 1, 1.5162 + 1, 1.5163 + 1, 1.5164 + 0 1.5165 + }, 1.5166 + sizeof(struct SuperMBTask) 1.5167 + } 1.5168 + }; 1.5169 + err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.5170 + if (err != NANOS_OK) 1.5171 + nanos_handle_error(err); 1.5172 + } 1.5173 + else 1.5174 + { 1.5175 + _nx_data_env_0_t imm_args; 1.5176 + imm_args.__tmp_0_0 = __tmp_0; 1.5177 + imm_args.__tmp_1_0 = __tmp_1; 1.5178 + imm_args.__tmp_2_0 = __tmp_2; 1.5179 + imm_args.__tmp_3_0 = __tmp_3; 1.5180 + imm_args.__tmp_4_0 = __tmp_4; 1.5181 + imm_args.__tmp_5_0 = __tmp_5; 1.5182 + nanos_dependence_t _dependences[5] = { 1.5183 + { 1.5184 + (void **) &imm_args.__tmp_0_0, 1.5185 + ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.5186 + { 1.5187 + 1, 1.5188 + 0, 1.5189 + 1, 1.5190 + 0 1.5191 + }, 1.5192 + sizeof(struct MBRecContext) 1.5193 + }, 1.5194 + { 1.5195 + (void **) &imm_args.__tmp_1_0, 1.5196 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.5197 + { 1.5198 + 1, 1.5199 + 0, 1.5200 + 1, 1.5201 + 0 1.5202 + }, 1.5203 + sizeof(SliceBufferEntry) 1.5204 + }, 1.5205 + { 1.5206 + (void **) &imm_args.__tmp_3_0, 1.5207 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.5208 + { 1.5209 + 1, 1.5210 + 0, 1.5211 + 1, 1.5212 + 0 1.5213 + }, 1.5214 + sizeof(struct SuperMBTask) 1.5215 + }, 1.5216 + { 1.5217 + (void **) &imm_args.__tmp_4_0, 1.5218 + ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.5219 + { 1.5220 + 1, 1.5221 + 0, 1.5222 + 1, 1.5223 + 0 1.5224 + }, 1.5225 + sizeof(struct SuperMBTask) 1.5226 + }, 1.5227 + { 1.5228 + (void **) &imm_args.__tmp_5_0, 1.5229 + ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.5230 + { 1.5231 + 1, 1.5232 + 1, 1.5233 + 1, 1.5234 + 0 1.5235 + }, 1.5236 + sizeof(struct SuperMBTask) 1.5237 + } 1.5238 + }; 1.5239 + dyn_props.priority = 0; 1.5240 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_0_t), &imm_args, 5, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.5241 + if (err != NANOS_OK) 1.5242 + nanos_handle_error(err); 1.5243 + } 1.5244 + } 1.5245 + ; 1.5246 + } 1.5247 + } 1.5248 + { 1.5249 + struct MBRecContext *__tmp_0 = d; 1.5250 + SliceBufferEntry *__tmp_1 = sbe; 1.5251 + struct SuperMBContext *__tmp_2 = smbc; 1.5252 + struct SuperMBTask *__tmp_3 = sm; 1.5253 + int __tmp_4 = j; 1.5254 + { 1.5255 + /* SMP device descriptor */ 1.5256 + static nanos_smp_args_t _ol_decode_mb_in_slice_1_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_1}; 1.5257 + _nx_data_env_1_t *ol_args = (_nx_data_env_1_t *) 0; 1.5258 + nanos_wd_t wd = (nanos_wd_t) 0; 1.5259 + struct nanos_const_wd_definition_local_t 1.5260 + { 1.5261 + nanos_const_wd_definition_t base; 1.5262 + nanos_device_t devices[1]; 1.5263 + }; 1.5264 + static struct nanos_const_wd_definition_local_t _const_def = { 1.5265 + { 1.5266 + { 1.5267 + 0, 1.5268 + 1, 1.5269 + 0, 1.5270 + 0, 1.5271 + 0, 1.5272 + 0, 1.5273 + 0, 1.5274 + 0 1.5275 + }, 1.5276 + __alignof__(_nx_data_env_1_t), 1.5277 + 0, 1.5278 + 1 1.5279 + }, 1.5280 + {{ 1.5281 + nanos_smp_factory, 1.5282 + &_ol_decode_mb_in_slice_1_smp_args 1.5283 + }} 1.5284 + }; 1.5285 + nanos_wd_dyn_props_t dyn_props = {0}; 1.5286 + nanos_err_t err; 1.5287 + dyn_props.priority = 0; 1.5288 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_1_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.5289 + if (err != NANOS_OK) 1.5290 + nanos_handle_error(err); 1.5291 + if (wd != (nanos_wd_t) 0) 1.5292 + { 1.5293 + ol_args->__tmp_0_0 = __tmp_0; 1.5294 + ol_args->__tmp_1_0 = __tmp_1; 1.5295 + ol_args->__tmp_2_0 = __tmp_2; 1.5296 + ol_args->__tmp_3_0 = __tmp_3; 1.5297 + ol_args->__tmp_4_0 = __tmp_4; 1.5298 + nanos_dependence_t _dependences[3] = { 1.5299 + { 1.5300 + (void **) &ol_args->__tmp_0_0, 1.5301 + ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.5302 + { 1.5303 + 1, 1.5304 + 0, 1.5305 + 1, 1.5306 + 0 1.5307 + }, 1.5308 + sizeof(struct MBRecContext) 1.5309 + }, 1.5310 + { 1.5311 + (void **) &ol_args->__tmp_1_0, 1.5312 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.5313 + { 1.5314 + 1, 1.5315 + 0, 1.5316 + 1, 1.5317 + 0 1.5318 + }, 1.5319 + sizeof(SliceBufferEntry) 1.5320 + }, 1.5321 + { 1.5322 + (void **) &ol_args->__tmp_3_0, 1.5323 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.5324 + { 1.5325 + 1, 1.5326 + 1, 1.5327 + 1, 1.5328 + 0 1.5329 + }, 1.5330 + sizeof(struct SuperMBTask) 1.5331 + } 1.5332 + }; 1.5333 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.5334 + if (err != NANOS_OK) 1.5335 + nanos_handle_error(err); 1.5336 + } 1.5337 + else 1.5338 + { 1.5339 + _nx_data_env_1_t imm_args; 1.5340 + imm_args.__tmp_0_0 = __tmp_0; 1.5341 + imm_args.__tmp_1_0 = __tmp_1; 1.5342 + imm_args.__tmp_2_0 = __tmp_2; 1.5343 + imm_args.__tmp_3_0 = __tmp_3; 1.5344 + imm_args.__tmp_4_0 = __tmp_4; 1.5345 + nanos_dependence_t _dependences[3] = { 1.5346 + { 1.5347 + (void **) &imm_args.__tmp_0_0, 1.5348 + ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.5349 + { 1.5350 + 1, 1.5351 + 0, 1.5352 + 1, 1.5353 + 0 1.5354 + }, 1.5355 + sizeof(struct MBRecContext) 1.5356 + }, 1.5357 + { 1.5358 + (void **) &imm_args.__tmp_1_0, 1.5359 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.5360 + { 1.5361 + 1, 1.5362 + 0, 1.5363 + 1, 1.5364 + 0 1.5365 + }, 1.5366 + sizeof(SliceBufferEntry) 1.5367 + }, 1.5368 + { 1.5369 + (void **) &imm_args.__tmp_3_0, 1.5370 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.5371 + { 1.5372 + 1, 1.5373 + 1, 1.5374 + 1, 1.5375 + 0 1.5376 + }, 1.5377 + sizeof(struct SuperMBTask) 1.5378 + } 1.5379 + }; 1.5380 + dyn_props.priority = 0; 1.5381 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_1_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.5382 + if (err != NANOS_OK) 1.5383 + nanos_handle_error(err); 1.5384 + } 1.5385 + } 1.5386 + ; 1.5387 + } 1.5388 + } 1.5389 + { 1.5390 + struct _dependence_holder 1.5391 + { 1.5392 + struct SuperMBTask *dep_0; 1.5393 + } _dep_holder = {&(*sm)}; 1.5394 + nanos_dependence_t _wait_dependences[1] = {{ 1.5395 + (void **) &_dep_holder.dep_0, 1.5396 + ((char *) ((sm)) - (char *) _dep_holder.dep_0), 1.5397 + { 1.5398 + 1, 1.5399 + 0, 1.5400 + 0, 1.5401 + 0 1.5402 + }, 1.5403 + sizeof (*sm) 1.5404 + }}; 1.5405 + nanos_wait_on(1, _wait_dependences); 1.5406 + } 1.5407 + release_smbc(h, smbc); 1.5408 +} 1.5409 +__attribute__((weak)) nanos_lock_t _nx_u_dpb_critical_lock = {NANOS_LOCK_FREE}; 1.5410 +static void decode_slice_mb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe) 1.5411 +{ 1.5412 + H264Slice *s = &sbe->slice; 1.5413 + for (int i = 0; 1.5414 + i < 2; 1.5415 + i++) 1.5416 + { 1.5417 + for (int j = 0; 1.5418 + j < s->ref_count[i]; 1.5419 + j++) 1.5420 + { 1.5421 + if (s->ref_list_cpn[i][j] == - 1) 1.5422 + continue; 1.5423 + int k; 1.5424 + for (k = 0; 1.5425 + k < h->max_dpb_cnt; 1.5426 + k++) 1.5427 + { 1.5428 + if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j]) 1.5429 + { 1.5430 + s->dp_ref_list[i][j] = &h->dpb[k]; 1.5431 + break; 1.5432 + } 1.5433 + } 1.5434 + } 1.5435 + } 1.5436 + { 1.5437 + nanos_set_lock(&_nx_u_dpb_critical_lock); 1.5438 + get_dpb_entry(h, s); 1.5439 + nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.5440 + } 1.5441 + if (!h->no_mbd) 1.5442 + { 1.5443 + decode_mb_in_slice(h, d, sbe); 1.5444 + } 1.5445 + for (int i = 0; 1.5446 + i < s->release_cnt; 1.5447 + i++) 1.5448 + { 1.5449 + for (int j = 0; 1.5450 + j < h->max_dpb_cnt; 1.5451 + j++) 1.5452 + { 1.5453 + if (h->dpb[j].cpn == s->release_ref_cpn[i]) 1.5454 + { 1.5455 + { 1.5456 + nanos_set_lock(&_nx_u_dpb_critical_lock); 1.5457 + release_dpb_entry(h, &h->dpb[j], 2); 1.5458 + nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.5459 + } 1.5460 + break; 1.5461 + } 1.5462 + } 1.5463 + } 1.5464 + s->release_cnt = 0; 1.5465 +} 1.5466 +static void decode_3dwave_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *mprev, SuperMBTask *m) 1.5467 +{ 1.5468 + H264Slice *s = &sbe->slice; 1.5469 + H264Mb *mbs = sbe->mbs; 1.5470 + decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y); 1.5471 +} 1.5472 +static void init_ref_list_and_get_dpb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe, int *init) 1.5473 +{ 1.5474 + H264Slice *s = &sbe->slice; 1.5475 + for (int i = 0; 1.5476 + i < 2; 1.5477 + i++) 1.5478 + { 1.5479 + for (int j = 0; 1.5480 + j < s->ref_count[i]; 1.5481 + j++) 1.5482 + { 1.5483 + if (s->ref_list_cpn[i][j] == - 1) 1.5484 + continue; 1.5485 + int k; 1.5486 + for (k = 0; 1.5487 + k < h->max_dpb_cnt; 1.5488 + k++) 1.5489 + { 1.5490 + if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j]) 1.5491 + { 1.5492 + s->dp_ref_list[i][j] = &h->dpb[k]; 1.5493 + break; 1.5494 + } 1.5495 + } 1.5496 + } 1.5497 + } 1.5498 + { 1.5499 + nanos_set_lock(&_nx_u_dpb_critical_lock); 1.5500 + get_dpb_entry(h, s); 1.5501 + nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.5502 + } 1.5503 +} 1.5504 +typedef struct _nx_data_env_2_t_tag 1.5505 +{ 1.5506 + struct MBRecContext *__tmp_0_0; 1.5507 + SliceBufferEntry *__tmp_1_0; 1.5508 + struct SuperMBContext *__tmp_2_0; 1.5509 + struct SuperMBTask *__tmp_3_0; 1.5510 + struct SuperMBTask *__tmp_4_0; 1.5511 + struct SuperMBTask *__tmp_5_0; 1.5512 + struct SuperMBTask *__tmp_6_0; 1.5513 +} _nx_data_env_2_t; 1.5514 +static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.5515 +static void _smp__ol_add_decode_slice_3dwave_tasks_2(_nx_data_env_2_t *const __restrict__ _args) 1.5516 +{ 1.5517 + struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.5518 + SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.5519 + struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.5520 + struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.5521 + struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.5522 + struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0; 1.5523 + struct SuperMBTask *___tmp_6_0 = _args->__tmp_6_0; 1.5524 + /* Translation is done by the runtime */ 1.5525 + { 1.5526 + decode_3dwave_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0), (___tmp_6_0)); 1.5527 + } 1.5528 +} 1.5529 +typedef struct _nx_data_env_3_t_tag 1.5530 +{ 1.5531 + struct MBRecContext *__tmp_0_0; 1.5532 + SliceBufferEntry *__tmp_1_0; 1.5533 + struct SuperMBContext *__tmp_2_0; 1.5534 + struct SuperMBTask *__tmp_3_0; 1.5535 + int __tmp_4_0; 1.5536 +} _nx_data_env_3_t; 1.5537 +static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.5538 +static void _smp__ol_add_decode_slice_3dwave_tasks_3(_nx_data_env_3_t *const __restrict__ _args) 1.5539 +{ 1.5540 + struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.5541 + SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.5542 + struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.5543 + struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.5544 + int ___tmp_4_0 = _args->__tmp_4_0; 1.5545 + /* Translation is done by the runtime */ 1.5546 + { 1.5547 + draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0)); 1.5548 + } 1.5549 +} 1.5550 +typedef struct _nx_data_env_4_t_tag 1.5551 +{ 1.5552 + struct MBRecContext *__tmp_0_0; 1.5553 + SliceBufferEntry *__tmp_1_0; 1.5554 + struct SuperMBContext *__tmp_2_0; 1.5555 + struct SuperMBTask *__tmp_3_0; 1.5556 + struct SuperMBTask *__tmp_4_0; 1.5557 + struct SuperMBTask *__tmp_5_0; 1.5558 +} _nx_data_env_4_t; 1.5559 +static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.5560 +static void _smp__ol_add_decode_slice_3dwave_tasks_4(_nx_data_env_4_t *const __restrict__ _args) 1.5561 +{ 1.5562 + struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.5563 + SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.5564 + struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.5565 + struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.5566 + struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.5567 + struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0; 1.5568 + /* Translation is done by the runtime */ 1.5569 + { 1.5570 + decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.5571 + } 1.5572 +} 1.5573 +typedef struct _nx_data_env_5_t_tag 1.5574 +{ 1.5575 + struct MBRecContext *__tmp_0_0; 1.5576 + SliceBufferEntry *__tmp_1_0; 1.5577 + struct SuperMBContext *__tmp_2_0; 1.5578 + struct SuperMBTask *__tmp_3_0; 1.5579 + int __tmp_4_0; 1.5580 +} _nx_data_env_5_t; 1.5581 +static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc); 1.5582 +static void _smp__ol_add_decode_slice_3dwave_tasks_5(_nx_data_env_5_t *const __restrict__ _args) 1.5583 +{ 1.5584 + struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0; 1.5585 + SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0; 1.5586 + struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0; 1.5587 + struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0; 1.5588 + int ___tmp_4_0 = _args->__tmp_4_0; 1.5589 + /* Translation is done by the runtime */ 1.5590 + { 1.5591 + draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0)); 1.5592 + } 1.5593 +} 1.5594 +static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc) 1.5595 +{ 1.5596 + int i, j; 1.5597 + int smb_3d_height = smbc->nsmb_3dheight; 1.5598 + int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width; 1.5599 + int smb_diff_prev = smb_height - smb_3d_height; 1.5600 + SuperMBTask *sm = ((void *) 0), *sml, *smur, *smprev; 1.5601 + SuperMBTask *smbs = smbc->smbs[smbc->index++]; 1.5602 + smbc->index %= 2; 1.5603 + SuperMBTask *smbs_prev = smbc->smbs[smbc->index]; 1.5604 + for (j = 0; 1.5605 + j < smb_3d_height; 1.5606 + j++) 1.5607 + { 1.5608 + for (i = 0; 1.5609 + i < smb_width; 1.5610 + i++) 1.5611 + { 1.5612 + sm = smbs + j * smb_width + i; 1.5613 + sml = sm - ((i > 0) ? 1 : 0); 1.5614 + smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0); 1.5615 + smprev = smbs_prev + (j + smb_diff_prev + 1) * smb_width - 1; 1.5616 + { 1.5617 + struct MBRecContext *__tmp_0 = d; 1.5618 + SliceBufferEntry *__tmp_1 = sbe; 1.5619 + struct SuperMBContext *__tmp_2 = smbc; 1.5620 + struct SuperMBTask *__tmp_3 = sml; 1.5621 + struct SuperMBTask *__tmp_4 = smur; 1.5622 + struct SuperMBTask *__tmp_5 = smprev; 1.5623 + struct SuperMBTask *__tmp_6 = sm; 1.5624 + { 1.5625 + /* SMP device descriptor */ 1.5626 + static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_2_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_2}; 1.5627 + _nx_data_env_2_t *ol_args = (_nx_data_env_2_t *) 0; 1.5628 + nanos_wd_t wd = (nanos_wd_t) 0; 1.5629 + struct nanos_const_wd_definition_local_t 1.5630 + { 1.5631 + nanos_const_wd_definition_t base; 1.5632 + nanos_device_t devices[1]; 1.5633 + }; 1.5634 + static struct nanos_const_wd_definition_local_t _const_def = { 1.5635 + { 1.5636 + { 1.5637 + 0, 1.5638 + 1, 1.5639 + 0, 1.5640 + 0, 1.5641 + 0, 1.5642 + 0, 1.5643 + 0, 1.5644 + 0 1.5645 + }, 1.5646 + __alignof__(_nx_data_env_2_t), 1.5647 + 0, 1.5648 + 1 1.5649 + }, 1.5650 + {{ 1.5651 + nanos_smp_factory, 1.5652 + &_ol_add_decode_slice_3dwave_tasks_2_smp_args 1.5653 + }} 1.5654 + }; 1.5655 + nanos_wd_dyn_props_t dyn_props = {0}; 1.5656 + nanos_err_t err; 1.5657 + dyn_props.priority = 0; 1.5658 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_2_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.5659 + if (err != NANOS_OK) 1.5660 + nanos_handle_error(err); 1.5661 + if (wd != (nanos_wd_t) 0) 1.5662 + { 1.5663 + ol_args->__tmp_0_0 = __tmp_0; 1.5664 + ol_args->__tmp_1_0 = __tmp_1; 1.5665 + ol_args->__tmp_2_0 = __tmp_2; 1.5666 + ol_args->__tmp_3_0 = __tmp_3; 1.5667 + ol_args->__tmp_4_0 = __tmp_4; 1.5668 + ol_args->__tmp_5_0 = __tmp_5; 1.5669 + ol_args->__tmp_6_0 = __tmp_6; 1.5670 + nanos_dependence_t _dependences[6] = { 1.5671 + { 1.5672 + (void **) &ol_args->__tmp_0_0, 1.5673 + ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.5674 + { 1.5675 + 1, 1.5676 + 0, 1.5677 + 1, 1.5678 + 0 1.5679 + }, 1.5680 + sizeof(struct MBRecContext) 1.5681 + }, 1.5682 + { 1.5683 + (void **) &ol_args->__tmp_1_0, 1.5684 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.5685 + { 1.5686 + 1, 1.5687 + 0, 1.5688 + 1, 1.5689 + 0 1.5690 + }, 1.5691 + sizeof(SliceBufferEntry) 1.5692 + }, 1.5693 + { 1.5694 + (void **) &ol_args->__tmp_3_0, 1.5695 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.5696 + { 1.5697 + 1, 1.5698 + 0, 1.5699 + 1, 1.5700 + 0 1.5701 + }, 1.5702 + sizeof(struct SuperMBTask) 1.5703 + }, 1.5704 + { 1.5705 + (void **) &ol_args->__tmp_4_0, 1.5706 + ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.5707 + { 1.5708 + 1, 1.5709 + 0, 1.5710 + 1, 1.5711 + 0 1.5712 + }, 1.5713 + sizeof(struct SuperMBTask) 1.5714 + }, 1.5715 + { 1.5716 + (void **) &ol_args->__tmp_5_0, 1.5717 + ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.5718 + { 1.5719 + 1, 1.5720 + 0, 1.5721 + 1, 1.5722 + 0 1.5723 + }, 1.5724 + sizeof(struct SuperMBTask) 1.5725 + }, 1.5726 + { 1.5727 + (void **) &ol_args->__tmp_6_0, 1.5728 + ((char *) ((__tmp_6)) - (char *) ol_args->__tmp_6_0), 1.5729 + { 1.5730 + 1, 1.5731 + 1, 1.5732 + 1, 1.5733 + 0 1.5734 + }, 1.5735 + sizeof(struct SuperMBTask) 1.5736 + } 1.5737 + }; 1.5738 + err = nanos_submit(wd, 6, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.5739 + if (err != NANOS_OK) 1.5740 + nanos_handle_error(err); 1.5741 + } 1.5742 + else 1.5743 + { 1.5744 + _nx_data_env_2_t imm_args; 1.5745 + imm_args.__tmp_0_0 = __tmp_0; 1.5746 + imm_args.__tmp_1_0 = __tmp_1; 1.5747 + imm_args.__tmp_2_0 = __tmp_2; 1.5748 + imm_args.__tmp_3_0 = __tmp_3; 1.5749 + imm_args.__tmp_4_0 = __tmp_4; 1.5750 + imm_args.__tmp_5_0 = __tmp_5; 1.5751 + imm_args.__tmp_6_0 = __tmp_6; 1.5752 + nanos_dependence_t _dependences[6] = { 1.5753 + { 1.5754 + (void **) &imm_args.__tmp_0_0, 1.5755 + ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.5756 + { 1.5757 + 1, 1.5758 + 0, 1.5759 + 1, 1.5760 + 0 1.5761 + }, 1.5762 + sizeof(struct MBRecContext) 1.5763 + }, 1.5764 + { 1.5765 + (void **) &imm_args.__tmp_1_0, 1.5766 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.5767 + { 1.5768 + 1, 1.5769 + 0, 1.5770 + 1, 1.5771 + 0 1.5772 + }, 1.5773 + sizeof(SliceBufferEntry) 1.5774 + }, 1.5775 + { 1.5776 + (void **) &imm_args.__tmp_3_0, 1.5777 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.5778 + { 1.5779 + 1, 1.5780 + 0, 1.5781 + 1, 1.5782 + 0 1.5783 + }, 1.5784 + sizeof(struct SuperMBTask) 1.5785 + }, 1.5786 + { 1.5787 + (void **) &imm_args.__tmp_4_0, 1.5788 + ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.5789 + { 1.5790 + 1, 1.5791 + 0, 1.5792 + 1, 1.5793 + 0 1.5794 + }, 1.5795 + sizeof(struct SuperMBTask) 1.5796 + }, 1.5797 + { 1.5798 + (void **) &imm_args.__tmp_5_0, 1.5799 + ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.5800 + { 1.5801 + 1, 1.5802 + 0, 1.5803 + 1, 1.5804 + 0 1.5805 + }, 1.5806 + sizeof(struct SuperMBTask) 1.5807 + }, 1.5808 + { 1.5809 + (void **) &imm_args.__tmp_6_0, 1.5810 + ((char *) ((__tmp_6)) - (char *) imm_args.__tmp_6_0), 1.5811 + { 1.5812 + 1, 1.5813 + 1, 1.5814 + 1, 1.5815 + 0 1.5816 + }, 1.5817 + sizeof(struct SuperMBTask) 1.5818 + } 1.5819 + }; 1.5820 + dyn_props.priority = 0; 1.5821 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_2_t), &imm_args, 6, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.5822 + if (err != NANOS_OK) 1.5823 + nanos_handle_error(err); 1.5824 + } 1.5825 + } 1.5826 + ; 1.5827 + } 1.5828 + } 1.5829 + { 1.5830 + struct MBRecContext *__tmp_0 = d; 1.5831 + SliceBufferEntry *__tmp_1 = sbe; 1.5832 + struct SuperMBContext *__tmp_2 = smbc; 1.5833 + struct SuperMBTask *__tmp_3 = sm; 1.5834 + int __tmp_4 = j; 1.5835 + { 1.5836 + /* SMP device descriptor */ 1.5837 + static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_3_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_3}; 1.5838 + _nx_data_env_3_t *ol_args = (_nx_data_env_3_t *) 0; 1.5839 + nanos_wd_t wd = (nanos_wd_t) 0; 1.5840 + struct nanos_const_wd_definition_local_t 1.5841 + { 1.5842 + nanos_const_wd_definition_t base; 1.5843 + nanos_device_t devices[1]; 1.5844 + }; 1.5845 + static struct nanos_const_wd_definition_local_t _const_def = { 1.5846 + { 1.5847 + { 1.5848 + 0, 1.5849 + 1, 1.5850 + 0, 1.5851 + 0, 1.5852 + 0, 1.5853 + 0, 1.5854 + 0, 1.5855 + 0 1.5856 + }, 1.5857 + __alignof__(_nx_data_env_3_t), 1.5858 + 0, 1.5859 + 1 1.5860 + }, 1.5861 + {{ 1.5862 + nanos_smp_factory, 1.5863 + &_ol_add_decode_slice_3dwave_tasks_3_smp_args 1.5864 + }} 1.5865 + }; 1.5866 + nanos_wd_dyn_props_t dyn_props = {0}; 1.5867 + nanos_err_t err; 1.5868 + dyn_props.priority = 0; 1.5869 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_3_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.5870 + if (err != NANOS_OK) 1.5871 + nanos_handle_error(err); 1.5872 + if (wd != (nanos_wd_t) 0) 1.5873 + { 1.5874 + ol_args->__tmp_0_0 = __tmp_0; 1.5875 + ol_args->__tmp_1_0 = __tmp_1; 1.5876 + ol_args->__tmp_2_0 = __tmp_2; 1.5877 + ol_args->__tmp_3_0 = __tmp_3; 1.5878 + ol_args->__tmp_4_0 = __tmp_4; 1.5879 + nanos_dependence_t _dependences[3] = { 1.5880 + { 1.5881 + (void **) &ol_args->__tmp_0_0, 1.5882 + ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.5883 + { 1.5884 + 1, 1.5885 + 0, 1.5886 + 1, 1.5887 + 0 1.5888 + }, 1.5889 + sizeof(struct MBRecContext) 1.5890 + }, 1.5891 + { 1.5892 + (void **) &ol_args->__tmp_1_0, 1.5893 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.5894 + { 1.5895 + 1, 1.5896 + 0, 1.5897 + 1, 1.5898 + 0 1.5899 + }, 1.5900 + sizeof(SliceBufferEntry) 1.5901 + }, 1.5902 + { 1.5903 + (void **) &ol_args->__tmp_3_0, 1.5904 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.5905 + { 1.5906 + 1, 1.5907 + 1, 1.5908 + 1, 1.5909 + 0 1.5910 + }, 1.5911 + sizeof(struct SuperMBTask) 1.5912 + } 1.5913 + }; 1.5914 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.5915 + if (err != NANOS_OK) 1.5916 + nanos_handle_error(err); 1.5917 + } 1.5918 + else 1.5919 + { 1.5920 + _nx_data_env_3_t imm_args; 1.5921 + imm_args.__tmp_0_0 = __tmp_0; 1.5922 + imm_args.__tmp_1_0 = __tmp_1; 1.5923 + imm_args.__tmp_2_0 = __tmp_2; 1.5924 + imm_args.__tmp_3_0 = __tmp_3; 1.5925 + imm_args.__tmp_4_0 = __tmp_4; 1.5926 + nanos_dependence_t _dependences[3] = { 1.5927 + { 1.5928 + (void **) &imm_args.__tmp_0_0, 1.5929 + ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.5930 + { 1.5931 + 1, 1.5932 + 0, 1.5933 + 1, 1.5934 + 0 1.5935 + }, 1.5936 + sizeof(struct MBRecContext) 1.5937 + }, 1.5938 + { 1.5939 + (void **) &imm_args.__tmp_1_0, 1.5940 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.5941 + { 1.5942 + 1, 1.5943 + 0, 1.5944 + 1, 1.5945 + 0 1.5946 + }, 1.5947 + sizeof(SliceBufferEntry) 1.5948 + }, 1.5949 + { 1.5950 + (void **) &imm_args.__tmp_3_0, 1.5951 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.5952 + { 1.5953 + 1, 1.5954 + 1, 1.5955 + 1, 1.5956 + 0 1.5957 + }, 1.5958 + sizeof(struct SuperMBTask) 1.5959 + } 1.5960 + }; 1.5961 + dyn_props.priority = 0; 1.5962 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_3_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.5963 + if (err != NANOS_OK) 1.5964 + nanos_handle_error(err); 1.5965 + } 1.5966 + } 1.5967 + ; 1.5968 + } 1.5969 + } 1.5970 + for (; 1.5971 + j < smb_height; 1.5972 + j++) 1.5973 + { 1.5974 + for (i = 0; 1.5975 + i < smb_width; 1.5976 + i++) 1.5977 + { 1.5978 + sm = smbs + j * smb_width + i; 1.5979 + sml = sm - ((i > 0) ? 1 : 0); 1.5980 + smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0); 1.5981 + { 1.5982 + struct MBRecContext *__tmp_0 = d; 1.5983 + SliceBufferEntry *__tmp_1 = sbe; 1.5984 + struct SuperMBContext *__tmp_2 = smbc; 1.5985 + struct SuperMBTask *__tmp_3 = sml; 1.5986 + struct SuperMBTask *__tmp_4 = smur; 1.5987 + struct SuperMBTask *__tmp_5 = sm; 1.5988 + { 1.5989 + /* SMP device descriptor */ 1.5990 + static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_4_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_4}; 1.5991 + _nx_data_env_4_t *ol_args = (_nx_data_env_4_t *) 0; 1.5992 + nanos_wd_t wd = (nanos_wd_t) 0; 1.5993 + struct nanos_const_wd_definition_local_t 1.5994 + { 1.5995 + nanos_const_wd_definition_t base; 1.5996 + nanos_device_t devices[1]; 1.5997 + }; 1.5998 + static struct nanos_const_wd_definition_local_t _const_def = { 1.5999 + { 1.6000 + { 1.6001 + 0, 1.6002 + 1, 1.6003 + 0, 1.6004 + 0, 1.6005 + 0, 1.6006 + 0, 1.6007 + 0, 1.6008 + 0 1.6009 + }, 1.6010 + __alignof__(_nx_data_env_4_t), 1.6011 + 0, 1.6012 + 1 1.6013 + }, 1.6014 + {{ 1.6015 + nanos_smp_factory, 1.6016 + &_ol_add_decode_slice_3dwave_tasks_4_smp_args 1.6017 + }} 1.6018 + }; 1.6019 + nanos_wd_dyn_props_t dyn_props = {0}; 1.6020 + nanos_err_t err; 1.6021 + dyn_props.priority = 0; 1.6022 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_4_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.6023 + if (err != NANOS_OK) 1.6024 + nanos_handle_error(err); 1.6025 + if (wd != (nanos_wd_t) 0) 1.6026 + { 1.6027 + ol_args->__tmp_0_0 = __tmp_0; 1.6028 + ol_args->__tmp_1_0 = __tmp_1; 1.6029 + ol_args->__tmp_2_0 = __tmp_2; 1.6030 + ol_args->__tmp_3_0 = __tmp_3; 1.6031 + ol_args->__tmp_4_0 = __tmp_4; 1.6032 + ol_args->__tmp_5_0 = __tmp_5; 1.6033 + nanos_dependence_t _dependences[5] = { 1.6034 + { 1.6035 + (void **) &ol_args->__tmp_0_0, 1.6036 + ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.6037 + { 1.6038 + 1, 1.6039 + 0, 1.6040 + 1, 1.6041 + 0 1.6042 + }, 1.6043 + sizeof(struct MBRecContext) 1.6044 + }, 1.6045 + { 1.6046 + (void **) &ol_args->__tmp_1_0, 1.6047 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.6048 + { 1.6049 + 1, 1.6050 + 0, 1.6051 + 1, 1.6052 + 0 1.6053 + }, 1.6054 + sizeof(SliceBufferEntry) 1.6055 + }, 1.6056 + { 1.6057 + (void **) &ol_args->__tmp_3_0, 1.6058 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.6059 + { 1.6060 + 1, 1.6061 + 0, 1.6062 + 1, 1.6063 + 0 1.6064 + }, 1.6065 + sizeof(struct SuperMBTask) 1.6066 + }, 1.6067 + { 1.6068 + (void **) &ol_args->__tmp_4_0, 1.6069 + ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.6070 + { 1.6071 + 1, 1.6072 + 0, 1.6073 + 1, 1.6074 + 0 1.6075 + }, 1.6076 + sizeof(struct SuperMBTask) 1.6077 + }, 1.6078 + { 1.6079 + (void **) &ol_args->__tmp_5_0, 1.6080 + ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.6081 + { 1.6082 + 1, 1.6083 + 1, 1.6084 + 1, 1.6085 + 0 1.6086 + }, 1.6087 + sizeof(struct SuperMBTask) 1.6088 + } 1.6089 + }; 1.6090 + err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.6091 + if (err != NANOS_OK) 1.6092 + nanos_handle_error(err); 1.6093 + } 1.6094 + else 1.6095 + { 1.6096 + _nx_data_env_4_t imm_args; 1.6097 + imm_args.__tmp_0_0 = __tmp_0; 1.6098 + imm_args.__tmp_1_0 = __tmp_1; 1.6099 + imm_args.__tmp_2_0 = __tmp_2; 1.6100 + imm_args.__tmp_3_0 = __tmp_3; 1.6101 + imm_args.__tmp_4_0 = __tmp_4; 1.6102 + imm_args.__tmp_5_0 = __tmp_5; 1.6103 + nanos_dependence_t _dependences[5] = { 1.6104 + { 1.6105 + (void **) &imm_args.__tmp_0_0, 1.6106 + ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.6107 + { 1.6108 + 1, 1.6109 + 0, 1.6110 + 1, 1.6111 + 0 1.6112 + }, 1.6113 + sizeof(struct MBRecContext) 1.6114 + }, 1.6115 + { 1.6116 + (void **) &imm_args.__tmp_1_0, 1.6117 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.6118 + { 1.6119 + 1, 1.6120 + 0, 1.6121 + 1, 1.6122 + 0 1.6123 + }, 1.6124 + sizeof(SliceBufferEntry) 1.6125 + }, 1.6126 + { 1.6127 + (void **) &imm_args.__tmp_3_0, 1.6128 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.6129 + { 1.6130 + 1, 1.6131 + 0, 1.6132 + 1, 1.6133 + 0 1.6134 + }, 1.6135 + sizeof(struct SuperMBTask) 1.6136 + }, 1.6137 + { 1.6138 + (void **) &imm_args.__tmp_4_0, 1.6139 + ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.6140 + { 1.6141 + 1, 1.6142 + 0, 1.6143 + 1, 1.6144 + 0 1.6145 + }, 1.6146 + sizeof(struct SuperMBTask) 1.6147 + }, 1.6148 + { 1.6149 + (void **) &imm_args.__tmp_5_0, 1.6150 + ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.6151 + { 1.6152 + 1, 1.6153 + 1, 1.6154 + 1, 1.6155 + 0 1.6156 + }, 1.6157 + sizeof(struct SuperMBTask) 1.6158 + } 1.6159 + }; 1.6160 + dyn_props.priority = 0; 1.6161 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_4_t), &imm_args, 5, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.6162 + if (err != NANOS_OK) 1.6163 + nanos_handle_error(err); 1.6164 + } 1.6165 + } 1.6166 + ; 1.6167 + } 1.6168 + } 1.6169 + { 1.6170 + struct MBRecContext *__tmp_0 = d; 1.6171 + SliceBufferEntry *__tmp_1 = sbe; 1.6172 + struct SuperMBContext *__tmp_2 = smbc; 1.6173 + struct SuperMBTask *__tmp_3 = sm; 1.6174 + int __tmp_4 = j; 1.6175 + { 1.6176 + /* SMP device descriptor */ 1.6177 + static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_5_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_5}; 1.6178 + _nx_data_env_5_t *ol_args = (_nx_data_env_5_t *) 0; 1.6179 + nanos_wd_t wd = (nanos_wd_t) 0; 1.6180 + struct nanos_const_wd_definition_local_t 1.6181 + { 1.6182 + nanos_const_wd_definition_t base; 1.6183 + nanos_device_t devices[1]; 1.6184 + }; 1.6185 + static struct nanos_const_wd_definition_local_t _const_def = { 1.6186 + { 1.6187 + { 1.6188 + 0, 1.6189 + 1, 1.6190 + 0, 1.6191 + 0, 1.6192 + 0, 1.6193 + 0, 1.6194 + 0, 1.6195 + 0 1.6196 + }, 1.6197 + __alignof__(_nx_data_env_5_t), 1.6198 + 0, 1.6199 + 1 1.6200 + }, 1.6201 + {{ 1.6202 + nanos_smp_factory, 1.6203 + &_ol_add_decode_slice_3dwave_tasks_5_smp_args 1.6204 + }} 1.6205 + }; 1.6206 + nanos_wd_dyn_props_t dyn_props = {0}; 1.6207 + nanos_err_t err; 1.6208 + dyn_props.priority = 0; 1.6209 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_5_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.6210 + if (err != NANOS_OK) 1.6211 + nanos_handle_error(err); 1.6212 + if (wd != (nanos_wd_t) 0) 1.6213 + { 1.6214 + ol_args->__tmp_0_0 = __tmp_0; 1.6215 + ol_args->__tmp_1_0 = __tmp_1; 1.6216 + ol_args->__tmp_2_0 = __tmp_2; 1.6217 + ol_args->__tmp_3_0 = __tmp_3; 1.6218 + ol_args->__tmp_4_0 = __tmp_4; 1.6219 + nanos_dependence_t _dependences[3] = { 1.6220 + { 1.6221 + (void **) &ol_args->__tmp_0_0, 1.6222 + ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0), 1.6223 + { 1.6224 + 1, 1.6225 + 0, 1.6226 + 1, 1.6227 + 0 1.6228 + }, 1.6229 + sizeof(struct MBRecContext) 1.6230 + }, 1.6231 + { 1.6232 + (void **) &ol_args->__tmp_1_0, 1.6233 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.6234 + { 1.6235 + 1, 1.6236 + 0, 1.6237 + 1, 1.6238 + 0 1.6239 + }, 1.6240 + sizeof(SliceBufferEntry) 1.6241 + }, 1.6242 + { 1.6243 + (void **) &ol_args->__tmp_3_0, 1.6244 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.6245 + { 1.6246 + 1, 1.6247 + 1, 1.6248 + 1, 1.6249 + 0 1.6250 + }, 1.6251 + sizeof(struct SuperMBTask) 1.6252 + } 1.6253 + }; 1.6254 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.6255 + if (err != NANOS_OK) 1.6256 + nanos_handle_error(err); 1.6257 + } 1.6258 + else 1.6259 + { 1.6260 + _nx_data_env_5_t imm_args; 1.6261 + imm_args.__tmp_0_0 = __tmp_0; 1.6262 + imm_args.__tmp_1_0 = __tmp_1; 1.6263 + imm_args.__tmp_2_0 = __tmp_2; 1.6264 + imm_args.__tmp_3_0 = __tmp_3; 1.6265 + imm_args.__tmp_4_0 = __tmp_4; 1.6266 + nanos_dependence_t _dependences[3] = { 1.6267 + { 1.6268 + (void **) &imm_args.__tmp_0_0, 1.6269 + ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0), 1.6270 + { 1.6271 + 1, 1.6272 + 0, 1.6273 + 1, 1.6274 + 0 1.6275 + }, 1.6276 + sizeof(struct MBRecContext) 1.6277 + }, 1.6278 + { 1.6279 + (void **) &imm_args.__tmp_1_0, 1.6280 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.6281 + { 1.6282 + 1, 1.6283 + 0, 1.6284 + 1, 1.6285 + 0 1.6286 + }, 1.6287 + sizeof(SliceBufferEntry) 1.6288 + }, 1.6289 + { 1.6290 + (void **) &imm_args.__tmp_3_0, 1.6291 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.6292 + { 1.6293 + 1, 1.6294 + 1, 1.6295 + 1, 1.6296 + 0 1.6297 + }, 1.6298 + sizeof(struct SuperMBTask) 1.6299 + } 1.6300 + }; 1.6301 + dyn_props.priority = 0; 1.6302 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_5_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.6303 + if (err != NANOS_OK) 1.6304 + nanos_handle_error(err); 1.6305 + } 1.6306 + } 1.6307 + ; 1.6308 + } 1.6309 + } 1.6310 + return sm; 1.6311 +} 1.6312 +static void release_ref_list_task(H264Context *h, SuperMBContext *smbc, MBRecContext *d, SliceBufferEntry *sbe, SuperMBTask *lastsmb, int *release) 1.6313 +{ 1.6314 + H264Slice *s = &sbe->slice; 1.6315 + for (int i = 0; 1.6316 + i < s->release_cnt; 1.6317 + i++) 1.6318 + { 1.6319 + for (int j = 0; 1.6320 + j < h->max_dpb_cnt; 1.6321 + j++) 1.6322 + { 1.6323 + if (h->dpb[j].cpn == s->release_ref_cpn[i]) 1.6324 + { 1.6325 + { 1.6326 + nanos_set_lock(&_nx_u_dpb_critical_lock); 1.6327 + release_dpb_entry(h, &h->dpb[j], 2); 1.6328 + nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.6329 + } 1.6330 + break; 1.6331 + } 1.6332 + } 1.6333 + } 1.6334 + s->release_cnt = 0; 1.6335 + release_smbc(h, smbc); 1.6336 +} 1.6337 +static void output_task(H264Context *h, OutputContext *oc, SliceBufferEntry *sbe) 1.6338 +{ 1.6339 + DecodedPicture *out = output_frame(h, oc, sbe->slice.curr_pic, h->ofile, h->frame_width, h->frame_height); 1.6340 + if (out) 1.6341 + { 1.6342 + { 1.6343 + nanos_set_lock(&_nx_u_dpb_critical_lock); 1.6344 + release_dpb_entry(h, out, 1); 1.6345 + nanos_unset_lock(&_nx_u_dpb_critical_lock); 1.6346 + } 1.6347 + } 1.6348 +} 1.6349 +typedef struct _nx_data_env_6_t_tag 1.6350 +{ 1.6351 + struct H264Context *__tmp_0_0; 1.6352 + struct ParserContext *__tmp_1_0; 1.6353 + struct NalContext *__tmp_2_0; 1.6354 + SliceBufferEntry *__tmp_3_0; 1.6355 +} _nx_data_env_6_t; 1.6356 +int h264_decode_ompss(H264Context *h); 1.6357 +static void _smp__ol_h264_decode_ompss_6(_nx_data_env_6_t *const __restrict__ _args) 1.6358 +{ 1.6359 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6360 + struct ParserContext *___tmp_1_0 = _args->__tmp_1_0; 1.6361 + struct NalContext *___tmp_2_0 = _args->__tmp_2_0; 1.6362 + SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.6363 + /* Translation is done by the runtime */ 1.6364 + { 1.6365 + parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.6366 + } 1.6367 +} 1.6368 +typedef struct _nx_data_env_7_t_tag 1.6369 +{ 1.6370 + struct H264Context *__tmp_0_0; 1.6371 + struct EntropyContext *__tmp_1_0; 1.6372 + SliceBufferEntry *__tmp_2_0; 1.6373 +} _nx_data_env_7_t; 1.6374 +int h264_decode_ompss(H264Context *h); 1.6375 +static void _smp__ol_h264_decode_ompss_7(_nx_data_env_7_t *const __restrict__ _args) 1.6376 +{ 1.6377 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6378 + struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0; 1.6379 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6380 + /* Translation is done by the runtime */ 1.6381 + { 1.6382 + decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.6383 + } 1.6384 +} 1.6385 +typedef struct _nx_data_env_8_t_tag 1.6386 +{ 1.6387 + struct H264Context *__tmp_0_0; 1.6388 + struct ParserContext *__tmp_1_0; 1.6389 + struct NalContext *__tmp_2_0; 1.6390 + SliceBufferEntry *__tmp_3_0; 1.6391 +} _nx_data_env_8_t; 1.6392 +int h264_decode_ompss(H264Context *h); 1.6393 +static void _smp__ol_h264_decode_ompss_8(_nx_data_env_8_t *const __restrict__ _args) 1.6394 +{ 1.6395 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6396 + struct ParserContext *___tmp_1_0 = _args->__tmp_1_0; 1.6397 + struct NalContext *___tmp_2_0 = _args->__tmp_2_0; 1.6398 + SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.6399 + /* Translation is done by the runtime */ 1.6400 + { 1.6401 + parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.6402 + } 1.6403 +} 1.6404 +typedef struct _nx_data_env_9_t_tag 1.6405 +{ 1.6406 + struct H264Context *__tmp_0_0; 1.6407 + struct EntropyContext *__tmp_1_0; 1.6408 + SliceBufferEntry *__tmp_2_0; 1.6409 +} _nx_data_env_9_t; 1.6410 +int h264_decode_ompss(H264Context *h); 1.6411 +static void _smp__ol_h264_decode_ompss_9(_nx_data_env_9_t *const __restrict__ _args) 1.6412 +{ 1.6413 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6414 + struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0; 1.6415 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6416 + /* Translation is done by the runtime */ 1.6417 + { 1.6418 + decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.6419 + } 1.6420 +} 1.6421 +typedef struct _nx_data_env_10_t_tag 1.6422 +{ 1.6423 + struct H264Context *__tmp_0_0; 1.6424 + struct MBRecContext *__tmp_1_0; 1.6425 + SliceBufferEntry *__tmp_2_0; 1.6426 + int *__tmp_3_0; 1.6427 +} _nx_data_env_10_t; 1.6428 +int h264_decode_ompss(H264Context *h); 1.6429 +static void _smp__ol_h264_decode_ompss_10(_nx_data_env_10_t *const __restrict__ _args) 1.6430 +{ 1.6431 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6432 + struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0; 1.6433 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6434 + int *___tmp_3_0 = _args->__tmp_3_0; 1.6435 + /* Translation is done by the runtime */ 1.6436 + { 1.6437 + init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.6438 + } 1.6439 +} 1.6440 +typedef struct _nx_data_env_11_t_tag 1.6441 +{ 1.6442 + struct H264Context *__tmp_0_0; 1.6443 + struct SuperMBContext *__tmp_1_0; 1.6444 + struct MBRecContext *__tmp_2_0; 1.6445 + SliceBufferEntry *__tmp_3_0; 1.6446 + struct SuperMBTask *__tmp_4_0; 1.6447 + int *__tmp_5_0; 1.6448 +} _nx_data_env_11_t; 1.6449 +int h264_decode_ompss(H264Context *h); 1.6450 +static void _smp__ol_h264_decode_ompss_11(_nx_data_env_11_t *const __restrict__ _args) 1.6451 +{ 1.6452 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6453 + struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0; 1.6454 + struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0; 1.6455 + SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.6456 + struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.6457 + int *___tmp_5_0 = _args->__tmp_5_0; 1.6458 + /* Translation is done by the runtime */ 1.6459 + { 1.6460 + release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.6461 + } 1.6462 +} 1.6463 +typedef struct _nx_data_env_12_t_tag 1.6464 +{ 1.6465 + struct H264Context *__tmp_0_0; 1.6466 + struct OutputContext *__tmp_1_0; 1.6467 + SliceBufferEntry *__tmp_2_0; 1.6468 +} _nx_data_env_12_t; 1.6469 +int h264_decode_ompss(H264Context *h); 1.6470 +static void _smp__ol_h264_decode_ompss_12(_nx_data_env_12_t *const __restrict__ _args) 1.6471 +{ 1.6472 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6473 + struct OutputContext *___tmp_1_0 = _args->__tmp_1_0; 1.6474 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6475 + /* Translation is done by the runtime */ 1.6476 + { 1.6477 + output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.6478 + } 1.6479 +} 1.6480 +typedef struct _nx_data_env_13_t_tag 1.6481 +{ 1.6482 + struct H264Context *__tmp_0_0; 1.6483 + struct MBRecContext *__tmp_1_0; 1.6484 + SliceBufferEntry *__tmp_2_0; 1.6485 + int *__tmp_3_0; 1.6486 +} _nx_data_env_13_t; 1.6487 +int h264_decode_ompss(H264Context *h); 1.6488 +static void _smp__ol_h264_decode_ompss_13(_nx_data_env_13_t *const __restrict__ _args) 1.6489 +{ 1.6490 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6491 + struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0; 1.6492 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6493 + int *___tmp_3_0 = _args->__tmp_3_0; 1.6494 + /* Translation is done by the runtime */ 1.6495 + { 1.6496 + init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.6497 + } 1.6498 +} 1.6499 +typedef struct _nx_data_env_14_t_tag 1.6500 +{ 1.6501 + struct H264Context *__tmp_0_0; 1.6502 + struct SuperMBContext *__tmp_1_0; 1.6503 + struct MBRecContext *__tmp_2_0; 1.6504 + SliceBufferEntry *__tmp_3_0; 1.6505 + struct SuperMBTask *__tmp_4_0; 1.6506 + int *__tmp_5_0; 1.6507 +} _nx_data_env_14_t; 1.6508 +int h264_decode_ompss(H264Context *h); 1.6509 +static void _smp__ol_h264_decode_ompss_14(_nx_data_env_14_t *const __restrict__ _args) 1.6510 +{ 1.6511 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6512 + struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0; 1.6513 + struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0; 1.6514 + SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.6515 + struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0; 1.6516 + int *___tmp_5_0 = _args->__tmp_5_0; 1.6517 + /* Translation is done by the runtime */ 1.6518 + { 1.6519 + release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0)); 1.6520 + } 1.6521 +} 1.6522 +typedef struct _nx_data_env_15_t_tag 1.6523 +{ 1.6524 + struct H264Context *__tmp_0_0; 1.6525 + struct OutputContext *__tmp_1_0; 1.6526 + SliceBufferEntry *__tmp_2_0; 1.6527 +} _nx_data_env_15_t; 1.6528 +int h264_decode_ompss(H264Context *h); 1.6529 +static void _smp__ol_h264_decode_ompss_15(_nx_data_env_15_t *const __restrict__ _args) 1.6530 +{ 1.6531 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6532 + struct OutputContext *___tmp_1_0 = _args->__tmp_1_0; 1.6533 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6534 + /* Translation is done by the runtime */ 1.6535 + { 1.6536 + output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.6537 + } 1.6538 +} 1.6539 +typedef struct _nx_data_env_16_t_tag 1.6540 +{ 1.6541 + struct H264Context *__tmp_0_0; 1.6542 + struct ParserContext *__tmp_1_0; 1.6543 + struct NalContext *__tmp_2_0; 1.6544 + SliceBufferEntry *__tmp_3_0; 1.6545 +} _nx_data_env_16_t; 1.6546 +int h264_decode_ompss(H264Context *h); 1.6547 +static void _smp__ol_h264_decode_ompss_16(_nx_data_env_16_t *const __restrict__ _args) 1.6548 +{ 1.6549 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6550 + struct ParserContext *___tmp_1_0 = _args->__tmp_1_0; 1.6551 + struct NalContext *___tmp_2_0 = _args->__tmp_2_0; 1.6552 + SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0; 1.6553 + /* Translation is done by the runtime */ 1.6554 + { 1.6555 + parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0)); 1.6556 + } 1.6557 +} 1.6558 +typedef struct _nx_data_env_17_t_tag 1.6559 +{ 1.6560 + struct H264Context *__tmp_0_0; 1.6561 + struct EntropyContext *__tmp_1_0; 1.6562 + SliceBufferEntry *__tmp_2_0; 1.6563 +} _nx_data_env_17_t; 1.6564 +int h264_decode_ompss(H264Context *h); 1.6565 +static void _smp__ol_h264_decode_ompss_17(_nx_data_env_17_t *const __restrict__ _args) 1.6566 +{ 1.6567 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6568 + struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0; 1.6569 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6570 + /* Translation is done by the runtime */ 1.6571 + { 1.6572 + decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.6573 + } 1.6574 +} 1.6575 +typedef struct _nx_data_env_18_t_tag 1.6576 +{ 1.6577 + struct H264Context *__tmp_0_0; 1.6578 + struct MBRecContext *__tmp_1_0; 1.6579 + SliceBufferEntry *__tmp_2_0; 1.6580 +} _nx_data_env_18_t; 1.6581 +int h264_decode_ompss(H264Context *h); 1.6582 +static void _smp__ol_h264_decode_ompss_18(_nx_data_env_18_t *const __restrict__ _args) 1.6583 +{ 1.6584 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6585 + struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0; 1.6586 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6587 + /* Translation is done by the runtime */ 1.6588 + { 1.6589 + decode_slice_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.6590 + } 1.6591 +} 1.6592 +typedef struct _nx_data_env_19_t_tag 1.6593 +{ 1.6594 + struct H264Context *__tmp_0_0; 1.6595 + struct OutputContext *__tmp_1_0; 1.6596 + SliceBufferEntry *__tmp_2_0; 1.6597 +} _nx_data_env_19_t; 1.6598 +int h264_decode_ompss(H264Context *h); 1.6599 +static void _smp__ol_h264_decode_ompss_19(_nx_data_env_19_t *const __restrict__ _args) 1.6600 +{ 1.6601 + struct H264Context *___tmp_0_0 = _args->__tmp_0_0; 1.6602 + struct OutputContext *___tmp_1_0 = _args->__tmp_1_0; 1.6603 + SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0; 1.6604 + /* Translation is done by the runtime */ 1.6605 + { 1.6606 + output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0)); 1.6607 + } 1.6608 +} 1.6609 +int h264_decode_ompss(H264Context *h) 1.6610 +{ 1.6611 + const int bufs = h->pipe_bufs; 1.6612 + ParserContext *pc; 1.6613 + NalContext *nc; 1.6614 + EntropyContext *ec[bufs]; 1.6615 + MBRecContext *rc[2]; 1.6616 + OutputContext *oc; 1.6617 + SliceBufferEntry *sbe; 1.6618 + SuperMBContext *smbc; 1.6619 + DecodedPicture *out; 1.6620 + int frames = 0; 1.6621 + sbe = av_mallocz(sizeof(SliceBufferEntry) * bufs); 1.6622 + pc = get_parse_context(h->ifile); 1.6623 + nc = get_nal_context(h->width, h->height); 1.6624 + for (int i = 0; 1.6625 + i < bufs; 1.6626 + i++) 1.6627 + { 1.6628 + ec[i] = get_entropy_context(h); 1.6629 + } 1.6630 + for (int i = 0; 1.6631 + i < 2; 1.6632 + i++) 1.6633 + { 1.6634 + rc[i] = get_mbrec_context(h); 1.6635 + } 1.6636 + oc = get_output_context(h); 1.6637 + av_start_timer(); 1.6638 + int k = 0; 1.6639 + int init, release; 1.6640 + if (h->static_3d && bufs < h->num_frames) 1.6641 + { 1.6642 + int num_pre_ed = 0; 1.6643 + for (num_pre_ed = 0; 1.6644 + num_pre_ed < bufs - 1 && !pc->final_frame; 1.6645 + num_pre_ed++) 1.6646 + { 1.6647 + { 1.6648 + struct H264Context *__tmp_0 = h; 1.6649 + struct ParserContext *__tmp_1 = pc; 1.6650 + struct NalContext *__tmp_2 = nc; 1.6651 + SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.6652 + { 1.6653 + /* SMP device descriptor */ 1.6654 + static nanos_smp_args_t _ol_h264_decode_ompss_6_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_6}; 1.6655 + _nx_data_env_6_t *ol_args = (_nx_data_env_6_t *) 0; 1.6656 + nanos_wd_t wd = (nanos_wd_t) 0; 1.6657 + struct nanos_const_wd_definition_local_t 1.6658 + { 1.6659 + nanos_const_wd_definition_t base; 1.6660 + nanos_device_t devices[1]; 1.6661 + }; 1.6662 + static struct nanos_const_wd_definition_local_t _const_def = { 1.6663 + { 1.6664 + { 1.6665 + 0, 1.6666 + 1, 1.6667 + 0, 1.6668 + 0, 1.6669 + 0, 1.6670 + 0, 1.6671 + 0, 1.6672 + 0 1.6673 + }, 1.6674 + __alignof__(_nx_data_env_6_t), 1.6675 + 0, 1.6676 + 1 1.6677 + }, 1.6678 + {{ 1.6679 + nanos_smp_factory, 1.6680 + &_ol_h264_decode_ompss_6_smp_args 1.6681 + }} 1.6682 + }; 1.6683 + nanos_wd_dyn_props_t dyn_props = {0}; 1.6684 + nanos_err_t err; 1.6685 + dyn_props.priority = 0; 1.6686 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_6_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.6687 + if (err != NANOS_OK) 1.6688 + nanos_handle_error(err); 1.6689 + if (wd != (nanos_wd_t) 0) 1.6690 + { 1.6691 + ol_args->__tmp_0_0 = __tmp_0; 1.6692 + ol_args->__tmp_1_0 = __tmp_1; 1.6693 + ol_args->__tmp_2_0 = __tmp_2; 1.6694 + ol_args->__tmp_3_0 = __tmp_3; 1.6695 + nanos_dependence_t _dependences[3] = { 1.6696 + { 1.6697 + (void **) &ol_args->__tmp_3_0, 1.6698 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.6699 + { 1.6700 + 0, 1.6701 + 1, 1.6702 + 1, 1.6703 + 0 1.6704 + }, 1.6705 + sizeof(SliceBufferEntry) 1.6706 + }, 1.6707 + { 1.6708 + (void **) &ol_args->__tmp_1_0, 1.6709 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.6710 + { 1.6711 + 1, 1.6712 + 1, 1.6713 + 1, 1.6714 + 0 1.6715 + }, 1.6716 + sizeof(struct ParserContext) 1.6717 + }, 1.6718 + { 1.6719 + (void **) &ol_args->__tmp_2_0, 1.6720 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.6721 + { 1.6722 + 1, 1.6723 + 1, 1.6724 + 1, 1.6725 + 0 1.6726 + }, 1.6727 + sizeof(struct NalContext) 1.6728 + } 1.6729 + }; 1.6730 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.6731 + if (err != NANOS_OK) 1.6732 + nanos_handle_error(err); 1.6733 + } 1.6734 + else 1.6735 + { 1.6736 + _nx_data_env_6_t imm_args; 1.6737 + imm_args.__tmp_0_0 = __tmp_0; 1.6738 + imm_args.__tmp_1_0 = __tmp_1; 1.6739 + imm_args.__tmp_2_0 = __tmp_2; 1.6740 + imm_args.__tmp_3_0 = __tmp_3; 1.6741 + nanos_dependence_t _dependences[3] = { 1.6742 + { 1.6743 + (void **) &imm_args.__tmp_3_0, 1.6744 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.6745 + { 1.6746 + 0, 1.6747 + 1, 1.6748 + 1, 1.6749 + 0 1.6750 + }, 1.6751 + sizeof(SliceBufferEntry) 1.6752 + }, 1.6753 + { 1.6754 + (void **) &imm_args.__tmp_1_0, 1.6755 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.6756 + { 1.6757 + 1, 1.6758 + 1, 1.6759 + 1, 1.6760 + 0 1.6761 + }, 1.6762 + sizeof(struct ParserContext) 1.6763 + }, 1.6764 + { 1.6765 + (void **) &imm_args.__tmp_2_0, 1.6766 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.6767 + { 1.6768 + 1, 1.6769 + 1, 1.6770 + 1, 1.6771 + 0 1.6772 + }, 1.6773 + sizeof(struct NalContext) 1.6774 + } 1.6775 + }; 1.6776 + dyn_props.priority = 0; 1.6777 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_6_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.6778 + if (err != NANOS_OK) 1.6779 + nanos_handle_error(err); 1.6780 + } 1.6781 + } 1.6782 + ; 1.6783 + } 1.6784 + { 1.6785 + struct H264Context *__tmp_0 = h; 1.6786 + struct EntropyContext *__tmp_1 = ec[k % bufs]; 1.6787 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.6788 + { 1.6789 + /* SMP device descriptor */ 1.6790 + static nanos_smp_args_t _ol_h264_decode_ompss_7_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_7}; 1.6791 + _nx_data_env_7_t *ol_args = (_nx_data_env_7_t *) 0; 1.6792 + nanos_wd_t wd = (nanos_wd_t) 0; 1.6793 + struct nanos_const_wd_definition_local_t 1.6794 + { 1.6795 + nanos_const_wd_definition_t base; 1.6796 + nanos_device_t devices[1]; 1.6797 + }; 1.6798 + static struct nanos_const_wd_definition_local_t _const_def = { 1.6799 + { 1.6800 + { 1.6801 + 0, 1.6802 + 1, 1.6803 + 0, 1.6804 + 0, 1.6805 + 0, 1.6806 + 0, 1.6807 + 0, 1.6808 + 0 1.6809 + }, 1.6810 + __alignof__(_nx_data_env_7_t), 1.6811 + 0, 1.6812 + 1 1.6813 + }, 1.6814 + {{ 1.6815 + nanos_smp_factory, 1.6816 + &_ol_h264_decode_ompss_7_smp_args 1.6817 + }} 1.6818 + }; 1.6819 + nanos_wd_dyn_props_t dyn_props = {0}; 1.6820 + nanos_err_t err; 1.6821 + dyn_props.priority = 0; 1.6822 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_7_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.6823 + if (err != NANOS_OK) 1.6824 + nanos_handle_error(err); 1.6825 + if (wd != (nanos_wd_t) 0) 1.6826 + { 1.6827 + ol_args->__tmp_0_0 = __tmp_0; 1.6828 + ol_args->__tmp_1_0 = __tmp_1; 1.6829 + ol_args->__tmp_2_0 = __tmp_2; 1.6830 + nanos_dependence_t _dependences[2] = { 1.6831 + { 1.6832 + (void **) &ol_args->__tmp_1_0, 1.6833 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.6834 + { 1.6835 + 1, 1.6836 + 1, 1.6837 + 1, 1.6838 + 0 1.6839 + }, 1.6840 + sizeof(struct EntropyContext) 1.6841 + }, 1.6842 + { 1.6843 + (void **) &ol_args->__tmp_2_0, 1.6844 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.6845 + { 1.6846 + 1, 1.6847 + 1, 1.6848 + 1, 1.6849 + 0 1.6850 + }, 1.6851 + sizeof(SliceBufferEntry) 1.6852 + } 1.6853 + }; 1.6854 + err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.6855 + if (err != NANOS_OK) 1.6856 + nanos_handle_error(err); 1.6857 + } 1.6858 + else 1.6859 + { 1.6860 + _nx_data_env_7_t imm_args; 1.6861 + imm_args.__tmp_0_0 = __tmp_0; 1.6862 + imm_args.__tmp_1_0 = __tmp_1; 1.6863 + imm_args.__tmp_2_0 = __tmp_2; 1.6864 + nanos_dependence_t _dependences[2] = { 1.6865 + { 1.6866 + (void **) &imm_args.__tmp_1_0, 1.6867 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.6868 + { 1.6869 + 1, 1.6870 + 1, 1.6871 + 1, 1.6872 + 0 1.6873 + }, 1.6874 + sizeof(struct EntropyContext) 1.6875 + }, 1.6876 + { 1.6877 + (void **) &imm_args.__tmp_2_0, 1.6878 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.6879 + { 1.6880 + 1, 1.6881 + 1, 1.6882 + 1, 1.6883 + 0 1.6884 + }, 1.6885 + sizeof(SliceBufferEntry) 1.6886 + } 1.6887 + }; 1.6888 + dyn_props.priority = 0; 1.6889 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_7_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.6890 + if (err != NANOS_OK) 1.6891 + nanos_handle_error(err); 1.6892 + } 1.6893 + } 1.6894 + ; 1.6895 + } 1.6896 + { 1.6897 + struct _dependence_holder 1.6898 + { 1.6899 + struct ParserContext *dep_0; 1.6900 + } _dep_holder = {&(*pc)}; 1.6901 + nanos_dependence_t _wait_dependences[1] = {{ 1.6902 + (void **) &_dep_holder.dep_0, 1.6903 + ((char *) ((pc)) - (char *) _dep_holder.dep_0), 1.6904 + { 1.6905 + 1, 1.6906 + 0, 1.6907 + 0, 1.6908 + 0 1.6909 + }, 1.6910 + sizeof (*pc) 1.6911 + }}; 1.6912 + nanos_wait_on(1, _wait_dependences); 1.6913 + } 1.6914 + k++; 1.6915 + } 1.6916 + while (!pc->final_frame && frames++ < h->num_frames && !h->quit) 1.6917 + { 1.6918 + { 1.6919 + struct H264Context *__tmp_0 = h; 1.6920 + struct ParserContext *__tmp_1 = pc; 1.6921 + struct NalContext *__tmp_2 = nc; 1.6922 + SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.6923 + { 1.6924 + /* SMP device descriptor */ 1.6925 + static nanos_smp_args_t _ol_h264_decode_ompss_8_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_8}; 1.6926 + _nx_data_env_8_t *ol_args = (_nx_data_env_8_t *) 0; 1.6927 + nanos_wd_t wd = (nanos_wd_t) 0; 1.6928 + struct nanos_const_wd_definition_local_t 1.6929 + { 1.6930 + nanos_const_wd_definition_t base; 1.6931 + nanos_device_t devices[1]; 1.6932 + }; 1.6933 + static struct nanos_const_wd_definition_local_t _const_def = { 1.6934 + { 1.6935 + { 1.6936 + 0, 1.6937 + 1, 1.6938 + 0, 1.6939 + 0, 1.6940 + 0, 1.6941 + 0, 1.6942 + 0, 1.6943 + 0 1.6944 + }, 1.6945 + __alignof__(_nx_data_env_8_t), 1.6946 + 0, 1.6947 + 1 1.6948 + }, 1.6949 + {{ 1.6950 + nanos_smp_factory, 1.6951 + &_ol_h264_decode_ompss_8_smp_args 1.6952 + }} 1.6953 + }; 1.6954 + nanos_wd_dyn_props_t dyn_props = {0}; 1.6955 + nanos_err_t err; 1.6956 + dyn_props.priority = 0; 1.6957 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_8_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.6958 + if (err != NANOS_OK) 1.6959 + nanos_handle_error(err); 1.6960 + if (wd != (nanos_wd_t) 0) 1.6961 + { 1.6962 + ol_args->__tmp_0_0 = __tmp_0; 1.6963 + ol_args->__tmp_1_0 = __tmp_1; 1.6964 + ol_args->__tmp_2_0 = __tmp_2; 1.6965 + ol_args->__tmp_3_0 = __tmp_3; 1.6966 + nanos_dependence_t _dependences[3] = { 1.6967 + { 1.6968 + (void **) &ol_args->__tmp_3_0, 1.6969 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.6970 + { 1.6971 + 0, 1.6972 + 1, 1.6973 + 1, 1.6974 + 0 1.6975 + }, 1.6976 + sizeof(SliceBufferEntry) 1.6977 + }, 1.6978 + { 1.6979 + (void **) &ol_args->__tmp_1_0, 1.6980 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.6981 + { 1.6982 + 1, 1.6983 + 1, 1.6984 + 1, 1.6985 + 0 1.6986 + }, 1.6987 + sizeof(struct ParserContext) 1.6988 + }, 1.6989 + { 1.6990 + (void **) &ol_args->__tmp_2_0, 1.6991 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.6992 + { 1.6993 + 1, 1.6994 + 1, 1.6995 + 1, 1.6996 + 0 1.6997 + }, 1.6998 + sizeof(struct NalContext) 1.6999 + } 1.7000 + }; 1.7001 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7002 + if (err != NANOS_OK) 1.7003 + nanos_handle_error(err); 1.7004 + } 1.7005 + else 1.7006 + { 1.7007 + _nx_data_env_8_t imm_args; 1.7008 + imm_args.__tmp_0_0 = __tmp_0; 1.7009 + imm_args.__tmp_1_0 = __tmp_1; 1.7010 + imm_args.__tmp_2_0 = __tmp_2; 1.7011 + imm_args.__tmp_3_0 = __tmp_3; 1.7012 + nanos_dependence_t _dependences[3] = { 1.7013 + { 1.7014 + (void **) &imm_args.__tmp_3_0, 1.7015 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.7016 + { 1.7017 + 0, 1.7018 + 1, 1.7019 + 1, 1.7020 + 0 1.7021 + }, 1.7022 + sizeof(SliceBufferEntry) 1.7023 + }, 1.7024 + { 1.7025 + (void **) &imm_args.__tmp_1_0, 1.7026 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.7027 + { 1.7028 + 1, 1.7029 + 1, 1.7030 + 1, 1.7031 + 0 1.7032 + }, 1.7033 + sizeof(struct ParserContext) 1.7034 + }, 1.7035 + { 1.7036 + (void **) &imm_args.__tmp_2_0, 1.7037 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7038 + { 1.7039 + 1, 1.7040 + 1, 1.7041 + 1, 1.7042 + 0 1.7043 + }, 1.7044 + sizeof(struct NalContext) 1.7045 + } 1.7046 + }; 1.7047 + dyn_props.priority = 0; 1.7048 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_8_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7049 + if (err != NANOS_OK) 1.7050 + nanos_handle_error(err); 1.7051 + } 1.7052 + } 1.7053 + ; 1.7054 + } 1.7055 + { 1.7056 + struct H264Context *__tmp_0 = h; 1.7057 + struct EntropyContext *__tmp_1 = ec[k % bufs]; 1.7058 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.7059 + { 1.7060 + /* SMP device descriptor */ 1.7061 + static nanos_smp_args_t _ol_h264_decode_ompss_9_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_9}; 1.7062 + _nx_data_env_9_t *ol_args = (_nx_data_env_9_t *) 0; 1.7063 + nanos_wd_t wd = (nanos_wd_t) 0; 1.7064 + struct nanos_const_wd_definition_local_t 1.7065 + { 1.7066 + nanos_const_wd_definition_t base; 1.7067 + nanos_device_t devices[1]; 1.7068 + }; 1.7069 + static struct nanos_const_wd_definition_local_t _const_def = { 1.7070 + { 1.7071 + { 1.7072 + 0, 1.7073 + 1, 1.7074 + 0, 1.7075 + 0, 1.7076 + 0, 1.7077 + 0, 1.7078 + 0, 1.7079 + 0 1.7080 + }, 1.7081 + __alignof__(_nx_data_env_9_t), 1.7082 + 0, 1.7083 + 1 1.7084 + }, 1.7085 + {{ 1.7086 + nanos_smp_factory, 1.7087 + &_ol_h264_decode_ompss_9_smp_args 1.7088 + }} 1.7089 + }; 1.7090 + nanos_wd_dyn_props_t dyn_props = {0}; 1.7091 + nanos_err_t err; 1.7092 + dyn_props.priority = 0; 1.7093 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_9_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7094 + if (err != NANOS_OK) 1.7095 + nanos_handle_error(err); 1.7096 + if (wd != (nanos_wd_t) 0) 1.7097 + { 1.7098 + ol_args->__tmp_0_0 = __tmp_0; 1.7099 + ol_args->__tmp_1_0 = __tmp_1; 1.7100 + ol_args->__tmp_2_0 = __tmp_2; 1.7101 + nanos_dependence_t _dependences[2] = { 1.7102 + { 1.7103 + (void **) &ol_args->__tmp_1_0, 1.7104 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.7105 + { 1.7106 + 1, 1.7107 + 1, 1.7108 + 1, 1.7109 + 0 1.7110 + }, 1.7111 + sizeof(struct EntropyContext) 1.7112 + }, 1.7113 + { 1.7114 + (void **) &ol_args->__tmp_2_0, 1.7115 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.7116 + { 1.7117 + 1, 1.7118 + 1, 1.7119 + 1, 1.7120 + 0 1.7121 + }, 1.7122 + sizeof(SliceBufferEntry) 1.7123 + } 1.7124 + }; 1.7125 + err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7126 + if (err != NANOS_OK) 1.7127 + nanos_handle_error(err); 1.7128 + } 1.7129 + else 1.7130 + { 1.7131 + _nx_data_env_9_t imm_args; 1.7132 + imm_args.__tmp_0_0 = __tmp_0; 1.7133 + imm_args.__tmp_1_0 = __tmp_1; 1.7134 + imm_args.__tmp_2_0 = __tmp_2; 1.7135 + nanos_dependence_t _dependences[2] = { 1.7136 + { 1.7137 + (void **) &imm_args.__tmp_1_0, 1.7138 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.7139 + { 1.7140 + 1, 1.7141 + 1, 1.7142 + 1, 1.7143 + 0 1.7144 + }, 1.7145 + sizeof(struct EntropyContext) 1.7146 + }, 1.7147 + { 1.7148 + (void **) &imm_args.__tmp_2_0, 1.7149 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7150 + { 1.7151 + 1, 1.7152 + 1, 1.7153 + 1, 1.7154 + 0 1.7155 + }, 1.7156 + sizeof(SliceBufferEntry) 1.7157 + } 1.7158 + }; 1.7159 + dyn_props.priority = 0; 1.7160 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_9_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7161 + if (err != NANOS_OK) 1.7162 + nanos_handle_error(err); 1.7163 + } 1.7164 + } 1.7165 + ; 1.7166 + } 1.7167 + k++; 1.7168 + { 1.7169 + struct H264Context *__tmp_0 = h; 1.7170 + struct MBRecContext *__tmp_1 = rc[k % 2]; 1.7171 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.7172 + int *__tmp_3 = &init; 1.7173 + { 1.7174 + /* SMP device descriptor */ 1.7175 + static nanos_smp_args_t _ol_h264_decode_ompss_10_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_10}; 1.7176 + _nx_data_env_10_t *ol_args = (_nx_data_env_10_t *) 0; 1.7177 + nanos_wd_t wd = (nanos_wd_t) 0; 1.7178 + struct nanos_const_wd_definition_local_t 1.7179 + { 1.7180 + nanos_const_wd_definition_t base; 1.7181 + nanos_device_t devices[1]; 1.7182 + }; 1.7183 + static struct nanos_const_wd_definition_local_t _const_def = { 1.7184 + { 1.7185 + { 1.7186 + 0, 1.7187 + 1, 1.7188 + 0, 1.7189 + 0, 1.7190 + 0, 1.7191 + 0, 1.7192 + 0, 1.7193 + 0 1.7194 + }, 1.7195 + __alignof__(_nx_data_env_10_t), 1.7196 + 0, 1.7197 + 1 1.7198 + }, 1.7199 + {{ 1.7200 + nanos_smp_factory, 1.7201 + &_ol_h264_decode_ompss_10_smp_args 1.7202 + }} 1.7203 + }; 1.7204 + nanos_wd_dyn_props_t dyn_props = {0}; 1.7205 + nanos_err_t err; 1.7206 + dyn_props.priority = 0; 1.7207 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_10_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7208 + if (err != NANOS_OK) 1.7209 + nanos_handle_error(err); 1.7210 + if (wd != (nanos_wd_t) 0) 1.7211 + { 1.7212 + ol_args->__tmp_0_0 = __tmp_0; 1.7213 + ol_args->__tmp_1_0 = __tmp_1; 1.7214 + ol_args->__tmp_2_0 = __tmp_2; 1.7215 + ol_args->__tmp_3_0 = __tmp_3; 1.7216 + nanos_dependence_t _dependences[3] = { 1.7217 + { 1.7218 + (void **) &ol_args->__tmp_1_0, 1.7219 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.7220 + { 1.7221 + 1, 1.7222 + 1, 1.7223 + 1, 1.7224 + 0 1.7225 + }, 1.7226 + sizeof(struct MBRecContext) 1.7227 + }, 1.7228 + { 1.7229 + (void **) &ol_args->__tmp_2_0, 1.7230 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.7231 + { 1.7232 + 1, 1.7233 + 1, 1.7234 + 1, 1.7235 + 0 1.7236 + }, 1.7237 + sizeof(SliceBufferEntry) 1.7238 + }, 1.7239 + { 1.7240 + (void **) &ol_args->__tmp_3_0, 1.7241 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.7242 + { 1.7243 + 1, 1.7244 + 1, 1.7245 + 1, 1.7246 + 0 1.7247 + }, 1.7248 + sizeof(int) 1.7249 + } 1.7250 + }; 1.7251 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7252 + if (err != NANOS_OK) 1.7253 + nanos_handle_error(err); 1.7254 + } 1.7255 + else 1.7256 + { 1.7257 + _nx_data_env_10_t imm_args; 1.7258 + imm_args.__tmp_0_0 = __tmp_0; 1.7259 + imm_args.__tmp_1_0 = __tmp_1; 1.7260 + imm_args.__tmp_2_0 = __tmp_2; 1.7261 + imm_args.__tmp_3_0 = __tmp_3; 1.7262 + nanos_dependence_t _dependences[3] = { 1.7263 + { 1.7264 + (void **) &imm_args.__tmp_1_0, 1.7265 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.7266 + { 1.7267 + 1, 1.7268 + 1, 1.7269 + 1, 1.7270 + 0 1.7271 + }, 1.7272 + sizeof(struct MBRecContext) 1.7273 + }, 1.7274 + { 1.7275 + (void **) &imm_args.__tmp_2_0, 1.7276 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7277 + { 1.7278 + 1, 1.7279 + 1, 1.7280 + 1, 1.7281 + 0 1.7282 + }, 1.7283 + sizeof(SliceBufferEntry) 1.7284 + }, 1.7285 + { 1.7286 + (void **) &imm_args.__tmp_3_0, 1.7287 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.7288 + { 1.7289 + 1, 1.7290 + 1, 1.7291 + 1, 1.7292 + 0 1.7293 + }, 1.7294 + sizeof(int) 1.7295 + } 1.7296 + }; 1.7297 + dyn_props.priority = 0; 1.7298 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_10_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7299 + if (err != NANOS_OK) 1.7300 + nanos_handle_error(err); 1.7301 + } 1.7302 + } 1.7303 + ; 1.7304 + } 1.7305 + smbc = acquire_smbc(h); 1.7306 + SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc); 1.7307 + { 1.7308 + struct H264Context *__tmp_0 = h; 1.7309 + struct SuperMBContext *__tmp_1 = smbc; 1.7310 + struct MBRecContext *__tmp_2 = rc[k % 2]; 1.7311 + SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.7312 + struct SuperMBTask *__tmp_4 = lastsmb; 1.7313 + int *__tmp_5 = &release; 1.7314 + { 1.7315 + /* SMP device descriptor */ 1.7316 + static nanos_smp_args_t _ol_h264_decode_ompss_11_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_11}; 1.7317 + _nx_data_env_11_t *ol_args = (_nx_data_env_11_t *) 0; 1.7318 + nanos_wd_t wd = (nanos_wd_t) 0; 1.7319 + struct nanos_const_wd_definition_local_t 1.7320 + { 1.7321 + nanos_const_wd_definition_t base; 1.7322 + nanos_device_t devices[1]; 1.7323 + }; 1.7324 + static struct nanos_const_wd_definition_local_t _const_def = { 1.7325 + { 1.7326 + { 1.7327 + 0, 1.7328 + 1, 1.7329 + 0, 1.7330 + 0, 1.7331 + 0, 1.7332 + 0, 1.7333 + 0, 1.7334 + 0 1.7335 + }, 1.7336 + __alignof__(_nx_data_env_11_t), 1.7337 + 0, 1.7338 + 1 1.7339 + }, 1.7340 + {{ 1.7341 + nanos_smp_factory, 1.7342 + &_ol_h264_decode_ompss_11_smp_args 1.7343 + }} 1.7344 + }; 1.7345 + nanos_wd_dyn_props_t dyn_props = {0}; 1.7346 + nanos_err_t err; 1.7347 + dyn_props.priority = 0; 1.7348 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_11_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7349 + if (err != NANOS_OK) 1.7350 + nanos_handle_error(err); 1.7351 + if (wd != (nanos_wd_t) 0) 1.7352 + { 1.7353 + ol_args->__tmp_0_0 = __tmp_0; 1.7354 + ol_args->__tmp_1_0 = __tmp_1; 1.7355 + ol_args->__tmp_2_0 = __tmp_2; 1.7356 + ol_args->__tmp_3_0 = __tmp_3; 1.7357 + ol_args->__tmp_4_0 = __tmp_4; 1.7358 + ol_args->__tmp_5_0 = __tmp_5; 1.7359 + nanos_dependence_t _dependences[4] = { 1.7360 + { 1.7361 + (void **) &ol_args->__tmp_4_0, 1.7362 + ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.7363 + { 1.7364 + 1, 1.7365 + 0, 1.7366 + 1, 1.7367 + 0 1.7368 + }, 1.7369 + sizeof(struct SuperMBTask) 1.7370 + }, 1.7371 + { 1.7372 + (void **) &ol_args->__tmp_2_0, 1.7373 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.7374 + { 1.7375 + 1, 1.7376 + 1, 1.7377 + 1, 1.7378 + 0 1.7379 + }, 1.7380 + sizeof(struct MBRecContext) 1.7381 + }, 1.7382 + { 1.7383 + (void **) &ol_args->__tmp_3_0, 1.7384 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.7385 + { 1.7386 + 1, 1.7387 + 1, 1.7388 + 1, 1.7389 + 0 1.7390 + }, 1.7391 + sizeof(SliceBufferEntry) 1.7392 + }, 1.7393 + { 1.7394 + (void **) &ol_args->__tmp_5_0, 1.7395 + ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.7396 + { 1.7397 + 1, 1.7398 + 1, 1.7399 + 1, 1.7400 + 0 1.7401 + }, 1.7402 + sizeof(int) 1.7403 + } 1.7404 + }; 1.7405 + err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7406 + if (err != NANOS_OK) 1.7407 + nanos_handle_error(err); 1.7408 + } 1.7409 + else 1.7410 + { 1.7411 + _nx_data_env_11_t imm_args; 1.7412 + imm_args.__tmp_0_0 = __tmp_0; 1.7413 + imm_args.__tmp_1_0 = __tmp_1; 1.7414 + imm_args.__tmp_2_0 = __tmp_2; 1.7415 + imm_args.__tmp_3_0 = __tmp_3; 1.7416 + imm_args.__tmp_4_0 = __tmp_4; 1.7417 + imm_args.__tmp_5_0 = __tmp_5; 1.7418 + nanos_dependence_t _dependences[4] = { 1.7419 + { 1.7420 + (void **) &imm_args.__tmp_4_0, 1.7421 + ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.7422 + { 1.7423 + 1, 1.7424 + 0, 1.7425 + 1, 1.7426 + 0 1.7427 + }, 1.7428 + sizeof(struct SuperMBTask) 1.7429 + }, 1.7430 + { 1.7431 + (void **) &imm_args.__tmp_2_0, 1.7432 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7433 + { 1.7434 + 1, 1.7435 + 1, 1.7436 + 1, 1.7437 + 0 1.7438 + }, 1.7439 + sizeof(struct MBRecContext) 1.7440 + }, 1.7441 + { 1.7442 + (void **) &imm_args.__tmp_3_0, 1.7443 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.7444 + { 1.7445 + 1, 1.7446 + 1, 1.7447 + 1, 1.7448 + 0 1.7449 + }, 1.7450 + sizeof(SliceBufferEntry) 1.7451 + }, 1.7452 + { 1.7453 + (void **) &imm_args.__tmp_5_0, 1.7454 + ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.7455 + { 1.7456 + 1, 1.7457 + 1, 1.7458 + 1, 1.7459 + 0 1.7460 + }, 1.7461 + sizeof(int) 1.7462 + } 1.7463 + }; 1.7464 + dyn_props.priority = 0; 1.7465 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_11_t), &imm_args, 4, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7466 + if (err != NANOS_OK) 1.7467 + nanos_handle_error(err); 1.7468 + } 1.7469 + } 1.7470 + ; 1.7471 + } 1.7472 + { 1.7473 + struct H264Context *__tmp_0 = h; 1.7474 + struct OutputContext *__tmp_1 = oc; 1.7475 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.7476 + { 1.7477 + /* SMP device descriptor */ 1.7478 + static nanos_smp_args_t _ol_h264_decode_ompss_12_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_12}; 1.7479 + _nx_data_env_12_t *ol_args = (_nx_data_env_12_t *) 0; 1.7480 + nanos_wd_t wd = (nanos_wd_t) 0; 1.7481 + struct nanos_const_wd_definition_local_t 1.7482 + { 1.7483 + nanos_const_wd_definition_t base; 1.7484 + nanos_device_t devices[1]; 1.7485 + }; 1.7486 + static struct nanos_const_wd_definition_local_t _const_def = { 1.7487 + { 1.7488 + { 1.7489 + 0, 1.7490 + 1, 1.7491 + 0, 1.7492 + 0, 1.7493 + 0, 1.7494 + 0, 1.7495 + 0, 1.7496 + 0 1.7497 + }, 1.7498 + __alignof__(_nx_data_env_12_t), 1.7499 + 0, 1.7500 + 1 1.7501 + }, 1.7502 + {{ 1.7503 + nanos_smp_factory, 1.7504 + &_ol_h264_decode_ompss_12_smp_args 1.7505 + }} 1.7506 + }; 1.7507 + nanos_wd_dyn_props_t dyn_props = {0}; 1.7508 + nanos_err_t err; 1.7509 + dyn_props.priority = 0; 1.7510 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_12_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7511 + if (err != NANOS_OK) 1.7512 + nanos_handle_error(err); 1.7513 + if (wd != (nanos_wd_t) 0) 1.7514 + { 1.7515 + ol_args->__tmp_0_0 = __tmp_0; 1.7516 + ol_args->__tmp_1_0 = __tmp_1; 1.7517 + ol_args->__tmp_2_0 = __tmp_2; 1.7518 + nanos_dependence_t _dependences[2] = { 1.7519 + { 1.7520 + (void **) &ol_args->__tmp_2_0, 1.7521 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.7522 + { 1.7523 + 1, 1.7524 + 0, 1.7525 + 1, 1.7526 + 0 1.7527 + }, 1.7528 + sizeof(SliceBufferEntry) 1.7529 + }, 1.7530 + { 1.7531 + (void **) &ol_args->__tmp_1_0, 1.7532 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.7533 + { 1.7534 + 1, 1.7535 + 1, 1.7536 + 1, 1.7537 + 0 1.7538 + }, 1.7539 + sizeof(struct OutputContext) 1.7540 + } 1.7541 + }; 1.7542 + err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7543 + if (err != NANOS_OK) 1.7544 + nanos_handle_error(err); 1.7545 + } 1.7546 + else 1.7547 + { 1.7548 + _nx_data_env_12_t imm_args; 1.7549 + imm_args.__tmp_0_0 = __tmp_0; 1.7550 + imm_args.__tmp_1_0 = __tmp_1; 1.7551 + imm_args.__tmp_2_0 = __tmp_2; 1.7552 + nanos_dependence_t _dependences[2] = { 1.7553 + { 1.7554 + (void **) &imm_args.__tmp_2_0, 1.7555 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7556 + { 1.7557 + 1, 1.7558 + 0, 1.7559 + 1, 1.7560 + 0 1.7561 + }, 1.7562 + sizeof(SliceBufferEntry) 1.7563 + }, 1.7564 + { 1.7565 + (void **) &imm_args.__tmp_1_0, 1.7566 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.7567 + { 1.7568 + 1, 1.7569 + 1, 1.7570 + 1, 1.7571 + 0 1.7572 + }, 1.7573 + sizeof(struct OutputContext) 1.7574 + } 1.7575 + }; 1.7576 + dyn_props.priority = 0; 1.7577 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_12_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7578 + if (err != NANOS_OK) 1.7579 + nanos_handle_error(err); 1.7580 + } 1.7581 + } 1.7582 + ; 1.7583 + } 1.7584 + { 1.7585 + struct _dependence_holder 1.7586 + { 1.7587 + struct ParserContext *dep_0; 1.7588 + } _dep_holder = {&(*pc)}; 1.7589 + nanos_dependence_t _wait_dependences[1] = {{ 1.7590 + (void **) &_dep_holder.dep_0, 1.7591 + ((char *) ((pc)) - (char *) _dep_holder.dep_0), 1.7592 + { 1.7593 + 1, 1.7594 + 0, 1.7595 + 0, 1.7596 + 0 1.7597 + }, 1.7598 + sizeof (*pc) 1.7599 + }}; 1.7600 + nanos_wait_on(1, _wait_dependences); 1.7601 + } 1.7602 + } 1.7603 + for (int i = 0; 1.7604 + i < num_pre_ed; 1.7605 + i++) 1.7606 + { 1.7607 + k++; 1.7608 + { 1.7609 + struct H264Context *__tmp_0 = h; 1.7610 + struct MBRecContext *__tmp_1 = rc[k % 2]; 1.7611 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.7612 + int *__tmp_3 = &init; 1.7613 + { 1.7614 + /* SMP device descriptor */ 1.7615 + static nanos_smp_args_t _ol_h264_decode_ompss_13_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_13}; 1.7616 + _nx_data_env_13_t *ol_args = (_nx_data_env_13_t *) 0; 1.7617 + nanos_wd_t wd = (nanos_wd_t) 0; 1.7618 + struct nanos_const_wd_definition_local_t 1.7619 + { 1.7620 + nanos_const_wd_definition_t base; 1.7621 + nanos_device_t devices[1]; 1.7622 + }; 1.7623 + static struct nanos_const_wd_definition_local_t _const_def = { 1.7624 + { 1.7625 + { 1.7626 + 0, 1.7627 + 1, 1.7628 + 0, 1.7629 + 0, 1.7630 + 0, 1.7631 + 0, 1.7632 + 0, 1.7633 + 0 1.7634 + }, 1.7635 + __alignof__(_nx_data_env_13_t), 1.7636 + 0, 1.7637 + 1 1.7638 + }, 1.7639 + {{ 1.7640 + nanos_smp_factory, 1.7641 + &_ol_h264_decode_ompss_13_smp_args 1.7642 + }} 1.7643 + }; 1.7644 + nanos_wd_dyn_props_t dyn_props = {0}; 1.7645 + nanos_err_t err; 1.7646 + dyn_props.priority = 0; 1.7647 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_13_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7648 + if (err != NANOS_OK) 1.7649 + nanos_handle_error(err); 1.7650 + if (wd != (nanos_wd_t) 0) 1.7651 + { 1.7652 + ol_args->__tmp_0_0 = __tmp_0; 1.7653 + ol_args->__tmp_1_0 = __tmp_1; 1.7654 + ol_args->__tmp_2_0 = __tmp_2; 1.7655 + ol_args->__tmp_3_0 = __tmp_3; 1.7656 + nanos_dependence_t _dependences[3] = { 1.7657 + { 1.7658 + (void **) &ol_args->__tmp_1_0, 1.7659 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.7660 + { 1.7661 + 1, 1.7662 + 1, 1.7663 + 1, 1.7664 + 0 1.7665 + }, 1.7666 + sizeof(struct MBRecContext) 1.7667 + }, 1.7668 + { 1.7669 + (void **) &ol_args->__tmp_2_0, 1.7670 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.7671 + { 1.7672 + 1, 1.7673 + 1, 1.7674 + 1, 1.7675 + 0 1.7676 + }, 1.7677 + sizeof(SliceBufferEntry) 1.7678 + }, 1.7679 + { 1.7680 + (void **) &ol_args->__tmp_3_0, 1.7681 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.7682 + { 1.7683 + 1, 1.7684 + 1, 1.7685 + 1, 1.7686 + 0 1.7687 + }, 1.7688 + sizeof(int) 1.7689 + } 1.7690 + }; 1.7691 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7692 + if (err != NANOS_OK) 1.7693 + nanos_handle_error(err); 1.7694 + } 1.7695 + else 1.7696 + { 1.7697 + _nx_data_env_13_t imm_args; 1.7698 + imm_args.__tmp_0_0 = __tmp_0; 1.7699 + imm_args.__tmp_1_0 = __tmp_1; 1.7700 + imm_args.__tmp_2_0 = __tmp_2; 1.7701 + imm_args.__tmp_3_0 = __tmp_3; 1.7702 + nanos_dependence_t _dependences[3] = { 1.7703 + { 1.7704 + (void **) &imm_args.__tmp_1_0, 1.7705 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.7706 + { 1.7707 + 1, 1.7708 + 1, 1.7709 + 1, 1.7710 + 0 1.7711 + }, 1.7712 + sizeof(struct MBRecContext) 1.7713 + }, 1.7714 + { 1.7715 + (void **) &imm_args.__tmp_2_0, 1.7716 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7717 + { 1.7718 + 1, 1.7719 + 1, 1.7720 + 1, 1.7721 + 0 1.7722 + }, 1.7723 + sizeof(SliceBufferEntry) 1.7724 + }, 1.7725 + { 1.7726 + (void **) &imm_args.__tmp_3_0, 1.7727 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.7728 + { 1.7729 + 1, 1.7730 + 1, 1.7731 + 1, 1.7732 + 0 1.7733 + }, 1.7734 + sizeof(int) 1.7735 + } 1.7736 + }; 1.7737 + dyn_props.priority = 0; 1.7738 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_13_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7739 + if (err != NANOS_OK) 1.7740 + nanos_handle_error(err); 1.7741 + } 1.7742 + } 1.7743 + ; 1.7744 + } 1.7745 + smbc = acquire_smbc(h); 1.7746 + SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc); 1.7747 + { 1.7748 + struct H264Context *__tmp_0 = h; 1.7749 + struct SuperMBContext *__tmp_1 = smbc; 1.7750 + struct MBRecContext *__tmp_2 = rc[k % 2]; 1.7751 + SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.7752 + struct SuperMBTask *__tmp_4 = lastsmb; 1.7753 + int *__tmp_5 = &release; 1.7754 + { 1.7755 + /* SMP device descriptor */ 1.7756 + static nanos_smp_args_t _ol_h264_decode_ompss_14_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_14}; 1.7757 + _nx_data_env_14_t *ol_args = (_nx_data_env_14_t *) 0; 1.7758 + nanos_wd_t wd = (nanos_wd_t) 0; 1.7759 + struct nanos_const_wd_definition_local_t 1.7760 + { 1.7761 + nanos_const_wd_definition_t base; 1.7762 + nanos_device_t devices[1]; 1.7763 + }; 1.7764 + static struct nanos_const_wd_definition_local_t _const_def = { 1.7765 + { 1.7766 + { 1.7767 + 0, 1.7768 + 1, 1.7769 + 0, 1.7770 + 0, 1.7771 + 0, 1.7772 + 0, 1.7773 + 0, 1.7774 + 0 1.7775 + }, 1.7776 + __alignof__(_nx_data_env_14_t), 1.7777 + 0, 1.7778 + 1 1.7779 + }, 1.7780 + {{ 1.7781 + nanos_smp_factory, 1.7782 + &_ol_h264_decode_ompss_14_smp_args 1.7783 + }} 1.7784 + }; 1.7785 + nanos_wd_dyn_props_t dyn_props = {0}; 1.7786 + nanos_err_t err; 1.7787 + dyn_props.priority = 0; 1.7788 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_14_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7789 + if (err != NANOS_OK) 1.7790 + nanos_handle_error(err); 1.7791 + if (wd != (nanos_wd_t) 0) 1.7792 + { 1.7793 + ol_args->__tmp_0_0 = __tmp_0; 1.7794 + ol_args->__tmp_1_0 = __tmp_1; 1.7795 + ol_args->__tmp_2_0 = __tmp_2; 1.7796 + ol_args->__tmp_3_0 = __tmp_3; 1.7797 + ol_args->__tmp_4_0 = __tmp_4; 1.7798 + ol_args->__tmp_5_0 = __tmp_5; 1.7799 + nanos_dependence_t _dependences[4] = { 1.7800 + { 1.7801 + (void **) &ol_args->__tmp_4_0, 1.7802 + ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0), 1.7803 + { 1.7804 + 1, 1.7805 + 0, 1.7806 + 1, 1.7807 + 0 1.7808 + }, 1.7809 + sizeof(struct SuperMBTask) 1.7810 + }, 1.7811 + { 1.7812 + (void **) &ol_args->__tmp_2_0, 1.7813 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.7814 + { 1.7815 + 1, 1.7816 + 1, 1.7817 + 1, 1.7818 + 0 1.7819 + }, 1.7820 + sizeof(struct MBRecContext) 1.7821 + }, 1.7822 + { 1.7823 + (void **) &ol_args->__tmp_3_0, 1.7824 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.7825 + { 1.7826 + 1, 1.7827 + 1, 1.7828 + 1, 1.7829 + 0 1.7830 + }, 1.7831 + sizeof(SliceBufferEntry) 1.7832 + }, 1.7833 + { 1.7834 + (void **) &ol_args->__tmp_5_0, 1.7835 + ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0), 1.7836 + { 1.7837 + 1, 1.7838 + 1, 1.7839 + 1, 1.7840 + 0 1.7841 + }, 1.7842 + sizeof(int) 1.7843 + } 1.7844 + }; 1.7845 + err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7846 + if (err != NANOS_OK) 1.7847 + nanos_handle_error(err); 1.7848 + } 1.7849 + else 1.7850 + { 1.7851 + _nx_data_env_14_t imm_args; 1.7852 + imm_args.__tmp_0_0 = __tmp_0; 1.7853 + imm_args.__tmp_1_0 = __tmp_1; 1.7854 + imm_args.__tmp_2_0 = __tmp_2; 1.7855 + imm_args.__tmp_3_0 = __tmp_3; 1.7856 + imm_args.__tmp_4_0 = __tmp_4; 1.7857 + imm_args.__tmp_5_0 = __tmp_5; 1.7858 + nanos_dependence_t _dependences[4] = { 1.7859 + { 1.7860 + (void **) &imm_args.__tmp_4_0, 1.7861 + ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0), 1.7862 + { 1.7863 + 1, 1.7864 + 0, 1.7865 + 1, 1.7866 + 0 1.7867 + }, 1.7868 + sizeof(struct SuperMBTask) 1.7869 + }, 1.7870 + { 1.7871 + (void **) &imm_args.__tmp_2_0, 1.7872 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7873 + { 1.7874 + 1, 1.7875 + 1, 1.7876 + 1, 1.7877 + 0 1.7878 + }, 1.7879 + sizeof(struct MBRecContext) 1.7880 + }, 1.7881 + { 1.7882 + (void **) &imm_args.__tmp_3_0, 1.7883 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.7884 + { 1.7885 + 1, 1.7886 + 1, 1.7887 + 1, 1.7888 + 0 1.7889 + }, 1.7890 + sizeof(SliceBufferEntry) 1.7891 + }, 1.7892 + { 1.7893 + (void **) &imm_args.__tmp_5_0, 1.7894 + ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0), 1.7895 + { 1.7896 + 1, 1.7897 + 1, 1.7898 + 1, 1.7899 + 0 1.7900 + }, 1.7901 + sizeof(int) 1.7902 + } 1.7903 + }; 1.7904 + dyn_props.priority = 0; 1.7905 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_14_t), &imm_args, 4, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.7906 + if (err != NANOS_OK) 1.7907 + nanos_handle_error(err); 1.7908 + } 1.7909 + } 1.7910 + ; 1.7911 + } 1.7912 + { 1.7913 + struct H264Context *__tmp_0 = h; 1.7914 + struct OutputContext *__tmp_1 = oc; 1.7915 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.7916 + { 1.7917 + /* SMP device descriptor */ 1.7918 + static nanos_smp_args_t _ol_h264_decode_ompss_15_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_15}; 1.7919 + _nx_data_env_15_t *ol_args = (_nx_data_env_15_t *) 0; 1.7920 + nanos_wd_t wd = (nanos_wd_t) 0; 1.7921 + struct nanos_const_wd_definition_local_t 1.7922 + { 1.7923 + nanos_const_wd_definition_t base; 1.7924 + nanos_device_t devices[1]; 1.7925 + }; 1.7926 + static struct nanos_const_wd_definition_local_t _const_def = { 1.7927 + { 1.7928 + { 1.7929 + 0, 1.7930 + 1, 1.7931 + 0, 1.7932 + 0, 1.7933 + 0, 1.7934 + 0, 1.7935 + 0, 1.7936 + 0 1.7937 + }, 1.7938 + __alignof__(_nx_data_env_15_t), 1.7939 + 0, 1.7940 + 1 1.7941 + }, 1.7942 + {{ 1.7943 + nanos_smp_factory, 1.7944 + &_ol_h264_decode_ompss_15_smp_args 1.7945 + }} 1.7946 + }; 1.7947 + nanos_wd_dyn_props_t dyn_props = {0}; 1.7948 + nanos_err_t err; 1.7949 + dyn_props.priority = 0; 1.7950 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_15_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.7951 + if (err != NANOS_OK) 1.7952 + nanos_handle_error(err); 1.7953 + if (wd != (nanos_wd_t) 0) 1.7954 + { 1.7955 + ol_args->__tmp_0_0 = __tmp_0; 1.7956 + ol_args->__tmp_1_0 = __tmp_1; 1.7957 + ol_args->__tmp_2_0 = __tmp_2; 1.7958 + nanos_dependence_t _dependences[2] = { 1.7959 + { 1.7960 + (void **) &ol_args->__tmp_2_0, 1.7961 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.7962 + { 1.7963 + 1, 1.7964 + 0, 1.7965 + 1, 1.7966 + 0 1.7967 + }, 1.7968 + sizeof(SliceBufferEntry) 1.7969 + }, 1.7970 + { 1.7971 + (void **) &ol_args->__tmp_1_0, 1.7972 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.7973 + { 1.7974 + 1, 1.7975 + 1, 1.7976 + 1, 1.7977 + 0 1.7978 + }, 1.7979 + sizeof(struct OutputContext) 1.7980 + } 1.7981 + }; 1.7982 + err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.7983 + if (err != NANOS_OK) 1.7984 + nanos_handle_error(err); 1.7985 + } 1.7986 + else 1.7987 + { 1.7988 + _nx_data_env_15_t imm_args; 1.7989 + imm_args.__tmp_0_0 = __tmp_0; 1.7990 + imm_args.__tmp_1_0 = __tmp_1; 1.7991 + imm_args.__tmp_2_0 = __tmp_2; 1.7992 + nanos_dependence_t _dependences[2] = { 1.7993 + { 1.7994 + (void **) &imm_args.__tmp_2_0, 1.7995 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.7996 + { 1.7997 + 1, 1.7998 + 0, 1.7999 + 1, 1.8000 + 0 1.8001 + }, 1.8002 + sizeof(SliceBufferEntry) 1.8003 + }, 1.8004 + { 1.8005 + (void **) &imm_args.__tmp_1_0, 1.8006 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8007 + { 1.8008 + 1, 1.8009 + 1, 1.8010 + 1, 1.8011 + 0 1.8012 + }, 1.8013 + sizeof(struct OutputContext) 1.8014 + } 1.8015 + }; 1.8016 + dyn_props.priority = 0; 1.8017 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_15_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8018 + if (err != NANOS_OK) 1.8019 + nanos_handle_error(err); 1.8020 + } 1.8021 + } 1.8022 + ; 1.8023 + } 1.8024 + } 1.8025 + } 1.8026 + else 1.8027 + { 1.8028 + while (!pc->final_frame && frames++ < h->num_frames && !h->quit) 1.8029 + { 1.8030 + { 1.8031 + struct H264Context *__tmp_0 = h; 1.8032 + struct ParserContext *__tmp_1 = pc; 1.8033 + struct NalContext *__tmp_2 = nc; 1.8034 + SliceBufferEntry *__tmp_3 = &sbe[k % bufs]; 1.8035 + { 1.8036 + /* SMP device descriptor */ 1.8037 + static nanos_smp_args_t _ol_h264_decode_ompss_16_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_16}; 1.8038 + _nx_data_env_16_t *ol_args = (_nx_data_env_16_t *) 0; 1.8039 + nanos_wd_t wd = (nanos_wd_t) 0; 1.8040 + struct nanos_const_wd_definition_local_t 1.8041 + { 1.8042 + nanos_const_wd_definition_t base; 1.8043 + nanos_device_t devices[1]; 1.8044 + }; 1.8045 + static struct nanos_const_wd_definition_local_t _const_def = { 1.8046 + { 1.8047 + { 1.8048 + 0, 1.8049 + 1, 1.8050 + 0, 1.8051 + 0, 1.8052 + 0, 1.8053 + 0, 1.8054 + 0, 1.8055 + 0 1.8056 + }, 1.8057 + __alignof__(_nx_data_env_16_t), 1.8058 + 0, 1.8059 + 1 1.8060 + }, 1.8061 + {{ 1.8062 + nanos_smp_factory, 1.8063 + &_ol_h264_decode_ompss_16_smp_args 1.8064 + }} 1.8065 + }; 1.8066 + nanos_wd_dyn_props_t dyn_props = {0}; 1.8067 + nanos_err_t err; 1.8068 + dyn_props.priority = 0; 1.8069 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_16_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.8070 + if (err != NANOS_OK) 1.8071 + nanos_handle_error(err); 1.8072 + if (wd != (nanos_wd_t) 0) 1.8073 + { 1.8074 + ol_args->__tmp_0_0 = __tmp_0; 1.8075 + ol_args->__tmp_1_0 = __tmp_1; 1.8076 + ol_args->__tmp_2_0 = __tmp_2; 1.8077 + ol_args->__tmp_3_0 = __tmp_3; 1.8078 + nanos_dependence_t _dependences[3] = { 1.8079 + { 1.8080 + (void **) &ol_args->__tmp_3_0, 1.8081 + ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0), 1.8082 + { 1.8083 + 0, 1.8084 + 1, 1.8085 + 1, 1.8086 + 0 1.8087 + }, 1.8088 + sizeof(SliceBufferEntry) 1.8089 + }, 1.8090 + { 1.8091 + (void **) &ol_args->__tmp_1_0, 1.8092 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.8093 + { 1.8094 + 1, 1.8095 + 1, 1.8096 + 1, 1.8097 + 0 1.8098 + }, 1.8099 + sizeof(struct ParserContext) 1.8100 + }, 1.8101 + { 1.8102 + (void **) &ol_args->__tmp_2_0, 1.8103 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.8104 + { 1.8105 + 1, 1.8106 + 1, 1.8107 + 1, 1.8108 + 0 1.8109 + }, 1.8110 + sizeof(struct NalContext) 1.8111 + } 1.8112 + }; 1.8113 + err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.8114 + if (err != NANOS_OK) 1.8115 + nanos_handle_error(err); 1.8116 + } 1.8117 + else 1.8118 + { 1.8119 + _nx_data_env_16_t imm_args; 1.8120 + imm_args.__tmp_0_0 = __tmp_0; 1.8121 + imm_args.__tmp_1_0 = __tmp_1; 1.8122 + imm_args.__tmp_2_0 = __tmp_2; 1.8123 + imm_args.__tmp_3_0 = __tmp_3; 1.8124 + nanos_dependence_t _dependences[3] = { 1.8125 + { 1.8126 + (void **) &imm_args.__tmp_3_0, 1.8127 + ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0), 1.8128 + { 1.8129 + 0, 1.8130 + 1, 1.8131 + 1, 1.8132 + 0 1.8133 + }, 1.8134 + sizeof(SliceBufferEntry) 1.8135 + }, 1.8136 + { 1.8137 + (void **) &imm_args.__tmp_1_0, 1.8138 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8139 + { 1.8140 + 1, 1.8141 + 1, 1.8142 + 1, 1.8143 + 0 1.8144 + }, 1.8145 + sizeof(struct ParserContext) 1.8146 + }, 1.8147 + { 1.8148 + (void **) &imm_args.__tmp_2_0, 1.8149 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.8150 + { 1.8151 + 1, 1.8152 + 1, 1.8153 + 1, 1.8154 + 0 1.8155 + }, 1.8156 + sizeof(struct NalContext) 1.8157 + } 1.8158 + }; 1.8159 + dyn_props.priority = 0; 1.8160 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_16_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8161 + if (err != NANOS_OK) 1.8162 + nanos_handle_error(err); 1.8163 + } 1.8164 + } 1.8165 + ; 1.8166 + } 1.8167 + { 1.8168 + struct H264Context *__tmp_0 = h; 1.8169 + struct EntropyContext *__tmp_1 = ec[k % bufs]; 1.8170 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.8171 + { 1.8172 + /* SMP device descriptor */ 1.8173 + static nanos_smp_args_t _ol_h264_decode_ompss_17_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_17}; 1.8174 + _nx_data_env_17_t *ol_args = (_nx_data_env_17_t *) 0; 1.8175 + nanos_wd_t wd = (nanos_wd_t) 0; 1.8176 + struct nanos_const_wd_definition_local_t 1.8177 + { 1.8178 + nanos_const_wd_definition_t base; 1.8179 + nanos_device_t devices[1]; 1.8180 + }; 1.8181 + static struct nanos_const_wd_definition_local_t _const_def = { 1.8182 + { 1.8183 + { 1.8184 + 0, 1.8185 + 1, 1.8186 + 0, 1.8187 + 0, 1.8188 + 0, 1.8189 + 0, 1.8190 + 0, 1.8191 + 0 1.8192 + }, 1.8193 + __alignof__(_nx_data_env_17_t), 1.8194 + 0, 1.8195 + 1 1.8196 + }, 1.8197 + {{ 1.8198 + nanos_smp_factory, 1.8199 + &_ol_h264_decode_ompss_17_smp_args 1.8200 + }} 1.8201 + }; 1.8202 + nanos_wd_dyn_props_t dyn_props = {0}; 1.8203 + nanos_err_t err; 1.8204 + dyn_props.priority = 0; 1.8205 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_17_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.8206 + if (err != NANOS_OK) 1.8207 + nanos_handle_error(err); 1.8208 + if (wd != (nanos_wd_t) 0) 1.8209 + { 1.8210 + ol_args->__tmp_0_0 = __tmp_0; 1.8211 + ol_args->__tmp_1_0 = __tmp_1; 1.8212 + ol_args->__tmp_2_0 = __tmp_2; 1.8213 + nanos_dependence_t _dependences[2] = { 1.8214 + { 1.8215 + (void **) &ol_args->__tmp_1_0, 1.8216 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.8217 + { 1.8218 + 1, 1.8219 + 1, 1.8220 + 1, 1.8221 + 0 1.8222 + }, 1.8223 + sizeof(struct EntropyContext) 1.8224 + }, 1.8225 + { 1.8226 + (void **) &ol_args->__tmp_2_0, 1.8227 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.8228 + { 1.8229 + 1, 1.8230 + 1, 1.8231 + 1, 1.8232 + 0 1.8233 + }, 1.8234 + sizeof(SliceBufferEntry) 1.8235 + } 1.8236 + }; 1.8237 + err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.8238 + if (err != NANOS_OK) 1.8239 + nanos_handle_error(err); 1.8240 + } 1.8241 + else 1.8242 + { 1.8243 + _nx_data_env_17_t imm_args; 1.8244 + imm_args.__tmp_0_0 = __tmp_0; 1.8245 + imm_args.__tmp_1_0 = __tmp_1; 1.8246 + imm_args.__tmp_2_0 = __tmp_2; 1.8247 + nanos_dependence_t _dependences[2] = { 1.8248 + { 1.8249 + (void **) &imm_args.__tmp_1_0, 1.8250 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8251 + { 1.8252 + 1, 1.8253 + 1, 1.8254 + 1, 1.8255 + 0 1.8256 + }, 1.8257 + sizeof(struct EntropyContext) 1.8258 + }, 1.8259 + { 1.8260 + (void **) &imm_args.__tmp_2_0, 1.8261 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.8262 + { 1.8263 + 1, 1.8264 + 1, 1.8265 + 1, 1.8266 + 0 1.8267 + }, 1.8268 + sizeof(SliceBufferEntry) 1.8269 + } 1.8270 + }; 1.8271 + dyn_props.priority = 0; 1.8272 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_17_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8273 + if (err != NANOS_OK) 1.8274 + nanos_handle_error(err); 1.8275 + } 1.8276 + } 1.8277 + ; 1.8278 + } 1.8279 + { 1.8280 + struct H264Context *__tmp_0 = h; 1.8281 + struct MBRecContext *__tmp_1 = rc[0]; 1.8282 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.8283 + { 1.8284 + /* SMP device descriptor */ 1.8285 + static nanos_smp_args_t _ol_h264_decode_ompss_18_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_18}; 1.8286 + _nx_data_env_18_t *ol_args = (_nx_data_env_18_t *) 0; 1.8287 + nanos_wd_t wd = (nanos_wd_t) 0; 1.8288 + struct nanos_const_wd_definition_local_t 1.8289 + { 1.8290 + nanos_const_wd_definition_t base; 1.8291 + nanos_device_t devices[1]; 1.8292 + }; 1.8293 + static struct nanos_const_wd_definition_local_t _const_def = { 1.8294 + { 1.8295 + { 1.8296 + 0, 1.8297 + 1, 1.8298 + 0, 1.8299 + 0, 1.8300 + 0, 1.8301 + 0, 1.8302 + 0, 1.8303 + 0 1.8304 + }, 1.8305 + __alignof__(_nx_data_env_18_t), 1.8306 + 0, 1.8307 + 1 1.8308 + }, 1.8309 + {{ 1.8310 + nanos_smp_factory, 1.8311 + &_ol_h264_decode_ompss_18_smp_args 1.8312 + }} 1.8313 + }; 1.8314 + nanos_wd_dyn_props_t dyn_props = {0}; 1.8315 + nanos_err_t err; 1.8316 + dyn_props.priority = 0; 1.8317 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_18_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.8318 + if (err != NANOS_OK) 1.8319 + nanos_handle_error(err); 1.8320 + if (wd != (nanos_wd_t) 0) 1.8321 + { 1.8322 + ol_args->__tmp_0_0 = __tmp_0; 1.8323 + ol_args->__tmp_1_0 = __tmp_1; 1.8324 + ol_args->__tmp_2_0 = __tmp_2; 1.8325 + nanos_dependence_t _dependences[2] = { 1.8326 + { 1.8327 + (void **) &ol_args->__tmp_1_0, 1.8328 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.8329 + { 1.8330 + 1, 1.8331 + 1, 1.8332 + 1, 1.8333 + 0 1.8334 + }, 1.8335 + sizeof(struct MBRecContext) 1.8336 + }, 1.8337 + { 1.8338 + (void **) &ol_args->__tmp_2_0, 1.8339 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.8340 + { 1.8341 + 1, 1.8342 + 1, 1.8343 + 1, 1.8344 + 0 1.8345 + }, 1.8346 + sizeof(SliceBufferEntry) 1.8347 + } 1.8348 + }; 1.8349 + err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.8350 + if (err != NANOS_OK) 1.8351 + nanos_handle_error(err); 1.8352 + } 1.8353 + else 1.8354 + { 1.8355 + _nx_data_env_18_t imm_args; 1.8356 + imm_args.__tmp_0_0 = __tmp_0; 1.8357 + imm_args.__tmp_1_0 = __tmp_1; 1.8358 + imm_args.__tmp_2_0 = __tmp_2; 1.8359 + nanos_dependence_t _dependences[2] = { 1.8360 + { 1.8361 + (void **) &imm_args.__tmp_1_0, 1.8362 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8363 + { 1.8364 + 1, 1.8365 + 1, 1.8366 + 1, 1.8367 + 0 1.8368 + }, 1.8369 + sizeof(struct MBRecContext) 1.8370 + }, 1.8371 + { 1.8372 + (void **) &imm_args.__tmp_2_0, 1.8373 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.8374 + { 1.8375 + 1, 1.8376 + 1, 1.8377 + 1, 1.8378 + 0 1.8379 + }, 1.8380 + sizeof(SliceBufferEntry) 1.8381 + } 1.8382 + }; 1.8383 + dyn_props.priority = 0; 1.8384 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_18_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8385 + if (err != NANOS_OK) 1.8386 + nanos_handle_error(err); 1.8387 + } 1.8388 + } 1.8389 + ; 1.8390 + } 1.8391 + { 1.8392 + struct H264Context *__tmp_0 = h; 1.8393 + struct OutputContext *__tmp_1 = oc; 1.8394 + SliceBufferEntry *__tmp_2 = &sbe[k % bufs]; 1.8395 + { 1.8396 + /* SMP device descriptor */ 1.8397 + static nanos_smp_args_t _ol_h264_decode_ompss_19_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_19}; 1.8398 + _nx_data_env_19_t *ol_args = (_nx_data_env_19_t *) 0; 1.8399 + nanos_wd_t wd = (nanos_wd_t) 0; 1.8400 + struct nanos_const_wd_definition_local_t 1.8401 + { 1.8402 + nanos_const_wd_definition_t base; 1.8403 + nanos_device_t devices[1]; 1.8404 + }; 1.8405 + static struct nanos_const_wd_definition_local_t _const_def = { 1.8406 + { 1.8407 + { 1.8408 + 0, 1.8409 + 1, 1.8410 + 0, 1.8411 + 0, 1.8412 + 0, 1.8413 + 0, 1.8414 + 0, 1.8415 + 0 1.8416 + }, 1.8417 + __alignof__(_nx_data_env_19_t), 1.8418 + 0, 1.8419 + 1 1.8420 + }, 1.8421 + {{ 1.8422 + nanos_smp_factory, 1.8423 + &_ol_h264_decode_ompss_19_smp_args 1.8424 + }} 1.8425 + }; 1.8426 + nanos_wd_dyn_props_t dyn_props = {0}; 1.8427 + nanos_err_t err; 1.8428 + dyn_props.priority = 0; 1.8429 + err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_19_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0); 1.8430 + if (err != NANOS_OK) 1.8431 + nanos_handle_error(err); 1.8432 + if (wd != (nanos_wd_t) 0) 1.8433 + { 1.8434 + ol_args->__tmp_0_0 = __tmp_0; 1.8435 + ol_args->__tmp_1_0 = __tmp_1; 1.8436 + ol_args->__tmp_2_0 = __tmp_2; 1.8437 + nanos_dependence_t _dependences[2] = { 1.8438 + { 1.8439 + (void **) &ol_args->__tmp_2_0, 1.8440 + ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0), 1.8441 + { 1.8442 + 1, 1.8443 + 0, 1.8444 + 1, 1.8445 + 0 1.8446 + }, 1.8447 + sizeof(SliceBufferEntry) 1.8448 + }, 1.8449 + { 1.8450 + (void **) &ol_args->__tmp_1_0, 1.8451 + ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0), 1.8452 + { 1.8453 + 1, 1.8454 + 1, 1.8455 + 1, 1.8456 + 0 1.8457 + }, 1.8458 + sizeof(struct OutputContext) 1.8459 + } 1.8460 + }; 1.8461 + err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0); 1.8462 + if (err != NANOS_OK) 1.8463 + nanos_handle_error(err); 1.8464 + } 1.8465 + else 1.8466 + { 1.8467 + _nx_data_env_19_t imm_args; 1.8468 + imm_args.__tmp_0_0 = __tmp_0; 1.8469 + imm_args.__tmp_1_0 = __tmp_1; 1.8470 + imm_args.__tmp_2_0 = __tmp_2; 1.8471 + nanos_dependence_t _dependences[2] = { 1.8472 + { 1.8473 + (void **) &imm_args.__tmp_2_0, 1.8474 + ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0), 1.8475 + { 1.8476 + 1, 1.8477 + 0, 1.8478 + 1, 1.8479 + 0 1.8480 + }, 1.8481 + sizeof(SliceBufferEntry) 1.8482 + }, 1.8483 + { 1.8484 + (void **) &imm_args.__tmp_1_0, 1.8485 + ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0), 1.8486 + { 1.8487 + 1, 1.8488 + 1, 1.8489 + 1, 1.8490 + 0 1.8491 + }, 1.8492 + sizeof(struct OutputContext) 1.8493 + } 1.8494 + }; 1.8495 + dyn_props.priority = 0; 1.8496 + err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_19_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0); 1.8497 + if (err != NANOS_OK) 1.8498 + nanos_handle_error(err); 1.8499 + } 1.8500 + } 1.8501 + ; 1.8502 + } 1.8503 + { 1.8504 + struct _dependence_holder 1.8505 + { 1.8506 + struct ParserContext *dep_0; 1.8507 + } _dep_holder = {&(*pc)}; 1.8508 + nanos_dependence_t _wait_dependences[1] = {{ 1.8509 + (void **) &_dep_holder.dep_0, 1.8510 + ((char *) ((pc)) - (char *) _dep_holder.dep_0), 1.8511 + { 1.8512 + 1, 1.8513 + 0, 1.8514 + 0, 1.8515 + 0 1.8516 + }, 1.8517 + sizeof (*pc) 1.8518 + }}; 1.8519 + nanos_wait_on(1, _wait_dependences); 1.8520 + } 1.8521 + k++; 1.8522 + } 1.8523 + } 1.8524 + nanos_wg_wait_completion(nanos_current_wd(), 0); 1.8525 + while ((out = output_frame(h, oc, ((void *) 0), h->ofile, h->frame_width, h->frame_height))) 1.8526 + ; 1.8527 + h->num_frames = oc->frame_number; 1.8528 + free_parse_context(pc); 1.8529 + free_nal_context(nc); 1.8530 + free_output_context(oc); 1.8531 + for (int i = 0; 1.8532 + i < bufs; 1.8533 + i++) 1.8534 + { 1.8535 + free_sb_entry(&sbe[i]); 1.8536 + free_entropy_context(ec[i]); 1.8537 + } 1.8538 + av_free(sbe); 1.8539 + for (int i = 0; 1.8540 + i < 2; 1.8541 + i++) 1.8542 + { 1.8543 + free_mbrec_context(rc[i]); 1.8544 + } 1.8545 + return 0; 1.8546 +} 1.8547 +__attribute__((weak, section("nanos_init"))) nanos_init_desc_t __section__nanos_init = { 1.8548 + nanos_omp_set_interface, 1.8549 + (void *) 0 1.8550 +};
