| rev |
line source |
|
nengel@9
|
1 const char *__nanos_family __attribute__((weak)) = "master";
|
|
nengel@9
|
2 int __nanos_version __attribute__((weak)) = 5015;
|
|
nengel@9
|
3 int __mcc_master __attribute__((weak)) = 5015;
|
|
nengel@9
|
4 int __mcc_openmp __attribute__((weak)) = 5;
|
|
nengel@9
|
5 int __mcc_trunk __attribute__((weak)) = 399;
|
|
nengel@9
|
6 int __mcc_worksharing __attribute__((weak)) = 1000;
|
|
nengel@9
|
7 typedef unsigned char __u_char;
|
|
nengel@9
|
8 typedef unsigned short int __u_short;
|
|
nengel@9
|
9 typedef unsigned int __u_int;
|
|
nengel@9
|
10 typedef unsigned long int __u_long;
|
|
nengel@9
|
11 typedef signed char __int8_t;
|
|
nengel@9
|
12 typedef unsigned char __uint8_t;
|
|
nengel@9
|
13 typedef signed short int __int16_t;
|
|
nengel@9
|
14 typedef unsigned short int __uint16_t;
|
|
nengel@9
|
15 typedef signed int __int32_t;
|
|
nengel@9
|
16 typedef unsigned int __uint32_t;
|
|
nengel@9
|
17 typedef signed long int __int64_t;
|
|
nengel@9
|
18 typedef unsigned long int __uint64_t;
|
|
nengel@9
|
19 typedef long int __quad_t;
|
|
nengel@9
|
20 typedef unsigned long int __u_quad_t;
|
|
nengel@9
|
21 typedef unsigned long int __dev_t;
|
|
nengel@9
|
22 typedef unsigned int __uid_t;
|
|
nengel@9
|
23 typedef unsigned int __gid_t;
|
|
nengel@9
|
24 typedef unsigned long int __ino_t;
|
|
nengel@9
|
25 typedef unsigned long int __ino64_t;
|
|
nengel@9
|
26 typedef unsigned int __mode_t;
|
|
nengel@9
|
27 typedef unsigned long int __nlink_t;
|
|
nengel@9
|
28 typedef long int __off_t;
|
|
nengel@9
|
29 typedef long int __off64_t;
|
|
nengel@9
|
30 typedef int __pid_t;
|
|
nengel@9
|
31 typedef struct
|
|
nengel@9
|
32 {
|
|
nengel@9
|
33 int __val[2];
|
|
nengel@9
|
34 } __fsid_t;
|
|
nengel@9
|
35 typedef long int __clock_t;
|
|
nengel@9
|
36 typedef unsigned long int __rlim_t;
|
|
nengel@9
|
37 typedef unsigned long int __rlim64_t;
|
|
nengel@9
|
38 typedef unsigned int __id_t;
|
|
nengel@9
|
39 typedef long int __time_t;
|
|
nengel@9
|
40 typedef unsigned int __useconds_t;
|
|
nengel@9
|
41 typedef long int __suseconds_t;
|
|
nengel@9
|
42 typedef int __daddr_t;
|
|
nengel@9
|
43 typedef long int __swblk_t;
|
|
nengel@9
|
44 typedef int __key_t;
|
|
nengel@9
|
45 typedef int __clockid_t;
|
|
nengel@9
|
46 typedef void *__timer_t;
|
|
nengel@9
|
47 typedef long int __blksize_t;
|
|
nengel@9
|
48 typedef long int __blkcnt_t;
|
|
nengel@9
|
49 typedef long int __blkcnt64_t;
|
|
nengel@9
|
50 typedef unsigned long int __fsblkcnt_t;
|
|
nengel@9
|
51 typedef unsigned long int __fsblkcnt64_t;
|
|
nengel@9
|
52 typedef unsigned long int __fsfilcnt_t;
|
|
nengel@9
|
53 typedef unsigned long int __fsfilcnt64_t;
|
|
nengel@9
|
54 typedef long int __ssize_t;
|
|
nengel@9
|
55 typedef __off64_t __loff_t;
|
|
nengel@9
|
56 typedef __quad_t *__qaddr_t;
|
|
nengel@9
|
57 typedef char *__caddr_t;
|
|
nengel@9
|
58 typedef long int __intptr_t;
|
|
nengel@9
|
59 typedef unsigned int __socklen_t;
|
|
nengel@9
|
60 typedef __ssize_t ssize_t;
|
|
nengel@9
|
61 typedef long unsigned int size_t;
|
|
nengel@9
|
62 typedef __gid_t gid_t;
|
|
nengel@9
|
63 typedef __uid_t uid_t;
|
|
nengel@9
|
64 typedef __off_t off_t;
|
|
nengel@9
|
65 typedef __useconds_t useconds_t;
|
|
nengel@9
|
66 typedef __pid_t pid_t;
|
|
nengel@9
|
67 typedef __intptr_t intptr_t;
|
|
nengel@9
|
68 typedef __socklen_t socklen_t;
|
|
nengel@9
|
69 extern int access(__const char *__name, int __type) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
70 extern int faccessat(int __fd, __const char *__file, int __type, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
71 extern __off_t lseek(int __fd, __off_t __offset, int __whence) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
72 extern int close(int __fd);
|
|
nengel@9
|
73 extern ssize_t read(int __fd, void *__buf, size_t __nbytes) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
74 extern ssize_t write(int __fd, __const void *__buf, size_t __n) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
75 extern ssize_t pread(int __fd, void *__buf, size_t __nbytes, __off_t __offset) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
76 extern ssize_t pwrite(int __fd, __const void *__buf, size_t __n, __off_t __offset) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
77 extern int pipe(int __pipedes[2]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
78 extern unsigned int alarm(unsigned int __seconds) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
79 extern unsigned int sleep(unsigned int __seconds);
|
|
nengel@9
|
80 extern __useconds_t ualarm(__useconds_t __value, __useconds_t __interval) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
81 extern int usleep(__useconds_t __useconds);
|
|
nengel@9
|
82 extern int pause(void);
|
|
nengel@9
|
83 extern int chown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
84 extern int fchown(int __fd, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
85 extern int lchown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
86 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__));
|
|
nengel@9
|
87 extern int chdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
88 extern int fchdir(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
89 extern char *getcwd(char *__buf, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
90 extern char *getwd(char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
91 extern int dup(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
92 extern int dup2(int __fd, int __fd2) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
93 extern char **__environ;
|
|
nengel@9
|
94 extern int execve(__const char *__path, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
95 extern int fexecve(int __fd, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
96 extern int execv(__const char *__path, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
97 extern int execle(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
98 extern int execl(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
99 extern int execvp(__const char *__file, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
100 extern int execlp(__const char *__file, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
101 extern int nice(int __inc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
102 extern void _exit(int __status) __attribute__((__noreturn__));
|
|
nengel@9
|
103 enum
|
|
nengel@9
|
104 {
|
|
nengel@9
|
105 _PC_LINK_MAX,
|
|
nengel@9
|
106 _PC_MAX_CANON,
|
|
nengel@9
|
107 _PC_MAX_INPUT,
|
|
nengel@9
|
108 _PC_NAME_MAX,
|
|
nengel@9
|
109 _PC_PATH_MAX,
|
|
nengel@9
|
110 _PC_PIPE_BUF,
|
|
nengel@9
|
111 _PC_CHOWN_RESTRICTED,
|
|
nengel@9
|
112 _PC_NO_TRUNC,
|
|
nengel@9
|
113 _PC_VDISABLE,
|
|
nengel@9
|
114 _PC_SYNC_IO,
|
|
nengel@9
|
115 _PC_ASYNC_IO,
|
|
nengel@9
|
116 _PC_PRIO_IO,
|
|
nengel@9
|
117 _PC_SOCK_MAXBUF,
|
|
nengel@9
|
118 _PC_FILESIZEBITS,
|
|
nengel@9
|
119 _PC_REC_INCR_XFER_SIZE,
|
|
nengel@9
|
120 _PC_REC_MAX_XFER_SIZE,
|
|
nengel@9
|
121 _PC_REC_MIN_XFER_SIZE,
|
|
nengel@9
|
122 _PC_REC_XFER_ALIGN,
|
|
nengel@9
|
123 _PC_ALLOC_SIZE_MIN,
|
|
nengel@9
|
124 _PC_SYMLINK_MAX,
|
|
nengel@9
|
125 _PC_2_SYMLINKS
|
|
nengel@9
|
126 };
|
|
nengel@9
|
127 enum
|
|
nengel@9
|
128 {
|
|
nengel@9
|
129 _SC_ARG_MAX,
|
|
nengel@9
|
130 _SC_CHILD_MAX,
|
|
nengel@9
|
131 _SC_CLK_TCK,
|
|
nengel@9
|
132 _SC_NGROUPS_MAX,
|
|
nengel@9
|
133 _SC_OPEN_MAX,
|
|
nengel@9
|
134 _SC_STREAM_MAX,
|
|
nengel@9
|
135 _SC_TZNAME_MAX,
|
|
nengel@9
|
136 _SC_JOB_CONTROL,
|
|
nengel@9
|
137 _SC_SAVED_IDS,
|
|
nengel@9
|
138 _SC_REALTIME_SIGNALS,
|
|
nengel@9
|
139 _SC_PRIORITY_SCHEDULING,
|
|
nengel@9
|
140 _SC_TIMERS,
|
|
nengel@9
|
141 _SC_ASYNCHRONOUS_IO,
|
|
nengel@9
|
142 _SC_PRIORITIZED_IO,
|
|
nengel@9
|
143 _SC_SYNCHRONIZED_IO,
|
|
nengel@9
|
144 _SC_FSYNC,
|
|
nengel@9
|
145 _SC_MAPPED_FILES,
|
|
nengel@9
|
146 _SC_MEMLOCK,
|
|
nengel@9
|
147 _SC_MEMLOCK_RANGE,
|
|
nengel@9
|
148 _SC_MEMORY_PROTECTION,
|
|
nengel@9
|
149 _SC_MESSAGE_PASSING,
|
|
nengel@9
|
150 _SC_SEMAPHORES,
|
|
nengel@9
|
151 _SC_SHARED_MEMORY_OBJECTS,
|
|
nengel@9
|
152 _SC_AIO_LISTIO_MAX,
|
|
nengel@9
|
153 _SC_AIO_MAX,
|
|
nengel@9
|
154 _SC_AIO_PRIO_DELTA_MAX,
|
|
nengel@9
|
155 _SC_DELAYTIMER_MAX,
|
|
nengel@9
|
156 _SC_MQ_OPEN_MAX,
|
|
nengel@9
|
157 _SC_MQ_PRIO_MAX,
|
|
nengel@9
|
158 _SC_VERSION,
|
|
nengel@9
|
159 _SC_PAGESIZE,
|
|
nengel@9
|
160 _SC_RTSIG_MAX,
|
|
nengel@9
|
161 _SC_SEM_NSEMS_MAX,
|
|
nengel@9
|
162 _SC_SEM_VALUE_MAX,
|
|
nengel@9
|
163 _SC_SIGQUEUE_MAX,
|
|
nengel@9
|
164 _SC_TIMER_MAX,
|
|
nengel@9
|
165 _SC_BC_BASE_MAX,
|
|
nengel@9
|
166 _SC_BC_DIM_MAX,
|
|
nengel@9
|
167 _SC_BC_SCALE_MAX,
|
|
nengel@9
|
168 _SC_BC_STRING_MAX,
|
|
nengel@9
|
169 _SC_COLL_WEIGHTS_MAX,
|
|
nengel@9
|
170 _SC_EQUIV_CLASS_MAX,
|
|
nengel@9
|
171 _SC_EXPR_NEST_MAX,
|
|
nengel@9
|
172 _SC_LINE_MAX,
|
|
nengel@9
|
173 _SC_RE_DUP_MAX,
|
|
nengel@9
|
174 _SC_CHARCLASS_NAME_MAX,
|
|
nengel@9
|
175 _SC_2_VERSION,
|
|
nengel@9
|
176 _SC_2_C_BIND,
|
|
nengel@9
|
177 _SC_2_C_DEV,
|
|
nengel@9
|
178 _SC_2_FORT_DEV,
|
|
nengel@9
|
179 _SC_2_FORT_RUN,
|
|
nengel@9
|
180 _SC_2_SW_DEV,
|
|
nengel@9
|
181 _SC_2_LOCALEDEF,
|
|
nengel@9
|
182 _SC_PII,
|
|
nengel@9
|
183 _SC_PII_XTI,
|
|
nengel@9
|
184 _SC_PII_SOCKET,
|
|
nengel@9
|
185 _SC_PII_INTERNET,
|
|
nengel@9
|
186 _SC_PII_OSI,
|
|
nengel@9
|
187 _SC_POLL,
|
|
nengel@9
|
188 _SC_SELECT,
|
|
nengel@9
|
189 _SC_UIO_MAXIOV,
|
|
nengel@9
|
190 _SC_IOV_MAX = _SC_UIO_MAXIOV,
|
|
nengel@9
|
191 _SC_PII_INTERNET_STREAM,
|
|
nengel@9
|
192 _SC_PII_INTERNET_DGRAM,
|
|
nengel@9
|
193 _SC_PII_OSI_COTS,
|
|
nengel@9
|
194 _SC_PII_OSI_CLTS,
|
|
nengel@9
|
195 _SC_PII_OSI_M,
|
|
nengel@9
|
196 _SC_T_IOV_MAX,
|
|
nengel@9
|
197 _SC_THREADS,
|
|
nengel@9
|
198 _SC_THREAD_SAFE_FUNCTIONS,
|
|
nengel@9
|
199 _SC_GETGR_R_SIZE_MAX,
|
|
nengel@9
|
200 _SC_GETPW_R_SIZE_MAX,
|
|
nengel@9
|
201 _SC_LOGIN_NAME_MAX,
|
|
nengel@9
|
202 _SC_TTY_NAME_MAX,
|
|
nengel@9
|
203 _SC_THREAD_DESTRUCTOR_ITERATIONS,
|
|
nengel@9
|
204 _SC_THREAD_KEYS_MAX,
|
|
nengel@9
|
205 _SC_THREAD_STACK_MIN,
|
|
nengel@9
|
206 _SC_THREAD_THREADS_MAX,
|
|
nengel@9
|
207 _SC_THREAD_ATTR_STACKADDR,
|
|
nengel@9
|
208 _SC_THREAD_ATTR_STACKSIZE,
|
|
nengel@9
|
209 _SC_THREAD_PRIORITY_SCHEDULING,
|
|
nengel@9
|
210 _SC_THREAD_PRIO_INHERIT,
|
|
nengel@9
|
211 _SC_THREAD_PRIO_PROTECT,
|
|
nengel@9
|
212 _SC_THREAD_PROCESS_SHARED,
|
|
nengel@9
|
213 _SC_NPROCESSORS_CONF,
|
|
nengel@9
|
214 _SC_NPROCESSORS_ONLN,
|
|
nengel@9
|
215 _SC_PHYS_PAGES,
|
|
nengel@9
|
216 _SC_AVPHYS_PAGES,
|
|
nengel@9
|
217 _SC_ATEXIT_MAX,
|
|
nengel@9
|
218 _SC_PASS_MAX,
|
|
nengel@9
|
219 _SC_XOPEN_VERSION,
|
|
nengel@9
|
220 _SC_XOPEN_XCU_VERSION,
|
|
nengel@9
|
221 _SC_XOPEN_UNIX,
|
|
nengel@9
|
222 _SC_XOPEN_CRYPT,
|
|
nengel@9
|
223 _SC_XOPEN_ENH_I18N,
|
|
nengel@9
|
224 _SC_XOPEN_SHM,
|
|
nengel@9
|
225 _SC_2_CHAR_TERM,
|
|
nengel@9
|
226 _SC_2_C_VERSION,
|
|
nengel@9
|
227 _SC_2_UPE,
|
|
nengel@9
|
228 _SC_XOPEN_XPG2,
|
|
nengel@9
|
229 _SC_XOPEN_XPG3,
|
|
nengel@9
|
230 _SC_XOPEN_XPG4,
|
|
nengel@9
|
231 _SC_CHAR_BIT,
|
|
nengel@9
|
232 _SC_CHAR_MAX,
|
|
nengel@9
|
233 _SC_CHAR_MIN,
|
|
nengel@9
|
234 _SC_INT_MAX,
|
|
nengel@9
|
235 _SC_INT_MIN,
|
|
nengel@9
|
236 _SC_LONG_BIT,
|
|
nengel@9
|
237 _SC_WORD_BIT,
|
|
nengel@9
|
238 _SC_MB_LEN_MAX,
|
|
nengel@9
|
239 _SC_NZERO,
|
|
nengel@9
|
240 _SC_SSIZE_MAX,
|
|
nengel@9
|
241 _SC_SCHAR_MAX,
|
|
nengel@9
|
242 _SC_SCHAR_MIN,
|
|
nengel@9
|
243 _SC_SHRT_MAX,
|
|
nengel@9
|
244 _SC_SHRT_MIN,
|
|
nengel@9
|
245 _SC_UCHAR_MAX,
|
|
nengel@9
|
246 _SC_UINT_MAX,
|
|
nengel@9
|
247 _SC_ULONG_MAX,
|
|
nengel@9
|
248 _SC_USHRT_MAX,
|
|
nengel@9
|
249 _SC_NL_ARGMAX,
|
|
nengel@9
|
250 _SC_NL_LANGMAX,
|
|
nengel@9
|
251 _SC_NL_MSGMAX,
|
|
nengel@9
|
252 _SC_NL_NMAX,
|
|
nengel@9
|
253 _SC_NL_SETMAX,
|
|
nengel@9
|
254 _SC_NL_TEXTMAX,
|
|
nengel@9
|
255 _SC_XBS5_ILP32_OFF32,
|
|
nengel@9
|
256 _SC_XBS5_ILP32_OFFBIG,
|
|
nengel@9
|
257 _SC_XBS5_LP64_OFF64,
|
|
nengel@9
|
258 _SC_XBS5_LPBIG_OFFBIG,
|
|
nengel@9
|
259 _SC_XOPEN_LEGACY,
|
|
nengel@9
|
260 _SC_XOPEN_REALTIME,
|
|
nengel@9
|
261 _SC_XOPEN_REALTIME_THREADS,
|
|
nengel@9
|
262 _SC_ADVISORY_INFO,
|
|
nengel@9
|
263 _SC_BARRIERS,
|
|
nengel@9
|
264 _SC_BASE,
|
|
nengel@9
|
265 _SC_C_LANG_SUPPORT,
|
|
nengel@9
|
266 _SC_C_LANG_SUPPORT_R,
|
|
nengel@9
|
267 _SC_CLOCK_SELECTION,
|
|
nengel@9
|
268 _SC_CPUTIME,
|
|
nengel@9
|
269 _SC_THREAD_CPUTIME,
|
|
nengel@9
|
270 _SC_DEVICE_IO,
|
|
nengel@9
|
271 _SC_DEVICE_SPECIFIC,
|
|
nengel@9
|
272 _SC_DEVICE_SPECIFIC_R,
|
|
nengel@9
|
273 _SC_FD_MGMT,
|
|
nengel@9
|
274 _SC_FIFO,
|
|
nengel@9
|
275 _SC_PIPE,
|
|
nengel@9
|
276 _SC_FILE_ATTRIBUTES,
|
|
nengel@9
|
277 _SC_FILE_LOCKING,
|
|
nengel@9
|
278 _SC_FILE_SYSTEM,
|
|
nengel@9
|
279 _SC_MONOTONIC_CLOCK,
|
|
nengel@9
|
280 _SC_MULTI_PROCESS,
|
|
nengel@9
|
281 _SC_SINGLE_PROCESS,
|
|
nengel@9
|
282 _SC_NETWORKING,
|
|
nengel@9
|
283 _SC_READER_WRITER_LOCKS,
|
|
nengel@9
|
284 _SC_SPIN_LOCKS,
|
|
nengel@9
|
285 _SC_REGEXP,
|
|
nengel@9
|
286 _SC_REGEX_VERSION,
|
|
nengel@9
|
287 _SC_SHELL,
|
|
nengel@9
|
288 _SC_SIGNALS,
|
|
nengel@9
|
289 _SC_SPAWN,
|
|
nengel@9
|
290 _SC_SPORADIC_SERVER,
|
|
nengel@9
|
291 _SC_THREAD_SPORADIC_SERVER,
|
|
nengel@9
|
292 _SC_SYSTEM_DATABASE,
|
|
nengel@9
|
293 _SC_SYSTEM_DATABASE_R,
|
|
nengel@9
|
294 _SC_TIMEOUTS,
|
|
nengel@9
|
295 _SC_TYPED_MEMORY_OBJECTS,
|
|
nengel@9
|
296 _SC_USER_GROUPS,
|
|
nengel@9
|
297 _SC_USER_GROUPS_R,
|
|
nengel@9
|
298 _SC_2_PBS,
|
|
nengel@9
|
299 _SC_2_PBS_ACCOUNTING,
|
|
nengel@9
|
300 _SC_2_PBS_LOCATE,
|
|
nengel@9
|
301 _SC_2_PBS_MESSAGE,
|
|
nengel@9
|
302 _SC_2_PBS_TRACK,
|
|
nengel@9
|
303 _SC_SYMLOOP_MAX,
|
|
nengel@9
|
304 _SC_STREAMS,
|
|
nengel@9
|
305 _SC_2_PBS_CHECKPOINT,
|
|
nengel@9
|
306 _SC_V6_ILP32_OFF32,
|
|
nengel@9
|
307 _SC_V6_ILP32_OFFBIG,
|
|
nengel@9
|
308 _SC_V6_LP64_OFF64,
|
|
nengel@9
|
309 _SC_V6_LPBIG_OFFBIG,
|
|
nengel@9
|
310 _SC_HOST_NAME_MAX,
|
|
nengel@9
|
311 _SC_TRACE,
|
|
nengel@9
|
312 _SC_TRACE_EVENT_FILTER,
|
|
nengel@9
|
313 _SC_TRACE_INHERIT,
|
|
nengel@9
|
314 _SC_TRACE_LOG,
|
|
nengel@9
|
315 _SC_LEVEL1_ICACHE_SIZE,
|
|
nengel@9
|
316 _SC_LEVEL1_ICACHE_ASSOC,
|
|
nengel@9
|
317 _SC_LEVEL1_ICACHE_LINESIZE,
|
|
nengel@9
|
318 _SC_LEVEL1_DCACHE_SIZE,
|
|
nengel@9
|
319 _SC_LEVEL1_DCACHE_ASSOC,
|
|
nengel@9
|
320 _SC_LEVEL1_DCACHE_LINESIZE,
|
|
nengel@9
|
321 _SC_LEVEL2_CACHE_SIZE,
|
|
nengel@9
|
322 _SC_LEVEL2_CACHE_ASSOC,
|
|
nengel@9
|
323 _SC_LEVEL2_CACHE_LINESIZE,
|
|
nengel@9
|
324 _SC_LEVEL3_CACHE_SIZE,
|
|
nengel@9
|
325 _SC_LEVEL3_CACHE_ASSOC,
|
|
nengel@9
|
326 _SC_LEVEL3_CACHE_LINESIZE,
|
|
nengel@9
|
327 _SC_LEVEL4_CACHE_SIZE,
|
|
nengel@9
|
328 _SC_LEVEL4_CACHE_ASSOC,
|
|
nengel@9
|
329 _SC_LEVEL4_CACHE_LINESIZE,
|
|
nengel@9
|
330 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
|
|
nengel@9
|
331 _SC_RAW_SOCKETS,
|
|
nengel@9
|
332 _SC_V7_ILP32_OFF32,
|
|
nengel@9
|
333 _SC_V7_ILP32_OFFBIG,
|
|
nengel@9
|
334 _SC_V7_LP64_OFF64,
|
|
nengel@9
|
335 _SC_V7_LPBIG_OFFBIG,
|
|
nengel@9
|
336 _SC_SS_REPL_MAX,
|
|
nengel@9
|
337 _SC_TRACE_EVENT_NAME_MAX,
|
|
nengel@9
|
338 _SC_TRACE_NAME_MAX,
|
|
nengel@9
|
339 _SC_TRACE_SYS_MAX,
|
|
nengel@9
|
340 _SC_TRACE_USER_EVENT_MAX,
|
|
nengel@9
|
341 _SC_XOPEN_STREAMS,
|
|
nengel@9
|
342 _SC_THREAD_ROBUST_PRIO_INHERIT,
|
|
nengel@9
|
343 _SC_THREAD_ROBUST_PRIO_PROTECT
|
|
nengel@9
|
344 };
|
|
nengel@9
|
345 enum
|
|
nengel@9
|
346 {
|
|
nengel@9
|
347 _CS_PATH,
|
|
nengel@9
|
348 _CS_V6_WIDTH_RESTRICTED_ENVS,
|
|
nengel@9
|
349 _CS_GNU_LIBC_VERSION,
|
|
nengel@9
|
350 _CS_GNU_LIBPTHREAD_VERSION,
|
|
nengel@9
|
351 _CS_V5_WIDTH_RESTRICTED_ENVS,
|
|
nengel@9
|
352 _CS_V7_WIDTH_RESTRICTED_ENVS,
|
|
nengel@9
|
353 _CS_LFS_CFLAGS = 1000,
|
|
nengel@9
|
354 _CS_LFS_LDFLAGS,
|
|
nengel@9
|
355 _CS_LFS_LIBS,
|
|
nengel@9
|
356 _CS_LFS_LINTFLAGS,
|
|
nengel@9
|
357 _CS_LFS64_CFLAGS,
|
|
nengel@9
|
358 _CS_LFS64_LDFLAGS,
|
|
nengel@9
|
359 _CS_LFS64_LIBS,
|
|
nengel@9
|
360 _CS_LFS64_LINTFLAGS,
|
|
nengel@9
|
361 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
|
|
nengel@9
|
362 _CS_XBS5_ILP32_OFF32_LDFLAGS,
|
|
nengel@9
|
363 _CS_XBS5_ILP32_OFF32_LIBS,
|
|
nengel@9
|
364 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
|
|
nengel@9
|
365 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
|
|
nengel@9
|
366 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
|
|
nengel@9
|
367 _CS_XBS5_ILP32_OFFBIG_LIBS,
|
|
nengel@9
|
368 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
|
|
nengel@9
|
369 _CS_XBS5_LP64_OFF64_CFLAGS,
|
|
nengel@9
|
370 _CS_XBS5_LP64_OFF64_LDFLAGS,
|
|
nengel@9
|
371 _CS_XBS5_LP64_OFF64_LIBS,
|
|
nengel@9
|
372 _CS_XBS5_LP64_OFF64_LINTFLAGS,
|
|
nengel@9
|
373 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
|
|
nengel@9
|
374 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
|
|
nengel@9
|
375 _CS_XBS5_LPBIG_OFFBIG_LIBS,
|
|
nengel@9
|
376 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
|
|
nengel@9
|
377 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
|
|
nengel@9
|
378 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
|
|
nengel@9
|
379 _CS_POSIX_V6_ILP32_OFF32_LIBS,
|
|
nengel@9
|
380 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
|
|
nengel@9
|
381 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
|
|
nengel@9
|
382 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
|
|
nengel@9
|
383 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
|
|
nengel@9
|
384 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
|
|
nengel@9
|
385 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
|
|
nengel@9
|
386 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
|
|
nengel@9
|
387 _CS_POSIX_V6_LP64_OFF64_LIBS,
|
|
nengel@9
|
388 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
|
|
nengel@9
|
389 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
|
|
nengel@9
|
390 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
|
|
nengel@9
|
391 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
|
|
nengel@9
|
392 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
|
|
nengel@9
|
393 _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
|
|
nengel@9
|
394 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
|
|
nengel@9
|
395 _CS_POSIX_V7_ILP32_OFF32_LIBS,
|
|
nengel@9
|
396 _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
|
|
nengel@9
|
397 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
|
|
nengel@9
|
398 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
|
|
nengel@9
|
399 _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
|
|
nengel@9
|
400 _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
|
|
nengel@9
|
401 _CS_POSIX_V7_LP64_OFF64_CFLAGS,
|
|
nengel@9
|
402 _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
|
|
nengel@9
|
403 _CS_POSIX_V7_LP64_OFF64_LIBS,
|
|
nengel@9
|
404 _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
|
|
nengel@9
|
405 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
|
|
nengel@9
|
406 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
|
|
nengel@9
|
407 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
|
|
nengel@9
|
408 _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
|
|
nengel@9
|
409 _CS_V6_ENV,
|
|
nengel@9
|
410 _CS_V7_ENV
|
|
nengel@9
|
411 };
|
|
nengel@9
|
412 extern long int pathconf(__const char *__path, int __name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
413 extern long int fpathconf(int __fd, int __name) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
414 extern long int sysconf(int __name) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
415 extern size_t confstr(int __name, char *__buf, size_t __len) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
416 extern __pid_t getpid(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
417 extern __pid_t getppid(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
418 extern __pid_t getpgrp(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
419 extern __pid_t __getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
420 extern __pid_t getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
421 extern int setpgid(__pid_t __pid, __pid_t __pgid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
422 extern int setpgrp(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
423 extern __pid_t setsid(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
424 extern __pid_t getsid(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
425 extern __uid_t getuid(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
426 extern __uid_t geteuid(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
427 extern __gid_t getgid(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
428 extern __gid_t getegid(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
429 extern int getgroups(int __size, __gid_t __list[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
430 extern int setuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
431 extern int setreuid(__uid_t __ruid, __uid_t __euid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
432 extern int seteuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
433 extern int setgid(__gid_t __gid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
434 extern int setregid(__gid_t __rgid, __gid_t __egid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
435 extern int setegid(__gid_t __gid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
436 extern __pid_t fork(void) __attribute__((__nothrow__));
|
|
nengel@9
|
437 extern __pid_t vfork(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
438 extern char *ttyname(int __fd) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
439 extern int ttyname_r(int __fd, char *__buf, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
440 extern int isatty(int __fd) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
441 extern int ttyslot(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
442 extern int link(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
443 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__));
|
|
nengel@9
|
444 extern int symlink(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
445 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__));
|
|
nengel@9
|
446 extern int symlinkat(__const char *__from, int __tofd, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
447 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__));
|
|
nengel@9
|
448 extern int unlink(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
449 extern int unlinkat(int __fd, __const char *__name, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
450 extern int rmdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
451 extern __pid_t tcgetpgrp(int __fd) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
452 extern int tcsetpgrp(int __fd, __pid_t __pgrp_id) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
453 extern char *getlogin(void);
|
|
nengel@9
|
454 extern int getlogin_r(char *__name, size_t __name_len) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
455 extern int setlogin(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
456 extern char *optarg;
|
|
nengel@9
|
457 extern int optind;
|
|
nengel@9
|
458 extern int opterr;
|
|
nengel@9
|
459 extern int optopt;
|
|
nengel@9
|
460 extern int getopt(int ___argc, char *const *___argv, const char *__shortopts) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
461 extern int gethostname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
462 extern int sethostname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
463 extern int sethostid(long int __id) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
464 extern int getdomainname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
465 extern int setdomainname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
466 extern int vhangup(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
467 extern int revoke(__const char *__file) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
468 extern int profil(unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
469 extern int acct(__const char *__name) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
470 extern char *getusershell(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
471 extern void endusershell(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
472 extern void setusershell(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
473 extern int daemon(int __nochdir, int __noclose) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
474 extern int chroot(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
475 extern char *getpass(__const char *__prompt) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
476 extern int fsync(int __fd);
|
|
nengel@9
|
477 extern long int gethostid(void);
|
|
nengel@9
|
478 extern void sync(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
479 extern int getpagesize(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
480 extern int getdtablesize(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
481 extern int truncate(__const char *__file, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
482 extern int ftruncate(int __fd, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
483 extern int brk(void *__addr) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
484 extern void *sbrk(intptr_t __delta) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
485 extern long int syscall(long int __sysno, ...) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
486 extern int lockf(int __fd, int __cmd, __off_t __len) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
487 extern int fdatasync(int __fildes);
|
|
nengel@9
|
488 extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
489 extern ssize_t __read_chk(int __fd, void *__buf, size_t __nbytes, size_t __buflen) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
490 extern ssize_t __read_alias(int __fd, void *__buf, size_t __nbytes) __asm__ ("""read") __attribute__((__warn_unused_result__));
|
|
nengel@9
|
491 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")));
|
|
nengel@9
|
492 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) ssize_t read(int __fd, void *__buf, size_t __nbytes)
|
|
nengel@9
|
493 {
|
|
nengel@9
|
494 if (__builtin_object_size(__buf, 0) != (size_t) - 1)
|
|
nengel@9
|
495 {
|
|
nengel@9
|
496 if (!__builtin_constant_p(__nbytes))
|
|
nengel@9
|
497 return __read_chk(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0));
|
|
nengel@9
|
498 if (__nbytes > __builtin_object_size(__buf, 0))
|
|
nengel@9
|
499 return __read_chk_warn(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0));
|
|
nengel@9
|
500 }
|
|
nengel@9
|
501 return __read_alias(__fd, __buf, __nbytes);
|
|
nengel@9
|
502 }
|
|
nengel@9
|
503 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__));
|
|
nengel@9
|
504 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__));
|
|
nengel@9
|
505 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")));
|
|
nengel@9
|
506 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)
|
|
nengel@9
|
507 {
|
|
nengel@9
|
508 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
509 {
|
|
nengel@9
|
510 if (!__builtin_constant_p(__len))
|
|
nengel@9
|
511 return __readlink_chk(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
512 if (__len > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
513 return __readlink_chk_warn(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
514 }
|
|
nengel@9
|
515 return __readlink_alias(__path, __buf, __len);
|
|
nengel@9
|
516 }
|
|
nengel@9
|
517 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__));
|
|
nengel@9
|
518 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__));
|
|
nengel@9
|
519 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")));
|
|
nengel@9
|
520 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)
|
|
nengel@9
|
521 {
|
|
nengel@9
|
522 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
523 {
|
|
nengel@9
|
524 if (!__builtin_constant_p(__len))
|
|
nengel@9
|
525 return __readlinkat_chk(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
526 if (__len > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
527 return __readlinkat_chk_warn(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
528 }
|
|
nengel@9
|
529 return __readlinkat_alias(__fd, __path, __buf, __len);
|
|
nengel@9
|
530 }
|
|
nengel@9
|
531 extern char *__getcwd_chk(char *__buf, size_t __size, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
532 extern char *__getcwd_alias(char *__buf, size_t __size) __asm__ ("""getcwd") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
533 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")));
|
|
nengel@9
|
534 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) getcwd(char *__buf, size_t __size)
|
|
nengel@9
|
535 {
|
|
nengel@9
|
536 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
537 {
|
|
nengel@9
|
538 if (!__builtin_constant_p(__size))
|
|
nengel@9
|
539 return __getcwd_chk(__buf, __size, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
540 if (__size > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
541 return __getcwd_chk_warn(__buf, __size, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
542 }
|
|
nengel@9
|
543 return __getcwd_alias(__buf, __size);
|
|
nengel@9
|
544 }
|
|
nengel@9
|
545 extern char *__getwd_chk(char *__buf, size_t buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
546 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")));
|
|
nengel@9
|
547 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)
|
|
nengel@9
|
548 {
|
|
nengel@9
|
549 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
550 return __getwd_chk(__buf, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
551 return __getwd_warn(__buf);
|
|
nengel@9
|
552 }
|
|
nengel@9
|
553 extern size_t __confstr_chk(int __name, char *__buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
554 extern size_t __confstr_alias(int __name, char *__buf, size_t __len) __asm__ ("""confstr") __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
555 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")));
|
|
nengel@9
|
556 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) confstr(int __name, char *__buf, size_t __len)
|
|
nengel@9
|
557 {
|
|
nengel@9
|
558 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
559 {
|
|
nengel@9
|
560 if (!__builtin_constant_p(__len))
|
|
nengel@9
|
561 return __confstr_chk(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
562 if (__builtin_object_size(__buf, 2 > 1) < __len)
|
|
nengel@9
|
563 return __confstr_chk_warn(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
564 }
|
|
nengel@9
|
565 return __confstr_alias(__name, __buf, __len);
|
|
nengel@9
|
566 }
|
|
nengel@9
|
567 extern int __getgroups_chk(int __size, __gid_t __list[], size_t __listlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
568 extern int __getgroups_alias(int __size, __gid_t __list[]) __asm__ ("""getgroups") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
569 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")));
|
|
nengel@9
|
570 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getgroups(int __size, __gid_t __list[])
|
|
nengel@9
|
571 {
|
|
nengel@9
|
572 if (__builtin_object_size(__list, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
573 {
|
|
nengel@9
|
574 if (!__builtin_constant_p(__size) || __size < 0)
|
|
nengel@9
|
575 return __getgroups_chk(__size, __list, __builtin_object_size(__list, 2 > 1));
|
|
nengel@9
|
576 if (__size * sizeof(__gid_t) > __builtin_object_size(__list, 2 > 1))
|
|
nengel@9
|
577 return __getgroups_chk_warn(__size, __list, __builtin_object_size(__list, 2 > 1));
|
|
nengel@9
|
578 }
|
|
nengel@9
|
579 return __getgroups_alias(__size, __list);
|
|
nengel@9
|
580 }
|
|
nengel@9
|
581 extern int __ttyname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
582 extern int __ttyname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ttyname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
583 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")));
|
|
nengel@9
|
584 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ttyname_r(int __fd, char *__buf, size_t __buflen)
|
|
nengel@9
|
585 {
|
|
nengel@9
|
586 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
587 {
|
|
nengel@9
|
588 if (!__builtin_constant_p(__buflen))
|
|
nengel@9
|
589 return __ttyname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
590 if (__buflen > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
591 return __ttyname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
592 }
|
|
nengel@9
|
593 return __ttyname_r_alias(__fd, __buf, __buflen);
|
|
nengel@9
|
594 }
|
|
nengel@9
|
595 extern int __getlogin_r_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
596 extern int __getlogin_r_alias(char *__buf, size_t __buflen) __asm__ ("""getlogin_r") __attribute__((__nonnull__(1)));
|
|
nengel@9
|
597 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")));
|
|
nengel@9
|
598 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int getlogin_r(char *__buf, size_t __buflen)
|
|
nengel@9
|
599 {
|
|
nengel@9
|
600 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
601 {
|
|
nengel@9
|
602 if (!__builtin_constant_p(__buflen))
|
|
nengel@9
|
603 return __getlogin_r_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
604 if (__buflen > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
605 return __getlogin_r_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
606 }
|
|
nengel@9
|
607 return __getlogin_r_alias(__buf, __buflen);
|
|
nengel@9
|
608 }
|
|
nengel@9
|
609 extern int __gethostname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
610 extern int __gethostname_alias(char *__buf, size_t __buflen) __asm__ ("""gethostname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
611 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")));
|
|
nengel@9
|
612 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) gethostname(char *__buf, size_t __buflen)
|
|
nengel@9
|
613 {
|
|
nengel@9
|
614 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
615 {
|
|
nengel@9
|
616 if (!__builtin_constant_p(__buflen))
|
|
nengel@9
|
617 return __gethostname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
618 if (__buflen > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
619 return __gethostname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
620 }
|
|
nengel@9
|
621 return __gethostname_alias(__buf, __buflen);
|
|
nengel@9
|
622 }
|
|
nengel@9
|
623 extern int __getdomainname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
624 extern int __getdomainname_alias(char *__buf, size_t __buflen) __asm__ ("""getdomainname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
625 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")));
|
|
nengel@9
|
626 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getdomainname(char *__buf, size_t __buflen)
|
|
nengel@9
|
627 {
|
|
nengel@9
|
628 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
629 {
|
|
nengel@9
|
630 if (!__builtin_constant_p(__buflen))
|
|
nengel@9
|
631 return __getdomainname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
632 if (__buflen > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
633 return __getdomainname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
634 }
|
|
nengel@9
|
635 return __getdomainname_alias(__buf, __buflen);
|
|
nengel@9
|
636 }
|
|
nengel@9
|
637 struct _IO_FILE;
|
|
nengel@9
|
638 typedef struct _IO_FILE FILE;
|
|
nengel@9
|
639 typedef struct _IO_FILE __FILE;
|
|
nengel@9
|
640 typedef struct
|
|
nengel@9
|
641 {
|
|
nengel@9
|
642 int __count;
|
|
nengel@9
|
643 union
|
|
nengel@9
|
644 {
|
|
nengel@9
|
645 unsigned int __wch;
|
|
nengel@9
|
646 char __wchb[4];
|
|
nengel@9
|
647 } __value;
|
|
nengel@9
|
648 } __mbstate_t;
|
|
nengel@9
|
649 typedef struct
|
|
nengel@9
|
650 {
|
|
nengel@9
|
651 __off_t __pos;
|
|
nengel@9
|
652 __mbstate_t __state;
|
|
nengel@9
|
653 } _G_fpos_t;
|
|
nengel@9
|
654 typedef struct
|
|
nengel@9
|
655 {
|
|
nengel@9
|
656 __off64_t __pos;
|
|
nengel@9
|
657 __mbstate_t __state;
|
|
nengel@9
|
658 } _G_fpos64_t;
|
|
nengel@9
|
659 typedef int _G_int16_t __attribute__((__mode__(__HI__)));
|
|
nengel@9
|
660 typedef int _G_int32_t __attribute__((__mode__(__SI__)));
|
|
nengel@9
|
661 typedef unsigned int _G_uint16_t __attribute__((__mode__(__HI__)));
|
|
nengel@9
|
662 typedef unsigned int _G_uint32_t __attribute__((__mode__(__SI__)));
|
|
nengel@9
|
663 typedef __builtin_va_list __gnuc_va_list;
|
|
nengel@9
|
664 struct _IO_jump_t;
|
|
nengel@9
|
665 struct _IO_FILE;
|
|
nengel@9
|
666 typedef void _IO_lock_t;
|
|
nengel@9
|
667 struct _IO_marker
|
|
nengel@9
|
668 {
|
|
nengel@9
|
669 struct _IO_marker *_next;
|
|
nengel@9
|
670 struct _IO_FILE *_sbuf;
|
|
nengel@9
|
671 int _pos;
|
|
nengel@9
|
672 };
|
|
nengel@9
|
673 enum __codecvt_result
|
|
nengel@9
|
674 {
|
|
nengel@9
|
675 __codecvt_ok,
|
|
nengel@9
|
676 __codecvt_partial,
|
|
nengel@9
|
677 __codecvt_error,
|
|
nengel@9
|
678 __codecvt_noconv
|
|
nengel@9
|
679 };
|
|
nengel@9
|
680 struct _IO_FILE
|
|
nengel@9
|
681 {
|
|
nengel@9
|
682 int _flags;
|
|
nengel@9
|
683 char *_IO_read_ptr;
|
|
nengel@9
|
684 char *_IO_read_end;
|
|
nengel@9
|
685 char *_IO_read_base;
|
|
nengel@9
|
686 char *_IO_write_base;
|
|
nengel@9
|
687 char *_IO_write_ptr;
|
|
nengel@9
|
688 char *_IO_write_end;
|
|
nengel@9
|
689 char *_IO_buf_base;
|
|
nengel@9
|
690 char *_IO_buf_end;
|
|
nengel@9
|
691 char *_IO_save_base;
|
|
nengel@9
|
692 char *_IO_backup_base;
|
|
nengel@9
|
693 char *_IO_save_end;
|
|
nengel@9
|
694 struct _IO_marker *_markers;
|
|
nengel@9
|
695 struct _IO_FILE *_chain;
|
|
nengel@9
|
696 int _fileno;
|
|
nengel@9
|
697 int _flags2;
|
|
nengel@9
|
698 __off_t _old_offset;
|
|
nengel@9
|
699 unsigned short _cur_column;
|
|
nengel@9
|
700 signed char _vtable_offset;
|
|
nengel@9
|
701 char _shortbuf[1];
|
|
nengel@9
|
702 _IO_lock_t *_lock;
|
|
nengel@9
|
703 __off64_t _offset;
|
|
nengel@9
|
704 void *__pad1;
|
|
nengel@9
|
705 void *__pad2;
|
|
nengel@9
|
706 void *__pad3;
|
|
nengel@9
|
707 void *__pad4;
|
|
nengel@9
|
708 size_t __pad5;
|
|
nengel@9
|
709 int _mode;
|
|
nengel@9
|
710 char _unused2[15 * sizeof(int) - 4 * sizeof(void *) - sizeof(size_t)];
|
|
nengel@9
|
711 };
|
|
nengel@9
|
712 typedef struct _IO_FILE _IO_FILE;
|
|
nengel@9
|
713 struct _IO_FILE_plus;
|
|
nengel@9
|
714 extern struct _IO_FILE_plus _IO_2_1_stdin_;
|
|
nengel@9
|
715 extern struct _IO_FILE_plus _IO_2_1_stdout_;
|
|
nengel@9
|
716 extern struct _IO_FILE_plus _IO_2_1_stderr_;
|
|
nengel@9
|
717 typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __nbytes);
|
|
nengel@9
|
718 typedef __ssize_t __io_write_fn(void *__cookie, __const char *__buf, size_t __n);
|
|
nengel@9
|
719 typedef int __io_seek_fn(void *__cookie, __off64_t *__pos, int __w);
|
|
nengel@9
|
720 typedef int __io_close_fn(void *__cookie);
|
|
nengel@9
|
721 extern int __underflow(_IO_FILE *);
|
|
nengel@9
|
722 extern int __uflow(_IO_FILE *);
|
|
nengel@9
|
723 extern int __overflow(_IO_FILE *, int);
|
|
nengel@9
|
724 extern int _IO_getc(_IO_FILE *__fp);
|
|
nengel@9
|
725 extern int _IO_putc(int __c, _IO_FILE *__fp);
|
|
nengel@9
|
726 extern int _IO_feof(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
727 extern int _IO_ferror(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
728 extern int _IO_peekc_locked(_IO_FILE *__fp);
|
|
nengel@9
|
729 extern void _IO_flockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
730 extern void _IO_funlockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
731 extern int _IO_ftrylockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
732 extern int _IO_vfscanf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list, int *__restrict );
|
|
nengel@9
|
733 extern int _IO_vfprintf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list);
|
|
nengel@9
|
734 extern __ssize_t _IO_padn(_IO_FILE *, int, __ssize_t);
|
|
nengel@9
|
735 extern size_t _IO_sgetn(_IO_FILE *, void *, size_t);
|
|
nengel@9
|
736 extern __off64_t _IO_seekoff(_IO_FILE *, __off64_t, int, int);
|
|
nengel@9
|
737 extern __off64_t _IO_seekpos(_IO_FILE *, __off64_t, int);
|
|
nengel@9
|
738 extern void _IO_free_backup_area(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
739 typedef __gnuc_va_list va_list;
|
|
nengel@9
|
740 typedef _G_fpos_t fpos_t;
|
|
nengel@9
|
741 extern struct _IO_FILE *stdin;
|
|
nengel@9
|
742 extern struct _IO_FILE *stdout;
|
|
nengel@9
|
743 extern struct _IO_FILE *stderr;
|
|
nengel@9
|
744 extern int remove(__const char *__filename) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
745 extern int rename(__const char *__old, __const char *__new) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
746 extern int renameat(int __oldfd, __const char *__old, int __newfd, __const char *__new) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
747 extern FILE *tmpfile(void) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
748 extern char *tmpnam(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
749 extern char *tmpnam_r(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
750 extern char *tempnam(__const char *__dir, __const char *__pfx) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
751 extern int fclose(FILE *__stream);
|
|
nengel@9
|
752 extern int fflush(FILE *__stream);
|
|
nengel@9
|
753 extern int fflush_unlocked(FILE *__stream);
|
|
nengel@9
|
754 extern FILE *fopen(__const char *__restrict __filename, __const char *__restrict __modes) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
755 extern FILE *freopen(__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
756 extern FILE *fdopen(int __fd, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
757 extern FILE *fmemopen(void *__s, size_t __len, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
758 extern FILE *open_memstream(char **__bufloc, size_t *__sizeloc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
759 extern void setbuf(FILE *__restrict __stream, char *__restrict __buf) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
760 extern int setvbuf(FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
761 extern void setbuffer(FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
762 extern void setlinebuf(FILE *__stream) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
763 extern int fprintf(FILE *__restrict __stream, __const char *__restrict __format, ...);
|
|
nengel@9
|
764 extern int printf(__const char *__restrict __format, ...);
|
|
nengel@9
|
765 extern int sprintf(char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__));
|
|
nengel@9
|
766 extern int vfprintf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg);
|
|
nengel@9
|
767 extern int vprintf(__const char *__restrict __format, __gnuc_va_list __arg);
|
|
nengel@9
|
768 extern int vsprintf(char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__));
|
|
nengel@9
|
769 extern int snprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 4)));
|
|
nengel@9
|
770 extern int vsnprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 0)));
|
|
nengel@9
|
771 extern int vdprintf(int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__((__format__(__printf__, 2, 0)));
|
|
nengel@9
|
772 extern int dprintf(int __fd, __const char *__restrict __fmt, ...) __attribute__((__format__(__printf__, 2, 3)));
|
|
nengel@9
|
773 extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
774 extern int scanf(__const char *__restrict __format, ...) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
775 extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
776 extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("""__isoc99_fscanf") __attribute__((__warn_unused_result__));
|
|
nengel@9
|
777 extern int scanf(__const char *__restrict __format, ...) __asm__ ("""__isoc99_scanf") __attribute__((__warn_unused_result__));
|
|
nengel@9
|
778 extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("""__isoc99_sscanf") __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
779 extern int vfscanf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 2, 0))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
780 extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
781 extern int vsscanf(__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__format__(__scanf__, 2, 0)));
|
|
nengel@9
|
782 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__));
|
|
nengel@9
|
783 extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vscanf") __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
784 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)));
|
|
nengel@9
|
785 extern int fgetc(FILE *__stream);
|
|
nengel@9
|
786 extern int getc(FILE *__stream);
|
|
nengel@9
|
787 extern int getchar(void);
|
|
nengel@9
|
788 extern int getc_unlocked(FILE *__stream);
|
|
nengel@9
|
789 extern int getchar_unlocked(void);
|
|
nengel@9
|
790 extern int fgetc_unlocked(FILE *__stream);
|
|
nengel@9
|
791 extern int fputc(int __c, FILE *__stream);
|
|
nengel@9
|
792 extern int putc(int __c, FILE *__stream);
|
|
nengel@9
|
793 extern int putchar(int __c);
|
|
nengel@9
|
794 extern int fputc_unlocked(int __c, FILE *__stream);
|
|
nengel@9
|
795 extern int putc_unlocked(int __c, FILE *__stream);
|
|
nengel@9
|
796 extern int putchar_unlocked(int __c);
|
|
nengel@9
|
797 extern int getw(FILE *__stream);
|
|
nengel@9
|
798 extern int putw(int __w, FILE *__stream);
|
|
nengel@9
|
799 extern char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
800 extern char *gets(char *__s) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
801 extern __ssize_t __getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
802 extern __ssize_t getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
803 extern __ssize_t getline(char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
804 extern int fputs(__const char *__restrict __s, FILE *__restrict __stream);
|
|
nengel@9
|
805 extern int puts(__const char *__s);
|
|
nengel@9
|
806 extern int ungetc(int __c, FILE *__stream);
|
|
nengel@9
|
807 extern size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
808 extern size_t fwrite(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s);
|
|
nengel@9
|
809 extern size_t fread_unlocked(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
810 extern size_t fwrite_unlocked(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream);
|
|
nengel@9
|
811 extern int fseek(FILE *__stream, long int __off, int __whence);
|
|
nengel@9
|
812 extern long int ftell(FILE *__stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
813 extern void rewind(FILE *__stream);
|
|
nengel@9
|
814 extern int fseeko(FILE *__stream, __off_t __off, int __whence);
|
|
nengel@9
|
815 extern __off_t ftello(FILE *__stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
816 extern int fgetpos(FILE *__restrict __stream, fpos_t *__restrict __pos);
|
|
nengel@9
|
817 extern int fsetpos(FILE *__stream, __const fpos_t *__pos);
|
|
nengel@9
|
818 extern void clearerr(FILE *__stream) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
819 extern int feof(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
820 extern int ferror(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
821 extern void clearerr_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
822 extern int feof_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
823 extern int ferror_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
824 extern void perror(__const char *__s);
|
|
nengel@9
|
825 extern int sys_nerr;
|
|
nengel@9
|
826 extern __const char *__const sys_errlist[];
|
|
nengel@9
|
827 extern int fileno(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
828 extern int fileno_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
829 extern FILE *popen(__const char *__command, __const char *__modes) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
830 extern int pclose(FILE *__stream);
|
|
nengel@9
|
831 extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
832 extern void flockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
833 extern int ftrylockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
834 extern void funlockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
835 extern __inline __attribute__((__gnu_inline__)) int getchar(void)
|
|
nengel@9
|
836 {
|
|
nengel@9
|
837 return _IO_getc(stdin);
|
|
nengel@9
|
838 }
|
|
nengel@9
|
839 extern __inline __attribute__((__gnu_inline__)) int fgetc_unlocked(FILE *__fp)
|
|
nengel@9
|
840 {
|
|
nengel@9
|
841 return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
|
|
nengel@9
|
842 }
|
|
nengel@9
|
843 extern __inline __attribute__((__gnu_inline__)) int getc_unlocked(FILE *__fp)
|
|
nengel@9
|
844 {
|
|
nengel@9
|
845 return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
|
|
nengel@9
|
846 }
|
|
nengel@9
|
847 extern __inline __attribute__((__gnu_inline__)) int getchar_unlocked(void)
|
|
nengel@9
|
848 {
|
|
nengel@9
|
849 return (__builtin_expect(((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow(stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
|
|
nengel@9
|
850 }
|
|
nengel@9
|
851 extern __inline __attribute__((__gnu_inline__)) int putchar(int __c)
|
|
nengel@9
|
852 {
|
|
nengel@9
|
853 return _IO_putc(__c, stdout);
|
|
nengel@9
|
854 }
|
|
nengel@9
|
855 extern __inline __attribute__((__gnu_inline__)) int fputc_unlocked(int __c, FILE *__stream)
|
|
nengel@9
|
856 {
|
|
nengel@9
|
857 return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
|
|
nengel@9
|
858 }
|
|
nengel@9
|
859 extern __inline __attribute__((__gnu_inline__)) int putc_unlocked(int __c, FILE *__stream)
|
|
nengel@9
|
860 {
|
|
nengel@9
|
861 return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
|
|
nengel@9
|
862 }
|
|
nengel@9
|
863 extern __inline __attribute__((__gnu_inline__)) int putchar_unlocked(int __c)
|
|
nengel@9
|
864 {
|
|
nengel@9
|
865 return (__builtin_expect(((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow(stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
|
|
nengel@9
|
866 }
|
|
nengel@9
|
867 extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) feof_unlocked(FILE *__stream)
|
|
nengel@9
|
868 {
|
|
nengel@9
|
869 return (((__stream)->_flags & 0x10) != 0);
|
|
nengel@9
|
870 }
|
|
nengel@9
|
871 extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) ferror_unlocked(FILE *__stream)
|
|
nengel@9
|
872 {
|
|
nengel@9
|
873 return (((__stream)->_flags & 0x20) != 0);
|
|
nengel@9
|
874 }
|
|
nengel@9
|
875 extern int __sprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
876 extern int __vsprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
877 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) sprintf(char *__restrict __s, __const char *__restrict __fmt, ...)
|
|
nengel@9
|
878 {
|
|
nengel@9
|
879 return __builtin___sprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack());
|
|
nengel@9
|
880 }
|
|
nengel@9
|
881 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)
|
|
nengel@9
|
882 {
|
|
nengel@9
|
883 return __builtin___vsprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap);
|
|
nengel@9
|
884 }
|
|
nengel@9
|
885 extern int __snprintf_chk(char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
886 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__));
|
|
nengel@9
|
887 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) snprintf(char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
|
|
nengel@9
|
888 {
|
|
nengel@9
|
889 return __builtin___snprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack());
|
|
nengel@9
|
890 }
|
|
nengel@9
|
891 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)
|
|
nengel@9
|
892 {
|
|
nengel@9
|
893 return __builtin___vsnprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap);
|
|
nengel@9
|
894 }
|
|
nengel@9
|
895 extern int __fprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, ...);
|
|
nengel@9
|
896 extern int __printf_chk(int __flag, __const char *__restrict __format, ...);
|
|
nengel@9
|
897 extern int __vfprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, __gnuc_va_list __ap);
|
|
nengel@9
|
898 extern int __vprintf_chk(int __flag, __const char *__restrict __format, __gnuc_va_list __ap);
|
|
nengel@9
|
899 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int fprintf(FILE *__restrict __stream, __const char *__restrict __fmt, ...)
|
|
nengel@9
|
900 {
|
|
nengel@9
|
901 return __fprintf_chk(__stream, 2 - 1, __fmt, __builtin_va_arg_pack());
|
|
nengel@9
|
902 }
|
|
nengel@9
|
903 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int printf(__const char *__restrict __fmt, ...)
|
|
nengel@9
|
904 {
|
|
nengel@9
|
905 return __printf_chk(2 - 1, __fmt, __builtin_va_arg_pack());
|
|
nengel@9
|
906 }
|
|
nengel@9
|
907 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vprintf(__const char *__restrict __fmt, __gnuc_va_list __ap)
|
|
nengel@9
|
908 {
|
|
nengel@9
|
909 return __vfprintf_chk(stdout, 2 - 1, __fmt, __ap);
|
|
nengel@9
|
910 }
|
|
nengel@9
|
911 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vfprintf(FILE *__restrict __stream, __const char *__restrict __fmt, __gnuc_va_list __ap)
|
|
nengel@9
|
912 {
|
|
nengel@9
|
913 return __vfprintf_chk(__stream, 2 - 1, __fmt, __ap);
|
|
nengel@9
|
914 }
|
|
nengel@9
|
915 extern char *__gets_chk(char *__str, size_t) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
916 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")));
|
|
nengel@9
|
917 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *gets(char *__str)
|
|
nengel@9
|
918 {
|
|
nengel@9
|
919 if (__builtin_object_size(__str, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
920 return __gets_chk(__str, __builtin_object_size(__str, 2 > 1));
|
|
nengel@9
|
921 return __gets_warn(__str);
|
|
nengel@9
|
922 }
|
|
nengel@9
|
923 extern char *__fgets_chk(char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
924 extern char *__fgets_alias(char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("""fgets") __attribute__((__warn_unused_result__));
|
|
nengel@9
|
925 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")));
|
|
nengel@9
|
926 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream)
|
|
nengel@9
|
927 {
|
|
nengel@9
|
928 if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
929 {
|
|
nengel@9
|
930 if (!__builtin_constant_p(__n) || __n <= 0)
|
|
nengel@9
|
931 return __fgets_chk(__s, __builtin_object_size(__s, 2 > 1), __n, __stream);
|
|
nengel@9
|
932 if ((size_t) __n > __builtin_object_size(__s, 2 > 1))
|
|
nengel@9
|
933 return __fgets_chk_warn(__s, __builtin_object_size(__s, 2 > 1), __n, __stream);
|
|
nengel@9
|
934 }
|
|
nengel@9
|
935 return __fgets_alias(__s, __n, __stream);
|
|
nengel@9
|
936 }
|
|
nengel@9
|
937 extern size_t __fread_chk(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
938 extern size_t __fread_alias(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""fread") __attribute__((__warn_unused_result__));
|
|
nengel@9
|
939 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")));
|
|
nengel@9
|
940 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)
|
|
nengel@9
|
941 {
|
|
nengel@9
|
942 if (__builtin_object_size(__ptr, 0) != (size_t) - 1)
|
|
nengel@9
|
943 {
|
|
nengel@9
|
944 if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2)))
|
|
nengel@9
|
945 return __fread_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
|
|
nengel@9
|
946 if (__size * __n > __builtin_object_size(__ptr, 0))
|
|
nengel@9
|
947 return __fread_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
|
|
nengel@9
|
948 }
|
|
nengel@9
|
949 return __fread_alias(__ptr, __size, __n, __stream);
|
|
nengel@9
|
950 }
|
|
nengel@9
|
951 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__));
|
|
nengel@9
|
952 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__));
|
|
nengel@9
|
953 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")));
|
|
nengel@9
|
954 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)
|
|
nengel@9
|
955 {
|
|
nengel@9
|
956 if (__builtin_object_size(__ptr, 0) != (size_t) - 1)
|
|
nengel@9
|
957 {
|
|
nengel@9
|
958 if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2)))
|
|
nengel@9
|
959 return __fread_unlocked_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
|
|
nengel@9
|
960 if (__size * __n > __builtin_object_size(__ptr, 0))
|
|
nengel@9
|
961 return __fread_unlocked_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
|
|
nengel@9
|
962 }
|
|
nengel@9
|
963 if (__builtin_constant_p(__size) && __builtin_constant_p(__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof(size_t) / 2)) && __size * __n <= 8)
|
|
nengel@9
|
964 {
|
|
nengel@9
|
965 size_t __cnt = __size * __n;
|
|
nengel@9
|
966 char *__cptr = (char *) __ptr;
|
|
nengel@9
|
967 if (__cnt == 0)
|
|
nengel@9
|
968 return 0;
|
|
nengel@9
|
969 for (;
|
|
nengel@9
|
970 __cnt > 0;
|
|
nengel@9
|
971 --__cnt)
|
|
nengel@9
|
972 {
|
|
nengel@9
|
973 int __c = (__builtin_expect(((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow(__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
|
|
nengel@9
|
974 if (__c == (- 1))
|
|
nengel@9
|
975 break;
|
|
nengel@9
|
976 *__cptr++ = __c;
|
|
nengel@9
|
977 }
|
|
nengel@9
|
978 return (__cptr - (char *) __ptr) / __size;
|
|
nengel@9
|
979 }
|
|
nengel@9
|
980 return __fread_unlocked_alias(__ptr, __size, __n, __stream);
|
|
nengel@9
|
981 }
|
|
nengel@9
|
982 typedef signed char int8_t;
|
|
nengel@9
|
983 typedef short int int16_t;
|
|
nengel@9
|
984 typedef int int32_t;
|
|
nengel@9
|
985 typedef long int int64_t;
|
|
nengel@9
|
986 typedef unsigned char uint8_t;
|
|
nengel@9
|
987 typedef unsigned short int uint16_t;
|
|
nengel@9
|
988 typedef unsigned int uint32_t;
|
|
nengel@9
|
989 typedef unsigned long int uint64_t;
|
|
nengel@9
|
990 typedef signed char int_least8_t;
|
|
nengel@9
|
991 typedef short int int_least16_t;
|
|
nengel@9
|
992 typedef int int_least32_t;
|
|
nengel@9
|
993 typedef long int int_least64_t;
|
|
nengel@9
|
994 typedef unsigned char uint_least8_t;
|
|
nengel@9
|
995 typedef unsigned short int uint_least16_t;
|
|
nengel@9
|
996 typedef unsigned int uint_least32_t;
|
|
nengel@9
|
997 typedef unsigned long int uint_least64_t;
|
|
nengel@9
|
998 typedef signed char int_fast8_t;
|
|
nengel@9
|
999 typedef long int int_fast16_t;
|
|
nengel@9
|
1000 typedef long int int_fast32_t;
|
|
nengel@9
|
1001 typedef long int int_fast64_t;
|
|
nengel@9
|
1002 typedef unsigned char uint_fast8_t;
|
|
nengel@9
|
1003 typedef unsigned long int uint_fast16_t;
|
|
nengel@9
|
1004 typedef unsigned long int uint_fast32_t;
|
|
nengel@9
|
1005 typedef unsigned long int uint_fast64_t;
|
|
nengel@9
|
1006 typedef unsigned long int uintptr_t;
|
|
nengel@9
|
1007 typedef long int intmax_t;
|
|
nengel@9
|
1008 typedef unsigned long int uintmax_t;
|
|
nengel@9
|
1009 typedef long int ptrdiff_t;
|
|
nengel@9
|
1010 typedef int wchar_t;
|
|
nengel@9
|
1011 typedef struct
|
|
nengel@9
|
1012 {
|
|
nengel@9
|
1013 void **address;
|
|
nengel@9
|
1014 ptrdiff_t offset;
|
|
nengel@9
|
1015 struct
|
|
nengel@9
|
1016 {
|
|
nengel@9
|
1017 _Bool input : 1;
|
|
nengel@9
|
1018 _Bool output : 1;
|
|
nengel@9
|
1019 _Bool can_rename : 1;
|
|
nengel@9
|
1020 _Bool commutative : 1;
|
|
nengel@9
|
1021 } flags;
|
|
nengel@9
|
1022 size_t size;
|
|
nengel@9
|
1023 } nanos_dependence_internal_t;
|
|
nengel@9
|
1024 typedef enum
|
|
nengel@9
|
1025 {
|
|
nengel@9
|
1026 NANOS_PRIVATE,
|
|
nengel@9
|
1027 NANOS_SHARED
|
|
nengel@9
|
1028 } nanos_sharing_t;
|
|
nengel@9
|
1029 typedef struct
|
|
nengel@9
|
1030 {
|
|
nengel@9
|
1031 void *original;
|
|
nengel@9
|
1032 void *privates;
|
|
nengel@9
|
1033 void (*bop)(void *, void *);
|
|
nengel@9
|
1034 void (*vop)(int n, void *, void *);
|
|
nengel@9
|
1035 void (*cleanup)(void *);
|
|
nengel@9
|
1036 } nanos_reduction_t;
|
|
nengel@9
|
1037 typedef struct
|
|
nengel@9
|
1038 {
|
|
nengel@9
|
1039 uint64_t address;
|
|
nengel@9
|
1040 nanos_sharing_t sharing;
|
|
nengel@9
|
1041 struct
|
|
nengel@9
|
1042 {
|
|
nengel@9
|
1043 _Bool input : 1;
|
|
nengel@9
|
1044 _Bool output : 1;
|
|
nengel@9
|
1045 } flags;
|
|
nengel@9
|
1046 size_t size;
|
|
nengel@9
|
1047 } nanos_copy_data_internal_t;
|
|
nengel@9
|
1048 typedef nanos_dependence_internal_t nanos_dependence_t;
|
|
nengel@9
|
1049 typedef nanos_copy_data_internal_t nanos_copy_data_t;
|
|
nengel@9
|
1050 typedef void *nanos_thread_t;
|
|
nengel@9
|
1051 typedef void *nanos_wd_t;
|
|
nengel@9
|
1052 typedef struct
|
|
nengel@9
|
1053 {
|
|
nengel@9
|
1054 int nsect;
|
|
nengel@9
|
1055 nanos_wd_t lwd[];
|
|
nengel@9
|
1056 } nanos_compound_wd_data_t;
|
|
nengel@9
|
1057 typedef struct
|
|
nengel@9
|
1058 {
|
|
nengel@9
|
1059 int n;
|
|
nengel@9
|
1060 } nanos_repeat_n_info_t;
|
|
nengel@9
|
1061 typedef struct
|
|
nengel@9
|
1062 {
|
|
nengel@9
|
1063 int lower;
|
|
nengel@9
|
1064 int upper;
|
|
nengel@9
|
1065 int step;
|
|
nengel@9
|
1066 _Bool last;
|
|
nengel@9
|
1067 int chunk;
|
|
nengel@9
|
1068 int stride;
|
|
nengel@9
|
1069 int thid;
|
|
nengel@9
|
1070 void *args;
|
|
nengel@9
|
1071 } nanos_loop_info_t;
|
|
nengel@9
|
1072 typedef void *nanos_ws_t;
|
|
nengel@9
|
1073 typedef void *nanos_ws_info_t;
|
|
nengel@9
|
1074 typedef void *nanos_ws_data_t;
|
|
nengel@9
|
1075 typedef void *nanos_ws_item_t;
|
|
nengel@9
|
1076 typedef struct
|
|
nengel@9
|
1077 {
|
|
nengel@9
|
1078 int lower_bound;
|
|
nengel@9
|
1079 int upper_bound;
|
|
nengel@9
|
1080 int loop_step;
|
|
nengel@9
|
1081 int chunk_size;
|
|
nengel@9
|
1082 } nanos_ws_info_loop_t;
|
|
nengel@9
|
1083 typedef struct
|
|
nengel@9
|
1084 {
|
|
nengel@9
|
1085 int lower;
|
|
nengel@9
|
1086 int upper;
|
|
nengel@9
|
1087 _Bool execute : 1;
|
|
nengel@9
|
1088 _Bool last : 1;
|
|
nengel@9
|
1089 } nanos_ws_item_loop_t;
|
|
nengel@9
|
1090 typedef struct nanos_ws_desc
|
|
nengel@9
|
1091 {
|
|
nengel@9
|
1092 volatile nanos_ws_t ws;
|
|
nengel@9
|
1093 nanos_ws_data_t data;
|
|
nengel@9
|
1094 struct nanos_ws_desc *next;
|
|
nengel@9
|
1095 nanos_thread_t *threads;
|
|
nengel@9
|
1096 int nths;
|
|
nengel@9
|
1097 } nanos_ws_desc_t;
|
|
nengel@9
|
1098 typedef struct
|
|
nengel@9
|
1099 {
|
|
nengel@9
|
1100 _Bool mandatory_creation : 1;
|
|
nengel@9
|
1101 _Bool tied : 1;
|
|
nengel@9
|
1102 _Bool reserved0 : 1;
|
|
nengel@9
|
1103 _Bool reserved1 : 1;
|
|
nengel@9
|
1104 _Bool reserved2 : 1;
|
|
nengel@9
|
1105 _Bool reserved3 : 1;
|
|
nengel@9
|
1106 _Bool reserved4 : 1;
|
|
nengel@9
|
1107 _Bool reserved5 : 1;
|
|
nengel@9
|
1108 } nanos_wd_props_t;
|
|
nengel@9
|
1109 typedef struct
|
|
nengel@9
|
1110 {
|
|
nengel@9
|
1111 nanos_thread_t tie_to;
|
|
nengel@9
|
1112 unsigned int priority;
|
|
nengel@9
|
1113 } nanos_wd_dyn_props_t;
|
|
nengel@9
|
1114 typedef struct
|
|
nengel@9
|
1115 {
|
|
nengel@9
|
1116 void *(*factory)(void *arg);
|
|
nengel@9
|
1117 void *arg;
|
|
nengel@9
|
1118 } nanos_device_t;
|
|
nengel@9
|
1119 typedef enum
|
|
nengel@9
|
1120 {
|
|
nengel@9
|
1121 NANOS_STATE_START,
|
|
nengel@9
|
1122 NANOS_STATE_END,
|
|
nengel@9
|
1123 NANOS_SUBSTATE_START,
|
|
nengel@9
|
1124 NANOS_SUBSTATE_END,
|
|
nengel@9
|
1125 NANOS_BURST_START,
|
|
nengel@9
|
1126 NANOS_BURST_END,
|
|
nengel@9
|
1127 NANOS_PTP_START,
|
|
nengel@9
|
1128 NANOS_PTP_END,
|
|
nengel@9
|
1129 NANOS_POINT,
|
|
nengel@9
|
1130 EVENT_TYPES
|
|
nengel@9
|
1131 } nanos_event_type_t;
|
|
nengel@9
|
1132 typedef enum
|
|
nengel@9
|
1133 {
|
|
nengel@9
|
1134 NANOS_NOT_CREATED,
|
|
nengel@9
|
1135 NANOS_NOT_RUNNING,
|
|
nengel@9
|
1136 NANOS_STARTUP,
|
|
nengel@9
|
1137 NANOS_SHUTDOWN,
|
|
nengel@9
|
1138 NANOS_ERROR,
|
|
nengel@9
|
1139 NANOS_IDLE,
|
|
nengel@9
|
1140 NANOS_RUNTIME,
|
|
nengel@9
|
1141 NANOS_RUNNING,
|
|
nengel@9
|
1142 NANOS_SYNCHRONIZATION,
|
|
nengel@9
|
1143 NANOS_SCHEDULING,
|
|
nengel@9
|
1144 NANOS_CREATION,
|
|
nengel@9
|
1145 NANOS_MEM_TRANSFER_IN,
|
|
nengel@9
|
1146 NANOS_MEM_TRANSFER_OUT,
|
|
nengel@9
|
1147 NANOS_MEM_TRANSFER_LOCAL,
|
|
nengel@9
|
1148 NANOS_MEM_TRANSFER_DEVICE_IN,
|
|
nengel@9
|
1149 NANOS_MEM_TRANSFER_DEVICE_OUT,
|
|
nengel@9
|
1150 NANOS_MEM_TRANSFER_DEVICE_LOCAL,
|
|
nengel@9
|
1151 NANOS_CACHE,
|
|
nengel@9
|
1152 NANOS_YIELD,
|
|
nengel@9
|
1153 NANOS_ACQUIRING_LOCK,
|
|
nengel@9
|
1154 NANOS_CONTEXT_SWITCH,
|
|
nengel@9
|
1155 NANOS_DEBUG,
|
|
nengel@9
|
1156 NANOS_EVENT_STATE_TYPES
|
|
nengel@9
|
1157 } nanos_event_state_value_t;
|
|
nengel@9
|
1158 typedef enum
|
|
nengel@9
|
1159 {
|
|
nengel@9
|
1160 NANOS_WD_DOMAIN,
|
|
nengel@9
|
1161 NANOS_WD_DEPENDENCY,
|
|
nengel@9
|
1162 NANOS_WAIT,
|
|
nengel@9
|
1163 NANOS_WD_REMOTE,
|
|
nengel@9
|
1164 NANOS_XFER_PUT,
|
|
nengel@9
|
1165 NANOS_XFER_GET
|
|
nengel@9
|
1166 } nanos_event_domain_t;
|
|
nengel@9
|
1167 typedef long long nanos_event_id_t;
|
|
nengel@9
|
1168 typedef unsigned int nanos_event_key_t;
|
|
nengel@9
|
1169 typedef unsigned long long nanos_event_value_t;
|
|
nengel@9
|
1170 typedef struct
|
|
nengel@9
|
1171 {
|
|
nengel@9
|
1172 nanos_event_key_t key;
|
|
nengel@9
|
1173 nanos_event_value_t value;
|
|
nengel@9
|
1174 } nanos_event_burst_t;
|
|
nengel@9
|
1175 typedef struct
|
|
nengel@9
|
1176 {
|
|
nengel@9
|
1177 nanos_event_state_value_t value;
|
|
nengel@9
|
1178 } nanos_event_state_t;
|
|
nengel@9
|
1179 typedef struct
|
|
nengel@9
|
1180 {
|
|
nengel@9
|
1181 unsigned int nkvs;
|
|
nengel@9
|
1182 nanos_event_key_t *keys;
|
|
nengel@9
|
1183 nanos_event_value_t *values;
|
|
nengel@9
|
1184 } nanos_event_point_t;
|
|
nengel@9
|
1185 typedef struct
|
|
nengel@9
|
1186 {
|
|
nengel@9
|
1187 nanos_event_domain_t domain;
|
|
nengel@9
|
1188 nanos_event_id_t id;
|
|
nengel@9
|
1189 unsigned int nkvs;
|
|
nengel@9
|
1190 nanos_event_key_t *keys;
|
|
nengel@9
|
1191 nanos_event_value_t *values;
|
|
nengel@9
|
1192 } nanos_event_ptp_t;
|
|
nengel@9
|
1193 typedef struct
|
|
nengel@9
|
1194 {
|
|
nengel@9
|
1195 nanos_event_type_t type;
|
|
nengel@9
|
1196 union
|
|
nengel@9
|
1197 {
|
|
nengel@9
|
1198 nanos_event_burst_t burst;
|
|
nengel@9
|
1199 nanos_event_state_t state;
|
|
nengel@9
|
1200 nanos_event_point_t point;
|
|
nengel@9
|
1201 nanos_event_ptp_t ptp;
|
|
nengel@9
|
1202 } info;
|
|
nengel@9
|
1203 } nanos_event_t;
|
|
nengel@9
|
1204 typedef enum
|
|
nengel@9
|
1205 {
|
|
nengel@9
|
1206 NANOS_LOCK_FREE = 0,
|
|
nengel@9
|
1207 NANOS_LOCK_BUSY = 1
|
|
nengel@9
|
1208 } nanos_lock_state_t;
|
|
nengel@9
|
1209 typedef struct nanos_lock_t
|
|
nengel@9
|
1210 {
|
|
nengel@9
|
1211 volatile nanos_lock_state_t _state;
|
|
nengel@9
|
1212 } nanos_lock_t;
|
|
nengel@9
|
1213 typedef void (*nanos_translate_args_t)(void *, nanos_wd_t);
|
|
nengel@9
|
1214 typedef void (nanos_init_func_t)(void *);
|
|
nengel@9
|
1215 typedef struct
|
|
nengel@9
|
1216 {
|
|
nengel@9
|
1217 nanos_init_func_t *func;
|
|
nengel@9
|
1218 void *data;
|
|
nengel@9
|
1219 } nanos_init_desc_t;
|
|
nengel@9
|
1220 typedef void *nanos_wg_t;
|
|
nengel@9
|
1221 typedef void *nanos_team_t;
|
|
nengel@9
|
1222 typedef void *nanos_sched_t;
|
|
nengel@9
|
1223 typedef void *nanos_slicer_t;
|
|
nengel@9
|
1224 typedef void *nanos_dd_t;
|
|
nengel@9
|
1225 typedef void *nanos_sync_cond_t;
|
|
nengel@9
|
1226 typedef unsigned int nanos_copy_id_t;
|
|
nengel@9
|
1227 typedef struct nanos_const_wd_definition_tag
|
|
nengel@9
|
1228 {
|
|
nengel@9
|
1229 nanos_wd_props_t props;
|
|
nengel@9
|
1230 size_t data_alignment;
|
|
nengel@9
|
1231 size_t num_copies;
|
|
nengel@9
|
1232 size_t num_devices;
|
|
nengel@9
|
1233 } nanos_const_wd_definition_t;
|
|
nengel@9
|
1234 typedef struct
|
|
nengel@9
|
1235 {
|
|
nengel@9
|
1236 int nthreads;
|
|
nengel@9
|
1237 void *arch;
|
|
nengel@9
|
1238 } nanos_constraint_t;
|
|
nengel@9
|
1239 typedef enum
|
|
nengel@9
|
1240 {
|
|
nengel@9
|
1241 NANOS_OK = 0,
|
|
nengel@9
|
1242 NANOS_UNKNOWN_ERR,
|
|
nengel@9
|
1243 NANOS_UNIMPLEMENTED
|
|
nengel@9
|
1244 } nanos_err_t;
|
|
nengel@9
|
1245 typedef struct
|
|
nengel@9
|
1246 {
|
|
nengel@9
|
1247 void (*outline)(void *);
|
|
nengel@9
|
1248 } nanos_smp_args_t;
|
|
nengel@9
|
1249 extern nanos_wd_t nanos_current_wd_(void);
|
|
nengel@9
|
1250 extern nanos_wd_t nanos_current_wd(void);
|
|
nengel@9
|
1251 extern int nanos_get_wd_id_(nanos_wd_t wd);
|
|
nengel@9
|
1252 extern int nanos_get_wd_id(nanos_wd_t wd);
|
|
nengel@9
|
1253 extern nanos_slicer_t nanos_find_slicer_(const char *slicer);
|
|
nengel@9
|
1254 extern nanos_slicer_t nanos_find_slicer(const char *slicer);
|
|
nengel@9
|
1255 extern nanos_ws_t nanos_find_worksharing_(const char *label);
|
|
nengel@9
|
1256 extern nanos_ws_t nanos_find_worksharing(const char *label);
|
|
nengel@9
|
1257 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);
|
|
nengel@9
|
1258 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);
|
|
nengel@9
|
1259 extern nanos_err_t nanos_set_translate_function_(nanos_wd_t wd, nanos_translate_args_t translate_args);
|
|
nengel@9
|
1260 extern nanos_err_t nanos_set_translate_function(nanos_wd_t wd, nanos_translate_args_t translate_args);
|
|
nengel@9
|
1261 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);
|
|
nengel@9
|
1262 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);
|
|
nengel@9
|
1263 extern nanos_err_t nanos_submit_(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team);
|
|
nengel@9
|
1264 extern nanos_err_t nanos_submit(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team);
|
|
nengel@9
|
1265 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);
|
|
nengel@9
|
1266 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);
|
|
nengel@9
|
1267 extern nanos_err_t nanos_create_for_(void);
|
|
nengel@9
|
1268 extern nanos_err_t nanos_create_for(void);
|
|
nengel@9
|
1269 extern nanos_err_t nanos_set_internal_wd_data_(nanos_wd_t wd, void *data);
|
|
nengel@9
|
1270 extern nanos_err_t nanos_set_internal_wd_data(nanos_wd_t wd, void *data);
|
|
nengel@9
|
1271 extern nanos_err_t nanos_get_internal_wd_data_(nanos_wd_t wd, void **data);
|
|
nengel@9
|
1272 extern nanos_err_t nanos_get_internal_wd_data(nanos_wd_t wd, void **data);
|
|
nengel@9
|
1273 extern nanos_err_t nanos_yield_(void);
|
|
nengel@9
|
1274 extern nanos_err_t nanos_yield(void);
|
|
nengel@9
|
1275 extern nanos_err_t nanos_slicer_get_specific_data_(nanos_slicer_t slicer, void **data);
|
|
nengel@9
|
1276 extern nanos_err_t nanos_slicer_get_specific_data(nanos_slicer_t slicer, void **data);
|
|
nengel@9
|
1277 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);
|
|
nengel@9
|
1278 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);
|
|
nengel@9
|
1279 extern nanos_err_t nanos_create_team_mapped_(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping);
|
|
nengel@9
|
1280 extern nanos_err_t nanos_create_team_mapped(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping);
|
|
nengel@9
|
1281 extern nanos_err_t nanos_leave_team_();
|
|
nengel@9
|
1282 extern nanos_err_t nanos_leave_team();
|
|
nengel@9
|
1283 extern nanos_err_t nanos_end_team_(nanos_team_t team);
|
|
nengel@9
|
1284 extern nanos_err_t nanos_end_team(nanos_team_t team);
|
|
nengel@9
|
1285 extern nanos_err_t nanos_team_barrier_(void);
|
|
nengel@9
|
1286 extern nanos_err_t nanos_team_barrier(void);
|
|
nengel@9
|
1287 extern nanos_err_t nanos_single_guard_(_Bool *);
|
|
nengel@9
|
1288 extern nanos_err_t nanos_single_guard(_Bool *);
|
|
nengel@9
|
1289 extern nanos_err_t nanos_enter_sync_init_(_Bool *b);
|
|
nengel@9
|
1290 extern nanos_err_t nanos_enter_sync_init(_Bool *b);
|
|
nengel@9
|
1291 extern nanos_err_t nanos_wait_sync_init_(void);
|
|
nengel@9
|
1292 extern nanos_err_t nanos_wait_sync_init(void);
|
|
nengel@9
|
1293 extern nanos_err_t nanos_release_sync_init_(void);
|
|
nengel@9
|
1294 extern nanos_err_t nanos_release_sync_init(void);
|
|
nengel@9
|
1295 extern nanos_err_t nanos_team_get_num_starring_threads_(int *n);
|
|
nengel@9
|
1296 extern nanos_err_t nanos_team_get_num_starring_threads(int *n);
|
|
nengel@9
|
1297 extern nanos_err_t nanos_team_get_starring_threads_(int *n, nanos_thread_t *list_of_threads);
|
|
nengel@9
|
1298 extern nanos_err_t nanos_team_get_starring_threads(int *n, nanos_thread_t *list_of_threads);
|
|
nengel@9
|
1299 extern nanos_err_t nanos_team_get_num_supporting_threads_(int *n);
|
|
nengel@9
|
1300 extern nanos_err_t nanos_team_get_num_supporting_threads(int *n);
|
|
nengel@9
|
1301 extern nanos_err_t nanos_team_get_supporting_threads_(int *n, nanos_thread_t *list_of_threads);
|
|
nengel@9
|
1302 extern nanos_err_t nanos_team_get_supporting_threads(int *n, nanos_thread_t *list_of_threads);
|
|
nengel@9
|
1303 extern nanos_err_t nanos_register_reduction_(nanos_reduction_t *red);
|
|
nengel@9
|
1304 extern nanos_err_t nanos_register_reduction(nanos_reduction_t *red);
|
|
nengel@9
|
1305 extern nanos_err_t nanos_reduction_get_private_data_(void **copy, void *sink);
|
|
nengel@9
|
1306 extern nanos_err_t nanos_reduction_get_private_data(void **copy, void *sink);
|
|
nengel@9
|
1307 extern nanos_err_t nanos_worksharing_create_(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b);
|
|
nengel@9
|
1308 extern nanos_err_t nanos_worksharing_create(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b);
|
|
nengel@9
|
1309 extern nanos_err_t nanos_worksharing_next_item_(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi);
|
|
nengel@9
|
1310 extern nanos_err_t nanos_worksharing_next_item(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi);
|
|
nengel@9
|
1311 extern nanos_err_t nanos_wg_wait_completion_(nanos_wg_t wg, _Bool avoid_flush);
|
|
nengel@9
|
1312 extern nanos_err_t nanos_wg_wait_completion(nanos_wg_t wg, _Bool avoid_flush);
|
|
nengel@9
|
1313 extern nanos_err_t nanos_create_int_sync_cond_(nanos_sync_cond_t *sync_cond, volatile int *p, int condition);
|
|
nengel@9
|
1314 extern nanos_err_t nanos_create_int_sync_cond(nanos_sync_cond_t *sync_cond, volatile int *p, int condition);
|
|
nengel@9
|
1315 extern nanos_err_t nanos_create_bool_sync_cond_(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition);
|
|
nengel@9
|
1316 extern nanos_err_t nanos_create_bool_sync_cond(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition);
|
|
nengel@9
|
1317 extern nanos_err_t nanos_sync_cond_wait_(nanos_sync_cond_t *sync_cond);
|
|
nengel@9
|
1318 extern nanos_err_t nanos_sync_cond_wait(nanos_sync_cond_t *sync_cond);
|
|
nengel@9
|
1319 extern nanos_err_t nanos_sync_cond_signal_(nanos_sync_cond_t *sync_cond);
|
|
nengel@9
|
1320 extern nanos_err_t nanos_sync_cond_signal(nanos_sync_cond_t *sync_cond);
|
|
nengel@9
|
1321 extern nanos_err_t nanos_destroy_sync_cond_(nanos_sync_cond_t *sync_cond);
|
|
nengel@9
|
1322 extern nanos_err_t nanos_destroy_sync_cond(nanos_sync_cond_t *sync_cond);
|
|
nengel@9
|
1323 extern nanos_err_t nanos_wait_on_(size_t num_deps, nanos_dependence_t *deps);
|
|
nengel@9
|
1324 extern nanos_err_t nanos_wait_on(size_t num_deps, nanos_dependence_t *deps);
|
|
nengel@9
|
1325 extern nanos_err_t nanos_init_lock_(nanos_lock_t **lock);
|
|
nengel@9
|
1326 extern nanos_err_t nanos_init_lock(nanos_lock_t **lock);
|
|
nengel@9
|
1327 extern nanos_err_t nanos_set_lock_(nanos_lock_t *lock);
|
|
nengel@9
|
1328 extern nanos_err_t nanos_set_lock(nanos_lock_t *lock);
|
|
nengel@9
|
1329 extern nanos_err_t nanos_unset_lock_(nanos_lock_t *lock);
|
|
nengel@9
|
1330 extern nanos_err_t nanos_unset_lock(nanos_lock_t *lock);
|
|
nengel@9
|
1331 extern nanos_err_t nanos_try_lock_(nanos_lock_t *lock, _Bool *result);
|
|
nengel@9
|
1332 extern nanos_err_t nanos_try_lock(nanos_lock_t *lock, _Bool *result);
|
|
nengel@9
|
1333 extern nanos_err_t nanos_destroy_lock_(nanos_lock_t *lock);
|
|
nengel@9
|
1334 extern nanos_err_t nanos_destroy_lock(nanos_lock_t *lock);
|
|
nengel@9
|
1335 extern nanos_err_t nanos_get_addr_(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd);
|
|
nengel@9
|
1336 extern nanos_err_t nanos_get_addr(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd);
|
|
nengel@9
|
1337 extern nanos_err_t nanos_copy_value_(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd);
|
|
nengel@9
|
1338 extern nanos_err_t nanos_copy_value(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd);
|
|
nengel@9
|
1339 extern nanos_err_t nanos_get_num_running_tasks_(int *num);
|
|
nengel@9
|
1340 extern nanos_err_t nanos_get_num_running_tasks(int *num);
|
|
nengel@9
|
1341 extern nanos_err_t nanos_start_scheduler_();
|
|
nengel@9
|
1342 extern nanos_err_t nanos_start_scheduler();
|
|
nengel@9
|
1343 extern nanos_err_t nanos_stop_scheduler_();
|
|
nengel@9
|
1344 extern nanos_err_t nanos_stop_scheduler();
|
|
nengel@9
|
1345 extern nanos_err_t nanos_scheduler_enabled_(_Bool *res);
|
|
nengel@9
|
1346 extern nanos_err_t nanos_scheduler_enabled(_Bool *res);
|
|
nengel@9
|
1347 extern nanos_err_t nanos_wait_until_threads_paused_();
|
|
nengel@9
|
1348 extern nanos_err_t nanos_wait_until_threads_paused();
|
|
nengel@9
|
1349 extern nanos_err_t nanos_wait_until_threads_unpaused_();
|
|
nengel@9
|
1350 extern nanos_err_t nanos_wait_until_threads_unpaused();
|
|
nengel@9
|
1351 extern nanos_err_t nanos_delay_start_();
|
|
nengel@9
|
1352 extern nanos_err_t nanos_delay_start();
|
|
nengel@9
|
1353 extern nanos_err_t nanos_start_();
|
|
nengel@9
|
1354 extern nanos_err_t nanos_start();
|
|
nengel@9
|
1355 extern nanos_err_t nanos_finish_();
|
|
nengel@9
|
1356 extern nanos_err_t nanos_finish();
|
|
nengel@9
|
1357 extern nanos_err_t nanos_malloc_(void **p, size_t size, const char *file, int line);
|
|
nengel@9
|
1358 extern nanos_err_t nanos_malloc(void **p, size_t size, const char *file, int line);
|
|
nengel@9
|
1359 extern nanos_err_t nanos_free_(void *p);
|
|
nengel@9
|
1360 extern nanos_err_t nanos_free(void *p);
|
|
nengel@9
|
1361 extern void nanos_handle_error_(nanos_err_t err);
|
|
nengel@9
|
1362 extern void nanos_handle_error(nanos_err_t err);
|
|
nengel@9
|
1363 extern void *nanos_smp_factory_(void *args);
|
|
nengel@9
|
1364 extern void *nanos_smp_factory(void *args);
|
|
nengel@9
|
1365 extern nanos_err_t nanos_instrument_register_key_(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered);
|
|
nengel@9
|
1366 extern nanos_err_t nanos_instrument_register_key(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered);
|
|
nengel@9
|
1367 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);
|
|
nengel@9
|
1368 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);
|
|
nengel@9
|
1369 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);
|
|
nengel@9
|
1370 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);
|
|
nengel@9
|
1371 extern nanos_err_t nanos_instrument_get_key_(const char *key, nanos_event_key_t *event_key);
|
|
nengel@9
|
1372 extern nanos_err_t nanos_instrument_get_key(const char *key, nanos_event_key_t *event_key);
|
|
nengel@9
|
1373 extern nanos_err_t nanos_instrument_get_value_(const char *key, const char *value, nanos_event_value_t *event_value);
|
|
nengel@9
|
1374 extern nanos_err_t nanos_instrument_get_value(const char *key, const char *value, nanos_event_value_t *event_value);
|
|
nengel@9
|
1375 extern nanos_err_t nanos_instrument_events_(unsigned int num_events, nanos_event_t events[]);
|
|
nengel@9
|
1376 extern nanos_err_t nanos_instrument_events(unsigned int num_events, nanos_event_t events[]);
|
|
nengel@9
|
1377 extern nanos_err_t nanos_instrument_enter_state_(nanos_event_state_value_t state);
|
|
nengel@9
|
1378 extern nanos_err_t nanos_instrument_enter_state(nanos_event_state_value_t state);
|
|
nengel@9
|
1379 extern nanos_err_t nanos_instrument_leave_state_(void);
|
|
nengel@9
|
1380 extern nanos_err_t nanos_instrument_leave_state(void);
|
|
nengel@9
|
1381 extern nanos_err_t nanos_instrument_enter_burst_(nanos_event_key_t key, nanos_event_value_t value);
|
|
nengel@9
|
1382 extern nanos_err_t nanos_instrument_enter_burst(nanos_event_key_t key, nanos_event_value_t value);
|
|
nengel@9
|
1383 extern nanos_err_t nanos_instrument_leave_burst_(nanos_event_key_t key);
|
|
nengel@9
|
1384 extern nanos_err_t nanos_instrument_leave_burst(nanos_event_key_t key);
|
|
nengel@9
|
1385 extern nanos_err_t nanos_instrument_point_event_(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
|
|
nengel@9
|
1386 extern nanos_err_t nanos_instrument_point_event(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
|
|
nengel@9
|
1387 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);
|
|
nengel@9
|
1388 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);
|
|
nengel@9
|
1389 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);
|
|
nengel@9
|
1390 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);
|
|
nengel@9
|
1391 extern nanos_err_t nanos_instrument_disable_state_events_(nanos_event_state_value_t state);
|
|
nengel@9
|
1392 extern nanos_err_t nanos_instrument_disable_state_events(nanos_event_state_value_t state);
|
|
nengel@9
|
1393 extern nanos_err_t nanos_instrument_enable_state_events_(void);
|
|
nengel@9
|
1394 extern nanos_err_t nanos_instrument_enable_state_events(void);
|
|
nengel@9
|
1395 extern nanos_err_t nanos_instrument_close_user_fun_event_();
|
|
nengel@9
|
1396 extern nanos_err_t nanos_instrument_close_user_fun_event();
|
|
nengel@9
|
1397 extern nanos_err_t nanos_instrument_enable_(void);
|
|
nengel@9
|
1398 extern nanos_err_t nanos_instrument_enable(void);
|
|
nengel@9
|
1399 extern nanos_err_t nanos_instrument_disable_(void);
|
|
nengel@9
|
1400 extern nanos_err_t nanos_instrument_disable(void);
|
|
nengel@9
|
1401 void nanos_reduction_int_vop(int, void *, void *);
|
|
nengel@9
|
1402 void nanos_reduction_bop_add_char(void *arg1, void *arg2);
|
|
nengel@9
|
1403 void nanos_reduction_vop_add_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1404 void nanos_reduction_bop_add_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1405 void nanos_reduction_vop_add_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1406 void nanos_reduction_bop_add_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1407 void nanos_reduction_vop_add_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1408 void nanos_reduction_bop_add_short(void *arg1, void *arg2);
|
|
nengel@9
|
1409 void nanos_reduction_vop_add_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1410 void nanos_reduction_bop_add_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1411 void nanos_reduction_vop_add_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1412 void nanos_reduction_bop_add_int(void *arg1, void *arg2);
|
|
nengel@9
|
1413 void nanos_reduction_vop_add_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1414 void nanos_reduction_bop_add_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1415 void nanos_reduction_vop_add_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1416 void nanos_reduction_bop_add_long(void *arg1, void *arg2);
|
|
nengel@9
|
1417 void nanos_reduction_vop_add_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1418 void nanos_reduction_bop_add_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1419 void nanos_reduction_vop_add_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1420 void nanos_reduction_bop_add_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1421 void nanos_reduction_vop_add_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1422 void nanos_reduction_bop_add_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1423 void nanos_reduction_vop_add_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1424 void nanos_reduction_bop_add__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1425 void nanos_reduction_vop_add__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1426 void nanos_reduction_bop_add_float(void *arg1, void *arg2);
|
|
nengel@9
|
1427 void nanos_reduction_vop_add_float(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1428 void nanos_reduction_bop_add_double(void *arg1, void *arg2);
|
|
nengel@9
|
1429 void nanos_reduction_vop_add_double(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1430 void nanos_reduction_bop_add_longdouble(void *arg1, void *arg2);
|
|
nengel@9
|
1431 void nanos_reduction_vop_add_longdouble(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1432 void nanos_reduction_bop_sub_char(void *arg1, void *arg2);
|
|
nengel@9
|
1433 void nanos_reduction_vop_sub_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1434 void nanos_reduction_bop_sub_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1435 void nanos_reduction_vop_sub_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1436 void nanos_reduction_bop_sub_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1437 void nanos_reduction_vop_sub_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1438 void nanos_reduction_bop_sub_short(void *arg1, void *arg2);
|
|
nengel@9
|
1439 void nanos_reduction_vop_sub_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1440 void nanos_reduction_bop_sub_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1441 void nanos_reduction_vop_sub_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1442 void nanos_reduction_bop_sub_int(void *arg1, void *arg2);
|
|
nengel@9
|
1443 void nanos_reduction_vop_sub_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1444 void nanos_reduction_bop_sub_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1445 void nanos_reduction_vop_sub_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1446 void nanos_reduction_bop_sub_long(void *arg1, void *arg2);
|
|
nengel@9
|
1447 void nanos_reduction_vop_sub_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1448 void nanos_reduction_bop_sub_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1449 void nanos_reduction_vop_sub_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1450 void nanos_reduction_bop_sub_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1451 void nanos_reduction_vop_sub_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1452 void nanos_reduction_bop_sub_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1453 void nanos_reduction_vop_sub_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1454 void nanos_reduction_bop_sub__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1455 void nanos_reduction_vop_sub__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1456 void nanos_reduction_bop_sub_float(void *arg1, void *arg2);
|
|
nengel@9
|
1457 void nanos_reduction_vop_sub_float(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1458 void nanos_reduction_bop_sub_double(void *arg1, void *arg2);
|
|
nengel@9
|
1459 void nanos_reduction_vop_sub_double(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1460 void nanos_reduction_bop_sub_longdouble(void *arg1, void *arg2);
|
|
nengel@9
|
1461 void nanos_reduction_vop_sub_longdouble(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1462 void nanos_reduction_bop_prod_char(void *arg1, void *arg2);
|
|
nengel@9
|
1463 void nanos_reduction_vop_prod_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1464 void nanos_reduction_bop_prod_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1465 void nanos_reduction_vop_prod_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1466 void nanos_reduction_bop_prod_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1467 void nanos_reduction_vop_prod_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1468 void nanos_reduction_bop_prod_short(void *arg1, void *arg2);
|
|
nengel@9
|
1469 void nanos_reduction_vop_prod_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1470 void nanos_reduction_bop_prod_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1471 void nanos_reduction_vop_prod_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1472 void nanos_reduction_bop_prod_int(void *arg1, void *arg2);
|
|
nengel@9
|
1473 void nanos_reduction_vop_prod_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1474 void nanos_reduction_bop_prod_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1475 void nanos_reduction_vop_prod_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1476 void nanos_reduction_bop_prod_long(void *arg1, void *arg2);
|
|
nengel@9
|
1477 void nanos_reduction_vop_prod_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1478 void nanos_reduction_bop_prod_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1479 void nanos_reduction_vop_prod_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1480 void nanos_reduction_bop_prod_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1481 void nanos_reduction_vop_prod_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1482 void nanos_reduction_bop_prod_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1483 void nanos_reduction_vop_prod_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1484 void nanos_reduction_bop_prod__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1485 void nanos_reduction_vop_prod__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1486 void nanos_reduction_bop_prod_float(void *arg1, void *arg2);
|
|
nengel@9
|
1487 void nanos_reduction_vop_prod_float(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1488 void nanos_reduction_bop_prod_double(void *arg1, void *arg2);
|
|
nengel@9
|
1489 void nanos_reduction_vop_prod_double(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1490 void nanos_reduction_bop_prod_longdouble(void *arg1, void *arg2);
|
|
nengel@9
|
1491 void nanos_reduction_vop_prod_longdouble(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1492 void nanos_reduction_bop_and_char(void *arg1, void *arg2);
|
|
nengel@9
|
1493 void nanos_reduction_vop_and_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1494 void nanos_reduction_bop_and_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1495 void nanos_reduction_vop_and_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1496 void nanos_reduction_bop_and_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1497 void nanos_reduction_vop_and_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1498 void nanos_reduction_bop_and_short(void *arg1, void *arg2);
|
|
nengel@9
|
1499 void nanos_reduction_vop_and_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1500 void nanos_reduction_bop_and_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1501 void nanos_reduction_vop_and_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1502 void nanos_reduction_bop_and_int(void *arg1, void *arg2);
|
|
nengel@9
|
1503 void nanos_reduction_vop_and_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1504 void nanos_reduction_bop_and_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1505 void nanos_reduction_vop_and_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1506 void nanos_reduction_bop_and_long(void *arg1, void *arg2);
|
|
nengel@9
|
1507 void nanos_reduction_vop_and_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1508 void nanos_reduction_bop_and_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1509 void nanos_reduction_vop_and_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1510 void nanos_reduction_bop_and_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1511 void nanos_reduction_vop_and_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1512 void nanos_reduction_bop_and_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1513 void nanos_reduction_vop_and_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1514 void nanos_reduction_bop_and__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1515 void nanos_reduction_vop_and__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1516 void nanos_reduction_bop_or_char(void *arg1, void *arg2);
|
|
nengel@9
|
1517 void nanos_reduction_vop_or_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1518 void nanos_reduction_bop_or_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1519 void nanos_reduction_vop_or_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1520 void nanos_reduction_bop_or_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1521 void nanos_reduction_vop_or_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1522 void nanos_reduction_bop_or_short(void *arg1, void *arg2);
|
|
nengel@9
|
1523 void nanos_reduction_vop_or_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1524 void nanos_reduction_bop_or_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1525 void nanos_reduction_vop_or_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1526 void nanos_reduction_bop_or_int(void *arg1, void *arg2);
|
|
nengel@9
|
1527 void nanos_reduction_vop_or_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1528 void nanos_reduction_bop_or_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1529 void nanos_reduction_vop_or_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1530 void nanos_reduction_bop_or_long(void *arg1, void *arg2);
|
|
nengel@9
|
1531 void nanos_reduction_vop_or_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1532 void nanos_reduction_bop_or_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1533 void nanos_reduction_vop_or_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1534 void nanos_reduction_bop_or_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1535 void nanos_reduction_vop_or_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1536 void nanos_reduction_bop_or_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1537 void nanos_reduction_vop_or_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1538 void nanos_reduction_bop_or__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1539 void nanos_reduction_vop_or__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1540 void nanos_reduction_bop_xor_char(void *arg1, void *arg2);
|
|
nengel@9
|
1541 void nanos_reduction_vop_xor_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1542 void nanos_reduction_bop_xor_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1543 void nanos_reduction_vop_xor_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1544 void nanos_reduction_bop_xor_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1545 void nanos_reduction_vop_xor_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1546 void nanos_reduction_bop_xor_short(void *arg1, void *arg2);
|
|
nengel@9
|
1547 void nanos_reduction_vop_xor_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1548 void nanos_reduction_bop_xor_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1549 void nanos_reduction_vop_xor_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1550 void nanos_reduction_bop_xor_int(void *arg1, void *arg2);
|
|
nengel@9
|
1551 void nanos_reduction_vop_xor_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1552 void nanos_reduction_bop_xor_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1553 void nanos_reduction_vop_xor_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1554 void nanos_reduction_bop_xor_long(void *arg1, void *arg2);
|
|
nengel@9
|
1555 void nanos_reduction_vop_xor_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1556 void nanos_reduction_bop_xor_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1557 void nanos_reduction_vop_xor_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1558 void nanos_reduction_bop_xor_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1559 void nanos_reduction_vop_xor_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1560 void nanos_reduction_bop_xor_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1561 void nanos_reduction_vop_xor_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1562 void nanos_reduction_bop_xor__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1563 void nanos_reduction_vop_xor__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1564 void nanos_reduction_bop_land_char(void *arg1, void *arg2);
|
|
nengel@9
|
1565 void nanos_reduction_vop_land_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1566 void nanos_reduction_bop_land_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1567 void nanos_reduction_vop_land_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1568 void nanos_reduction_bop_land_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1569 void nanos_reduction_vop_land_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1570 void nanos_reduction_bop_land_short(void *arg1, void *arg2);
|
|
nengel@9
|
1571 void nanos_reduction_vop_land_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1572 void nanos_reduction_bop_land_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1573 void nanos_reduction_vop_land_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1574 void nanos_reduction_bop_land_int(void *arg1, void *arg2);
|
|
nengel@9
|
1575 void nanos_reduction_vop_land_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1576 void nanos_reduction_bop_land_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1577 void nanos_reduction_vop_land_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1578 void nanos_reduction_bop_land_long(void *arg1, void *arg2);
|
|
nengel@9
|
1579 void nanos_reduction_vop_land_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1580 void nanos_reduction_bop_land_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1581 void nanos_reduction_vop_land_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1582 void nanos_reduction_bop_land_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1583 void nanos_reduction_vop_land_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1584 void nanos_reduction_bop_land_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1585 void nanos_reduction_vop_land_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1586 void nanos_reduction_bop_land__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1587 void nanos_reduction_vop_land__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1588 void nanos_reduction_bop_land_float(void *arg1, void *arg2);
|
|
nengel@9
|
1589 void nanos_reduction_vop_land_float(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1590 void nanos_reduction_bop_land_double(void *arg1, void *arg2);
|
|
nengel@9
|
1591 void nanos_reduction_vop_land_double(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1592 void nanos_reduction_bop_land_longdouble(void *arg1, void *arg2);
|
|
nengel@9
|
1593 void nanos_reduction_vop_land_longdouble(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1594 void nanos_reduction_bop_lor_char(void *arg1, void *arg2);
|
|
nengel@9
|
1595 void nanos_reduction_vop_lor_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1596 void nanos_reduction_bop_lor_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1597 void nanos_reduction_vop_lor_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1598 void nanos_reduction_bop_lor_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1599 void nanos_reduction_vop_lor_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1600 void nanos_reduction_bop_lor_short(void *arg1, void *arg2);
|
|
nengel@9
|
1601 void nanos_reduction_vop_lor_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1602 void nanos_reduction_bop_lor_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1603 void nanos_reduction_vop_lor_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1604 void nanos_reduction_bop_lor_int(void *arg1, void *arg2);
|
|
nengel@9
|
1605 void nanos_reduction_vop_lor_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1606 void nanos_reduction_bop_lor_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1607 void nanos_reduction_vop_lor_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1608 void nanos_reduction_bop_lor_long(void *arg1, void *arg2);
|
|
nengel@9
|
1609 void nanos_reduction_vop_lor_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1610 void nanos_reduction_bop_lor_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1611 void nanos_reduction_vop_lor_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1612 void nanos_reduction_bop_lor_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1613 void nanos_reduction_vop_lor_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1614 void nanos_reduction_bop_lor_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1615 void nanos_reduction_vop_lor_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1616 void nanos_reduction_bop_lor__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1617 void nanos_reduction_vop_lor__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1618 void nanos_reduction_bop_lor_float(void *arg1, void *arg2);
|
|
nengel@9
|
1619 void nanos_reduction_vop_lor_float(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1620 void nanos_reduction_bop_lor_double(void *arg1, void *arg2);
|
|
nengel@9
|
1621 void nanos_reduction_vop_lor_double(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1622 void nanos_reduction_bop_lor_longdouble(void *arg1, void *arg2);
|
|
nengel@9
|
1623 void nanos_reduction_vop_lor_longdouble(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1624 void nanos_reduction_bop_max_char(void *arg1, void *arg2);
|
|
nengel@9
|
1625 void nanos_reduction_vop_max_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1626 void nanos_reduction_bop_max_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1627 void nanos_reduction_vop_max_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1628 void nanos_reduction_bop_max_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1629 void nanos_reduction_vop_max_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1630 void nanos_reduction_bop_max_short(void *arg1, void *arg2);
|
|
nengel@9
|
1631 void nanos_reduction_vop_max_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1632 void nanos_reduction_bop_max_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1633 void nanos_reduction_vop_max_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1634 void nanos_reduction_bop_max_int(void *arg1, void *arg2);
|
|
nengel@9
|
1635 void nanos_reduction_vop_max_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1636 void nanos_reduction_bop_max_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1637 void nanos_reduction_vop_max_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1638 void nanos_reduction_bop_max_long(void *arg1, void *arg2);
|
|
nengel@9
|
1639 void nanos_reduction_vop_max_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1640 void nanos_reduction_bop_max_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1641 void nanos_reduction_vop_max_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1642 void nanos_reduction_bop_max_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1643 void nanos_reduction_vop_max_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1644 void nanos_reduction_bop_max_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1645 void nanos_reduction_vop_max_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1646 void nanos_reduction_bop_max__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1647 void nanos_reduction_vop_max__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1648 void nanos_reduction_bop_max_float(void *arg1, void *arg2);
|
|
nengel@9
|
1649 void nanos_reduction_vop_max_float(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1650 void nanos_reduction_bop_max_double(void *arg1, void *arg2);
|
|
nengel@9
|
1651 void nanos_reduction_vop_max_double(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1652 void nanos_reduction_bop_max_longdouble(void *arg1, void *arg2);
|
|
nengel@9
|
1653 void nanos_reduction_vop_max_longdouble(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1654 void nanos_reduction_bop_min_char(void *arg1, void *arg2);
|
|
nengel@9
|
1655 void nanos_reduction_vop_min_char(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1656 void nanos_reduction_bop_min_uchar(void *arg1, void *arg2);
|
|
nengel@9
|
1657 void nanos_reduction_vop_min_uchar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1658 void nanos_reduction_bop_min_schar(void *arg1, void *arg2);
|
|
nengel@9
|
1659 void nanos_reduction_vop_min_schar(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1660 void nanos_reduction_bop_min_short(void *arg1, void *arg2);
|
|
nengel@9
|
1661 void nanos_reduction_vop_min_short(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1662 void nanos_reduction_bop_min_ushort(void *arg1, void *arg2);
|
|
nengel@9
|
1663 void nanos_reduction_vop_min_ushort(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1664 void nanos_reduction_bop_min_int(void *arg1, void *arg2);
|
|
nengel@9
|
1665 void nanos_reduction_vop_min_int(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1666 void nanos_reduction_bop_min_uint(void *arg1, void *arg2);
|
|
nengel@9
|
1667 void nanos_reduction_vop_min_uint(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1668 void nanos_reduction_bop_min_long(void *arg1, void *arg2);
|
|
nengel@9
|
1669 void nanos_reduction_vop_min_long(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1670 void nanos_reduction_bop_min_ulong(void *arg1, void *arg2);
|
|
nengel@9
|
1671 void nanos_reduction_vop_min_ulong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1672 void nanos_reduction_bop_min_longlong(void *arg1, void *arg2);
|
|
nengel@9
|
1673 void nanos_reduction_vop_min_longlong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1674 void nanos_reduction_bop_min_ulonglong(void *arg1, void *arg2);
|
|
nengel@9
|
1675 void nanos_reduction_vop_min_ulonglong(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1676 void nanos_reduction_bop_min__Bool(void *arg1, void *arg2);
|
|
nengel@9
|
1677 void nanos_reduction_vop_min__Bool(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1678 void nanos_reduction_bop_min_float(void *arg1, void *arg2);
|
|
nengel@9
|
1679 void nanos_reduction_vop_min_float(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1680 void nanos_reduction_bop_min_double(void *arg1, void *arg2);
|
|
nengel@9
|
1681 void nanos_reduction_vop_min_double(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1682 void nanos_reduction_bop_min_longdouble(void *arg1, void *arg2);
|
|
nengel@9
|
1683 void nanos_reduction_vop_min_longdouble(int i, void *arg1, void *arg2);
|
|
nengel@9
|
1684 void nanos_reduction_default_cleanup_char(void *r);
|
|
nengel@9
|
1685 void nanos_reduction_default_cleanup_uchar(void *r);
|
|
nengel@9
|
1686 void nanos_reduction_default_cleanup_schar(void *r);
|
|
nengel@9
|
1687 void nanos_reduction_default_cleanup_short(void *r);
|
|
nengel@9
|
1688 void nanos_reduction_default_cleanup_ushort(void *r);
|
|
nengel@9
|
1689 void nanos_reduction_default_cleanup_int(void *r);
|
|
nengel@9
|
1690 void nanos_reduction_default_cleanup_uint(void *r);
|
|
nengel@9
|
1691 void nanos_reduction_default_cleanup_long(void *r);
|
|
nengel@9
|
1692 void nanos_reduction_default_cleanup_ulong(void *r);
|
|
nengel@9
|
1693 void nanos_reduction_default_cleanup_longlong(void *r);
|
|
nengel@9
|
1694 void nanos_reduction_default_cleanup_ulonglong(void *r);
|
|
nengel@9
|
1695 void nanos_reduction_default_cleanup__Bool(void *r);
|
|
nengel@9
|
1696 void nanos_reduction_default_cleanup_float(void *r);
|
|
nengel@9
|
1697 void nanos_reduction_default_cleanup_double(void *r);
|
|
nengel@9
|
1698 void nanos_reduction_default_cleanup_longdouble(void *r);
|
|
nengel@9
|
1699 typedef void *omp_lock_t;
|
|
nengel@9
|
1700 typedef void *omp_nest_lock_t;
|
|
nengel@9
|
1701 typedef enum omp_sched_t
|
|
nengel@9
|
1702 {
|
|
nengel@9
|
1703 omp_sched_static = 1,
|
|
nengel@9
|
1704 omp_sched_dynamic = 2,
|
|
nengel@9
|
1705 omp_sched_guided = 3,
|
|
nengel@9
|
1706 omp_sched_auto = 4
|
|
nengel@9
|
1707 } omp_sched_t;
|
|
nengel@9
|
1708 extern void omp_set_num_threads(int num_threads);
|
|
nengel@9
|
1709 extern int omp_get_num_threads(void);
|
|
nengel@9
|
1710 extern int omp_get_max_threads(void);
|
|
nengel@9
|
1711 extern int omp_get_thread_num(void);
|
|
nengel@9
|
1712 extern int omp_get_num_procs(void);
|
|
nengel@9
|
1713 extern int omp_in_parallel(void);
|
|
nengel@9
|
1714 extern void omp_set_dynamic(int dynamic_threads);
|
|
nengel@9
|
1715 extern int omp_get_dynamic(void);
|
|
nengel@9
|
1716 extern void omp_set_nested(int nested);
|
|
nengel@9
|
1717 extern int omp_get_nested(void);
|
|
nengel@9
|
1718 extern int omp_get_thread_limit(void);
|
|
nengel@9
|
1719 extern void omp_set_max_active_levels(int max_active_levels);
|
|
nengel@9
|
1720 extern int omp_get_max_active_levels(void);
|
|
nengel@9
|
1721 extern void omp_set_schedule(omp_sched_t kind, int modifier);
|
|
nengel@9
|
1722 extern void omp_get_schedule(omp_sched_t *kind, int *modifier);
|
|
nengel@9
|
1723 extern int omp_get_level(void);
|
|
nengel@9
|
1724 extern int omp_get_ancestor_thread_num(int level);
|
|
nengel@9
|
1725 extern int omp_get_team_size(int level);
|
|
nengel@9
|
1726 extern int omp_get_active_level(void);
|
|
nengel@9
|
1727 extern void omp_init_lock(omp_lock_t *lock);
|
|
nengel@9
|
1728 extern void omp_destroy_lock(omp_lock_t *lock);
|
|
nengel@9
|
1729 extern void omp_set_lock(omp_lock_t *lock);
|
|
nengel@9
|
1730 extern void omp_unset_lock(omp_lock_t *lock);
|
|
nengel@9
|
1731 extern int omp_test_lock(omp_lock_t *lock);
|
|
nengel@9
|
1732 extern void omp_init_nest_lock(omp_nest_lock_t *lock);
|
|
nengel@9
|
1733 extern void omp_destroy_nest_lock(omp_nest_lock_t *lock);
|
|
nengel@9
|
1734 extern void omp_set_nest_lock(omp_nest_lock_t *lock);
|
|
nengel@9
|
1735 extern void omp_unset_nest_lock(omp_nest_lock_t *lock);
|
|
nengel@9
|
1736 extern int omp_test_nest_lock(omp_nest_lock_t *lock);
|
|
nengel@9
|
1737 extern double omp_get_wtime(void);
|
|
nengel@9
|
1738 extern double omp_get_wtick(void);
|
|
nengel@9
|
1739 extern int omp_in_final(void);
|
|
nengel@9
|
1740 nanos_err_t nanos_omp_single(_Bool *);
|
|
nengel@9
|
1741 nanos_err_t nanos_omp_barrier(void);
|
|
nengel@9
|
1742 void nanos_omp_set_interface(void *);
|
|
nengel@9
|
1743 nanos_err_t nanos_omp_set_implicit(nanos_wd_t uwd);
|
|
nengel@9
|
1744 int nanos_omp_get_max_threads(void);
|
|
nengel@9
|
1745 nanos_ws_t nanos_omp_find_worksharing(omp_sched_t kind);
|
|
nengel@9
|
1746 nanos_err_t nanos_omp_get_schedule(omp_sched_t *kind, int *modifier);
|
|
nengel@9
|
1747 typedef __time_t time_t;
|
|
nengel@9
|
1748 struct timespec
|
|
nengel@9
|
1749 {
|
|
nengel@9
|
1750 __time_t tv_sec;
|
|
nengel@9
|
1751 long int tv_nsec;
|
|
nengel@9
|
1752 };
|
|
nengel@9
|
1753 struct sched_param
|
|
nengel@9
|
1754 {
|
|
nengel@9
|
1755 int __sched_priority;
|
|
nengel@9
|
1756 };
|
|
nengel@9
|
1757 struct __sched_param
|
|
nengel@9
|
1758 {
|
|
nengel@9
|
1759 int __sched_priority;
|
|
nengel@9
|
1760 };
|
|
nengel@9
|
1761 typedef unsigned long int __cpu_mask;
|
|
nengel@9
|
1762 typedef struct
|
|
nengel@9
|
1763 {
|
|
nengel@9
|
1764 __cpu_mask __bits[1024 / (8 * sizeof(__cpu_mask))];
|
|
nengel@9
|
1765 } cpu_set_t;
|
|
nengel@9
|
1766 extern int __sched_cpucount(size_t __setsize, const cpu_set_t *__setp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1767 extern cpu_set_t *__sched_cpualloc(size_t __count) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
1768 extern void __sched_cpufree(cpu_set_t *__set) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1769 extern int sched_setparam(__pid_t __pid, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1770 extern int sched_getparam(__pid_t __pid, struct sched_param *__param) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1771 extern int sched_setscheduler(__pid_t __pid, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1772 extern int sched_getscheduler(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1773 extern int sched_yield(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1774 extern int sched_get_priority_max(int __algorithm) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1775 extern int sched_get_priority_min(int __algorithm) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1776 extern int sched_rr_get_interval(__pid_t __pid, struct timespec *__t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1777 typedef __clock_t clock_t;
|
|
nengel@9
|
1778 typedef __clockid_t clockid_t;
|
|
nengel@9
|
1779 typedef __timer_t timer_t;
|
|
nengel@9
|
1780 struct tm
|
|
nengel@9
|
1781 {
|
|
nengel@9
|
1782 int tm_sec;
|
|
nengel@9
|
1783 int tm_min;
|
|
nengel@9
|
1784 int tm_hour;
|
|
nengel@9
|
1785 int tm_mday;
|
|
nengel@9
|
1786 int tm_mon;
|
|
nengel@9
|
1787 int tm_year;
|
|
nengel@9
|
1788 int tm_wday;
|
|
nengel@9
|
1789 int tm_yday;
|
|
nengel@9
|
1790 int tm_isdst;
|
|
nengel@9
|
1791 long int tm_gmtoff;
|
|
nengel@9
|
1792 __const char *tm_zone;
|
|
nengel@9
|
1793 };
|
|
nengel@9
|
1794 struct itimerspec
|
|
nengel@9
|
1795 {
|
|
nengel@9
|
1796 struct timespec it_interval;
|
|
nengel@9
|
1797 struct timespec it_value;
|
|
nengel@9
|
1798 };
|
|
nengel@9
|
1799 struct sigevent;
|
|
nengel@9
|
1800 extern clock_t clock(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1801 extern time_t time(time_t *__timer) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1802 extern double difftime(time_t __time1, time_t __time0) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
1803 extern time_t mktime(struct tm *__tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1804 extern size_t strftime(char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1805 typedef struct __locale_struct
|
|
nengel@9
|
1806 {
|
|
nengel@9
|
1807 struct __locale_data *__locales[13];
|
|
nengel@9
|
1808 const unsigned short int *__ctype_b;
|
|
nengel@9
|
1809 const int *__ctype_tolower;
|
|
nengel@9
|
1810 const int *__ctype_toupper;
|
|
nengel@9
|
1811 const char *__names[13];
|
|
nengel@9
|
1812 } *__locale_t;
|
|
nengel@9
|
1813 typedef __locale_t locale_t;
|
|
nengel@9
|
1814 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__));
|
|
nengel@9
|
1815 extern struct tm *gmtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1816 extern struct tm *localtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1817 extern struct tm *gmtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1818 extern struct tm *localtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1819 extern char *asctime(__const struct tm *__tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1820 extern char *ctime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1821 extern char *asctime_r(__const struct tm *__restrict __tp, char *__restrict __buf) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1822 extern char *ctime_r(__const time_t *__restrict __timer, char *__restrict __buf) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1823 extern char *__tzname[2];
|
|
nengel@9
|
1824 extern int __daylight;
|
|
nengel@9
|
1825 extern long int __timezone;
|
|
nengel@9
|
1826 extern char *tzname[2];
|
|
nengel@9
|
1827 extern void tzset(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1828 extern int daylight;
|
|
nengel@9
|
1829 extern long int timezone;
|
|
nengel@9
|
1830 extern int stime(__const time_t *__when) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1831 extern time_t timegm(struct tm *__tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1832 extern time_t timelocal(struct tm *__tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1833 extern int dysize(int __year) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
1834 extern int nanosleep(__const struct timespec *__requested_time, struct timespec *__remaining);
|
|
nengel@9
|
1835 extern int clock_getres(clockid_t __clock_id, struct timespec *__res) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1836 extern int clock_gettime(clockid_t __clock_id, struct timespec *__tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1837 extern int clock_settime(clockid_t __clock_id, __const struct timespec *__tp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1838 extern int clock_nanosleep(clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem);
|
|
nengel@9
|
1839 extern int clock_getcpuclockid(pid_t __pid, clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1840 extern int timer_create(clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1841 extern int timer_delete(timer_t __timerid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1842 extern int timer_settime(timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1843 extern int timer_gettime(timer_t __timerid, struct itimerspec *__value) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1844 extern int timer_getoverrun(timer_t __timerid) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
1845 typedef unsigned long int pthread_t;
|
|
nengel@9
|
1846 typedef union
|
|
nengel@9
|
1847 {
|
|
nengel@9
|
1848 char __size[56];
|
|
nengel@9
|
1849 long int __align;
|
|
nengel@9
|
1850 } pthread_attr_t;
|
|
nengel@9
|
1851 typedef struct __pthread_internal_list
|
|
nengel@9
|
1852 {
|
|
nengel@9
|
1853 struct __pthread_internal_list *__prev;
|
|
nengel@9
|
1854 struct __pthread_internal_list *__next;
|
|
nengel@9
|
1855 } __pthread_list_t;
|
|
nengel@9
|
1856 typedef union
|
|
nengel@9
|
1857 {
|
|
nengel@9
|
1858 struct __pthread_mutex_s
|
|
nengel@9
|
1859 {
|
|
nengel@9
|
1860 int __lock;
|
|
nengel@9
|
1861 unsigned int __count;
|
|
nengel@9
|
1862 int __owner;
|
|
nengel@9
|
1863 unsigned int __nusers;
|
|
nengel@9
|
1864 int __kind;
|
|
nengel@9
|
1865 int __spins;
|
|
nengel@9
|
1866 __pthread_list_t __list;
|
|
nengel@9
|
1867 } __data;
|
|
nengel@9
|
1868 char __size[40];
|
|
nengel@9
|
1869 long int __align;
|
|
nengel@9
|
1870 } pthread_mutex_t;
|
|
nengel@9
|
1871 typedef union
|
|
nengel@9
|
1872 {
|
|
nengel@9
|
1873 char __size[4];
|
|
nengel@9
|
1874 int __align;
|
|
nengel@9
|
1875 } pthread_mutexattr_t;
|
|
nengel@9
|
1876 typedef union
|
|
nengel@9
|
1877 {
|
|
nengel@9
|
1878 struct
|
|
nengel@9
|
1879 {
|
|
nengel@9
|
1880 int __lock;
|
|
nengel@9
|
1881 unsigned int __futex;
|
|
nengel@9
|
1882 __extension__
|
|
nengel@9
|
1883 unsigned long long int __total_seq;
|
|
nengel@9
|
1884 __extension__
|
|
nengel@9
|
1885 unsigned long long int __wakeup_seq;
|
|
nengel@9
|
1886 __extension__
|
|
nengel@9
|
1887 unsigned long long int __woken_seq;
|
|
nengel@9
|
1888 void *__mutex;
|
|
nengel@9
|
1889 unsigned int __nwaiters;
|
|
nengel@9
|
1890 unsigned int __broadcast_seq;
|
|
nengel@9
|
1891 } __data;
|
|
nengel@9
|
1892 char __size[48];
|
|
nengel@9
|
1893 __extension__
|
|
nengel@9
|
1894 long long int __align;
|
|
nengel@9
|
1895 } pthread_cond_t;
|
|
nengel@9
|
1896 typedef union
|
|
nengel@9
|
1897 {
|
|
nengel@9
|
1898 char __size[4];
|
|
nengel@9
|
1899 int __align;
|
|
nengel@9
|
1900 } pthread_condattr_t;
|
|
nengel@9
|
1901 typedef unsigned int pthread_key_t;
|
|
nengel@9
|
1902 typedef int pthread_once_t;
|
|
nengel@9
|
1903 typedef union
|
|
nengel@9
|
1904 {
|
|
nengel@9
|
1905 struct
|
|
nengel@9
|
1906 {
|
|
nengel@9
|
1907 int __lock;
|
|
nengel@9
|
1908 unsigned int __nr_readers;
|
|
nengel@9
|
1909 unsigned int __readers_wakeup;
|
|
nengel@9
|
1910 unsigned int __writer_wakeup;
|
|
nengel@9
|
1911 unsigned int __nr_readers_queued;
|
|
nengel@9
|
1912 unsigned int __nr_writers_queued;
|
|
nengel@9
|
1913 int __writer;
|
|
nengel@9
|
1914 int __shared;
|
|
nengel@9
|
1915 unsigned long int __pad1;
|
|
nengel@9
|
1916 unsigned long int __pad2;
|
|
nengel@9
|
1917 unsigned int __flags;
|
|
nengel@9
|
1918 } __data;
|
|
nengel@9
|
1919 char __size[56];
|
|
nengel@9
|
1920 long int __align;
|
|
nengel@9
|
1921 } pthread_rwlock_t;
|
|
nengel@9
|
1922 typedef union
|
|
nengel@9
|
1923 {
|
|
nengel@9
|
1924 char __size[8];
|
|
nengel@9
|
1925 long int __align;
|
|
nengel@9
|
1926 } pthread_rwlockattr_t;
|
|
nengel@9
|
1927 typedef volatile int pthread_spinlock_t;
|
|
nengel@9
|
1928 typedef union
|
|
nengel@9
|
1929 {
|
|
nengel@9
|
1930 char __size[32];
|
|
nengel@9
|
1931 long int __align;
|
|
nengel@9
|
1932 } pthread_barrier_t;
|
|
nengel@9
|
1933 typedef union
|
|
nengel@9
|
1934 {
|
|
nengel@9
|
1935 char __size[4];
|
|
nengel@9
|
1936 int __align;
|
|
nengel@9
|
1937 } pthread_barrierattr_t;
|
|
nengel@9
|
1938 typedef long int __jmp_buf[8];
|
|
nengel@9
|
1939 enum
|
|
nengel@9
|
1940 {
|
|
nengel@9
|
1941 PTHREAD_CREATE_JOINABLE,
|
|
nengel@9
|
1942 PTHREAD_CREATE_DETACHED
|
|
nengel@9
|
1943 };
|
|
nengel@9
|
1944 enum
|
|
nengel@9
|
1945 {
|
|
nengel@9
|
1946 PTHREAD_MUTEX_TIMED_NP,
|
|
nengel@9
|
1947 PTHREAD_MUTEX_RECURSIVE_NP,
|
|
nengel@9
|
1948 PTHREAD_MUTEX_ERRORCHECK_NP,
|
|
nengel@9
|
1949 PTHREAD_MUTEX_ADAPTIVE_NP,
|
|
nengel@9
|
1950 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
|
|
nengel@9
|
1951 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
|
|
nengel@9
|
1952 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
|
|
nengel@9
|
1953 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
|
|
nengel@9
|
1954 };
|
|
nengel@9
|
1955 enum
|
|
nengel@9
|
1956 {
|
|
nengel@9
|
1957 PTHREAD_MUTEX_STALLED,
|
|
nengel@9
|
1958 PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
|
|
nengel@9
|
1959 PTHREAD_MUTEX_ROBUST,
|
|
nengel@9
|
1960 PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
|
|
nengel@9
|
1961 };
|
|
nengel@9
|
1962 enum
|
|
nengel@9
|
1963 {
|
|
nengel@9
|
1964 PTHREAD_RWLOCK_PREFER_READER_NP,
|
|
nengel@9
|
1965 PTHREAD_RWLOCK_PREFER_WRITER_NP,
|
|
nengel@9
|
1966 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
|
|
nengel@9
|
1967 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
|
|
nengel@9
|
1968 };
|
|
nengel@9
|
1969 enum
|
|
nengel@9
|
1970 {
|
|
nengel@9
|
1971 PTHREAD_INHERIT_SCHED,
|
|
nengel@9
|
1972 PTHREAD_EXPLICIT_SCHED
|
|
nengel@9
|
1973 };
|
|
nengel@9
|
1974 enum
|
|
nengel@9
|
1975 {
|
|
nengel@9
|
1976 PTHREAD_SCOPE_SYSTEM,
|
|
nengel@9
|
1977 PTHREAD_SCOPE_PROCESS
|
|
nengel@9
|
1978 };
|
|
nengel@9
|
1979 enum
|
|
nengel@9
|
1980 {
|
|
nengel@9
|
1981 PTHREAD_PROCESS_PRIVATE,
|
|
nengel@9
|
1982 PTHREAD_PROCESS_SHARED
|
|
nengel@9
|
1983 };
|
|
nengel@9
|
1984 struct _pthread_cleanup_buffer
|
|
nengel@9
|
1985 {
|
|
nengel@9
|
1986 void (*__routine)(void *);
|
|
nengel@9
|
1987 void *__arg;
|
|
nengel@9
|
1988 int __canceltype;
|
|
nengel@9
|
1989 struct _pthread_cleanup_buffer *__prev;
|
|
nengel@9
|
1990 };
|
|
nengel@9
|
1991 enum
|
|
nengel@9
|
1992 {
|
|
nengel@9
|
1993 PTHREAD_CANCEL_ENABLE,
|
|
nengel@9
|
1994 PTHREAD_CANCEL_DISABLE
|
|
nengel@9
|
1995 };
|
|
nengel@9
|
1996 enum
|
|
nengel@9
|
1997 {
|
|
nengel@9
|
1998 PTHREAD_CANCEL_DEFERRED,
|
|
nengel@9
|
1999 PTHREAD_CANCEL_ASYNCHRONOUS
|
|
nengel@9
|
2000 };
|
|
nengel@9
|
2001 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)));
|
|
nengel@9
|
2002 extern void pthread_exit(void *__retval) __attribute__((__noreturn__));
|
|
nengel@9
|
2003 extern int pthread_join(pthread_t __th, void **__thread_return);
|
|
nengel@9
|
2004 extern int pthread_detach(pthread_t __th) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2005 extern pthread_t pthread_self(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2006 extern int pthread_equal(pthread_t __thread1, pthread_t __thread2) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2007 extern int pthread_attr_init(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2008 extern int pthread_attr_destroy(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2009 extern int pthread_attr_getdetachstate(__const pthread_attr_t *__attr, int *__detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2010 extern int pthread_attr_setdetachstate(pthread_attr_t *__attr, int __detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2011 extern int pthread_attr_getguardsize(__const pthread_attr_t *__attr, size_t *__guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2012 extern int pthread_attr_setguardsize(pthread_attr_t *__attr, size_t __guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2013 extern int pthread_attr_getschedparam(__const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2014 extern int pthread_attr_setschedparam(pthread_attr_t *__restrict __attr, __const struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2015 extern int pthread_attr_getschedpolicy(__const pthread_attr_t *__restrict __attr, int *__restrict __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2016 extern int pthread_attr_setschedpolicy(pthread_attr_t *__attr, int __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2017 extern int pthread_attr_getinheritsched(__const pthread_attr_t *__restrict __attr, int *__restrict __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2018 extern int pthread_attr_setinheritsched(pthread_attr_t *__attr, int __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2019 extern int pthread_attr_getscope(__const pthread_attr_t *__restrict __attr, int *__restrict __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2020 extern int pthread_attr_setscope(pthread_attr_t *__attr, int __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2021 extern int pthread_attr_getstackaddr(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__deprecated__));
|
|
nengel@9
|
2022 extern int pthread_attr_setstackaddr(pthread_attr_t *__attr, void *__stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__));
|
|
nengel@9
|
2023 extern int pthread_attr_getstacksize(__const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2024 extern int pthread_attr_setstacksize(pthread_attr_t *__attr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2025 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)));
|
|
nengel@9
|
2026 extern int pthread_attr_setstack(pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2027 extern int pthread_setschedparam(pthread_t __target_thread, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3)));
|
|
nengel@9
|
2028 extern int pthread_getschedparam(pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3)));
|
|
nengel@9
|
2029 extern int pthread_setschedprio(pthread_t __target_thread, int __prio) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2030 extern int pthread_once(pthread_once_t *__once_control, void (*__init_routine)(void)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2031 extern int pthread_setcancelstate(int __state, int *__oldstate);
|
|
nengel@9
|
2032 extern int pthread_setcanceltype(int __type, int *__oldtype);
|
|
nengel@9
|
2033 extern int pthread_cancel(pthread_t __th);
|
|
nengel@9
|
2034 extern void pthread_testcancel(void);
|
|
nengel@9
|
2035 typedef struct
|
|
nengel@9
|
2036 {
|
|
nengel@9
|
2037 struct
|
|
nengel@9
|
2038 {
|
|
nengel@9
|
2039 __jmp_buf __cancel_jmp_buf;
|
|
nengel@9
|
2040 int __mask_was_saved;
|
|
nengel@9
|
2041 } __cancel_jmp_buf[1];
|
|
nengel@9
|
2042 void *__pad[4];
|
|
nengel@9
|
2043 } __pthread_unwind_buf_t __attribute__((__aligned__));
|
|
nengel@9
|
2044 struct __pthread_cleanup_frame
|
|
nengel@9
|
2045 {
|
|
nengel@9
|
2046 void (*__cancel_routine)(void *);
|
|
nengel@9
|
2047 void *__cancel_arg;
|
|
nengel@9
|
2048 int __do_it;
|
|
nengel@9
|
2049 int __cancel_type;
|
|
nengel@9
|
2050 };
|
|
nengel@9
|
2051 extern void __pthread_register_cancel(__pthread_unwind_buf_t *__buf);
|
|
nengel@9
|
2052 extern void __pthread_unregister_cancel(__pthread_unwind_buf_t *__buf);
|
|
nengel@9
|
2053 extern void __pthread_unwind_next(__pthread_unwind_buf_t *__buf) __attribute__((__noreturn__)) __attribute__((__weak__));
|
|
nengel@9
|
2054 struct __jmp_buf_tag;
|
|
nengel@9
|
2055 extern int __sigsetjmp(struct __jmp_buf_tag *__env, int __savemask) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2056 extern int pthread_mutex_init(pthread_mutex_t *__mutex, __const pthread_mutexattr_t *__mutexattr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2057 extern int pthread_mutex_destroy(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2058 extern int pthread_mutex_trylock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2059 extern int pthread_mutex_lock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2060 extern int pthread_mutex_timedlock(pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2061 extern int pthread_mutex_unlock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2062 extern int pthread_mutex_getprioceiling(__const pthread_mutex_t *__restrict __mutex, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2063 extern int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3)));
|
|
nengel@9
|
2064 extern int pthread_mutex_consistent(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2065 extern int pthread_mutexattr_init(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2066 extern int pthread_mutexattr_destroy(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2067 extern int pthread_mutexattr_getpshared(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2068 extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2069 extern int pthread_mutexattr_gettype(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2070 extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2071 extern int pthread_mutexattr_getprotocol(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2072 extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t *__attr, int __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2073 extern int pthread_mutexattr_getprioceiling(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2074 extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *__attr, int __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2075 extern int pthread_mutexattr_getrobust(__const pthread_mutexattr_t *__attr, int *__robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2076 extern int pthread_mutexattr_setrobust(pthread_mutexattr_t *__attr, int __robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2077 extern int pthread_rwlock_init(pthread_rwlock_t *__restrict __rwlock, __const pthread_rwlockattr_t *__restrict __attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2078 extern int pthread_rwlock_destroy(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2079 extern int pthread_rwlock_rdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2080 extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2081 extern int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2082 extern int pthread_rwlock_wrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2083 extern int pthread_rwlock_trywrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2084 extern int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2085 extern int pthread_rwlock_unlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2086 extern int pthread_rwlockattr_init(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2087 extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2088 extern int pthread_rwlockattr_getpshared(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2089 extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2090 extern int pthread_rwlockattr_getkind_np(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2091 extern int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *__attr, int __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2092 extern int pthread_cond_init(pthread_cond_t *__restrict __cond, __const pthread_condattr_t *__restrict __cond_attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2093 extern int pthread_cond_destroy(pthread_cond_t *__cond) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2094 extern int pthread_cond_signal(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2095 extern int pthread_cond_broadcast(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2096 extern int pthread_cond_wait(pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2097 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)));
|
|
nengel@9
|
2098 extern int pthread_condattr_init(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2099 extern int pthread_condattr_destroy(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2100 extern int pthread_condattr_getpshared(__const pthread_condattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2101 extern int pthread_condattr_setpshared(pthread_condattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2102 extern int pthread_condattr_getclock(__const pthread_condattr_t *__restrict __attr, __clockid_t *__restrict __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2103 extern int pthread_condattr_setclock(pthread_condattr_t *__attr, __clockid_t __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2104 extern int pthread_spin_init(pthread_spinlock_t *__lock, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2105 extern int pthread_spin_destroy(pthread_spinlock_t *__lock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2106 extern int pthread_spin_lock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2107 extern int pthread_spin_trylock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2108 extern int pthread_spin_unlock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2109 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)));
|
|
nengel@9
|
2110 extern int pthread_barrier_destroy(pthread_barrier_t *__barrier) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2111 extern int pthread_barrier_wait(pthread_barrier_t *__barrier) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2112 extern int pthread_barrierattr_init(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2113 extern int pthread_barrierattr_destroy(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2114 extern int pthread_barrierattr_getpshared(__const pthread_barrierattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
2115 extern int pthread_barrierattr_setpshared(pthread_barrierattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2116 extern int pthread_key_create(pthread_key_t *__key, void (*__destr_function)(void *)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
2117 extern int pthread_key_delete(pthread_key_t __key) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2118 extern void *pthread_getspecific(pthread_key_t __key) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2119 extern int pthread_setspecific(pthread_key_t __key, __const void *__pointer) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2120 extern int pthread_getcpuclockid(pthread_t __thread_id, __clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
2121 extern int pthread_atfork(void (*__prepare)(void), void (*__parent)(void), void (*__child)(void)) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2122 extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) pthread_equal(pthread_t __thread1, pthread_t __thread2)
|
|
nengel@9
|
2123 {
|
|
nengel@9
|
2124 return __thread1 == __thread2;
|
|
nengel@9
|
2125 }
|
|
nengel@9
|
2126 extern int *__errno_location(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2127 void *av_malloc(unsigned int size) __attribute__((__malloc__));
|
|
nengel@9
|
2128 void *av_realloc(void *ptr, unsigned int size);
|
|
nengel@9
|
2129 void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size);
|
|
nengel@9
|
2130 void av_fast_malloc(void *ptr, unsigned int *size, unsigned int min_size);
|
|
nengel@9
|
2131 void av_free(void *ptr);
|
|
nengel@9
|
2132 void *av_mallocz(unsigned int size) __attribute__((__malloc__));
|
|
nengel@9
|
2133 char *av_strdup(const char *s) __attribute__((__malloc__));
|
|
nengel@9
|
2134 void av_freep(void *ptr);
|
|
nengel@9
|
2135 static __attribute__((always_inline)) inline uint32_t pack16to32(int a, int b)
|
|
nengel@9
|
2136 {
|
|
nengel@9
|
2137 return (a & 0xFFFF) + (b << 16);
|
|
nengel@9
|
2138 }
|
|
nengel@9
|
2139 static __attribute__((always_inline)) inline uint16_t pack8to16(int a, int b)
|
|
nengel@9
|
2140 {
|
|
nengel@9
|
2141 return (a & 0xFF) + (b << 8);
|
|
nengel@9
|
2142 }
|
|
nengel@9
|
2143 typedef short DCTELEM;
|
|
nengel@9
|
2144 enum AVColorPrimaries
|
|
nengel@9
|
2145 {
|
|
nengel@9
|
2146 AVCOL_PRI_BT709 = 1,
|
|
nengel@9
|
2147 AVCOL_PRI_UNSPECIFIED = 2,
|
|
nengel@9
|
2148 AVCOL_PRI_BT470M = 4,
|
|
nengel@9
|
2149 AVCOL_PRI_BT470BG = 5,
|
|
nengel@9
|
2150 AVCOL_PRI_SMPTE170M = 6,
|
|
nengel@9
|
2151 AVCOL_PRI_SMPTE240M = 7,
|
|
nengel@9
|
2152 AVCOL_PRI_FILM = 8,
|
|
nengel@9
|
2153 AVCOL_PRI_NB
|
|
nengel@9
|
2154 };
|
|
nengel@9
|
2155 enum AVColorTransferCharacteristic
|
|
nengel@9
|
2156 {
|
|
nengel@9
|
2157 AVCOL_TRC_BT709 = 1,
|
|
nengel@9
|
2158 AVCOL_TRC_UNSPECIFIED = 2,
|
|
nengel@9
|
2159 AVCOL_TRC_GAMMA22 = 4,
|
|
nengel@9
|
2160 AVCOL_TRC_GAMMA28 = 5,
|
|
nengel@9
|
2161 AVCOL_TRC_NB
|
|
nengel@9
|
2162 };
|
|
nengel@9
|
2163 enum AVColorSpace
|
|
nengel@9
|
2164 {
|
|
nengel@9
|
2165 AVCOL_SPC_RGB = 0,
|
|
nengel@9
|
2166 AVCOL_SPC_BT709 = 1,
|
|
nengel@9
|
2167 AVCOL_SPC_UNSPECIFIED = 2,
|
|
nengel@9
|
2168 AVCOL_SPC_FCC = 4,
|
|
nengel@9
|
2169 AVCOL_SPC_BT470BG = 5,
|
|
nengel@9
|
2170 AVCOL_SPC_SMPTE170M = 6,
|
|
nengel@9
|
2171 AVCOL_SPC_SMPTE240M = 7,
|
|
nengel@9
|
2172 AVCOL_SPC_NB
|
|
nengel@9
|
2173 };
|
|
nengel@9
|
2174 enum AVColorRange
|
|
nengel@9
|
2175 {
|
|
nengel@9
|
2176 AVCOL_RANGE_UNSPECIFIED = 0,
|
|
nengel@9
|
2177 AVCOL_RANGE_MPEG = 1,
|
|
nengel@9
|
2178 AVCOL_RANGE_JPEG = 2,
|
|
nengel@9
|
2179 AVCOL_RANGE_NB
|
|
nengel@9
|
2180 };
|
|
nengel@9
|
2181 typedef enum MMCOOpcode
|
|
nengel@9
|
2182 {
|
|
nengel@9
|
2183 MMCO_END = 0,
|
|
nengel@9
|
2184 MMCO_SHORT2UNUSED,
|
|
nengel@9
|
2185 MMCO_LONG2UNUSED,
|
|
nengel@9
|
2186 MMCO_SHORT2LONG,
|
|
nengel@9
|
2187 MMCO_SET_MAX_LONG,
|
|
nengel@9
|
2188 MMCO_RESET,
|
|
nengel@9
|
2189 MMCO_LONG
|
|
nengel@9
|
2190 } MMCOOpcode;
|
|
nengel@9
|
2191 enum
|
|
nengel@9
|
2192 {
|
|
nengel@9
|
2193 NAL_SLICE = 1,
|
|
nengel@9
|
2194 NAL_DPA,
|
|
nengel@9
|
2195 NAL_DPB,
|
|
nengel@9
|
2196 NAL_DPC,
|
|
nengel@9
|
2197 NAL_IDR_SLICE,
|
|
nengel@9
|
2198 NAL_SEI,
|
|
nengel@9
|
2199 NAL_SPS,
|
|
nengel@9
|
2200 NAL_PPS,
|
|
nengel@9
|
2201 NAL_AUD,
|
|
nengel@9
|
2202 NAL_END_SEQUENCE,
|
|
nengel@9
|
2203 NAL_END_STREAM,
|
|
nengel@9
|
2204 NAL_FILLER_DATA,
|
|
nengel@9
|
2205 NAL_SPS_EXT,
|
|
nengel@9
|
2206 NAL_AUXILIARY_SLICE = 19
|
|
nengel@9
|
2207 };
|
|
nengel@9
|
2208 typedef enum
|
|
nengel@9
|
2209 {
|
|
nengel@9
|
2210 SEI_BUFFERING_PERIOD = 0,
|
|
nengel@9
|
2211 SEI_TYPE_PIC_TIMING = 1,
|
|
nengel@9
|
2212 SEI_TYPE_USER_DATA_UNREGISTERED = 5,
|
|
nengel@9
|
2213 SEI_TYPE_RECOVERY_POINT = 6
|
|
nengel@9
|
2214 } SEI_Type;
|
|
nengel@9
|
2215 typedef enum
|
|
nengel@9
|
2216 {
|
|
nengel@9
|
2217 SEI_PIC_STRUCT_FRAME = 0,
|
|
nengel@9
|
2218 SEI_PIC_STRUCT_TOP_FIELD = 1,
|
|
nengel@9
|
2219 SEI_PIC_STRUCT_BOTTOM_FIELD = 2,
|
|
nengel@9
|
2220 SEI_PIC_STRUCT_TOP_BOTTOM = 3,
|
|
nengel@9
|
2221 SEI_PIC_STRUCT_BOTTOM_TOP = 4,
|
|
nengel@9
|
2222 SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5,
|
|
nengel@9
|
2223 SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6,
|
|
nengel@9
|
2224 SEI_PIC_STRUCT_FRAME_DOUBLING = 7,
|
|
nengel@9
|
2225 SEI_PIC_STRUCT_FRAME_TRIPLING = 8
|
|
nengel@9
|
2226 } SEI_PicStructType;
|
|
nengel@9
|
2227 typedef struct SPS
|
|
nengel@9
|
2228 {
|
|
nengel@9
|
2229 int profile_idc;
|
|
nengel@9
|
2230 int level_idc;
|
|
nengel@9
|
2231 int chroma_format_idc;
|
|
nengel@9
|
2232 int transform_bypass;
|
|
nengel@9
|
2233 int log2_max_frame_num;
|
|
nengel@9
|
2234 int poc_type;
|
|
nengel@9
|
2235 int log2_max_poc_lsb;
|
|
nengel@9
|
2236 int delta_pic_order_always_zero_flag;
|
|
nengel@9
|
2237 int offset_for_non_ref_pic;
|
|
nengel@9
|
2238 int offset_for_top_to_bottom_field;
|
|
nengel@9
|
2239 int poc_cycle_length;
|
|
nengel@9
|
2240 int ref_frame_count;
|
|
nengel@9
|
2241 int gaps_in_frame_num_allowed_flag;
|
|
nengel@9
|
2242 int mb_width;
|
|
nengel@9
|
2243 int mb_height;
|
|
nengel@9
|
2244 int frame_mbs_only_flag;
|
|
nengel@9
|
2245 int mb_aff;
|
|
nengel@9
|
2246 int direct_8x8_inference_flag;
|
|
nengel@9
|
2247 int crop;
|
|
nengel@9
|
2248 unsigned int crop_left;
|
|
nengel@9
|
2249 unsigned int crop_right;
|
|
nengel@9
|
2250 unsigned int crop_top;
|
|
nengel@9
|
2251 unsigned int crop_bottom;
|
|
nengel@9
|
2252 int vui_parameters_present_flag;
|
|
nengel@9
|
2253 int num, den;
|
|
nengel@9
|
2254 int video_signal_type_present_flag;
|
|
nengel@9
|
2255 int full_range;
|
|
nengel@9
|
2256 int colour_description_present_flag;
|
|
nengel@9
|
2257 enum AVColorPrimaries color_primaries;
|
|
nengel@9
|
2258 enum AVColorTransferCharacteristic color_trc;
|
|
nengel@9
|
2259 enum AVColorSpace colorspace;
|
|
nengel@9
|
2260 int timing_info_present_flag;
|
|
nengel@9
|
2261 uint32_t num_units_in_tick;
|
|
nengel@9
|
2262 uint32_t time_scale;
|
|
nengel@9
|
2263 int fixed_frame_rate_flag;
|
|
nengel@9
|
2264 short offset_for_ref_frame[256];
|
|
nengel@9
|
2265 int bitstream_restriction_flag;
|
|
nengel@9
|
2266 int num_reorder_frames;
|
|
nengel@9
|
2267 int scaling_matrix_present;
|
|
nengel@9
|
2268 uint8_t scaling_matrix4[6][16];
|
|
nengel@9
|
2269 uint8_t scaling_matrix8[2][64];
|
|
nengel@9
|
2270 int nal_hrd_parameters_present_flag;
|
|
nengel@9
|
2271 int vcl_hrd_parameters_present_flag;
|
|
nengel@9
|
2272 int pic_struct_present_flag;
|
|
nengel@9
|
2273 int time_offset_length;
|
|
nengel@9
|
2274 int cpb_cnt;
|
|
nengel@9
|
2275 int initial_cpb_removal_delay_length;
|
|
nengel@9
|
2276 int cpb_removal_delay_length;
|
|
nengel@9
|
2277 int dpb_output_delay_length;
|
|
nengel@9
|
2278 int bit_depth_luma;
|
|
nengel@9
|
2279 int bit_depth_chroma;
|
|
nengel@9
|
2280 int residual_color_transform_flag;
|
|
nengel@9
|
2281 } SPS;
|
|
nengel@9
|
2282 typedef struct PPS
|
|
nengel@9
|
2283 {
|
|
nengel@9
|
2284 unsigned int sps_id;
|
|
nengel@9
|
2285 int cabac;
|
|
nengel@9
|
2286 int pic_order_present;
|
|
nengel@9
|
2287 int slice_group_count;
|
|
nengel@9
|
2288 int mb_slice_group_map_type;
|
|
nengel@9
|
2289 unsigned int ref_count[2];
|
|
nengel@9
|
2290 int weighted_pred;
|
|
nengel@9
|
2291 int weighted_bipred_idc;
|
|
nengel@9
|
2292 int init_qp;
|
|
nengel@9
|
2293 int init_qs;
|
|
nengel@9
|
2294 int chroma_qp_index_offset[2];
|
|
nengel@9
|
2295 int deblocking_filter_parameters_present;
|
|
nengel@9
|
2296 int constrained_intra_pred;
|
|
nengel@9
|
2297 int redundant_pic_cnt_present;
|
|
nengel@9
|
2298 int transform_8x8_mode;
|
|
nengel@9
|
2299 uint8_t scaling_matrix4[6][16];
|
|
nengel@9
|
2300 uint8_t scaling_matrix8[2][64];
|
|
nengel@9
|
2301 uint8_t chroma_qp_table[2][64];
|
|
nengel@9
|
2302 int chroma_qp_diff;
|
|
nengel@9
|
2303 } PPS;
|
|
nengel@9
|
2304 typedef struct TopBorder
|
|
nengel@9
|
2305 {
|
|
nengel@9
|
2306 uint8_t unfiltered_y[16];
|
|
nengel@9
|
2307 uint8_t unfiltered_cb[8];
|
|
nengel@9
|
2308 uint8_t unfiltered_cr[8];
|
|
nengel@9
|
2309 uint8_t top_borders_y[16 * 4];
|
|
nengel@9
|
2310 uint8_t top_borders_cb[8 * 2];
|
|
nengel@9
|
2311 uint8_t top_borders_cr[8 * 2];
|
|
nengel@9
|
2312 } TopBorder;
|
|
nengel@9
|
2313 typedef struct LeftBorder
|
|
nengel@9
|
2314 {
|
|
nengel@9
|
2315 uint8_t unfiltered_y[17];
|
|
nengel@9
|
2316 uint8_t unfiltered_cb[9];
|
|
nengel@9
|
2317 uint8_t unfiltered_cr[9];
|
|
nengel@9
|
2318 } LeftBorder;
|
|
nengel@9
|
2319 typedef struct H264Mb
|
|
nengel@9
|
2320 {
|
|
nengel@9
|
2321 int16_t mb_x, mb_y;
|
|
nengel@9
|
2322 int32_t mb_type;
|
|
nengel@9
|
2323 uint16_t cbp;
|
|
nengel@9
|
2324 int8_t qscale_mb_xy;
|
|
nengel@9
|
2325 int8_t qscale_left_mb_xy;
|
|
nengel@9
|
2326 int8_t qscale_top_mb_xy;
|
|
nengel@9
|
2327 uint16_t __attribute__((aligned(8))) sub_mb_type[4];
|
|
nengel@9
|
2328 uint8_t __attribute__((aligned(8))) non_zero_count[24];
|
|
nengel@9
|
2329 int16_t __attribute__((aligned(16))) mb[16 * 24];
|
|
nengel@9
|
2330 union
|
|
nengel@9
|
2331 {
|
|
nengel@9
|
2332 struct
|
|
nengel@9
|
2333 {
|
|
nengel@9
|
2334 int8_t __attribute__((aligned(8))) ref_index[2][4];
|
|
nengel@9
|
2335 int16_t __attribute__((aligned(16))) mvd[2][16][2];
|
|
nengel@9
|
2336 };
|
|
nengel@9
|
2337 struct
|
|
nengel@9
|
2338 {
|
|
nengel@9
|
2339 int8_t __attribute__((aligned(8))) intra4x4_pred_mode[16];
|
|
nengel@9
|
2340 int8_t chroma_pred_mode;
|
|
nengel@9
|
2341 int8_t intra16x16_pred_mode;
|
|
nengel@9
|
2342 };
|
|
nengel@9
|
2343 };
|
|
nengel@9
|
2344 uint8_t __attribute__((aligned(8))) top_border[16 + 2 * 8];
|
|
nengel@9
|
2345 uint8_t __attribute__((aligned(8))) top_border_next[8];
|
|
nengel@9
|
2346 uint8_t __attribute__((aligned(8))) left_border[17 + 2 * 9];
|
|
nengel@9
|
2347 int8_t intra4x4_pred_mode_left[4];
|
|
nengel@9
|
2348 } H264Mb;
|
|
nengel@9
|
2349 typedef struct RawFrame
|
|
nengel@9
|
2350 {
|
|
nengel@9
|
2351 uint8_t *data;
|
|
nengel@9
|
2352 int size;
|
|
nengel@9
|
2353 unsigned int data_size;
|
|
nengel@9
|
2354 int64_t pos;
|
|
nengel@9
|
2355 int state;
|
|
nengel@9
|
2356 } RawFrame;
|
|
nengel@9
|
2357 typedef struct PictureInfo
|
|
nengel@9
|
2358 {
|
|
nengel@9
|
2359 int ref_poc[2][16];
|
|
nengel@9
|
2360 int ref_count[2];
|
|
nengel@9
|
2361 int poc;
|
|
nengel@9
|
2362 int frame_num;
|
|
nengel@9
|
2363 int pic_id;
|
|
nengel@9
|
2364 int long_ref;
|
|
nengel@9
|
2365 int cpn;
|
|
nengel@9
|
2366 int slice_type_nos;
|
|
nengel@9
|
2367 int reference;
|
|
nengel@9
|
2368 } PictureInfo;
|
|
nengel@9
|
2369 typedef struct DecodedPicture
|
|
nengel@9
|
2370 {
|
|
nengel@9
|
2371 int16_t (*motion_val[2])[2];
|
|
nengel@9
|
2372 int16_t (*motion_val_base[2])[2];
|
|
nengel@9
|
2373 int8_t *ref_index[2];
|
|
nengel@9
|
2374 uint32_t *mb_type;
|
|
nengel@9
|
2375 uint32_t *mb_type_base;
|
|
nengel@9
|
2376 int8_t *intra4x4_pred_mode;
|
|
nengel@9
|
2377 int8_t *non_zero_count;
|
|
nengel@9
|
2378 uint8_t *data[3];
|
|
nengel@9
|
2379 int linesize[3];
|
|
nengel@9
|
2380 uint8_t *base[3];
|
|
nengel@9
|
2381 int cpn;
|
|
nengel@9
|
2382 int poc;
|
|
nengel@9
|
2383 int reference;
|
|
nengel@9
|
2384 int key_frame;
|
|
nengel@9
|
2385 int mmco_reset;
|
|
nengel@9
|
2386 } DecodedPicture;
|
|
nengel@9
|
2387 extern void __assert_fail(__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
|
|
nengel@9
|
2388 extern void __assert_perror_fail(int __errnum, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
|
|
nengel@9
|
2389 extern void __assert(const char *__assertion, const char *__file, int __line) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
|
|
nengel@9
|
2390 typedef int64_t x86_reg;
|
|
nengel@9
|
2391 typedef struct CABACContext
|
|
nengel@9
|
2392 {
|
|
nengel@9
|
2393 int low;
|
|
nengel@9
|
2394 int range;
|
|
nengel@9
|
2395 int outstanding_count;
|
|
nengel@9
|
2396 const uint8_t *bytestream_start;
|
|
nengel@9
|
2397 const uint8_t *bytestream;
|
|
nengel@9
|
2398 const uint8_t *bytestream_end;
|
|
nengel@9
|
2399 uint8_t cabac_state[460];
|
|
nengel@9
|
2400 } CABACContext;
|
|
nengel@9
|
2401 extern uint8_t ff_h264_mlps_state[4 * 64];
|
|
nengel@9
|
2402 extern uint8_t ff_h264_lps_range[4 * 2 * 64];
|
|
nengel@9
|
2403 extern uint8_t ff_h264_mps_state[2 * 64];
|
|
nengel@9
|
2404 extern uint8_t ff_h264_lps_state[2 * 64];
|
|
nengel@9
|
2405 extern const uint8_t ff_h264_norm_shift[512];
|
|
nengel@9
|
2406 void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size);
|
|
nengel@9
|
2407 void ff_init_cabac_states(void);
|
|
nengel@9
|
2408 static void refill(CABACContext *c)
|
|
nengel@9
|
2409 {
|
|
nengel@9
|
2410 c->low += (c->bytestream[0] << 9) + (c->bytestream[1] << 1);
|
|
nengel@9
|
2411 c->low -= ((1 << 16) - 1);
|
|
nengel@9
|
2412 c->bytestream += 16 / 8;
|
|
nengel@9
|
2413 }
|
|
nengel@9
|
2414 static void refill2(CABACContext *c)
|
|
nengel@9
|
2415 {
|
|
nengel@9
|
2416 int i, x;
|
|
nengel@9
|
2417 x = c->low ^ (c->low - 1);
|
|
nengel@9
|
2418 i = 7 - ff_h264_norm_shift[x >> (16 - 1)];
|
|
nengel@9
|
2419 x = - ((1 << 16) - 1);
|
|
nengel@9
|
2420 x += (c->bytestream[0] << 9) + (c->bytestream[1] << 1);
|
|
nengel@9
|
2421 c->low += x << i;
|
|
nengel@9
|
2422 c->bytestream += 16 / 8;
|
|
nengel@9
|
2423 }
|
|
nengel@9
|
2424 static inline void renorm_cabac_decoder(CABACContext *c)
|
|
nengel@9
|
2425 {
|
|
nengel@9
|
2426 while (c->range < 0x100)
|
|
nengel@9
|
2427 {
|
|
nengel@9
|
2428 c->range += c->range;
|
|
nengel@9
|
2429 c->low += c->low;
|
|
nengel@9
|
2430 if (!(c->low & ((1 << 16) - 1)))
|
|
nengel@9
|
2431 refill(c);
|
|
nengel@9
|
2432 }
|
|
nengel@9
|
2433 }
|
|
nengel@9
|
2434 static inline void renorm_cabac_decoder_once(CABACContext *c)
|
|
nengel@9
|
2435 {
|
|
nengel@9
|
2436 int shift = (uint32_t) (c->range - 0x100) >> 31;
|
|
nengel@9
|
2437 c->range <<= shift;
|
|
nengel@9
|
2438 c->low <<= shift;
|
|
nengel@9
|
2439 if (!(c->low & ((1 << 16) - 1)))
|
|
nengel@9
|
2440 refill(c);
|
|
nengel@9
|
2441 }
|
|
nengel@9
|
2442 static __attribute__((always_inline)) inline int get_cabac_inline(CABACContext *c, uint8_t *const state)
|
|
nengel@9
|
2443 {
|
|
nengel@9
|
2444 int s = *state;
|
|
nengel@9
|
2445 int RangeLPS = ff_h264_lps_range[2 * (c->range & 0xC0) + s];
|
|
nengel@9
|
2446 int bit, lps_mask __attribute__((unused));
|
|
nengel@9
|
2447 c->range -= RangeLPS;
|
|
nengel@9
|
2448 lps_mask = ((c->range << (16 + 1)) - c->low) >> 31;
|
|
nengel@9
|
2449 c->low -= (c->range << (16 + 1)) & lps_mask;
|
|
nengel@9
|
2450 c->range += (RangeLPS - c->range) & lps_mask;
|
|
nengel@9
|
2451 s ^= lps_mask;
|
|
nengel@9
|
2452 *state = (ff_h264_mlps_state + 128)[s];
|
|
nengel@9
|
2453 bit = s & 1;
|
|
nengel@9
|
2454 lps_mask = ff_h264_norm_shift[c->range];
|
|
nengel@9
|
2455 c->range <<= lps_mask;
|
|
nengel@9
|
2456 c->low <<= lps_mask;
|
|
nengel@9
|
2457 if (!(c->low & ((1 << 16) - 1)))
|
|
nengel@9
|
2458 refill2(c);
|
|
nengel@9
|
2459 return bit;
|
|
nengel@9
|
2460 }
|
|
nengel@9
|
2461 static int __attribute__((noinline)) __attribute__((unused)) get_cabac_noinline(CABACContext *c, uint8_t *const state)
|
|
nengel@9
|
2462 {
|
|
nengel@9
|
2463 return get_cabac_inline(c, state);
|
|
nengel@9
|
2464 }
|
|
nengel@9
|
2465 static int __attribute__((unused)) get_cabac(CABACContext *c, uint8_t *const state)
|
|
nengel@9
|
2466 {
|
|
nengel@9
|
2467 return get_cabac_inline(c, state);
|
|
nengel@9
|
2468 }
|
|
nengel@9
|
2469 static int __attribute__((unused)) get_cabac_bypass(CABACContext *c)
|
|
nengel@9
|
2470 {
|
|
nengel@9
|
2471 int range;
|
|
nengel@9
|
2472 c->low += c->low;
|
|
nengel@9
|
2473 if (!(c->low & ((1 << 16) - 1)))
|
|
nengel@9
|
2474 refill(c);
|
|
nengel@9
|
2475 range = c->range << (16 + 1);
|
|
nengel@9
|
2476 if (c->low < range)
|
|
nengel@9
|
2477 {
|
|
nengel@9
|
2478 return 0;
|
|
nengel@9
|
2479 }
|
|
nengel@9
|
2480 else
|
|
nengel@9
|
2481 {
|
|
nengel@9
|
2482 c->low -= range;
|
|
nengel@9
|
2483 return 1;
|
|
nengel@9
|
2484 }
|
|
nengel@9
|
2485 }
|
|
nengel@9
|
2486 static __attribute__((always_inline)) inline int get_cabac_bypass_sign(CABACContext *c, int val)
|
|
nengel@9
|
2487 {
|
|
nengel@9
|
2488 int range, mask;
|
|
nengel@9
|
2489 c->low += c->low;
|
|
nengel@9
|
2490 if (!(c->low & ((1 << 16) - 1)))
|
|
nengel@9
|
2491 refill(c);
|
|
nengel@9
|
2492 range = c->range << (16 + 1);
|
|
nengel@9
|
2493 c->low -= range;
|
|
nengel@9
|
2494 mask = c->low >> 31;
|
|
nengel@9
|
2495 range &= mask;
|
|
nengel@9
|
2496 c->low += range;
|
|
nengel@9
|
2497 return (val ^ mask) - mask;
|
|
nengel@9
|
2498 }
|
|
nengel@9
|
2499 static int __attribute__((unused)) get_cabac_terminate(CABACContext *c)
|
|
nengel@9
|
2500 {
|
|
nengel@9
|
2501 c->range -= 2;
|
|
nengel@9
|
2502 if (c->low < c->range << (16 + 1))
|
|
nengel@9
|
2503 {
|
|
nengel@9
|
2504 renorm_cabac_decoder_once(c);
|
|
nengel@9
|
2505 return 0;
|
|
nengel@9
|
2506 }
|
|
nengel@9
|
2507 else
|
|
nengel@9
|
2508 {
|
|
nengel@9
|
2509 return c->bytestream - c->bytestream_start;
|
|
nengel@9
|
2510 }
|
|
nengel@9
|
2511 }
|
|
nengel@9
|
2512 static __attribute__((always_inline)) inline __attribute__((const)) uint16_t bswap_16(uint16_t x)
|
|
nengel@9
|
2513 {
|
|
nengel@9
|
2514 __asm__ ("rorw $8, %0": "+r" (x): );
|
|
nengel@9
|
2515 return x;
|
|
nengel@9
|
2516 }
|
|
nengel@9
|
2517 static __attribute__((always_inline)) inline __attribute__((const)) uint32_t bswap_32(uint32_t x)
|
|
nengel@9
|
2518 {
|
|
nengel@9
|
2519 __asm__ ("bswap %0": "+r" (x): );
|
|
nengel@9
|
2520 return x;
|
|
nengel@9
|
2521 }
|
|
nengel@9
|
2522 static inline uint64_t __attribute__((const)) bswap_64(uint64_t x)
|
|
nengel@9
|
2523 {
|
|
nengel@9
|
2524 __asm__ ("bswap %0": "=r" (x): "0" (x));
|
|
nengel@9
|
2525 return x;
|
|
nengel@9
|
2526 }
|
|
nengel@9
|
2527 enum
|
|
nengel@9
|
2528 {
|
|
nengel@9
|
2529 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
|
|
nengel@9
|
2530 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
|
|
nengel@9
|
2531 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
|
|
nengel@9
|
2532 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
|
|
nengel@9
|
2533 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
|
|
nengel@9
|
2534 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
|
|
nengel@9
|
2535 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
|
|
nengel@9
|
2536 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
|
|
nengel@9
|
2537 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
|
|
nengel@9
|
2538 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
|
|
nengel@9
|
2539 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
|
|
nengel@9
|
2540 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
|
|
nengel@9
|
2541 };
|
|
nengel@9
|
2542 extern __const unsigned short int **__ctype_b_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const));
|
|
nengel@9
|
2543 extern __const __int32_t **__ctype_tolower_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const));
|
|
nengel@9
|
2544 extern __const __int32_t **__ctype_toupper_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const));
|
|
nengel@9
|
2545 extern int isalnum(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2546 extern int isalpha(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2547 extern int iscntrl(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2548 extern int isdigit(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2549 extern int islower(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2550 extern int isgraph(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2551 extern int isprint(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2552 extern int ispunct(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2553 extern int isspace(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2554 extern int isupper(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2555 extern int isxdigit(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2556 extern int tolower(int __c) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2557 extern int toupper(int __c) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2558 extern int isblank(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2559 extern int isascii(int __c) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2560 extern int toascii(int __c) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2561 extern int _toupper(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2562 extern int _tolower(int) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2563 extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) tolower(int __c)
|
|
nengel@9
|
2564 {
|
|
nengel@9
|
2565 return __c >= - 128 && __c < 256 ? (*__ctype_tolower_loc())[__c] : __c;
|
|
nengel@9
|
2566 }
|
|
nengel@9
|
2567 extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) toupper(int __c)
|
|
nengel@9
|
2568 {
|
|
nengel@9
|
2569 return __c >= - 128 && __c < 256 ? (*__ctype_toupper_loc())[__c] : __c;
|
|
nengel@9
|
2570 }
|
|
nengel@9
|
2571 extern int isalnum_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2572 extern int isalpha_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2573 extern int iscntrl_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2574 extern int isdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2575 extern int islower_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2576 extern int isgraph_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2577 extern int isprint_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2578 extern int ispunct_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2579 extern int isspace_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2580 extern int isupper_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2581 extern int isxdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2582 extern int isblank_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2583 extern int __tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2584 extern int tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2585 extern int __toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2586 extern int toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2587 typedef int __gwchar_t;
|
|
nengel@9
|
2588 typedef struct
|
|
nengel@9
|
2589 {
|
|
nengel@9
|
2590 long int quot;
|
|
nengel@9
|
2591 long int rem;
|
|
nengel@9
|
2592 } imaxdiv_t;
|
|
nengel@9
|
2593 extern intmax_t imaxabs(intmax_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2594 extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2595 extern intmax_t strtoimax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2596 extern uintmax_t strtoumax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2597 extern intmax_t wcstoimax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2598 extern uintmax_t wcstoumax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2599 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__));
|
|
nengel@9
|
2600 extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) strtoimax(__const char *__restrict nptr, char **__restrict endptr, int base)
|
|
nengel@9
|
2601 {
|
|
nengel@9
|
2602 return __strtol_internal(nptr, endptr, base, 0);
|
|
nengel@9
|
2603 }
|
|
nengel@9
|
2604 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__));
|
|
nengel@9
|
2605 extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) strtoumax(__const char *__restrict nptr, char **__restrict endptr, int base)
|
|
nengel@9
|
2606 {
|
|
nengel@9
|
2607 return __strtoul_internal(nptr, endptr, base, 0);
|
|
nengel@9
|
2608 }
|
|
nengel@9
|
2609 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__));
|
|
nengel@9
|
2610 extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) wcstoimax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
|
|
nengel@9
|
2611 {
|
|
nengel@9
|
2612 return __wcstol_internal(nptr, endptr, base, 0);
|
|
nengel@9
|
2613 }
|
|
nengel@9
|
2614 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__));
|
|
nengel@9
|
2615 extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) wcstoumax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
|
|
nengel@9
|
2616 {
|
|
nengel@9
|
2617 return __wcstoul_internal(nptr, endptr, base, 0);
|
|
nengel@9
|
2618 }
|
|
nengel@9
|
2619 typedef float float_t;
|
|
nengel@9
|
2620 typedef double double_t;
|
|
nengel@9
|
2621 extern double acos(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2622 extern double __acos(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2623 extern double asin(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2624 extern double __asin(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2625 extern double atan(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2626 extern double __atan(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2627 extern double atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2628 extern double __atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2629 extern double cos(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2630 extern double __cos(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2631 extern double sin(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2632 extern double __sin(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2633 extern double tan(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2634 extern double __tan(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2635 extern double cosh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2636 extern double __cosh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2637 extern double sinh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2638 extern double __sinh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2639 extern double tanh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2640 extern double __tanh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2641 extern double acosh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2642 extern double __acosh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2643 extern double asinh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2644 extern double __asinh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2645 extern double atanh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2646 extern double __atanh(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2647 extern double exp(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2648 extern double __exp(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2649 extern double frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2650 extern double __frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2651 extern double ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2652 extern double __ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2653 extern double log(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2654 extern double __log(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2655 extern double log10(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2656 extern double __log10(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2657 extern double modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2658 extern double __modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
2659 extern double expm1(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2660 extern double __expm1(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2661 extern double log1p(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2662 extern double __log1p(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2663 extern double logb(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2664 extern double __logb(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2665 extern double exp2(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2666 extern double __exp2(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2667 extern double log2(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2668 extern double __log2(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2669 extern double pow(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2670 extern double __pow(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2671 extern double sqrt(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2672 extern double __sqrt(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2673 extern double hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2674 extern double __hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2675 extern double cbrt(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2676 extern double __cbrt(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2677 extern double ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2678 extern double __ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2679 extern double fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2680 extern double __fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2681 extern double floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2682 extern double __floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2683 extern double fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2684 extern double __fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2685 extern int __isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2686 extern int __finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2687 extern int isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2688 extern int finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2689 extern double drem(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2690 extern double __drem(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2691 extern double significand(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2692 extern double __significand(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2693 extern double copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2694 extern double __copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2695 extern double nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2696 extern double __nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2697 extern int __isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2698 extern int isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2699 extern double j0(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2700 extern double __j0(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2701 extern double j1(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2702 extern double __j1(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2703 extern double jn(int, double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2704 extern double __jn(int, double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2705 extern double y0(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2706 extern double __y0(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2707 extern double y1(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2708 extern double __y1(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2709 extern double yn(int, double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2710 extern double __yn(int, double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2711 extern double erf(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2712 extern double __erf(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2713 extern double erfc(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2714 extern double __erfc(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2715 extern double lgamma(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2716 extern double __lgamma(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2717 extern double tgamma(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2718 extern double __tgamma(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2719 extern double gamma(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2720 extern double __gamma(double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2721 extern double lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2722 extern double __lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2723 extern double rint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2724 extern double __rint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2725 extern double nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2726 extern double __nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2727 extern double nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2728 extern double __nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2729 extern double remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2730 extern double __remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2731 extern double scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2732 extern double __scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2733 extern int ilogb(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2734 extern int __ilogb(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2735 extern double scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2736 extern double __scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2737 extern double nearbyint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2738 extern double __nearbyint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2739 extern double round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2740 extern double __round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2741 extern double trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2742 extern double __trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2743 extern double remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2744 extern double __remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2745 extern long int lrint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2746 extern long int __lrint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2747 extern long long int llrint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2748 extern long long int __llrint(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2749 extern long int lround(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2750 extern long int __lround(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2751 extern long long int llround(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2752 extern long long int __llround(double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2753 extern double fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2754 extern double __fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2755 extern double fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2756 extern double __fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2757 extern double fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2758 extern double __fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2759 extern int __fpclassify(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2760 extern int __signbit(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2761 extern double fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2762 extern double __fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2763 extern double scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2764 extern double __scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2765 extern float acosf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2766 extern float __acosf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2767 extern float asinf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2768 extern float __asinf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2769 extern float atanf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2770 extern float __atanf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2771 extern float atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2772 extern float __atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2773 extern float cosf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2774 extern float __cosf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2775 extern float sinf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2776 extern float __sinf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2777 extern float tanf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2778 extern float __tanf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2779 extern float coshf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2780 extern float __coshf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2781 extern float sinhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2782 extern float __sinhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2783 extern float tanhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2784 extern float __tanhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2785 extern float acoshf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2786 extern float __acoshf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2787 extern float asinhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2788 extern float __asinhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2789 extern float atanhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2790 extern float __atanhf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2791 extern float expf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2792 extern float __expf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2793 extern float frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2794 extern float __frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2795 extern float ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2796 extern float __ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2797 extern float logf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2798 extern float __logf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2799 extern float log10f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2800 extern float __log10f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2801 extern float modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2802 extern float __modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
2803 extern float expm1f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2804 extern float __expm1f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2805 extern float log1pf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2806 extern float __log1pf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2807 extern float logbf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2808 extern float __logbf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2809 extern float exp2f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2810 extern float __exp2f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2811 extern float log2f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2812 extern float __log2f(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2813 extern float powf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2814 extern float __powf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2815 extern float sqrtf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2816 extern float __sqrtf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2817 extern float hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2818 extern float __hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2819 extern float cbrtf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2820 extern float __cbrtf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2821 extern float ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2822 extern float __ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2823 extern float fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2824 extern float __fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2825 extern float floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2826 extern float __floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2827 extern float fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2828 extern float __fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2829 extern int __isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2830 extern int __finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2831 extern int isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2832 extern int finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2833 extern float dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2834 extern float __dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2835 extern float significandf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2836 extern float __significandf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2837 extern float copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2838 extern float __copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2839 extern float nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2840 extern float __nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2841 extern int __isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2842 extern int isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2843 extern float j0f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2844 extern float __j0f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2845 extern float j1f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2846 extern float __j1f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2847 extern float jnf(int, float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2848 extern float __jnf(int, float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2849 extern float y0f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2850 extern float __y0f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2851 extern float y1f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2852 extern float __y1f(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2853 extern float ynf(int, float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2854 extern float __ynf(int, float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2855 extern float erff(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2856 extern float __erff(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2857 extern float erfcf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2858 extern float __erfcf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2859 extern float lgammaf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2860 extern float __lgammaf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2861 extern float tgammaf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2862 extern float __tgammaf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2863 extern float gammaf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2864 extern float __gammaf(float) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2865 extern float lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2866 extern float __lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2867 extern float rintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2868 extern float __rintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2869 extern float nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2870 extern float __nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2871 extern float nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2872 extern float __nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2873 extern float remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2874 extern float __remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2875 extern float scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2876 extern float __scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2877 extern int ilogbf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2878 extern int __ilogbf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2879 extern float scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2880 extern float __scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2881 extern float nearbyintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2882 extern float __nearbyintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2883 extern float roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2884 extern float __roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2885 extern float truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2886 extern float __truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2887 extern float remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2888 extern float __remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2889 extern long int lrintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2890 extern long int __lrintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2891 extern long long int llrintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2892 extern long long int __llrintf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2893 extern long int lroundf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2894 extern long int __lroundf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2895 extern long long int llroundf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2896 extern long long int __llroundf(float __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2897 extern float fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2898 extern float __fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2899 extern float fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2900 extern float __fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2901 extern float fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2902 extern float __fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2903 extern int __fpclassifyf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2904 extern int __signbitf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2905 extern float fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2906 extern float __fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2907 extern float scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2908 extern float __scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2909 extern long double acosl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2910 extern long double __acosl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2911 extern long double asinl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2912 extern long double __asinl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2913 extern long double atanl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2914 extern long double __atanl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2915 extern long double atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2916 extern long double __atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2917 extern long double cosl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2918 extern long double __cosl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2919 extern long double sinl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2920 extern long double __sinl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2921 extern long double tanl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2922 extern long double __tanl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2923 extern long double coshl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2924 extern long double __coshl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2925 extern long double sinhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2926 extern long double __sinhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2927 extern long double tanhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2928 extern long double __tanhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2929 extern long double acoshl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2930 extern long double __acoshl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2931 extern long double asinhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2932 extern long double __asinhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2933 extern long double atanhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2934 extern long double __atanhl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2935 extern long double expl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2936 extern long double __expl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2937 extern long double frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2938 extern long double __frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2939 extern long double ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2940 extern long double __ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2941 extern long double logl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2942 extern long double __logl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2943 extern long double log10l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2944 extern long double __log10l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2945 extern long double modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2946 extern long double __modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
2947 extern long double expm1l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2948 extern long double __expm1l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2949 extern long double log1pl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2950 extern long double __log1pl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2951 extern long double logbl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2952 extern long double __logbl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2953 extern long double exp2l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2954 extern long double __exp2l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2955 extern long double log2l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2956 extern long double __log2l(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2957 extern long double powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2958 extern long double __powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2959 extern long double sqrtl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2960 extern long double __sqrtl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2961 extern long double hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2962 extern long double __hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2963 extern long double cbrtl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2964 extern long double __cbrtl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2965 extern long double ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2966 extern long double __ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2967 extern long double fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2968 extern long double __fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2969 extern long double floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2970 extern long double __floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2971 extern long double fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2972 extern long double __fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2973 extern int __isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2974 extern int __finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2975 extern int isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2976 extern int finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2977 extern long double dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2978 extern long double __dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2979 extern long double significandl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2980 extern long double __significandl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2981 extern long double copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2982 extern long double __copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2983 extern long double nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2984 extern long double __nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2985 extern int __isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2986 extern int isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
2987 extern long double j0l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2988 extern long double __j0l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2989 extern long double j1l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2990 extern long double __j1l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2991 extern long double jnl(int, long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2992 extern long double __jnl(int, long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2993 extern long double y0l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2994 extern long double __y0l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2995 extern long double y1l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2996 extern long double __y1l(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2997 extern long double ynl(int, long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2998 extern long double __ynl(int, long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
2999 extern long double erfl(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3000 extern long double __erfl(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3001 extern long double erfcl(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3002 extern long double __erfcl(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3003 extern long double lgammal(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3004 extern long double __lgammal(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3005 extern long double tgammal(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3006 extern long double __tgammal(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3007 extern long double gammal(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3008 extern long double __gammal(long double) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3009 extern long double lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3010 extern long double __lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3011 extern long double rintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3012 extern long double __rintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3013 extern long double nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3014 extern long double __nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3015 extern long double nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3016 extern long double __nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3017 extern long double remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3018 extern long double __remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3019 extern long double scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3020 extern long double __scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3021 extern int ilogbl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3022 extern int __ilogbl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3023 extern long double scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3024 extern long double __scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3025 extern long double nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3026 extern long double __nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3027 extern long double roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3028 extern long double __roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3029 extern long double truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3030 extern long double __truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3031 extern long double remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3032 extern long double __remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3033 extern long int lrintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3034 extern long int __lrintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3035 extern long long int llrintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3036 extern long long int __llrintl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3037 extern long int lroundl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3038 extern long int __lroundl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3039 extern long long int llroundl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3040 extern long long int __llroundl(long double __x) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3041 extern long double fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3042 extern long double __fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3043 extern long double fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3044 extern long double __fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3045 extern long double fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3046 extern long double __fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3047 extern int __fpclassifyl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3048 extern int __signbitl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3049 extern long double fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3050 extern long double __fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3051 extern long double scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3052 extern long double __scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3053 extern int signgam;
|
|
nengel@9
|
3054 enum
|
|
nengel@9
|
3055 {
|
|
nengel@9
|
3056 FP_NAN,
|
|
nengel@9
|
3057 FP_INFINITE,
|
|
nengel@9
|
3058 FP_ZERO,
|
|
nengel@9
|
3059 FP_SUBNORMAL,
|
|
nengel@9
|
3060 FP_NORMAL
|
|
nengel@9
|
3061 };
|
|
nengel@9
|
3062 typedef enum
|
|
nengel@9
|
3063 {
|
|
nengel@9
|
3064 _IEEE_ = - 1,
|
|
nengel@9
|
3065 _SVID_,
|
|
nengel@9
|
3066 _XOPEN_,
|
|
nengel@9
|
3067 _POSIX_,
|
|
nengel@9
|
3068 _ISOC_
|
|
nengel@9
|
3069 } _LIB_VERSION_TYPE;
|
|
nengel@9
|
3070 extern _LIB_VERSION_TYPE _LIB_VERSION;
|
|
nengel@9
|
3071 struct exception
|
|
nengel@9
|
3072 {
|
|
nengel@9
|
3073 int type;
|
|
nengel@9
|
3074 char *name;
|
|
nengel@9
|
3075 double arg1;
|
|
nengel@9
|
3076 double arg2;
|
|
nengel@9
|
3077 double retval;
|
|
nengel@9
|
3078 };
|
|
nengel@9
|
3079 extern int matherr(struct exception *__exc);
|
|
nengel@9
|
3080 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitf(float __x)
|
|
nengel@9
|
3081 {
|
|
nengel@9
|
3082 int __m;
|
|
nengel@9
|
3083 __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x));
|
|
nengel@9
|
3084 return __m & 0x8;
|
|
nengel@9
|
3085 }
|
|
nengel@9
|
3086 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbit(double __x)
|
|
nengel@9
|
3087 {
|
|
nengel@9
|
3088 int __m;
|
|
nengel@9
|
3089 __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x));
|
|
nengel@9
|
3090 return __m & 0x80;
|
|
nengel@9
|
3091 }
|
|
nengel@9
|
3092 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitl(long double __x)
|
|
nengel@9
|
3093 {
|
|
nengel@9
|
3094 __extension__
|
|
nengel@9
|
3095 union
|
|
nengel@9
|
3096 {
|
|
nengel@9
|
3097 long double __l;
|
|
nengel@9
|
3098 int __i[3];
|
|
nengel@9
|
3099 } __u = {__l:__x};
|
|
nengel@9
|
3100 return (__u.__i[2] & 0x8000) != 0;
|
|
nengel@9
|
3101 }
|
|
nengel@9
|
3102 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrintf(float __x)
|
|
nengel@9
|
3103 {
|
|
nengel@9
|
3104 long int __res;
|
|
nengel@9
|
3105 __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x));
|
|
nengel@9
|
3106 return __res;
|
|
nengel@9
|
3107 }
|
|
nengel@9
|
3108 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrint(double __x)
|
|
nengel@9
|
3109 {
|
|
nengel@9
|
3110 long int __res;
|
|
nengel@9
|
3111 __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x));
|
|
nengel@9
|
3112 return __res;
|
|
nengel@9
|
3113 }
|
|
nengel@9
|
3114 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrintf(float __x)
|
|
nengel@9
|
3115 {
|
|
nengel@9
|
3116 long long int __res;
|
|
nengel@9
|
3117 __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x));
|
|
nengel@9
|
3118 return __res;
|
|
nengel@9
|
3119 }
|
|
nengel@9
|
3120 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrint(double __x)
|
|
nengel@9
|
3121 {
|
|
nengel@9
|
3122 long long int __res;
|
|
nengel@9
|
3123 __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x));
|
|
nengel@9
|
3124 return __res;
|
|
nengel@9
|
3125 }
|
|
nengel@9
|
3126 union wait
|
|
nengel@9
|
3127 {
|
|
nengel@9
|
3128 int w_status;
|
|
nengel@9
|
3129 struct
|
|
nengel@9
|
3130 {
|
|
nengel@9
|
3131 unsigned int __w_termsig : 7;
|
|
nengel@9
|
3132 unsigned int __w_coredump : 1;
|
|
nengel@9
|
3133 unsigned int __w_retcode : 8;
|
|
nengel@9
|
3134 unsigned int : 16;
|
|
nengel@9
|
3135 } __wait_terminated;
|
|
nengel@9
|
3136 struct
|
|
nengel@9
|
3137 {
|
|
nengel@9
|
3138 unsigned int __w_stopval : 8;
|
|
nengel@9
|
3139 unsigned int __w_stopsig : 8;
|
|
nengel@9
|
3140 unsigned int : 16;
|
|
nengel@9
|
3141 } __wait_stopped;
|
|
nengel@9
|
3142 };
|
|
nengel@9
|
3143 typedef union
|
|
nengel@9
|
3144 {
|
|
nengel@9
|
3145 union wait *__uptr;
|
|
nengel@9
|
3146 int *__iptr;
|
|
nengel@9
|
3147 } __WAIT_STATUS __attribute__((__transparent_union__));
|
|
nengel@9
|
3148 typedef struct
|
|
nengel@9
|
3149 {
|
|
nengel@9
|
3150 int quot;
|
|
nengel@9
|
3151 int rem;
|
|
nengel@9
|
3152 } div_t;
|
|
nengel@9
|
3153 typedef struct
|
|
nengel@9
|
3154 {
|
|
nengel@9
|
3155 long int quot;
|
|
nengel@9
|
3156 long int rem;
|
|
nengel@9
|
3157 } ldiv_t;
|
|
nengel@9
|
3158 __extension__
|
|
nengel@9
|
3159 typedef struct
|
|
nengel@9
|
3160 {
|
|
nengel@9
|
3161 long long int quot;
|
|
nengel@9
|
3162 long long int rem;
|
|
nengel@9
|
3163 } lldiv_t;
|
|
nengel@9
|
3164 extern size_t __ctype_get_mb_cur_max(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3165 extern double atof(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3166 extern int atoi(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3167 extern long int atol(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3168 __extension__
|
|
nengel@9
|
3169 extern long long int atoll(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3170 extern double strtod(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3171 extern float strtof(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3172 extern long double strtold(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3173 extern long int strtol(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3174 extern unsigned long int strtoul(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3175 __extension__
|
|
nengel@9
|
3176 extern long long int strtoq(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3177 __extension__
|
|
nengel@9
|
3178 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__));
|
|
nengel@9
|
3179 __extension__
|
|
nengel@9
|
3180 extern long long int strtoll(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3181 __extension__
|
|
nengel@9
|
3182 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__));
|
|
nengel@9
|
3183 extern __inline __attribute__((__gnu_inline__)) double __attribute__((__nothrow__, __leaf__)) atof(__const char *__nptr)
|
|
nengel@9
|
3184 {
|
|
nengel@9
|
3185 return strtod(__nptr, (char **) ((void *) 0));
|
|
nengel@9
|
3186 }
|
|
nengel@9
|
3187 extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) atoi(__const char *__nptr)
|
|
nengel@9
|
3188 {
|
|
nengel@9
|
3189 return (int) strtol(__nptr, (char **) ((void *) 0), 10);
|
|
nengel@9
|
3190 }
|
|
nengel@9
|
3191 extern __inline __attribute__((__gnu_inline__)) long int __attribute__((__nothrow__, __leaf__)) atol(__const char *__nptr)
|
|
nengel@9
|
3192 {
|
|
nengel@9
|
3193 return strtol(__nptr, (char **) ((void *) 0), 10);
|
|
nengel@9
|
3194 }
|
|
nengel@9
|
3195 __extension__
|
|
nengel@9
|
3196 extern __inline __attribute__((__gnu_inline__)) long long int __attribute__((__nothrow__, __leaf__)) atoll(__const char *__nptr)
|
|
nengel@9
|
3197 {
|
|
nengel@9
|
3198 return strtoll(__nptr, (char **) ((void *) 0), 10);
|
|
nengel@9
|
3199 }
|
|
nengel@9
|
3200 extern char *l64a(long int __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3201 extern long int a64l(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3202 typedef __u_char u_char;
|
|
nengel@9
|
3203 typedef __u_short u_short;
|
|
nengel@9
|
3204 typedef __u_int u_int;
|
|
nengel@9
|
3205 typedef __u_long u_long;
|
|
nengel@9
|
3206 typedef __quad_t quad_t;
|
|
nengel@9
|
3207 typedef __u_quad_t u_quad_t;
|
|
nengel@9
|
3208 typedef __fsid_t fsid_t;
|
|
nengel@9
|
3209 typedef __loff_t loff_t;
|
|
nengel@9
|
3210 typedef __ino_t ino_t;
|
|
nengel@9
|
3211 typedef __dev_t dev_t;
|
|
nengel@9
|
3212 typedef __mode_t mode_t;
|
|
nengel@9
|
3213 typedef __nlink_t nlink_t;
|
|
nengel@9
|
3214 typedef __id_t id_t;
|
|
nengel@9
|
3215 typedef __daddr_t daddr_t;
|
|
nengel@9
|
3216 typedef __caddr_t caddr_t;
|
|
nengel@9
|
3217 typedef __key_t key_t;
|
|
nengel@9
|
3218 typedef unsigned long int ulong;
|
|
nengel@9
|
3219 typedef unsigned short int ushort;
|
|
nengel@9
|
3220 typedef unsigned int uint;
|
|
nengel@9
|
3221 typedef unsigned int u_int8_t __attribute__((__mode__(__QI__)));
|
|
nengel@9
|
3222 typedef unsigned int u_int16_t __attribute__((__mode__(__HI__)));
|
|
nengel@9
|
3223 typedef unsigned int u_int32_t __attribute__((__mode__(__SI__)));
|
|
nengel@9
|
3224 typedef unsigned int u_int64_t __attribute__((__mode__(__DI__)));
|
|
nengel@9
|
3225 typedef int register_t __attribute__((__mode__(__word__)));
|
|
nengel@9
|
3226 typedef int __sig_atomic_t;
|
|
nengel@9
|
3227 typedef struct
|
|
nengel@9
|
3228 {
|
|
nengel@9
|
3229 unsigned long int __val[(1024 / (8 * sizeof(unsigned long int)))];
|
|
nengel@9
|
3230 } __sigset_t;
|
|
nengel@9
|
3231 typedef __sigset_t sigset_t;
|
|
nengel@9
|
3232 struct timeval
|
|
nengel@9
|
3233 {
|
|
nengel@9
|
3234 __time_t tv_sec;
|
|
nengel@9
|
3235 __suseconds_t tv_usec;
|
|
nengel@9
|
3236 };
|
|
nengel@9
|
3237 typedef __suseconds_t suseconds_t;
|
|
nengel@9
|
3238 typedef long int __fd_mask;
|
|
nengel@9
|
3239 typedef struct
|
|
nengel@9
|
3240 {
|
|
nengel@9
|
3241 __fd_mask __fds_bits[1024 / (8 * (int) sizeof(__fd_mask))];
|
|
nengel@9
|
3242 } fd_set;
|
|
nengel@9
|
3243 typedef __fd_mask fd_mask;
|
|
nengel@9
|
3244 extern int select(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout);
|
|
nengel@9
|
3245 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);
|
|
nengel@9
|
3246 extern unsigned long int __fdelt_chk(unsigned long int __d);
|
|
nengel@9
|
3247 extern unsigned long int __fdelt_warn(unsigned long int __d) __attribute__((__warning__("bit outside of fd_set selected")));
|
|
nengel@9
|
3248 __extension__
|
|
nengel@9
|
3249 extern unsigned int gnu_dev_major(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3250 __extension__
|
|
nengel@9
|
3251 extern unsigned int gnu_dev_minor(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3252 __extension__
|
|
nengel@9
|
3253 extern unsigned long long int gnu_dev_makedev(unsigned int __major, unsigned int __minor) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3254 __extension__
|
|
nengel@9
|
3255 extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_major(unsigned long long int __dev)
|
|
nengel@9
|
3256 {
|
|
nengel@9
|
3257 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
|
|
nengel@9
|
3258 }
|
|
nengel@9
|
3259 __extension__
|
|
nengel@9
|
3260 extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_minor(unsigned long long int __dev)
|
|
nengel@9
|
3261 {
|
|
nengel@9
|
3262 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
|
|
nengel@9
|
3263 }
|
|
nengel@9
|
3264 __extension__
|
|
nengel@9
|
3265 extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned long long int __attribute__((__nothrow__, __leaf__)) gnu_dev_makedev(unsigned int __major, unsigned int __minor)
|
|
nengel@9
|
3266 {
|
|
nengel@9
|
3267 return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32));
|
|
nengel@9
|
3268 }
|
|
nengel@9
|
3269 typedef __blksize_t blksize_t;
|
|
nengel@9
|
3270 typedef __blkcnt_t blkcnt_t;
|
|
nengel@9
|
3271 typedef __fsblkcnt_t fsblkcnt_t;
|
|
nengel@9
|
3272 typedef __fsfilcnt_t fsfilcnt_t;
|
|
nengel@9
|
3273 extern long int random(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3274 extern void srandom(unsigned int __seed) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3275 extern char *initstate(unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3276 extern char *setstate(char *__statebuf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3277 struct random_data
|
|
nengel@9
|
3278 {
|
|
nengel@9
|
3279 int32_t *fptr;
|
|
nengel@9
|
3280 int32_t *rptr;
|
|
nengel@9
|
3281 int32_t *state;
|
|
nengel@9
|
3282 int rand_type;
|
|
nengel@9
|
3283 int rand_deg;
|
|
nengel@9
|
3284 int rand_sep;
|
|
nengel@9
|
3285 int32_t *end_ptr;
|
|
nengel@9
|
3286 };
|
|
nengel@9
|
3287 extern int random_r(struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3288 extern int srandom_r(unsigned int __seed, struct random_data *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3289 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)));
|
|
nengel@9
|
3290 extern int setstate_r(char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3291 extern int rand(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3292 extern void srand(unsigned int __seed) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3293 extern int rand_r(unsigned int *__seed) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3294 extern double drand48(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3295 extern double erand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3296 extern long int lrand48(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3297 extern long int nrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3298 extern long int mrand48(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3299 extern long int jrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3300 extern void srand48(long int __seedval) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3301 extern unsigned short int *seed48(unsigned short int __seed16v[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3302 extern void lcong48(unsigned short int __param[7]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3303 struct drand48_data
|
|
nengel@9
|
3304 {
|
|
nengel@9
|
3305 unsigned short int __x[3];
|
|
nengel@9
|
3306 unsigned short int __old_x[3];
|
|
nengel@9
|
3307 unsigned short int __c;
|
|
nengel@9
|
3308 unsigned short int __init;
|
|
nengel@9
|
3309 unsigned long long int __a;
|
|
nengel@9
|
3310 };
|
|
nengel@9
|
3311 extern int drand48_r(struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3312 extern int erand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3313 extern int lrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3314 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)));
|
|
nengel@9
|
3315 extern int mrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3316 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)));
|
|
nengel@9
|
3317 extern int srand48_r(long int __seedval, struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3318 extern int seed48_r(unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3319 extern int lcong48_r(unsigned short int __param[7], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3320 extern void *malloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3321 extern void *calloc(size_t __nmemb, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3322 extern void *realloc(void *__ptr, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3323 extern void free(void *__ptr) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3324 extern void cfree(void *__ptr) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3325 extern void *alloca(size_t __size) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3326 extern void *valloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3327 extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3328 extern void abort(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
|
|
nengel@9
|
3329 extern int atexit(void (*__func)(void)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3330 extern int on_exit(void (*__func)(int __status, void *__arg), void *__arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3331 extern void exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
|
|
nengel@9
|
3332 extern void _Exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
|
|
nengel@9
|
3333 extern char *getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3334 extern char *__secure_getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3335 extern int putenv(char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3336 extern int setenv(__const char *__name, __const char *__value, int __replace) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3337 extern int unsetenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3338 extern int clearenv(void) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3339 extern char *mktemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3340 extern int mkstemp(char *__template) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3341 extern int mkstemps(char *__template, int __suffixlen) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3342 extern char *mkdtemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3343 extern int system(__const char *__command) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3344 extern char *realpath(__const char *__restrict __name, char *__restrict __resolved) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3345 typedef int (*__compar_fn_t)(__const void *, __const void *);
|
|
nengel@9
|
3346 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__));
|
|
nengel@9
|
3347 extern void qsort(void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__((__nonnull__(1, 4)));
|
|
nengel@9
|
3348 extern int abs(int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3349 extern long int labs(long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3350 __extension__
|
|
nengel@9
|
3351 extern long long int llabs(long long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3352 extern div_t div(int __numer, int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3353 extern ldiv_t ldiv(long int __numer, long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3354 __extension__
|
|
nengel@9
|
3355 extern lldiv_t lldiv(long long int __numer, long long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3356 extern char *ecvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3357 extern char *fcvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3358 extern char *gcvt(double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3359 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__));
|
|
nengel@9
|
3360 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__));
|
|
nengel@9
|
3361 extern char *qgcvt(long double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3362 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)));
|
|
nengel@9
|
3363 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)));
|
|
nengel@9
|
3364 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)));
|
|
nengel@9
|
3365 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)));
|
|
nengel@9
|
3366 extern int mblen(__const char *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3367 extern int mbtowc(wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3368 extern int wctomb(char *__s, wchar_t __wchar) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3369 extern size_t mbstowcs(wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3370 extern size_t wcstombs(char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3371 extern int rpmatch(__const char *__response) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3372 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__));
|
|
nengel@9
|
3373 extern int getloadavg(double __loadavg[], int __nelem) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3374 extern char *__realpath_chk(__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3375 extern char *__realpath_alias(__const char *__restrict __name, char *__restrict __resolved) __asm__ ("""realpath") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3376 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")));
|
|
nengel@9
|
3377 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)
|
|
nengel@9
|
3378 {
|
|
nengel@9
|
3379 if (__builtin_object_size(__resolved, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
3380 {
|
|
nengel@9
|
3381 if (__builtin_object_size(__resolved, 2 > 1) < 4096)
|
|
nengel@9
|
3382 return __realpath_chk_warn(__name, __resolved, __builtin_object_size(__resolved, 2 > 1));
|
|
nengel@9
|
3383 return __realpath_chk(__name, __resolved, __builtin_object_size(__resolved, 2 > 1));
|
|
nengel@9
|
3384 }
|
|
nengel@9
|
3385 return __realpath_alias(__name, __resolved);
|
|
nengel@9
|
3386 }
|
|
nengel@9
|
3387 extern int __ptsname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3388 extern int __ptsname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ptsname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3389 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")));
|
|
nengel@9
|
3390 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ptsname_r(int __fd, char *__buf, size_t __buflen)
|
|
nengel@9
|
3391 {
|
|
nengel@9
|
3392 if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
3393 {
|
|
nengel@9
|
3394 if (!__builtin_constant_p(__buflen))
|
|
nengel@9
|
3395 return __ptsname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
3396 if (__buflen > __builtin_object_size(__buf, 2 > 1))
|
|
nengel@9
|
3397 return __ptsname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
|
|
nengel@9
|
3398 }
|
|
nengel@9
|
3399 return __ptsname_r_alias(__fd, __buf, __buflen);
|
|
nengel@9
|
3400 }
|
|
nengel@9
|
3401 extern int __wctomb_chk(char *__s, wchar_t __wchar, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3402 extern int __wctomb_alias(char *__s, wchar_t __wchar) __asm__ ("""wctomb") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
|
|
nengel@9
|
3403 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) int __attribute__((__nothrow__, __leaf__)) wctomb(char *__s, wchar_t __wchar)
|
|
nengel@9
|
3404 {
|
|
nengel@9
|
3405 if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1 && 16 > __builtin_object_size(__s, 2 > 1))
|
|
nengel@9
|
3406 return __wctomb_chk(__s, __wchar, __builtin_object_size(__s, 2 > 1));
|
|
nengel@9
|
3407 return __wctomb_alias(__s, __wchar);
|
|
nengel@9
|
3408 }
|
|
nengel@9
|
3409 extern size_t __mbstowcs_chk(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3410 extern size_t __mbstowcs_alias(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("""mbstowcs") __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3411 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)")));
|
|
nengel@9
|
3412 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)
|
|
nengel@9
|
3413 {
|
|
nengel@9
|
3414 if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
3415 {
|
|
nengel@9
|
3416 if (!__builtin_constant_p(__len))
|
|
nengel@9
|
3417 return __mbstowcs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t));
|
|
nengel@9
|
3418 if (__len > __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t))
|
|
nengel@9
|
3419 return __mbstowcs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t));
|
|
nengel@9
|
3420 }
|
|
nengel@9
|
3421 return __mbstowcs_alias(__dst, __src, __len);
|
|
nengel@9
|
3422 }
|
|
nengel@9
|
3423 extern size_t __wcstombs_chk(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3424 extern size_t __wcstombs_alias(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("""wcstombs") __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3425 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")));
|
|
nengel@9
|
3426 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)
|
|
nengel@9
|
3427 {
|
|
nengel@9
|
3428 if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1)
|
|
nengel@9
|
3429 {
|
|
nengel@9
|
3430 if (!__builtin_constant_p(__len))
|
|
nengel@9
|
3431 return __wcstombs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1));
|
|
nengel@9
|
3432 if (__len > __builtin_object_size(__dst, 2 > 1))
|
|
nengel@9
|
3433 return __wcstombs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1));
|
|
nengel@9
|
3434 }
|
|
nengel@9
|
3435 return __wcstombs_alias(__dst, __src, __len);
|
|
nengel@9
|
3436 }
|
|
nengel@9
|
3437 extern void *memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3438 extern void *memmove(void *__dest, __const void *__src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3439 extern void *memccpy(void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3440 extern void *memset(void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3441 extern int memcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3442 extern void *memchr(__const void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3443 extern char *strcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3444 extern char *strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3445 extern char *strcat(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3446 extern char *strncat(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3447 extern int strcmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3448 extern int strncmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3449 extern int strcoll(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3450 extern size_t strxfrm(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3451 extern int strcoll_l(__const char *__s1, __const char *__s2, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2, 3)));
|
|
nengel@9
|
3452 extern size_t strxfrm_l(char *__dest, __const char *__src, size_t __n, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4)));
|
|
nengel@9
|
3453 extern char *strdup(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3454 extern char *strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3455 extern char *strchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3456 extern char *strrchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3457 extern size_t strcspn(__const char *__s, __const char *__reject) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3458 extern size_t strspn(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3459 extern char *strpbrk(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3460 extern char *strstr(__const char *__haystack, __const char *__needle) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3461 extern char *strtok(char *__restrict __s, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3462 extern char *__strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3)));
|
|
nengel@9
|
3463 extern char *strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3)));
|
|
nengel@9
|
3464 extern size_t strlen(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3465 extern size_t strnlen(__const char *__string, size_t __maxlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3466 extern char *strerror(int __errnum) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3467 extern int strerror_r(int __errnum, char *__buf, size_t __buflen) __asm__ ("""__xpg_strerror_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
|
|
nengel@9
|
3468 extern char *strerror_l(int __errnum, __locale_t __l) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3469 extern void __bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3470 extern void bcopy(__const void *__src, void *__dest, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3471 extern void bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3472 extern int bcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3473 extern char *index(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3474 extern char *rindex(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
|
|
nengel@9
|
3475 extern int ffs(int __i) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
|
|
nengel@9
|
3476 extern int strcasecmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3477 extern int strncasecmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3478 extern char *strsep(char **__restrict __stringp, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3479 extern char *strsignal(int __sig) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3480 extern char *__stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3481 extern char *stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3482 extern char *__stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3483 extern char *stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
|
|
nengel@9
|
3484 extern void *__rawmemchr(const void *__s, int __c);
|
|
nengel@9
|
3485 extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject);
|
|
nengel@9
|
3486 extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject)
|
|
nengel@9
|
3487 {
|
|
nengel@9
|
3488 register size_t __result = 0;
|
|
nengel@9
|
3489 while (__s[__result] != '\0' && __s[__result] != __reject)
|
|
nengel@9
|
3490 ++__result;
|
|
nengel@9
|
3491 return __result;
|
|
nengel@9
|
3492 }
|
|
nengel@9
|
3493 extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2);
|
|
nengel@9
|
3494 extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2)
|
|
nengel@9
|
3495 {
|
|
nengel@9
|
3496 register size_t __result = 0;
|
|
nengel@9
|
3497 while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2)
|
|
nengel@9
|
3498 ++__result;
|
|
nengel@9
|
3499 return __result;
|
|
nengel@9
|
3500 }
|
|
nengel@9
|
3501 extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3);
|
|
nengel@9
|
3502 extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3)
|
|
nengel@9
|
3503 {
|
|
nengel@9
|
3504 register size_t __result = 0;
|
|
nengel@9
|
3505 while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3)
|
|
nengel@9
|
3506 ++__result;
|
|
nengel@9
|
3507 return __result;
|
|
nengel@9
|
3508 }
|
|
nengel@9
|
3509 extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept);
|
|
nengel@9
|
3510 extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept)
|
|
nengel@9
|
3511 {
|
|
nengel@9
|
3512 register size_t __result = 0;
|
|
nengel@9
|
3513 while (__s[__result] == __accept)
|
|
nengel@9
|
3514 ++__result;
|
|
nengel@9
|
3515 return __result;
|
|
nengel@9
|
3516 }
|
|
nengel@9
|
3517 extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2);
|
|
nengel@9
|
3518 extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2)
|
|
nengel@9
|
3519 {
|
|
nengel@9
|
3520 register size_t __result = 0;
|
|
nengel@9
|
3521 while (__s[__result] == __accept1 || __s[__result] == __accept2)
|
|
nengel@9
|
3522 ++__result;
|
|
nengel@9
|
3523 return __result;
|
|
nengel@9
|
3524 }
|
|
nengel@9
|
3525 extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3);
|
|
nengel@9
|
3526 extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3)
|
|
nengel@9
|
3527 {
|
|
nengel@9
|
3528 register size_t __result = 0;
|
|
nengel@9
|
3529 while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3)
|
|
nengel@9
|
3530 ++__result;
|
|
nengel@9
|
3531 return __result;
|
|
nengel@9
|
3532 }
|
|
nengel@9
|
3533 extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2);
|
|
nengel@9
|
3534 extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2)
|
|
nengel@9
|
3535 {
|
|
nengel@9
|
3536 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
|
|
nengel@9
|
3537 ++__s;
|
|
nengel@9
|
3538 return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s;
|
|
nengel@9
|
3539 }
|
|
nengel@9
|
3540 extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3);
|
|
nengel@9
|
3541 extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3)
|
|
nengel@9
|
3542 {
|
|
nengel@9
|
3543 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3)
|
|
nengel@9
|
3544 ++__s;
|
|
nengel@9
|
3545 return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s;
|
|
nengel@9
|
3546 }
|
|
nengel@9
|
3547 extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp);
|
|
nengel@9
|
3548 extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp)
|
|
nengel@9
|
3549 {
|
|
nengel@9
|
3550 char *__result;
|
|
nengel@9
|
3551 if (__s == ((void *) 0))
|
|
nengel@9
|
3552 __s = *__nextp;
|
|
nengel@9
|
3553 while (*__s == __sep)
|
|
nengel@9
|
3554 ++__s;
|
|
nengel@9
|
3555 __result = ((void *) 0);
|
|
nengel@9
|
3556 if (*__s != '\0')
|
|
nengel@9
|
3557 {
|
|
nengel@9
|
3558 __result = __s++;
|
|
nengel@9
|
3559 while (*__s != '\0')
|
|
nengel@9
|
3560 if (*__s++ == __sep)
|
|
nengel@9
|
3561 {
|
|
nengel@9
|
3562 __s[- 1] = '\0';
|
|
nengel@9
|
3563 break;
|
|
nengel@9
|
3564 }
|
|
nengel@9
|
3565 }
|
|
nengel@9
|
3566 *__nextp = __s;
|
|
nengel@9
|
3567 return __result;
|
|
nengel@9
|
3568 }
|
|
nengel@9
|
3569 extern char *__strsep_g(char **__stringp, __const char *__delim);
|
|
nengel@9
|
3570 extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject);
|
|
nengel@9
|
3571 extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject)
|
|
nengel@9
|
3572 {
|
|
nengel@9
|
3573 register char *__retval = *__s;
|
|
nengel@9
|
3574 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))
|
|
nengel@9
|
3575 *(*__s)++ = '\0';
|
|
nengel@9
|
3576 return __retval;
|
|
nengel@9
|
3577 }
|
|
nengel@9
|
3578 extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2);
|
|
nengel@9
|
3579 extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2)
|
|
nengel@9
|
3580 {
|
|
nengel@9
|
3581 register char *__retval = *__s;
|
|
nengel@9
|
3582 if (__retval != ((void *) 0))
|
|
nengel@9
|
3583 {
|
|
nengel@9
|
3584 register char *__cp = __retval;
|
|
nengel@9
|
3585 while (1)
|
|
nengel@9
|
3586 {
|
|
nengel@9
|
3587 if (*__cp == '\0')
|
|
nengel@9
|
3588 {
|
|
nengel@9
|
3589 __cp = ((void *) 0);
|
|
nengel@9
|
3590 break;
|
|
nengel@9
|
3591 }
|
|
nengel@9
|
3592 if (*__cp == __reject1 || *__cp == __reject2)
|
|
nengel@9
|
3593 {
|
|
nengel@9
|
3594 *__cp++ = '\0';
|
|
nengel@9
|
3595 break;
|
|
nengel@9
|
3596 }
|
|
nengel@9
|
3597 ++__cp;
|
|
nengel@9
|
3598 }
|
|
nengel@9
|
3599 *__s = __cp;
|
|
nengel@9
|
3600 }
|
|
nengel@9
|
3601 return __retval;
|
|
nengel@9
|
3602 }
|
|
nengel@9
|
3603 extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3);
|
|
nengel@9
|
3604 extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3)
|
|
nengel@9
|
3605 {
|
|
nengel@9
|
3606 register char *__retval = *__s;
|
|
nengel@9
|
3607 if (__retval != ((void *) 0))
|
|
nengel@9
|
3608 {
|
|
nengel@9
|
3609 register char *__cp = __retval;
|
|
nengel@9
|
3610 while (1)
|
|
nengel@9
|
3611 {
|
|
nengel@9
|
3612 if (*__cp == '\0')
|
|
nengel@9
|
3613 {
|
|
nengel@9
|
3614 __cp = ((void *) 0);
|
|
nengel@9
|
3615 break;
|
|
nengel@9
|
3616 }
|
|
nengel@9
|
3617 if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
|
|
nengel@9
|
3618 {
|
|
nengel@9
|
3619 *__cp++ = '\0';
|
|
nengel@9
|
3620 break;
|
|
nengel@9
|
3621 }
|
|
nengel@9
|
3622 ++__cp;
|
|
nengel@9
|
3623 }
|
|
nengel@9
|
3624 *__s = __cp;
|
|
nengel@9
|
3625 }
|
|
nengel@9
|
3626 return __retval;
|
|
nengel@9
|
3627 }
|
|
nengel@9
|
3628 extern char *__strdup(__const char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__));
|
|
nengel@9
|
3629 extern char *__strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__));
|
|
nengel@9
|
3630 extern void __warn_memset_zero_len(void) __attribute__((__warning__("memset used with constant zero length parameter; this could be due to transposed parameters")));
|
|
nengel@9
|
3631 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __len)
|
|
nengel@9
|
3632 {
|
|
nengel@9
|
3633 return __builtin___memcpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 0));
|
|
nengel@9
|
3634 }
|
|
nengel@9
|
3635 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memmove(void *__dest, __const void *__src, size_t __len)
|
|
nengel@9
|
3636 {
|
|
nengel@9
|
3637 return __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0));
|
|
nengel@9
|
3638 }
|
|
nengel@9
|
3639 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memset(void *__dest, int __ch, size_t __len)
|
|
nengel@9
|
3640 {
|
|
nengel@9
|
3641 if (__builtin_constant_p(__len) && __len == 0 && (!__builtin_constant_p(__ch) || __ch != 0))
|
|
nengel@9
|
3642 {
|
|
nengel@9
|
3643 __warn_memset_zero_len();
|
|
nengel@9
|
3644 return __dest;
|
|
nengel@9
|
3645 }
|
|
nengel@9
|
3646 return __builtin___memset_chk(__dest, __ch, __len, __builtin_object_size(__dest, 0));
|
|
nengel@9
|
3647 }
|
|
nengel@9
|
3648 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bcopy(__const void *__src, void *__dest, size_t __len)
|
|
nengel@9
|
3649 {
|
|
nengel@9
|
3650 (void) __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0));
|
|
nengel@9
|
3651 }
|
|
nengel@9
|
3652 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bzero(void *__dest, size_t __len)
|
|
nengel@9
|
3653 {
|
|
nengel@9
|
3654 (void) __builtin___memset_chk(__dest, '\0', __len, __builtin_object_size(__dest, 0));
|
|
nengel@9
|
3655 }
|
|
nengel@9
|
3656 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcpy(char *__restrict __dest, __const char *__restrict __src)
|
|
nengel@9
|
3657 {
|
|
nengel@9
|
3658 return __builtin___strcpy_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1));
|
|
nengel@9
|
3659 }
|
|
nengel@9
|
3660 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __len)
|
|
nengel@9
|
3661 {
|
|
nengel@9
|
3662 return __builtin___strncpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1));
|
|
nengel@9
|
3663 }
|
|
nengel@9
|
3664 extern char *__stpncpy_chk(char *__dest, __const char *__src, size_t __n, size_t __destlen) __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3665 extern char *__stpncpy_alias(char *__dest, __const char *__src, size_t __n) __asm__ ("""stpncpy") __attribute__((__nothrow__, __leaf__));
|
|
nengel@9
|
3666 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) stpncpy(char *__dest, __const char *__src, size_t __n)
|
|
nengel@9
|
3667 {
|
|
nengel@9
|
3668 if (__builtin_object_size(__dest, 2 > 1) != (size_t) - 1 && (!__builtin_constant_p(__n) || __n <= __builtin_object_size(__dest, 2 > 1)))
|
|
nengel@9
|
3669 return __stpncpy_chk(__dest, __src, __n, __builtin_object_size(__dest, 2 > 1));
|
|
nengel@9
|
3670 return __stpncpy_alias(__dest, __src, __n);
|
|
nengel@9
|
3671 }
|
|
nengel@9
|
3672 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcat(char *__restrict __dest, __const char *__restrict __src)
|
|
nengel@9
|
3673 {
|
|
nengel@9
|
3674 return __builtin___strcat_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1));
|
|
nengel@9
|
3675 }
|
|
nengel@9
|
3676 extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncat(char *__restrict __dest, __const char *__restrict __src, size_t __len)
|
|
nengel@9
|
3677 {
|
|
nengel@9
|
3678 return __builtin___strncat_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1));
|
|
nengel@9
|
3679 }
|
|
nengel@9
|
3680 extern const uint8_t ff_log2_tab[256];
|
|
nengel@9
|
3681 static inline __attribute__((const)) int av_log2_c(unsigned int v)
|
|
nengel@9
|
3682 {
|
|
nengel@9
|
3683 int n = 0;
|
|
nengel@9
|
3684 if (v & 0xffff0000)
|
|
nengel@9
|
3685 {
|
|
nengel@9
|
3686 v >>= 16;
|
|
nengel@9
|
3687 n += 16;
|
|
nengel@9
|
3688 }
|
|
nengel@9
|
3689 if (v & 0xff00)
|
|
nengel@9
|
3690 {
|
|
nengel@9
|
3691 v >>= 8;
|
|
nengel@9
|
3692 n += 8;
|
|
nengel@9
|
3693 }
|
|
nengel@9
|
3694 n += ff_log2_tab[v];
|
|
nengel@9
|
3695 return n;
|
|
nengel@9
|
3696 }
|
|
nengel@9
|
3697 static inline __attribute__((const)) int av_log2_16bit_c(unsigned int v)
|
|
nengel@9
|
3698 {
|
|
nengel@9
|
3699 int n = 0;
|
|
nengel@9
|
3700 if (v & 0xff00)
|
|
nengel@9
|
3701 {
|
|
nengel@9
|
3702 v >>= 8;
|
|
nengel@9
|
3703 n += 8;
|
|
nengel@9
|
3704 }
|
|
nengel@9
|
3705 n += ff_log2_tab[v];
|
|
nengel@9
|
3706 return n;
|
|
nengel@9
|
3707 }
|
|
nengel@9
|
3708 static inline __attribute__((const)) int av_clip(int a, int amin, int amax)
|
|
nengel@9
|
3709 {
|
|
nengel@9
|
3710 if (a < amin)
|
|
nengel@9
|
3711 return amin;
|
|
nengel@9
|
3712 else
|
|
nengel@9
|
3713 if (a > amax)
|
|
nengel@9
|
3714 return amax;
|
|
nengel@9
|
3715 else
|
|
nengel@9
|
3716 return a;
|
|
nengel@9
|
3717 }
|
|
nengel@9
|
3718 static inline __attribute__((const)) uint8_t av_clip_uint8(int a)
|
|
nengel@9
|
3719 {
|
|
nengel@9
|
3720 if (a & (~0xFF))
|
|
nengel@9
|
3721 return (- a) >> 31;
|
|
nengel@9
|
3722 else
|
|
nengel@9
|
3723 return a;
|
|
nengel@9
|
3724 }
|
|
nengel@9
|
3725 static inline __attribute__((const)) uint16_t av_clip_uint16(int a)
|
|
nengel@9
|
3726 {
|
|
nengel@9
|
3727 if (a & (~0xFFFF))
|
|
nengel@9
|
3728 return (- a) >> 31;
|
|
nengel@9
|
3729 else
|
|
nengel@9
|
3730 return a;
|
|
nengel@9
|
3731 }
|
|
nengel@9
|
3732 static inline __attribute__((const)) int16_t av_clip_int16(int a)
|
|
nengel@9
|
3733 {
|
|
nengel@9
|
3734 if ((a + 0x8000) & ~0xFFFF)
|
|
nengel@9
|
3735 return (a >> 31) ^ 0x7FFF;
|
|
nengel@9
|
3736 else
|
|
nengel@9
|
3737 return a;
|
|
nengel@9
|
3738 }
|
|
nengel@9
|
3739 static inline __attribute__((const)) int32_t av_clipl_int32(int64_t a)
|
|
nengel@9
|
3740 {
|
|
nengel@9
|
3741 if ((a + 0x80000000u) & ~0xFFFFFFFFUL)
|
|
nengel@9
|
3742 return (a >> 63) ^ 0x7FFFFFFF;
|
|
nengel@9
|
3743 else
|
|
nengel@9
|
3744 return a;
|
|
nengel@9
|
3745 }
|
|
nengel@9
|
3746 static inline __attribute__((const)) float av_clipf(float a, float amin, float amax)
|
|
nengel@9
|
3747 {
|
|
nengel@9
|
3748 if (a < amin)
|
|
nengel@9
|
3749 return amin;
|
|
nengel@9
|
3750 else
|
|
nengel@9
|
3751 if (a > amax)
|
|
nengel@9
|
3752 return amax;
|
|
nengel@9
|
3753 else
|
|
nengel@9
|
3754 return a;
|
|
nengel@9
|
3755 }
|
|
nengel@9
|
3756 static inline __attribute__((const)) int av_ceil_log2(int x)
|
|
nengel@9
|
3757 {
|
|
nengel@9
|
3758 return av_log2_c((x - 1) << 1);
|
|
nengel@9
|
3759 }
|
|
nengel@9
|
3760 typedef union
|
|
nengel@9
|
3761 {
|
|
nengel@9
|
3762 uint64_t u64;
|
|
nengel@9
|
3763 uint32_t u32[2];
|
|
nengel@9
|
3764 uint16_t u16[4];
|
|
nengel@9
|
3765 uint8_t u8[8];
|
|
nengel@9
|
3766 double f64;
|
|
nengel@9
|
3767 float f32[2];
|
|
nengel@9
|
3768 } __attribute__((__may_alias__)) av_alias64;
|
|
nengel@9
|
3769 typedef union
|
|
nengel@9
|
3770 {
|
|
nengel@9
|
3771 uint32_t u32;
|
|
nengel@9
|
3772 uint16_t u16[2];
|
|
nengel@9
|
3773 uint8_t u8[4];
|
|
nengel@9
|
3774 float f32;
|
|
nengel@9
|
3775 } __attribute__((__may_alias__)) av_alias32;
|
|
nengel@9
|
3776 typedef union
|
|
nengel@9
|
3777 {
|
|
nengel@9
|
3778 uint16_t u16;
|
|
nengel@9
|
3779 uint8_t u8[2];
|
|
nengel@9
|
3780 } __attribute__((__may_alias__)) av_alias16;
|
|
nengel@9
|
3781 static __attribute__((always_inline)) inline void AV_COPY64(void *d, const void *s)
|
|
nengel@9
|
3782 {
|
|
nengel@9
|
3783 __asm__ ("movq %1, %%mm0 \n\t""movq %%mm0, %0 \n\t": "=m" (*(uint64_t *) d): "m" (*(const uint64_t *) s): "mm0");
|
|
nengel@9
|
3784 }
|
|
nengel@9
|
3785 static __attribute__((always_inline)) inline void AV_SWAP64(void *a, void *b)
|
|
nengel@9
|
3786 {
|
|
nengel@9
|
3787 __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");
|
|
nengel@9
|
3788 }
|
|
nengel@9
|
3789 static __attribute__((always_inline)) inline void AV_ZERO64(void *d)
|
|
nengel@9
|
3790 {
|
|
nengel@9
|
3791 __asm__ ("pxor %%mm0, %%mm0 \n\t""movq %%mm0, %0 \n\t": "=m" (*(uint64_t *) d): : "mm0");
|
|
nengel@9
|
3792 }
|
|
nengel@9
|
3793 static __attribute__((always_inline)) inline void AV_COPY128(void *d, const void *s)
|
|
nengel@9
|
3794 {
|
|
nengel@9
|
3795 struct v
|
|
nengel@9
|
3796 {
|
|
nengel@9
|
3797 uint64_t v[2];
|
|
nengel@9
|
3798 };
|
|
nengel@9
|
3799 __asm__ ("movaps %1, %%xmm0 \n\t""movaps %%xmm0, %0 \n\t": "=m" (*(struct v *) d): "m" (*(const struct v *) s): "xmm0");
|
|
nengel@9
|
3800 }
|
|
nengel@9
|
3801 static __attribute__((always_inline)) inline void AV_ZERO128(void *d)
|
|
nengel@9
|
3802 {
|
|
nengel@9
|
3803 struct v
|
|
nengel@9
|
3804 {
|
|
nengel@9
|
3805 uint64_t v[2];
|
|
nengel@9
|
3806 };
|
|
nengel@9
|
3807 __asm__ ("pxor %%xmm0, %%xmm0 \n\t""movdqa %%xmm0, %0 \n\t": "=m" (*(struct v *) d): : "xmm0");
|
|
nengel@9
|
3808 }
|
|
nengel@9
|
3809 void ff_h264_idct8_add_c(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
3810 void ff_h264_idct_add_c(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
3811 void ff_h264_idct8_dc_add_c(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
3812 void ff_h264_idct_dc_add_c(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
3813 void ff_h264_lowres_idct_add_c(uint8_t *dst, int stride, DCTELEM *block);
|
|
nengel@9
|
3814 void ff_h264_lowres_idct_put_c(uint8_t *dst, int stride, DCTELEM *block);
|
|
nengel@9
|
3815 void ff_h264_idct_add16_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
3816 void ff_h264_idct_add16intra_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
3817 void ff_h264_idct8_add4_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
3818 void ff_h264_idct_add8_c(uint8_t **dest, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
3819 void h264_luma_dc_dequant_idct_c(DCTELEM *block, int qmul);
|
|
nengel@9
|
3820 void chroma_dc_dequant_idct_c(DCTELEM *block, int qmul);
|
|
nengel@9
|
3821 void ff_vector_fmul_window_c(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len);
|
|
nengel@9
|
3822 void ff_float_to_int16_c(int16_t *dst, const float *src, long len);
|
|
nengel@9
|
3823 void ff_float_to_int16_interleave_c(int16_t *dst, const float **src, long len, int channels);
|
|
nengel@9
|
3824 extern const uint8_t ff_alternate_horizontal_scan[64];
|
|
nengel@9
|
3825 extern const uint8_t ff_alternate_vertical_scan[64];
|
|
nengel@9
|
3826 extern const uint8_t ff_zigzag_direct[64];
|
|
nengel@9
|
3827 extern const uint8_t ff_zigzag248_direct[64];
|
|
nengel@9
|
3828 extern uint32_t ff_squareTbl[512];
|
|
nengel@9
|
3829 extern uint8_t ff_cropTbl[256 + 2 * 1024];
|
|
nengel@9
|
3830 void ff_vp3_idct_c(DCTELEM *block);
|
|
nengel@9
|
3831 void ff_vp3_idct_put_c(uint8_t *dest, int line_size, DCTELEM *block);
|
|
nengel@9
|
3832 void ff_vp3_idct_add_c(uint8_t *dest, int line_size, DCTELEM *block);
|
|
nengel@9
|
3833 void ff_vp3_idct_dc_add_c(uint8_t *dest, int line_size, const DCTELEM *block);
|
|
nengel@9
|
3834 void ff_vp3_v_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
|
|
nengel@9
|
3835 void ff_vp3_h_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
|
|
nengel@9
|
3836 void ff_vp6_filter_diag4_c(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights);
|
|
nengel@9
|
3837 void ff_bink_idct_c(DCTELEM *block);
|
|
nengel@9
|
3838 void ff_bink_idct_add_c(uint8_t *dest, int linesize, DCTELEM *block);
|
|
nengel@9
|
3839 void ff_bink_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block);
|
|
nengel@9
|
3840 void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3841 void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3842 void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3843 void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3844 void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
|
|
nengel@9
|
3845 void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
|
|
nengel@9
|
3846 void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block);
|
|
nengel@9
|
3847 void ff_img_copy_plane(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
|
|
nengel@9
|
3848 void ff_shrink22(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
|
|
nengel@9
|
3849 void ff_shrink44(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
|
|
nengel@9
|
3850 void ff_shrink88(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
|
|
nengel@9
|
3851 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);
|
|
nengel@9
|
3852 typedef void (*op_pixels_func)(uint8_t *block, const uint8_t *pixels, int line_size, int h);
|
|
nengel@9
|
3853 typedef void (*tpel_mc_func)(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h);
|
|
nengel@9
|
3854 typedef void (*qpel_mc_func)(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3855 typedef void (*h264_chroma_mc_func)(uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y);
|
|
nengel@9
|
3856 typedef void (*op_fill_func)(uint8_t *block, uint8_t value, int line_size, int h);
|
|
nengel@9
|
3857 void ff_put_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3858 void ff_put_no_rnd_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3859 void ff_avg_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3860 void ff_put_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3861 void ff_put_no_rnd_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3862 void ff_avg_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3863 void ff_put_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3864 void ff_put_no_rnd_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3865 void ff_avg_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3866 void ff_put_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3867 void ff_put_no_rnd_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3868 void ff_avg_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3869 void ff_put_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3870 void ff_put_no_rnd_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3871 void ff_avg_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3872 void ff_put_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3873 void ff_put_no_rnd_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3874 void ff_avg_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3875 void ff_put_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3876 void ff_put_no_rnd_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3877 void ff_avg_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3878 void ff_put_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3879 void ff_put_no_rnd_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3880 void ff_avg_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3881 void ff_put_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3882 void ff_put_no_rnd_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3883 void ff_avg_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3884 void ff_put_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3885 void ff_put_no_rnd_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3886 void ff_avg_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3887 void ff_put_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3888 void ff_put_no_rnd_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3889 void ff_avg_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3890 void ff_put_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3891 void ff_put_no_rnd_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3892 void ff_avg_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
|
|
nengel@9
|
3893 typedef int (*me_cmp_func)(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h);
|
|
nengel@9
|
3894 typedef struct ScanTable
|
|
nengel@9
|
3895 {
|
|
nengel@9
|
3896 const uint8_t *scantable;
|
|
nengel@9
|
3897 uint8_t permutated[64];
|
|
nengel@9
|
3898 uint8_t raster_end[64];
|
|
nengel@9
|
3899 } ScanTable;
|
|
nengel@9
|
3900 void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable);
|
|
nengel@9
|
3901 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);
|
|
nengel@9
|
3902 typedef struct DSPContext
|
|
nengel@9
|
3903 {
|
|
nengel@9
|
3904 void (*get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size);
|
|
nengel@9
|
3905 void (*diff_pixels)(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride);
|
|
nengel@9
|
3906 void (*put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
|
|
nengel@9
|
3907 void (*put_signed_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
|
|
nengel@9
|
3908 void (*put_pixels_nonclamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
|
|
nengel@9
|
3909 void (*add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
|
|
nengel@9
|
3910 void (*add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size);
|
|
nengel@9
|
3911 void (*add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size);
|
|
nengel@9
|
3912 void (*clear_block)(DCTELEM *block);
|
|
nengel@9
|
3913 void (*clear_blocks)(DCTELEM *blocks);
|
|
nengel@9
|
3914 op_pixels_func put_pixels_tab[4][4];
|
|
nengel@9
|
3915 op_pixels_func avg_pixels_tab[4][4];
|
|
nengel@9
|
3916 op_pixels_func put_no_rnd_pixels_tab[4][4];
|
|
nengel@9
|
3917 op_pixels_func avg_no_rnd_pixels_tab[4][4];
|
|
nengel@9
|
3918 void (*put_no_rnd_pixels_l2[2])(uint8_t *block, const uint8_t *a, const uint8_t *b, int line_size, int h);
|
|
nengel@9
|
3919 qpel_mc_func put_qpel_pixels_tab[2][16];
|
|
nengel@9
|
3920 qpel_mc_func avg_qpel_pixels_tab[2][16];
|
|
nengel@9
|
3921 qpel_mc_func put_no_rnd_qpel_pixels_tab[2][16];
|
|
nengel@9
|
3922 qpel_mc_func avg_no_rnd_qpel_pixels_tab[2][16];
|
|
nengel@9
|
3923 qpel_mc_func put_mspel_pixels_tab[8];
|
|
nengel@9
|
3924 h264_chroma_mc_func put_h264_chroma_pixels_tab[3];
|
|
nengel@9
|
3925 h264_chroma_mc_func avg_h264_chroma_pixels_tab[3];
|
|
nengel@9
|
3926 h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3];
|
|
nengel@9
|
3927 h264_chroma_mc_func avg_no_rnd_vc1_chroma_pixels_tab[3];
|
|
nengel@9
|
3928 qpel_mc_func put_h264_qpel_pixels_tab[4][16];
|
|
nengel@9
|
3929 qpel_mc_func avg_h264_qpel_pixels_tab[4][16];
|
|
nengel@9
|
3930 qpel_mc_func put_2tap_qpel_pixels_tab[4][16];
|
|
nengel@9
|
3931 qpel_mc_func avg_2tap_qpel_pixels_tab[4][16];
|
|
nengel@9
|
3932 void (*fdct)(DCTELEM *block);
|
|
nengel@9
|
3933 void (*fdct248)(DCTELEM *block);
|
|
nengel@9
|
3934 void (*idct)(DCTELEM *block);
|
|
nengel@9
|
3935 void (*idct_put)(uint8_t *dest, int line_size, DCTELEM *block);
|
|
nengel@9
|
3936 void (*idct_add)(uint8_t *dest, int line_size, DCTELEM *block);
|
|
nengel@9
|
3937 void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w);
|
|
nengel@9
|
3938 void (*prefetch)(void *mem, int stride, int h);
|
|
nengel@9
|
3939 } DSPContext;
|
|
nengel@9
|
3940 void dsputil_static_init(void);
|
|
nengel@9
|
3941 void dsputil_init(DSPContext *p);
|
|
nengel@9
|
3942 int ff_check_alignment(void);
|
|
nengel@9
|
3943 void ff_block_permute(DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last);
|
|
nengel@9
|
3944 void ff_set_cmp(DSPContext *c, me_cmp_func *cmp, int type);
|
|
nengel@9
|
3945 static inline uint32_t rnd_avg32(uint32_t a, uint32_t b)
|
|
nengel@9
|
3946 {
|
|
nengel@9
|
3947 return (a | b) - (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1);
|
|
nengel@9
|
3948 }
|
|
nengel@9
|
3949 static inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b)
|
|
nengel@9
|
3950 {
|
|
nengel@9
|
3951 return (a & b) + (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1);
|
|
nengel@9
|
3952 }
|
|
nengel@9
|
3953 int mm_support(void);
|
|
nengel@9
|
3954 extern int mm_flags;
|
|
nengel@9
|
3955 void dsputil_init_arm(DSPContext *c);
|
|
nengel@9
|
3956 void dsputil_init_mmx(DSPContext *c);
|
|
nengel@9
|
3957 void dsputil_init_ppc(DSPContext *c);
|
|
nengel@9
|
3958 void ff_dsputil_init_dwt(DSPContext *c);
|
|
nengel@9
|
3959 static inline void emms(void)
|
|
nengel@9
|
3960 {
|
|
nengel@9
|
3961 __asm__ volatile("emms;": : : "memory");
|
|
nengel@9
|
3962 }
|
|
nengel@9
|
3963 static inline void copy_block2(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
|
|
nengel@9
|
3964 {
|
|
nengel@9
|
3965 int i;
|
|
nengel@9
|
3966 for (i = 0;
|
|
nengel@9
|
3967 i < h;
|
|
nengel@9
|
3968 i++)
|
|
nengel@9
|
3969 {
|
|
nengel@9
|
3970 do
|
|
nengel@9
|
3971 {
|
|
nengel@9
|
3972 ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0]));
|
|
nengel@9
|
3973 ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8;
|
|
nengel@9
|
3974 }
|
|
nengel@9
|
3975 while (0);
|
|
nengel@9
|
3976 dst += dstStride;
|
|
nengel@9
|
3977 src += srcStride;
|
|
nengel@9
|
3978 }
|
|
nengel@9
|
3979 }
|
|
nengel@9
|
3980 static inline void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
|
|
nengel@9
|
3981 {
|
|
nengel@9
|
3982 int i;
|
|
nengel@9
|
3983 for (i = 0;
|
|
nengel@9
|
3984 i < h;
|
|
nengel@9
|
3985 i++)
|
|
nengel@9
|
3986 {
|
|
nengel@9
|
3987 do
|
|
nengel@9
|
3988 {
|
|
nengel@9
|
3989 ((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]));
|
|
nengel@9
|
3990 ((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;
|
|
nengel@9
|
3991 ((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;
|
|
nengel@9
|
3992 ((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;
|
|
nengel@9
|
3993 }
|
|
nengel@9
|
3994 while (0);
|
|
nengel@9
|
3995 dst += dstStride;
|
|
nengel@9
|
3996 src += srcStride;
|
|
nengel@9
|
3997 }
|
|
nengel@9
|
3998 }
|
|
nengel@9
|
3999 static inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
|
|
nengel@9
|
4000 {
|
|
nengel@9
|
4001 int i;
|
|
nengel@9
|
4002 for (i = 0;
|
|
nengel@9
|
4003 i < h;
|
|
nengel@9
|
4004 i++)
|
|
nengel@9
|
4005 {
|
|
nengel@9
|
4006 do
|
|
nengel@9
|
4007 {
|
|
nengel@9
|
4008 ((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]));
|
|
nengel@9
|
4009 ((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;
|
|
nengel@9
|
4010 ((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;
|
|
nengel@9
|
4011 ((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;
|
|
nengel@9
|
4012 }
|
|
nengel@9
|
4013 while (0);
|
|
nengel@9
|
4014 do
|
|
nengel@9
|
4015 {
|
|
nengel@9
|
4016 ((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]));
|
|
nengel@9
|
4017 ((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;
|
|
nengel@9
|
4018 ((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;
|
|
nengel@9
|
4019 ((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;
|
|
nengel@9
|
4020 }
|
|
nengel@9
|
4021 while (0);
|
|
nengel@9
|
4022 dst += dstStride;
|
|
nengel@9
|
4023 src += srcStride;
|
|
nengel@9
|
4024 }
|
|
nengel@9
|
4025 }
|
|
nengel@9
|
4026 static inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
|
|
nengel@9
|
4027 {
|
|
nengel@9
|
4028 int i;
|
|
nengel@9
|
4029 for (i = 0;
|
|
nengel@9
|
4030 i < h;
|
|
nengel@9
|
4031 i++)
|
|
nengel@9
|
4032 {
|
|
nengel@9
|
4033 do
|
|
nengel@9
|
4034 {
|
|
nengel@9
|
4035 ((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]));
|
|
nengel@9
|
4036 ((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;
|
|
nengel@9
|
4037 ((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;
|
|
nengel@9
|
4038 ((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;
|
|
nengel@9
|
4039 }
|
|
nengel@9
|
4040 while (0);
|
|
nengel@9
|
4041 do
|
|
nengel@9
|
4042 {
|
|
nengel@9
|
4043 ((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]));
|
|
nengel@9
|
4044 ((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;
|
|
nengel@9
|
4045 ((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;
|
|
nengel@9
|
4046 ((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;
|
|
nengel@9
|
4047 }
|
|
nengel@9
|
4048 while (0);
|
|
nengel@9
|
4049 dst[8] = src[8];
|
|
nengel@9
|
4050 dst += dstStride;
|
|
nengel@9
|
4051 src += srcStride;
|
|
nengel@9
|
4052 }
|
|
nengel@9
|
4053 }
|
|
nengel@9
|
4054 static inline void copy_block16(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
|
|
nengel@9
|
4055 {
|
|
nengel@9
|
4056 int i;
|
|
nengel@9
|
4057 for (i = 0;
|
|
nengel@9
|
4058 i < h;
|
|
nengel@9
|
4059 i++)
|
|
nengel@9
|
4060 {
|
|
nengel@9
|
4061 do
|
|
nengel@9
|
4062 {
|
|
nengel@9
|
4063 ((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]));
|
|
nengel@9
|
4064 ((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;
|
|
nengel@9
|
4065 ((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;
|
|
nengel@9
|
4066 ((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;
|
|
nengel@9
|
4067 }
|
|
nengel@9
|
4068 while (0);
|
|
nengel@9
|
4069 do
|
|
nengel@9
|
4070 {
|
|
nengel@9
|
4071 ((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]));
|
|
nengel@9
|
4072 ((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;
|
|
nengel@9
|
4073 ((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;
|
|
nengel@9
|
4074 ((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;
|
|
nengel@9
|
4075 }
|
|
nengel@9
|
4076 while (0);
|
|
nengel@9
|
4077 do
|
|
nengel@9
|
4078 {
|
|
nengel@9
|
4079 ((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]));
|
|
nengel@9
|
4080 ((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;
|
|
nengel@9
|
4081 ((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;
|
|
nengel@9
|
4082 ((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;
|
|
nengel@9
|
4083 }
|
|
nengel@9
|
4084 while (0);
|
|
nengel@9
|
4085 do
|
|
nengel@9
|
4086 {
|
|
nengel@9
|
4087 ((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]));
|
|
nengel@9
|
4088 ((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;
|
|
nengel@9
|
4089 ((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;
|
|
nengel@9
|
4090 ((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;
|
|
nengel@9
|
4091 }
|
|
nengel@9
|
4092 while (0);
|
|
nengel@9
|
4093 dst += dstStride;
|
|
nengel@9
|
4094 src += srcStride;
|
|
nengel@9
|
4095 }
|
|
nengel@9
|
4096 }
|
|
nengel@9
|
4097 static inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
|
|
nengel@9
|
4098 {
|
|
nengel@9
|
4099 int i;
|
|
nengel@9
|
4100 for (i = 0;
|
|
nengel@9
|
4101 i < h;
|
|
nengel@9
|
4102 i++)
|
|
nengel@9
|
4103 {
|
|
nengel@9
|
4104 do
|
|
nengel@9
|
4105 {
|
|
nengel@9
|
4106 ((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]));
|
|
nengel@9
|
4107 ((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;
|
|
nengel@9
|
4108 ((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;
|
|
nengel@9
|
4109 ((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;
|
|
nengel@9
|
4110 }
|
|
nengel@9
|
4111 while (0);
|
|
nengel@9
|
4112 do
|
|
nengel@9
|
4113 {
|
|
nengel@9
|
4114 ((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]));
|
|
nengel@9
|
4115 ((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;
|
|
nengel@9
|
4116 ((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;
|
|
nengel@9
|
4117 ((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;
|
|
nengel@9
|
4118 }
|
|
nengel@9
|
4119 while (0);
|
|
nengel@9
|
4120 do
|
|
nengel@9
|
4121 {
|
|
nengel@9
|
4122 ((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]));
|
|
nengel@9
|
4123 ((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;
|
|
nengel@9
|
4124 ((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;
|
|
nengel@9
|
4125 ((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;
|
|
nengel@9
|
4126 }
|
|
nengel@9
|
4127 while (0);
|
|
nengel@9
|
4128 do
|
|
nengel@9
|
4129 {
|
|
nengel@9
|
4130 ((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]));
|
|
nengel@9
|
4131 ((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;
|
|
nengel@9
|
4132 ((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;
|
|
nengel@9
|
4133 ((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;
|
|
nengel@9
|
4134 }
|
|
nengel@9
|
4135 while (0);
|
|
nengel@9
|
4136 dst[16] = src[16];
|
|
nengel@9
|
4137 dst += dstStride;
|
|
nengel@9
|
4138 src += srcStride;
|
|
nengel@9
|
4139 }
|
|
nengel@9
|
4140 }
|
|
nengel@9
|
4141 typedef void (*h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset);
|
|
nengel@9
|
4142 typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset);
|
|
nengel@9
|
4143 typedef struct H264DSPContext
|
|
nengel@9
|
4144 {
|
|
nengel@9
|
4145 h264_weight_func weight_h264_pixels_tab[10];
|
|
nengel@9
|
4146 h264_biweight_func biweight_h264_pixels_tab[10];
|
|
nengel@9
|
4147 void (*h264_v_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
|
|
nengel@9
|
4148 void (*h264_h_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
|
|
nengel@9
|
4149 void (*h264_v_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta);
|
|
nengel@9
|
4150 void (*h264_h_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta);
|
|
nengel@9
|
4151 void (*h264_v_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
|
|
nengel@9
|
4152 void (*h264_h_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
|
|
nengel@9
|
4153 void (*h264_v_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta);
|
|
nengel@9
|
4154 void (*h264_h_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta);
|
|
nengel@9
|
4155 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);
|
|
nengel@9
|
4156 void (*h264_idct_add)(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
4157 void (*h264_idct8_add)(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
4158 void (*h264_idct_dc_add)(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
4159 void (*h264_idct8_dc_add)(uint8_t *dst, DCTELEM *block, int stride);
|
|
nengel@9
|
4160 void (*h264_dct)(DCTELEM block[4][4]);
|
|
nengel@9
|
4161 void (*h264_idct_add16)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
4162 void (*h264_idct8_add4)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
4163 void (*h264_idct_add8)(uint8_t **dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
4164 void (*h264_idct_add16intra)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
|
|
nengel@9
|
4165 qpel_mc_func (*qpel_put)[16];
|
|
nengel@9
|
4166 qpel_mc_func (*qpel_avg)[16];
|
|
nengel@9
|
4167 } H264DSPContext;
|
|
nengel@9
|
4168 void ff_h264dsp_init(H264DSPContext *c);
|
|
nengel@9
|
4169 void ff_h264dsp_init_arm(H264DSPContext *c);
|
|
nengel@9
|
4170 void ff_h264dsp_init_ppc(H264DSPContext *c);
|
|
nengel@9
|
4171 void ff_h264dsp_init_x86(H264DSPContext *c);
|
|
nengel@9
|
4172 typedef struct H264PredContext
|
|
nengel@9
|
4173 {
|
|
nengel@9
|
4174 void (*pred4x4[9 + 3 + 3])(uint8_t *src, uint8_t *topright, int stride);
|
|
nengel@9
|
4175 void (*pred8x8l[9 + 3])(uint8_t *src, int topleft, int topright, int stride);
|
|
nengel@9
|
4176 void (*pred8x8[4 + 3 + 4])(uint8_t *src, int stride);
|
|
nengel@9
|
4177 void (*pred16x16[4 + 3])(uint8_t *src, int stride);
|
|
nengel@9
|
4178 void (*pred4x4_add[2])(uint8_t *pix, const DCTELEM *block, int stride);
|
|
nengel@9
|
4179 void (*pred8x8l_add[2])(uint8_t *pix, const DCTELEM *block, int stride);
|
|
nengel@9
|
4180 void (*pred8x8_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride);
|
|
nengel@9
|
4181 void (*pred16x16_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride);
|
|
nengel@9
|
4182 } H264PredContext;
|
|
nengel@9
|
4183 void ff_h264_pred_init(H264PredContext *h);
|
|
nengel@9
|
4184 void ff_h264_pred_init_arm(H264PredContext *h);
|
|
nengel@9
|
4185 typedef struct
|
|
nengel@9
|
4186 {
|
|
nengel@9
|
4187 const char *class_name;
|
|
nengel@9
|
4188 const char *(*item_name)(void *ctx);
|
|
nengel@9
|
4189 const struct AVOption *option;
|
|
nengel@9
|
4190 int version;
|
|
nengel@9
|
4191 } AVClass;
|
|
nengel@9
|
4192 void av_log(int level, const char *fmt, ...);
|
|
nengel@9
|
4193 void av_vlog(int level, const char *fmt, va_list);
|
|
nengel@9
|
4194 int av_log_get_level(void);
|
|
nengel@9
|
4195 void av_log_set_level(int);
|
|
nengel@9
|
4196 void av_log_set_callback(void (*)(int, const char *, va_list));
|
|
nengel@9
|
4197 void av_log_default_callback(int level, const char *fmt, va_list vl);
|
|
nengel@9
|
4198 static inline uint64_t read_time(void)
|
|
nengel@9
|
4199 {
|
|
nengel@9
|
4200 uint32_t a, d;
|
|
nengel@9
|
4201 __asm__ volatile("rdtsc": "=a" (a), "=d" (d): );
|
|
nengel@9
|
4202 return ((uint64_t) d << 32) + a;
|
|
nengel@9
|
4203 }
|
|
nengel@9
|
4204 static inline int32_t NEG_SSR32(int32_t a, int8_t s)
|
|
nengel@9
|
4205 {
|
|
nengel@9
|
4206 __asm__ ("sarl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s)));
|
|
nengel@9
|
4207 return a;
|
|
nengel@9
|
4208 }
|
|
nengel@9
|
4209 static inline uint32_t NEG_USR32(uint32_t a, int8_t s)
|
|
nengel@9
|
4210 {
|
|
nengel@9
|
4211 __asm__ ("shrl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s)));
|
|
nengel@9
|
4212 return a;
|
|
nengel@9
|
4213 }
|
|
nengel@9
|
4214 static __attribute__((always_inline)) inline int MULH(int a, int b)
|
|
nengel@9
|
4215 {
|
|
nengel@9
|
4216 return ((int64_t) (a) * (int64_t) (b)) >> 32;
|
|
nengel@9
|
4217 }
|
|
nengel@9
|
4218 static __attribute__((always_inline)) inline unsigned UMULH(unsigned a, unsigned b)
|
|
nengel@9
|
4219 {
|
|
nengel@9
|
4220 return ((uint64_t) (a) * (uint64_t) (b)) >> 32;
|
|
nengel@9
|
4221 }
|
|
nengel@9
|
4222 static inline __attribute__((const)) int mid_pred(int a, int b, int c)
|
|
nengel@9
|
4223 {
|
|
nengel@9
|
4224 if (a > b)
|
|
nengel@9
|
4225 {
|
|
nengel@9
|
4226 if (c > b)
|
|
nengel@9
|
4227 {
|
|
nengel@9
|
4228 if (c > a)
|
|
nengel@9
|
4229 b = a;
|
|
nengel@9
|
4230 else
|
|
nengel@9
|
4231 b = c;
|
|
nengel@9
|
4232 }
|
|
nengel@9
|
4233 }
|
|
nengel@9
|
4234 else
|
|
nengel@9
|
4235 {
|
|
nengel@9
|
4236 if (b > c)
|
|
nengel@9
|
4237 {
|
|
nengel@9
|
4238 if (c > a)
|
|
nengel@9
|
4239 b = c;
|
|
nengel@9
|
4240 else
|
|
nengel@9
|
4241 b = a;
|
|
nengel@9
|
4242 }
|
|
nengel@9
|
4243 }
|
|
nengel@9
|
4244 return b;
|
|
nengel@9
|
4245 }
|
|
nengel@9
|
4246 static inline __attribute__((const)) int sign_extend(int val, unsigned bits)
|
|
nengel@9
|
4247 {
|
|
nengel@9
|
4248 return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits);
|
|
nengel@9
|
4249 }
|
|
nengel@9
|
4250 static inline __attribute__((const)) unsigned zero_extend(unsigned val, unsigned bits)
|
|
nengel@9
|
4251 {
|
|
nengel@9
|
4252 return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits);
|
|
nengel@9
|
4253 }
|
|
nengel@9
|
4254 typedef struct GetBitContext
|
|
nengel@9
|
4255 {
|
|
nengel@9
|
4256 uint8_t *rbsp;
|
|
nengel@9
|
4257 unsigned int rbsp_size;
|
|
nengel@9
|
4258 uint8_t *raw;
|
|
nengel@9
|
4259 const uint8_t *buffer, *buffer_end;
|
|
nengel@9
|
4260 unsigned int alloc_size;
|
|
nengel@9
|
4261 unsigned int buf_size;
|
|
nengel@9
|
4262 uint32_t *buffer_ptr;
|
|
nengel@9
|
4263 uint32_t cache0;
|
|
nengel@9
|
4264 uint32_t cache1;
|
|
nengel@9
|
4265 int bit_count;
|
|
nengel@9
|
4266 int size_in_bits;
|
|
nengel@9
|
4267 } GetBitContext;
|
|
nengel@9
|
4268 static inline int get_bits_count(const GetBitContext *s)
|
|
nengel@9
|
4269 {
|
|
nengel@9
|
4270 return ((uint8_t *) s->buffer_ptr - s->buffer) * 8 - 32 + s->bit_count;
|
|
nengel@9
|
4271 }
|
|
nengel@9
|
4272 static inline void skip_bits_long(GetBitContext *s, int n)
|
|
nengel@9
|
4273 {
|
|
nengel@9
|
4274 int re_bit_count = (s)->bit_count;
|
|
nengel@9
|
4275 uint32_t re_cache0 = (s)->cache0;
|
|
nengel@9
|
4276 uint32_t re_cache1 = (s)->cache1;
|
|
nengel@9
|
4277 uint32_t *re_buffer_ptr = (s)->buffer_ptr;
|
|
nengel@9
|
4278 re_bit_count += n;
|
|
nengel@9
|
4279 re_buffer_ptr += re_bit_count >> 5;
|
|
nengel@9
|
4280 re_bit_count &= 31;
|
|
nengel@9
|
4281 re_cache0 = bswap_32(re_buffer_ptr[- 1]) << re_bit_count;
|
|
nengel@9
|
4282 re_cache1 = 0;
|
|
nengel@9
|
4283 if (re_bit_count > 0)
|
|
nengel@9
|
4284 {
|
|
nengel@9
|
4285 const uint32_t next = bswap_32(*re_buffer_ptr);
|
|
nengel@9
|
4286 re_cache0 |= NEG_USR32(next, re_bit_count);
|
|
nengel@9
|
4287 re_cache1 |= next << re_bit_count;
|
|
nengel@9
|
4288 re_buffer_ptr++;
|
|
nengel@9
|
4289 re_bit_count -= 32;
|
|
nengel@9
|
4290 }
|
|
nengel@9
|
4291 (s)->bit_count = re_bit_count;
|
|
nengel@9
|
4292 (s)->cache0 = re_cache0;
|
|
nengel@9
|
4293 (s)->cache1 = re_cache1;
|
|
nengel@9
|
4294 (s)->buffer_ptr = re_buffer_ptr;
|
|
nengel@9
|
4295 }
|
|
nengel@9
|
4296 static inline int get_xbits(GetBitContext *s, int n)
|
|
nengel@9
|
4297 {
|
|
nengel@9
|
4298 register int sign;
|
|
nengel@9
|
4299 register int32_t cache;
|
|
nengel@9
|
4300 int re_bit_count = (s)->bit_count;
|
|
nengel@9
|
4301 uint32_t re_cache0 = (s)->cache0;
|
|
nengel@9
|
4302 uint32_t re_cache1 = (s)->cache1;
|
|
nengel@9
|
4303 uint32_t *re_buffer_ptr = (s)->buffer_ptr;
|
|
nengel@9
|
4304 if (re_bit_count > 0)
|
|
nengel@9
|
4305 {
|
|
nengel@9
|
4306 const uint32_t next = bswap_32(*re_buffer_ptr);
|
|
nengel@9
|
4307 re_cache0 |= NEG_USR32(next, re_bit_count);
|
|
nengel@9
|
4308 re_cache1 |= next << re_bit_count;
|
|
nengel@9
|
4309 re_buffer_ptr++;
|
|
nengel@9
|
4310 re_bit_count -= 32;
|
|
nengel@9
|
4311 }
|
|
nengel@9
|
4312 cache = (re_cache0);
|
|
nengel@9
|
4313 sign = (~cache) >> 31;
|
|
nengel@9
|
4314 {
|
|
nengel@9
|
4315 __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
|
|
nengel@9
|
4316 re_bit_count += (n);
|
|
nengel@9
|
4317 }
|
|
nengel@9
|
4318 (s)->bit_count = re_bit_count;
|
|
nengel@9
|
4319 (s)->cache0 = re_cache0;
|
|
nengel@9
|
4320 (s)->cache1 = re_cache1;
|
|
nengel@9
|
4321 (s)->buffer_ptr = re_buffer_ptr;
|
|
nengel@9
|
4322 return (NEG_USR32(sign ^ cache, n) ^ sign) - sign;
|
|
nengel@9
|
4323 }
|
|
nengel@9
|
4324 static inline int get_sbits(GetBitContext *s, int n)
|
|
nengel@9
|
4325 {
|
|
nengel@9
|
4326 register int tmp;
|
|
nengel@9
|
4327 int re_bit_count = (s)->bit_count;
|
|
nengel@9
|
4328 uint32_t re_cache0 = (s)->cache0;
|
|
nengel@9
|
4329 uint32_t re_cache1 = (s)->cache1;
|
|
nengel@9
|
4330 uint32_t *re_buffer_ptr = (s)->buffer_ptr;
|
|
nengel@9
|
4331 if (re_bit_count > 0)
|
|
nengel@9
|
4332 {
|
|
nengel@9
|
4333 const uint32_t next = bswap_32(*re_buffer_ptr);
|
|
nengel@9
|
4334 re_cache0 |= NEG_USR32(next, re_bit_count);
|
|
nengel@9
|
4335 re_cache1 |= next << re_bit_count;
|
|
nengel@9
|
4336 re_buffer_ptr++;
|
|
nengel@9
|
4337 re_bit_count -= 32;
|
|
nengel@9
|
4338 }
|
|
nengel@9
|
4339 tmp = NEG_SSR32(re_cache0, n);
|
|
nengel@9
|
4340 {
|
|
nengel@9
|
4341 __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
|
|
nengel@9
|
4342 re_bit_count += (n);
|
|
nengel@9
|
4343 }
|
|
nengel@9
|
4344 (s)->bit_count = re_bit_count;
|
|
nengel@9
|
4345 (s)->cache0 = re_cache0;
|
|
nengel@9
|
4346 (s)->cache1 = re_cache1;
|
|
nengel@9
|
4347 (s)->buffer_ptr = re_buffer_ptr;
|
|
nengel@9
|
4348 return tmp;
|
|
nengel@9
|
4349 }
|
|
nengel@9
|
4350 static inline unsigned int get_bits(GetBitContext *s, int n)
|
|
nengel@9
|
4351 {
|
|
nengel@9
|
4352 register int tmp;
|
|
nengel@9
|
4353 int re_bit_count = (s)->bit_count;
|
|
nengel@9
|
4354 uint32_t re_cache0 = (s)->cache0;
|
|
nengel@9
|
4355 uint32_t re_cache1 = (s)->cache1;
|
|
nengel@9
|
4356 uint32_t *re_buffer_ptr = (s)->buffer_ptr;
|
|
nengel@9
|
4357 if (re_bit_count > 0)
|
|
nengel@9
|
4358 {
|
|
nengel@9
|
4359 const uint32_t next = bswap_32(*re_buffer_ptr);
|
|
nengel@9
|
4360 re_cache0 |= NEG_USR32(next, re_bit_count);
|
|
nengel@9
|
4361 re_cache1 |= next << re_bit_count;
|
|
nengel@9
|
4362 re_buffer_ptr++;
|
|
nengel@9
|
4363 re_bit_count -= 32;
|
|
nengel@9
|
4364 }
|
|
nengel@9
|
4365 tmp = NEG_USR32(re_cache0, n);
|
|
nengel@9
|
4366 {
|
|
nengel@9
|
4367 __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
|
|
nengel@9
|
4368 re_bit_count += (n);
|
|
nengel@9
|
4369 }
|
|
nengel@9
|
4370 (s)->bit_count = re_bit_count;
|
|
nengel@9
|
4371 (s)->cache0 = re_cache0;
|
|
nengel@9
|
4372 (s)->cache1 = re_cache1;
|
|
nengel@9
|
4373 (s)->buffer_ptr = re_buffer_ptr;
|
|
nengel@9
|
4374 return tmp;
|
|
nengel@9
|
4375 }
|
|
nengel@9
|
4376 static inline unsigned int show_bits(GetBitContext *s, int n)
|
|
nengel@9
|
4377 {
|
|
nengel@9
|
4378 register int tmp;
|
|
nengel@9
|
4379 int re_bit_count = (s)->bit_count;
|
|
nengel@9
|
4380 uint32_t re_cache0 = (s)->cache0;
|
|
nengel@9
|
4381 uint32_t re_cache1 = (s)->cache1;
|
|
nengel@9
|
4382 uint32_t *re_buffer_ptr = (s)->buffer_ptr;
|
|
nengel@9
|
4383 if (re_bit_count > 0)
|
|
nengel@9
|
4384 {
|
|
nengel@9
|
4385 const uint32_t next = bswap_32(*re_buffer_ptr);
|
|
nengel@9
|
4386 re_cache0 |= NEG_USR32(next, re_bit_count);
|
|
nengel@9
|
4387 re_cache1 |= next << re_bit_count;
|
|
nengel@9
|
4388 re_buffer_ptr++;
|
|
nengel@9
|
4389 re_bit_count -= 32;
|
|
nengel@9
|
4390 }
|
|
nengel@9
|
4391 tmp = NEG_USR32(re_cache0, n);
|
|
nengel@9
|
4392 return tmp;
|
|
nengel@9
|
4393 }
|
|
nengel@9
|
4394 static inline void skip_bits(GetBitContext *s, int n)
|
|
nengel@9
|
4395 {
|
|
nengel@9
|
4396 int re_bit_count = (s)->bit_count;
|
|
nengel@9
|
4397 uint32_t re_cache0 = (s)->cache0;
|
|
nengel@9
|
4398 uint32_t re_cache1 = (s)->cache1;
|
|
nengel@9
|
4399 uint32_t *re_buffer_ptr = (s)->buffer_ptr;
|
|
nengel@9
|
4400 if (re_bit_count > 0)
|
|
nengel@9
|
4401 {
|
|
nengel@9
|
4402 const uint32_t next = bswap_32(*re_buffer_ptr);
|
|
nengel@9
|
4403 re_cache0 |= NEG_USR32(next, re_bit_count);
|
|
nengel@9
|
4404 re_cache1 |= next << re_bit_count;
|
|
nengel@9
|
4405 re_buffer_ptr++;
|
|
nengel@9
|
4406 re_bit_count -= 32;
|
|
nengel@9
|
4407 }
|
|
nengel@9
|
4408 {
|
|
nengel@9
|
4409 __asm__ ("shldl %2, %1, %0 \n\t""shll %2, %1 \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
|
|
nengel@9
|
4410 re_bit_count += (n);
|
|
nengel@9
|
4411 }
|
|
nengel@9
|
4412 (s)->bit_count = re_bit_count;
|
|
nengel@9
|
4413 (s)->cache0 = re_cache0;
|
|
nengel@9
|
4414 (s)->cache1 = re_cache1;
|
|
nengel@9
|
4415 (s)->buffer_ptr = re_buffer_ptr;
|
|
nengel@9
|
4416 }
|
|
nengel@9
|
4417 static inline unsigned int get_bits1(GetBitContext *s)
|
|
nengel@9
|
4418 {
|
|
nengel@9
|
4419 return get_bits(s, 1);
|
|
nengel@9
|
4420 }
|
|
nengel@9
|
4421 static inline unsigned int show_bits1(GetBitContext *s)
|
|
nengel@9
|
4422 {
|
|
nengel@9
|
4423 return show_bits(s, 1);
|
|
nengel@9
|
4424 }
|
|
nengel@9
|
4425 static inline void skip_bits1(GetBitContext *s)
|
|
nengel@9
|
4426 {
|
|
nengel@9
|
4427 skip_bits(s, 1);
|
|
nengel@9
|
4428 }
|
|
nengel@9
|
4429 static inline unsigned int get_bits_long(GetBitContext *s, int n)
|
|
nengel@9
|
4430 {
|
|
nengel@9
|
4431 if (n <= 32)
|
|
nengel@9
|
4432 return get_bits(s, n);
|
|
nengel@9
|
4433 else
|
|
nengel@9
|
4434 {
|
|
nengel@9
|
4435 int ret = get_bits(s, 16) << (n - 16);
|
|
nengel@9
|
4436 return ret | get_bits(s, n - 16);
|
|
nengel@9
|
4437 }
|
|
nengel@9
|
4438 }
|
|
nengel@9
|
4439 static inline int get_sbits_long(GetBitContext *s, int n)
|
|
nengel@9
|
4440 {
|
|
nengel@9
|
4441 return sign_extend(get_bits_long(s, n), n);
|
|
nengel@9
|
4442 }
|
|
nengel@9
|
4443 static inline unsigned int show_bits_long(GetBitContext *s, int n)
|
|
nengel@9
|
4444 {
|
|
nengel@9
|
4445 if (n <= 32)
|
|
nengel@9
|
4446 return show_bits(s, n);
|
|
nengel@9
|
4447 else
|
|
nengel@9
|
4448 {
|
|
nengel@9
|
4449 GetBitContext gb = *s;
|
|
nengel@9
|
4450 return get_bits_long(&gb, n);
|
|
nengel@9
|
4451 }
|
|
nengel@9
|
4452 }
|
|
nengel@9
|
4453 static inline int check_marker(GetBitContext *s, const char *msg)
|
|
nengel@9
|
4454 {
|
|
nengel@9
|
4455 int bit = get_bits1(s);
|
|
nengel@9
|
4456 if (!bit)
|
|
nengel@9
|
4457 av_log(32, "Marker bit missing %s\n", msg);
|
|
nengel@9
|
4458 return bit;
|
|
nengel@9
|
4459 }
|
|
nengel@9
|
4460 static inline void init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
|
|
nengel@9
|
4461 {
|
|
nengel@9
|
4462 int buffer_size = (bit_size + 7) >> 3;
|
|
nengel@9
|
4463 if (buffer_size < 0 || bit_size < 0)
|
|
nengel@9
|
4464 {
|
|
nengel@9
|
4465 buffer_size = bit_size = 0;
|
|
nengel@9
|
4466 buffer = ((void *) 0);
|
|
nengel@9
|
4467 }
|
|
nengel@9
|
4468 s->buffer = buffer;
|
|
nengel@9
|
4469 s->size_in_bits = bit_size;
|
|
nengel@9
|
4470 s->buffer_end = buffer + buffer_size;
|
|
nengel@9
|
4471 s->buffer_ptr = (uint32_t *) ((intptr_t) buffer & (~3));
|
|
nengel@9
|
4472 s->bit_count = 32 + 8 * ((intptr_t) buffer & 3);
|
|
nengel@9
|
4473 skip_bits_long(s, 0);
|
|
nengel@9
|
4474 }
|
|
nengel@9
|
4475 static inline void align_get_bits(GetBitContext *s)
|
|
nengel@9
|
4476 {
|
|
nengel@9
|
4477 int n = (- get_bits_count(s)) & 7;
|
|
nengel@9
|
4478 if (n)
|
|
nengel@9
|
4479 skip_bits(s, n);
|
|
nengel@9
|
4480 }
|
|
nengel@9
|
4481 static inline int get_bits_left(GetBitContext *gb)
|
|
nengel@9
|
4482 {
|
|
nengel@9
|
4483 return gb->size_in_bits - get_bits_count(gb);
|
|
nengel@9
|
4484 }
|
|
nengel@9
|
4485 enum
|
|
nengel@9
|
4486 {
|
|
nengel@9
|
4487 PARSE = 0,
|
|
nengel@9
|
4488 ENTROPY,
|
|
nengel@9
|
4489 REORDER,
|
|
nengel@9
|
4490 REORDER2,
|
|
nengel@9
|
4491 MBDEC,
|
|
nengel@9
|
4492 OUTPUT,
|
|
nengel@9
|
4493 STAGES
|
|
nengel@9
|
4494 };
|
|
nengel@9
|
4495 enum
|
|
nengel@9
|
4496 {
|
|
nengel@9
|
4497 TOTAL = 0,
|
|
nengel@9
|
4498 FRONT,
|
|
nengel@9
|
4499 ED,
|
|
nengel@9
|
4500 REC,
|
|
nengel@9
|
4501 PROFILE_STAGES
|
|
nengel@9
|
4502 };
|
|
nengel@9
|
4503 typedef struct ParserContext
|
|
nengel@9
|
4504 {
|
|
nengel@9
|
4505 int ifile;
|
|
nengel@9
|
4506 int ofile;
|
|
nengel@9
|
4507 int buffer_size;
|
|
nengel@9
|
4508 int eof_reached;
|
|
nengel@9
|
4509 uint8_t *data;
|
|
nengel@9
|
4510 int size;
|
|
nengel@9
|
4511 uint8_t *cur_ptr;
|
|
nengel@9
|
4512 int cur_len;
|
|
nengel@9
|
4513 int64_t frame_offset;
|
|
nengel@9
|
4514 int64_t cur_offset;
|
|
nengel@9
|
4515 int64_t next_frame_offset;
|
|
nengel@9
|
4516 int pict_type;
|
|
nengel@9
|
4517 int repeat_pict;
|
|
nengel@9
|
4518 int key_frame;
|
|
nengel@9
|
4519 int64_t pos;
|
|
nengel@9
|
4520 int64_t last_pos;
|
|
nengel@9
|
4521 int final_frame;
|
|
nengel@9
|
4522 uint8_t overread[5];
|
|
nengel@9
|
4523 int overread_cnt;
|
|
nengel@9
|
4524 int index;
|
|
nengel@9
|
4525 int last_index;
|
|
nengel@9
|
4526 int frame_start_found;
|
|
nengel@9
|
4527 uint32_t state;
|
|
nengel@9
|
4528 } ParserContext;
|
|
nengel@9
|
4529 typedef struct NalContext
|
|
nengel@9
|
4530 {
|
|
nengel@9
|
4531 SPS *sps_buffers[32];
|
|
nengel@9
|
4532 PPS *pps_buffers[256];
|
|
nengel@9
|
4533 SPS sps;
|
|
nengel@9
|
4534 PictureInfo picture[16 + 1];
|
|
nengel@9
|
4535 PictureInfo *release_ref[66];
|
|
nengel@9
|
4536 PictureInfo *short_ref[32];
|
|
nengel@9
|
4537 PictureInfo *long_ref[32];
|
|
nengel@9
|
4538 int long_ref_count;
|
|
nengel@9
|
4539 int short_ref_count;
|
|
nengel@9
|
4540 uint32_t coded_pic_num;
|
|
nengel@9
|
4541 int poc_lsb;
|
|
nengel@9
|
4542 int poc_msb;
|
|
nengel@9
|
4543 uint32_t poc_offset;
|
|
nengel@9
|
4544 int delta_poc;
|
|
nengel@9
|
4545 int frame_num;
|
|
nengel@9
|
4546 int prev_poc_msb;
|
|
nengel@9
|
4547 int prev_poc_lsb;
|
|
nengel@9
|
4548 int frame_num_offset;
|
|
nengel@9
|
4549 int prev_frame_num_offset;
|
|
nengel@9
|
4550 int prev_frame_num;
|
|
nengel@9
|
4551 int max_pic_num;
|
|
nengel@9
|
4552 int redundant_pic_count;
|
|
nengel@9
|
4553 int outputed_poc;
|
|
nengel@9
|
4554 int ip_id;
|
|
nengel@9
|
4555 int b4_stride;
|
|
nengel@9
|
4556 int mb_stride;
|
|
nengel@9
|
4557 int mb_width;
|
|
nengel@9
|
4558 int mb_height;
|
|
nengel@9
|
4559 int width;
|
|
nengel@9
|
4560 int height;
|
|
nengel@9
|
4561 int has_b_frames;
|
|
nengel@9
|
4562 SEI_PicStructType sei_pic_struct;
|
|
nengel@9
|
4563 int sei_ct_type;
|
|
nengel@9
|
4564 int sei_dpb_output_delay;
|
|
nengel@9
|
4565 int sei_cpb_removal_delay;
|
|
nengel@9
|
4566 int sei_recovery_frame_cnt;
|
|
nengel@9
|
4567 int sei_buffering_period_present;
|
|
nengel@9
|
4568 int initial_cpb_removal_delay[32];
|
|
nengel@9
|
4569 } NalContext;
|
|
nengel@9
|
4570 typedef struct EntropyContext
|
|
nengel@9
|
4571 {
|
|
nengel@9
|
4572 CABACContext c;
|
|
nengel@9
|
4573 H264Mb *m;
|
|
nengel@9
|
4574 int top_cbp;
|
|
nengel@9
|
4575 int left_cbp;
|
|
nengel@9
|
4576 int neighbor_transform_size;
|
|
nengel@9
|
4577 uint32_t top_type;
|
|
nengel@9
|
4578 uint32_t left_type;
|
|
nengel@9
|
4579 uint32_t topright_type;
|
|
nengel@9
|
4580 uint32_t topleft_type;
|
|
nengel@9
|
4581 int curr_qscale;
|
|
nengel@9
|
4582 int chroma_qp[2];
|
|
nengel@9
|
4583 int last_qscale_diff;
|
|
nengel@9
|
4584 uint32_t dequant4_buffer[6][52][16];
|
|
nengel@9
|
4585 uint32_t dequant8_buffer[2][52][64];
|
|
nengel@9
|
4586 uint32_t (*dequant4_coeff[6])[16];
|
|
nengel@9
|
4587 uint32_t (*dequant8_coeff[2])[64];
|
|
nengel@9
|
4588 uint8_t (*non_zero_count_top)[8];
|
|
nengel@9
|
4589 uint8_t (*non_zero_count)[8];
|
|
nengel@9
|
4590 uint8_t (*non_zero_count_row[2])[8];
|
|
nengel@9
|
4591 uint8_t __attribute__((aligned(8))) non_zero_count_left[8];
|
|
nengel@9
|
4592 uint8_t (*mvd_top[2])[2];
|
|
nengel@9
|
4593 uint8_t (*mvd[2])[2];
|
|
nengel@9
|
4594 uint8_t (*mvd_table[2][2])[2];
|
|
nengel@9
|
4595 uint8_t *direct_top;
|
|
nengel@9
|
4596 uint8_t *direct;
|
|
nengel@9
|
4597 uint8_t *direct_table[2];
|
|
nengel@9
|
4598 uint8_t *chroma_pred_mode_top;
|
|
nengel@9
|
4599 uint8_t *chroma_pred_mode;
|
|
nengel@9
|
4600 uint8_t *chroma_pred_mode_table[2];
|
|
nengel@9
|
4601 uint16_t *cbp_top;
|
|
nengel@9
|
4602 uint16_t *cbp;
|
|
nengel@9
|
4603 uint16_t *cbp_table[2];
|
|
nengel@9
|
4604 int8_t *qscale_top;
|
|
nengel@9
|
4605 int8_t *qscale;
|
|
nengel@9
|
4606 int8_t *qscale_table[2];
|
|
nengel@9
|
4607 int8_t *ref_index_top[2];
|
|
nengel@9
|
4608 int8_t *ref_index[2];
|
|
nengel@9
|
4609 int8_t *ref_index_table[2][2];
|
|
nengel@9
|
4610 uint32_t *mb_type_top;
|
|
nengel@9
|
4611 uint32_t *mb_type;
|
|
nengel@9
|
4612 uint32_t *mb_type_table[2];
|
|
nengel@9
|
4613 int b_stride;
|
|
nengel@9
|
4614 int mb_stride;
|
|
nengel@9
|
4615 int mb_width;
|
|
nengel@9
|
4616 int mb_height;
|
|
nengel@9
|
4617 uint8_t *zigzag_scan;
|
|
nengel@9
|
4618 uint8_t *zigzag_scan8x8;
|
|
nengel@9
|
4619 uint8_t direct_cache[5 * 8];
|
|
nengel@9
|
4620 int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8];
|
|
nengel@9
|
4621 int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2];
|
|
nengel@9
|
4622 int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8];
|
|
nengel@9
|
4623 uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8];
|
|
nengel@9
|
4624 uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2];
|
|
nengel@9
|
4625 } EntropyContext;
|
|
nengel@9
|
4626 typedef struct H264Slice
|
|
nengel@9
|
4627 {
|
|
nengel@9
|
4628 PPS pps;
|
|
nengel@9
|
4629 PictureInfo *current_picture_info;
|
|
nengel@9
|
4630 DecodedPicture *curr_pic;
|
|
nengel@9
|
4631 int slice_num;
|
|
nengel@9
|
4632 int release_ref_cpn[66];
|
|
nengel@9
|
4633 int release_cnt;
|
|
nengel@9
|
4634 int qp_thresh;
|
|
nengel@9
|
4635 int use_weight;
|
|
nengel@9
|
4636 int use_weight_chroma;
|
|
nengel@9
|
4637 int luma_log2_weight_denom;
|
|
nengel@9
|
4638 int chroma_log2_weight_denom;
|
|
nengel@9
|
4639 int16_t luma_weight[16][2][2];
|
|
nengel@9
|
4640 int16_t chroma_weight[16][2][2][2];
|
|
nengel@9
|
4641 int16_t implicit_weight[16][16][2];
|
|
nengel@9
|
4642 int ref_list_cpn[2][16];
|
|
nengel@9
|
4643 PictureInfo *ref_list[2][16];
|
|
nengel@9
|
4644 DecodedPicture *dp_ref_list[2][16];
|
|
nengel@9
|
4645 int ref_count[2];
|
|
nengel@9
|
4646 int slice_type;
|
|
nengel@9
|
4647 int slice_type_nos;
|
|
nengel@9
|
4648 int slice_alpha_c0_offset;
|
|
nengel@9
|
4649 int slice_beta_offset;
|
|
nengel@9
|
4650 int direct_8x8_inference_flag;
|
|
nengel@9
|
4651 uint8_t list_count;
|
|
nengel@9
|
4652 uint32_t coded_pic_num;
|
|
nengel@9
|
4653 int poc;
|
|
nengel@9
|
4654 int key_frame;
|
|
nengel@9
|
4655 int mmco_reset;
|
|
nengel@9
|
4656 int ip_id;
|
|
nengel@9
|
4657 int transform_bypass;
|
|
nengel@9
|
4658 int direct_spatial_mv_pred;
|
|
nengel@9
|
4659 int map_col_to_list0[2][16];
|
|
nengel@9
|
4660 int dist_scale_factor[16];
|
|
nengel@9
|
4661 int cabac_init_idc;
|
|
nengel@9
|
4662 int nal_ref_idc;
|
|
nengel@9
|
4663 int nal_unit_type;
|
|
nengel@9
|
4664 int ref2frm[2][64];
|
|
nengel@9
|
4665 int qscale;
|
|
nengel@9
|
4666 } H264Slice;
|
|
nengel@9
|
4667 typedef struct
|
|
nengel@9
|
4668 {
|
|
nengel@9
|
4669 H264Slice slice;
|
|
nengel@9
|
4670 H264Mb *mbs;
|
|
nengel@9
|
4671 DecodedPicture *dp;
|
|
nengel@9
|
4672 GetBitContext gb;
|
|
nengel@9
|
4673 int lines_taken;
|
|
nengel@9
|
4674 int lines_total;
|
|
nengel@9
|
4675 int state;
|
|
nengel@9
|
4676 int initialized;
|
|
nengel@9
|
4677 } SliceBufferEntry;
|
|
nengel@9
|
4678 typedef struct RingLineEntry
|
|
nengel@9
|
4679 {
|
|
nengel@9
|
4680 union
|
|
nengel@9
|
4681 {
|
|
nengel@9
|
4682 volatile int32_t __attribute__((aligned(64))) mb_cnt;
|
|
nengel@9
|
4683 int32_t __attribute__((aligned(64))) pad[16];
|
|
nengel@9
|
4684 };
|
|
nengel@9
|
4685 SliceBufferEntry *sbe;
|
|
nengel@9
|
4686 int id;
|
|
nengel@9
|
4687 int line;
|
|
nengel@9
|
4688 TopBorder *top;
|
|
nengel@9
|
4689 struct RingLineEntry *prev_line;
|
|
nengel@9
|
4690 } RingLineEntry;
|
|
nengel@9
|
4691 typedef struct SuperMBTask
|
|
nengel@9
|
4692 {
|
|
nengel@9
|
4693 int smb_x;
|
|
nengel@9
|
4694 int smb_y;
|
|
nengel@9
|
4695 } SuperMBTask;
|
|
nengel@9
|
4696 typedef struct SuperMBContext
|
|
nengel@9
|
4697 {
|
|
nengel@9
|
4698 int nsmb_width;
|
|
nengel@9
|
4699 int nsmb_height;
|
|
nengel@9
|
4700 int nsmb_3dheight;
|
|
nengel@9
|
4701 int smb_width;
|
|
nengel@9
|
4702 int smb_height;
|
|
nengel@9
|
4703 int refcount;
|
|
nengel@9
|
4704 int index;
|
|
nengel@9
|
4705 SuperMBTask *smbs[2];
|
|
nengel@9
|
4706 } SuperMBContext;
|
|
nengel@9
|
4707 typedef struct MBRecState
|
|
nengel@9
|
4708 {
|
|
nengel@9
|
4709 int8_t *ref_index_top[2];
|
|
nengel@9
|
4710 int8_t *ref_index[2];
|
|
nengel@9
|
4711 int16_t (*motion_val_top[2])[2];
|
|
nengel@9
|
4712 int16_t (*motion_val[2])[2];
|
|
nengel@9
|
4713 uint32_t *mb_type_top;
|
|
nengel@9
|
4714 uint32_t *mb_type;
|
|
nengel@9
|
4715 int8_t *list1_ref_index[2];
|
|
nengel@9
|
4716 int16_t (*list1_motion_val[2])[2];
|
|
nengel@9
|
4717 uint32_t *list1_mb_type;
|
|
nengel@9
|
4718 int8_t *intra4x4_pred_mode_top;
|
|
nengel@9
|
4719 int8_t *intra4x4_pred_mode;
|
|
nengel@9
|
4720 int8_t *non_zero_count_top;
|
|
nengel@9
|
4721 int8_t *non_zero_count;
|
|
nengel@9
|
4722 unsigned int topleft_samples_available;
|
|
nengel@9
|
4723 unsigned int topright_samples_available;
|
|
nengel@9
|
4724 unsigned int top_samples_available;
|
|
nengel@9
|
4725 unsigned int left_samples_available;
|
|
nengel@9
|
4726 int top_type;
|
|
nengel@9
|
4727 int left_type;
|
|
nengel@9
|
4728 int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8];
|
|
nengel@9
|
4729 int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2];
|
|
nengel@9
|
4730 int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8];
|
|
nengel@9
|
4731 uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8];
|
|
nengel@9
|
4732 uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2];
|
|
nengel@9
|
4733 int16_t __attribute__((aligned(8))) bS[2][4][4];
|
|
nengel@9
|
4734 uint8_t edges[2];
|
|
nengel@9
|
4735 } MBRecState;
|
|
nengel@9
|
4736 typedef struct MBRecContext
|
|
nengel@9
|
4737 {
|
|
nengel@9
|
4738 DSPContext dsp;
|
|
nengel@9
|
4739 H264DSPContext hdsp;
|
|
nengel@9
|
4740 H264PredContext hpc;
|
|
nengel@9
|
4741 MBRecState *mrs;
|
|
nengel@9
|
4742 RingLineEntry *rle;
|
|
nengel@9
|
4743 uint8_t *scratchpad_y;
|
|
nengel@9
|
4744 uint8_t *scratchpad_cb;
|
|
nengel@9
|
4745 uint8_t *scratchpad_cr;
|
|
nengel@9
|
4746 int linesize;
|
|
nengel@9
|
4747 int uvlinesize;
|
|
nengel@9
|
4748 int mb_width;
|
|
nengel@9
|
4749 int mb_height;
|
|
nengel@9
|
4750 int mb_stride;
|
|
nengel@9
|
4751 int b_stride;
|
|
nengel@9
|
4752 int width;
|
|
nengel@9
|
4753 int height;
|
|
nengel@9
|
4754 int block_offset[16 + 8];
|
|
nengel@9
|
4755 } MBRecContext;
|
|
nengel@9
|
4756 typedef struct OutputContext
|
|
nengel@9
|
4757 {
|
|
nengel@9
|
4758 int bit_buffer_size;
|
|
nengel@9
|
4759 uint8_t *bit_buffer;
|
|
nengel@9
|
4760 uint64_t video_size;
|
|
nengel@9
|
4761 int frame_number;
|
|
nengel@9
|
4762 DecodedPicture *delayed_pic[33];
|
|
nengel@9
|
4763 int dp_cnt;
|
|
nengel@9
|
4764 } OutputContext;
|
|
nengel@9
|
4765 typedef struct
|
|
nengel@9
|
4766 {
|
|
nengel@9
|
4767 pthread_mutex_t lock;
|
|
nengel@9
|
4768 pthread_cond_t cond;
|
|
nengel@9
|
4769 SliceBufferEntry **queue;
|
|
nengel@9
|
4770 int size;
|
|
nengel@9
|
4771 int cnt;
|
|
nengel@9
|
4772 int fi;
|
|
nengel@9
|
4773 int fo;
|
|
nengel@9
|
4774 } SliceBufferQueue;
|
|
nengel@9
|
4775 typedef struct
|
|
nengel@9
|
4776 {
|
|
nengel@9
|
4777 pthread_mutex_t wslock;
|
|
nengel@9
|
4778 pthread_cond_t wscond;
|
|
nengel@9
|
4779 pthread_mutex_t swlock;
|
|
nengel@9
|
4780 pthread_cond_t swcond;
|
|
nengel@9
|
4781 RingLineEntry **queue;
|
|
nengel@9
|
4782 int size;
|
|
nengel@9
|
4783 int ready;
|
|
nengel@9
|
4784 int free;
|
|
nengel@9
|
4785 int fi;
|
|
nengel@9
|
4786 int fo;
|
|
nengel@9
|
4787 } RingLineQueue;
|
|
nengel@9
|
4788 typedef struct H264Context
|
|
nengel@9
|
4789 {
|
|
nengel@9
|
4790 SliceBufferQueue sb_q[STAGES];
|
|
nengel@9
|
4791 RingLineQueue rl_q;
|
|
nengel@9
|
4792 pthread_mutex_t lock[STAGES];
|
|
nengel@9
|
4793 pthread_cond_t cond[STAGES];
|
|
nengel@9
|
4794 pthread_mutex_t task_lock;
|
|
nengel@9
|
4795 pthread_cond_t task_cond;
|
|
nengel@9
|
4796 pthread_attr_t ed_rec_attr[80];
|
|
nengel@9
|
4797 pthread_t ed_rec_thr[80];
|
|
nengel@9
|
4798 int init_threads;
|
|
nengel@9
|
4799 pthread_mutex_t ilock;
|
|
nengel@9
|
4800 pthread_cond_t icond;
|
|
nengel@9
|
4801 const char *file_name;
|
|
nengel@9
|
4802 int profile;
|
|
nengel@9
|
4803 int start;
|
|
nengel@9
|
4804 int touch_start;
|
|
nengel@9
|
4805 int setaff;
|
|
nengel@9
|
4806 int touch_done;
|
|
nengel@9
|
4807 int rl_side_touch;
|
|
nengel@9
|
4808 int statmbd;
|
|
nengel@9
|
4809 pthread_mutex_t slock;
|
|
nengel@9
|
4810 pthread_cond_t scond;
|
|
nengel@9
|
4811 pthread_mutex_t tlock;
|
|
nengel@9
|
4812 pthread_cond_t tcond;
|
|
nengel@9
|
4813 pthread_mutex_t tdlock;
|
|
nengel@9
|
4814 pthread_cond_t tdcond;
|
|
nengel@9
|
4815 int ed_ppe_threads;
|
|
nengel@9
|
4816 int threads;
|
|
nengel@9
|
4817 int smt;
|
|
nengel@9
|
4818 int acdpb_cnt;
|
|
nengel@9
|
4819 int reldpb_cnt;
|
|
nengel@9
|
4820 int sb_size;
|
|
nengel@9
|
4821 SliceBufferEntry *sb;
|
|
nengel@9
|
4822 int free_sb_cnt;
|
|
nengel@9
|
4823 int slice_bufs;
|
|
nengel@9
|
4824 int max_dpb_cnt;
|
|
nengel@9
|
4825 DecodedPicture *dpb;
|
|
nengel@9
|
4826 int free_dpb_cnt;
|
|
nengel@9
|
4827 int ifile;
|
|
nengel@9
|
4828 int ofile;
|
|
nengel@9
|
4829 int frame_width;
|
|
nengel@9
|
4830 int frame_height;
|
|
nengel@9
|
4831 int num_frames;
|
|
nengel@9
|
4832 int width;
|
|
nengel@9
|
4833 int height;
|
|
nengel@9
|
4834 int mb_width;
|
|
nengel@9
|
4835 int mb_height;
|
|
nengel@9
|
4836 int mb_stride;
|
|
nengel@9
|
4837 int b4_stride;
|
|
nengel@9
|
4838 int b_stride;
|
|
nengel@9
|
4839 int smb_height;
|
|
nengel@9
|
4840 int smb_width;
|
|
nengel@9
|
4841 pthread_mutex_t smb_lock;
|
|
nengel@9
|
4842 pthread_cond_t sdl_cond;
|
|
nengel@9
|
4843 pthread_mutex_t sdl_lock;
|
|
nengel@9
|
4844 SuperMBContext *smbc;
|
|
nengel@9
|
4845 int wave_order;
|
|
nengel@9
|
4846 int static_3d;
|
|
nengel@9
|
4847 int pipe_bufs;
|
|
nengel@9
|
4848 uint8_t zigzag_scan[16];
|
|
nengel@9
|
4849 uint8_t zigzag_scan8x8[64];
|
|
nengel@9
|
4850 int verbose;
|
|
nengel@9
|
4851 int no_mbd;
|
|
nengel@9
|
4852 int display;
|
|
nengel@9
|
4853 int fullscreen;
|
|
nengel@9
|
4854 int quit;
|
|
nengel@9
|
4855 struct timespec start_time[PROFILE_STAGES];
|
|
nengel@9
|
4856 struct timespec end_time[PROFILE_STAGES];
|
|
nengel@9
|
4857 double last_time[PROFILE_STAGES];
|
|
nengel@9
|
4858 double total_time[PROFILE_STAGES];
|
|
nengel@9
|
4859 } H264Context;
|
|
nengel@9
|
4860 void av_read_frame_internal(ParserContext *pc, GetBitContext *gb);
|
|
nengel@9
|
4861 ParserContext *get_parse_context(int ifile);
|
|
nengel@9
|
4862 void free_parse_context(ParserContext *pc);
|
|
nengel@9
|
4863 int decode_nal_units(NalContext *n, H264Slice *s, GetBitContext *gb);
|
|
nengel@9
|
4864 NalContext *get_nal_context(int width, int height);
|
|
nengel@9
|
4865 void free_nal_context(NalContext *nc);
|
|
nengel@9
|
4866 int ff_h264_decode_mb_cabac(EntropyContext *ec, H264Slice *s, CABACContext *c);
|
|
nengel@9
|
4867 void ff_h264_init_cabac_states(EntropyContext *ec, H264Slice *s, CABACContext *c);
|
|
nengel@9
|
4868 int init_entropy_buf(EntropyContext *ec, H264Slice *s, int line);
|
|
nengel@9
|
4869 EntropyContext *get_entropy_context(H264Context *h);
|
|
nengel@9
|
4870 void init_dequant_tables(H264Slice *s, EntropyContext *ec);
|
|
nengel@9
|
4871 void free_entropy_context(EntropyContext *ec);
|
|
nengel@9
|
4872 MBRecContext *get_mbrec_context(H264Context *h);
|
|
nengel@9
|
4873 void free_mbrec_context(MBRecContext *d);
|
|
nengel@9
|
4874 void h264_decode_mb_internal(MBRecContext *d, MBRecState *mrs, H264Slice *s, H264Mb *m);
|
|
nengel@9
|
4875 void init_mbrec_context(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int line);
|
|
nengel@9
|
4876 void ff_h264_pred_direct_motion_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int *mb_type);
|
|
nengel@9
|
4877 int pred_motion_mb_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, H264Mb *m);
|
|
nengel@9
|
4878 void start_timer(H264Context *h, int stage);
|
|
nengel@9
|
4879 void stop_timer(H264Context *h, int stage);
|
|
nengel@9
|
4880 void init_sb_entry(H264Context *h, SliceBufferEntry *sbe);
|
|
nengel@9
|
4881 void free_sb_entry(SliceBufferEntry *sb);
|
|
nengel@9
|
4882 SliceBufferEntry *get_sb_entry(H264Context *h);
|
|
nengel@9
|
4883 void release_sb_entry(H264Context *h, SliceBufferEntry *sb);
|
|
nengel@9
|
4884 DecodedPicture *get_dpb_entry(H264Context *h, H264Slice *s);
|
|
nengel@9
|
4885 void release_dpb_entry(H264Context *h, DecodedPicture *pic, int mode);
|
|
nengel@9
|
4886 void draw_edges(MBRecContext *d, H264Slice *s, int line);
|
|
nengel@9
|
4887 int ff_init_slice(NalContext *n, H264Slice *s);
|
|
nengel@9
|
4888 void free_picture(PictureInfo *pic);
|
|
nengel@9
|
4889 void free_dp(DecodedPicture *pic);
|
|
nengel@9
|
4890 void av_start_timer();
|
|
nengel@9
|
4891 int copyEDtoH264Slice(H264Slice *ms, H264Slice *es);
|
|
nengel@9
|
4892 void print_report(int frame_number, uint64_t video_size, int is_last_report, int verbose);
|
|
nengel@9
|
4893 int ff_alloc_picture_info(NalContext *n, H264Slice *s, PictureInfo *pic);
|
|
nengel@9
|
4894 DecodedPicture *output_frame(H264Context *h, OutputContext *oc, DecodedPicture *pic, int fd, int frame_width, int frame_height);
|
|
nengel@9
|
4895 OutputContext *get_output_context(H264Context *h);
|
|
nengel@9
|
4896 void free_output_context(OutputContext *oc);
|
|
nengel@9
|
4897 void freeSuperMBContext(SuperMBContext *smbc);
|
|
nengel@9
|
4898 SuperMBContext *getSuperMBContext(H264Context *h, int smb_width, int smb_height);
|
|
nengel@9
|
4899 void release_smbc(H264Context *h, SuperMBContext *smbc);
|
|
nengel@9
|
4900 SuperMBContext *acquire_smbc(H264Context *h);
|
|
nengel@9
|
4901 static inline int get_chroma_qp(H264Slice *s, int t, int qscale)
|
|
nengel@9
|
4902 {
|
|
nengel@9
|
4903 return s->pps.chroma_qp_table[t][qscale];
|
|
nengel@9
|
4904 }
|
|
nengel@9
|
4905 static void parse_task(H264Context *h, ParserContext *pc, NalContext *nc, SliceBufferEntry *sbe)
|
|
nengel@9
|
4906 {
|
|
nengel@9
|
4907 H264Slice *s;
|
|
nengel@9
|
4908 if (!sbe->initialized)
|
|
nengel@9
|
4909 {
|
|
nengel@9
|
4910 init_sb_entry(h, sbe);
|
|
nengel@9
|
4911 sbe->lines_total = h->mb_height;
|
|
nengel@9
|
4912 }
|
|
nengel@9
|
4913 av_read_frame_internal(pc, &sbe->gb);
|
|
nengel@9
|
4914 s = &sbe->slice;
|
|
nengel@9
|
4915 decode_nal_units(nc, s, &sbe->gb);
|
|
nengel@9
|
4916 }
|
|
nengel@9
|
4917 static void decode_slice_entropy_task(H264Context *h, EntropyContext *ec, SliceBufferEntry *sbe)
|
|
nengel@9
|
4918 {
|
|
nengel@9
|
4919 int i, j;
|
|
nengel@9
|
4920 H264Slice *s = &sbe->slice;
|
|
nengel@9
|
4921 GetBitContext *gb = &sbe->gb;
|
|
nengel@9
|
4922 H264Mb *mbs = sbe->mbs;
|
|
nengel@9
|
4923 CABACContext *c = &ec->c;
|
|
nengel@9
|
4924 if (!s->pps.cabac)
|
|
nengel@9
|
4925 {
|
|
nengel@9
|
4926 av_log(16, "Only cabac encoded streams are supported\n");
|
|
nengel@9
|
4927 return;
|
|
nengel@9
|
4928 }
|
|
nengel@9
|
4929 init_dequant_tables(s, ec);
|
|
nengel@9
|
4930 ec->curr_qscale = s->qscale;
|
|
nengel@9
|
4931 ec->last_qscale_diff = 0;
|
|
nengel@9
|
4932 ec->chroma_qp[0] = get_chroma_qp((H264Slice *) s, 0, s->qscale);
|
|
nengel@9
|
4933 ec->chroma_qp[1] = get_chroma_qp((H264Slice *) s, 1, s->qscale);
|
|
nengel@9
|
4934 align_get_bits(gb);
|
|
nengel@9
|
4935 ff_init_cabac_decoder(c, gb->buffer + get_bits_count(gb) / 8, (get_bits_left(gb) + 7) / 8);
|
|
nengel@9
|
4936 ff_h264_init_cabac_states(ec, s, c);
|
|
nengel@9
|
4937 for (j = 0;
|
|
nengel@9
|
4938 j < ec->mb_height;
|
|
nengel@9
|
4939 j++)
|
|
nengel@9
|
4940 {
|
|
nengel@9
|
4941 init_entropy_buf(ec, s, j);
|
|
nengel@9
|
4942 for (i = 0;
|
|
nengel@9
|
4943 i < ec->mb_width;
|
|
nengel@9
|
4944 i++)
|
|
nengel@9
|
4945 {
|
|
nengel@9
|
4946 int eos, ret;
|
|
nengel@9
|
4947 H264Mb *m = &mbs[i + j * ec->mb_width];
|
|
nengel@9
|
4948 m->mb_x = i;
|
|
nengel@9
|
4949 m->mb_y = j;
|
|
nengel@9
|
4950 ec->m = m;
|
|
nengel@9
|
4951 ret = ff_h264_decode_mb_cabac(ec, s, c);
|
|
nengel@9
|
4952 eos = get_cabac_terminate(c);
|
|
nengel@9
|
4953 (void) eos;
|
|
nengel@9
|
4954 if (ret < 0 || c->bytestream > c->bytestream_end + 2)
|
|
nengel@9
|
4955 {
|
|
nengel@9
|
4956 av_log(16, "error while decoding MB %d %d, bytestream (%td)\n", m->mb_x, m->mb_y, c->bytestream_end - c->bytestream);
|
|
nengel@9
|
4957 return;
|
|
nengel@9
|
4958 }
|
|
nengel@9
|
4959 }
|
|
nengel@9
|
4960 }
|
|
nengel@9
|
4961 }
|
|
nengel@9
|
4962 static void decode_super_mb_block(MBRecContext *d, H264Slice *s, SuperMBContext *smbc, H264Mb *mbs, int smb_x, int smb_y)
|
|
nengel@9
|
4963 {
|
|
nengel@9
|
4964 MBRecState mrs;
|
|
nengel@9
|
4965 for (int k = 0, i = smb_y;
|
|
nengel@9
|
4966 i < smb_y + smbc->smb_height;
|
|
nengel@9
|
4967 i++ , k++)
|
|
nengel@9
|
4968 {
|
|
nengel@9
|
4969 init_mbrec_context(d, &mrs, s, i);
|
|
nengel@9
|
4970 for (int j = smb_x - k;
|
|
nengel@9
|
4971 j < smb_x - k + smbc->smb_width;
|
|
nengel@9
|
4972 j++)
|
|
nengel@9
|
4973 {
|
|
nengel@9
|
4974 if (i < d->mb_height && j >= 0 && j < d->mb_width)
|
|
nengel@9
|
4975 {
|
|
nengel@9
|
4976 h264_decode_mb_internal(d, &mrs, s, &mbs[i * d->mb_width + j]);
|
|
nengel@9
|
4977 }
|
|
nengel@9
|
4978 }
|
|
nengel@9
|
4979 }
|
|
nengel@9
|
4980 }
|
|
nengel@9
|
4981 static void decode_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *m)
|
|
nengel@9
|
4982 {
|
|
nengel@9
|
4983 H264Slice *s = &sbe->slice;
|
|
nengel@9
|
4984 H264Mb *mbs = sbe->mbs;
|
|
nengel@9
|
4985 decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y);
|
|
nengel@9
|
4986 }
|
|
nengel@9
|
4987 static void draw_edges_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *sm, int line)
|
|
nengel@9
|
4988 {
|
|
nengel@9
|
4989 H264Slice *s = &sbe->slice;
|
|
nengel@9
|
4990 for (int i = line * smbc->smb_height;
|
|
nengel@9
|
4991 i < (line + 1) * smbc->smb_height && i < d->mb_height;
|
|
nengel@9
|
4992 i++)
|
|
nengel@9
|
4993 draw_edges(d, s, i);
|
|
nengel@9
|
4994 }
|
|
nengel@9
|
4995 typedef struct _nx_data_env_0_t_tag
|
|
nengel@9
|
4996 {
|
|
nengel@9
|
4997 struct MBRecContext *__tmp_0_0;
|
|
nengel@9
|
4998 SliceBufferEntry *__tmp_1_0;
|
|
nengel@9
|
4999 struct SuperMBContext *__tmp_2_0;
|
|
nengel@9
|
5000 struct SuperMBTask *__tmp_3_0;
|
|
nengel@9
|
5001 struct SuperMBTask *__tmp_4_0;
|
|
nengel@9
|
5002 struct SuperMBTask *__tmp_5_0;
|
|
nengel@9
|
5003 } _nx_data_env_0_t;
|
|
nengel@9
|
5004 static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe);
|
|
nengel@9
|
5005 static void _smp__ol_decode_mb_in_slice_0(_nx_data_env_0_t *const __restrict__ _args)
|
|
nengel@9
|
5006 {
|
|
nengel@9
|
5007 struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
5008 SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
5009 struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
5010 struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
5011 struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
5012 struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0;
|
|
nengel@9
|
5013 /* Translation is done by the runtime */
|
|
nengel@9
|
5014 {
|
|
nengel@9
|
5015 decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
|
|
nengel@9
|
5016 }
|
|
nengel@9
|
5017 }
|
|
nengel@9
|
5018 typedef struct _nx_data_env_1_t_tag
|
|
nengel@9
|
5019 {
|
|
nengel@9
|
5020 struct MBRecContext *__tmp_0_0;
|
|
nengel@9
|
5021 SliceBufferEntry *__tmp_1_0;
|
|
nengel@9
|
5022 struct SuperMBContext *__tmp_2_0;
|
|
nengel@9
|
5023 struct SuperMBTask *__tmp_3_0;
|
|
nengel@9
|
5024 int __tmp_4_0;
|
|
nengel@9
|
5025 } _nx_data_env_1_t;
|
|
nengel@9
|
5026 static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe);
|
|
nengel@9
|
5027 static void _smp__ol_decode_mb_in_slice_1(_nx_data_env_1_t *const __restrict__ _args)
|
|
nengel@9
|
5028 {
|
|
nengel@9
|
5029 struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
5030 SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
5031 struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
5032 struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
5033 int ___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
5034 /* Translation is done by the runtime */
|
|
nengel@9
|
5035 {
|
|
nengel@9
|
5036 draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0));
|
|
nengel@9
|
5037 }
|
|
nengel@9
|
5038 }
|
|
nengel@9
|
5039 static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe)
|
|
nengel@9
|
5040 {
|
|
nengel@9
|
5041 int i, j;
|
|
nengel@9
|
5042 SuperMBContext *smbc = acquire_smbc(h);
|
|
nengel@9
|
5043 int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width;
|
|
nengel@9
|
5044 SuperMBTask *smbs = smbc->smbs[0];
|
|
nengel@9
|
5045 SuperMBTask *sm = ((void *) 0), *sml, *smur;
|
|
nengel@9
|
5046 for (j = 0;
|
|
nengel@9
|
5047 j < smb_height;
|
|
nengel@9
|
5048 j++)
|
|
nengel@9
|
5049 {
|
|
nengel@9
|
5050 for (i = 0;
|
|
nengel@9
|
5051 i < smb_width;
|
|
nengel@9
|
5052 i++)
|
|
nengel@9
|
5053 {
|
|
nengel@9
|
5054 sm = smbs + j * smb_width + i;
|
|
nengel@9
|
5055 sml = sm - ((i > 0) ? 1 : 0);
|
|
nengel@9
|
5056 smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0);
|
|
nengel@9
|
5057 {
|
|
nengel@9
|
5058 struct MBRecContext *__tmp_0 = d;
|
|
nengel@9
|
5059 SliceBufferEntry *__tmp_1 = sbe;
|
|
nengel@9
|
5060 struct SuperMBContext *__tmp_2 = smbc;
|
|
nengel@9
|
5061 struct SuperMBTask *__tmp_3 = sml;
|
|
nengel@9
|
5062 struct SuperMBTask *__tmp_4 = smur;
|
|
nengel@9
|
5063 struct SuperMBTask *__tmp_5 = sm;
|
|
nengel@9
|
5064 {
|
|
nengel@9
|
5065 /* SMP device descriptor */
|
|
nengel@9
|
5066 static nanos_smp_args_t _ol_decode_mb_in_slice_0_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_0};
|
|
nengel@9
|
5067 _nx_data_env_0_t *ol_args = (_nx_data_env_0_t *) 0;
|
|
nengel@9
|
5068 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
5069 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
5070 {
|
|
nengel@9
|
5071 nanos_const_wd_definition_t base;
|
|
nengel@9
|
5072 nanos_device_t devices[1];
|
|
nengel@9
|
5073 };
|
|
nengel@9
|
5074 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
5075 {
|
|
nengel@9
|
5076 {
|
|
nengel@9
|
5077 0,
|
|
nengel@9
|
5078 1,
|
|
nengel@9
|
5079 0,
|
|
nengel@9
|
5080 0,
|
|
nengel@9
|
5081 0,
|
|
nengel@9
|
5082 0,
|
|
nengel@9
|
5083 0,
|
|
nengel@9
|
5084 0
|
|
nengel@9
|
5085 },
|
|
nengel@9
|
5086 __alignof__(_nx_data_env_0_t),
|
|
nengel@9
|
5087 0,
|
|
nengel@9
|
5088 1
|
|
nengel@9
|
5089 },
|
|
nengel@9
|
5090 {{
|
|
nengel@9
|
5091 nanos_smp_factory,
|
|
nengel@9
|
5092 &_ol_decode_mb_in_slice_0_smp_args
|
|
nengel@9
|
5093 }}
|
|
nengel@9
|
5094 };
|
|
nengel@9
|
5095 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
5096 nanos_err_t err;
|
|
nengel@9
|
5097 dyn_props.priority = 0;
|
|
nengel@9
|
5098 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);
|
|
nengel@9
|
5099 if (err != NANOS_OK)
|
|
nengel@9
|
5100 nanos_handle_error(err);
|
|
nengel@9
|
5101 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
5102 {
|
|
nengel@9
|
5103 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5104 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5105 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5106 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5107 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5108 ol_args->__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
5109 nanos_dependence_t _dependences[5] = {
|
|
nengel@9
|
5110 {
|
|
nengel@9
|
5111 (void **) &ol_args->__tmp_0_0,
|
|
nengel@9
|
5112 ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
|
|
nengel@9
|
5113 {
|
|
nengel@9
|
5114 1,
|
|
nengel@9
|
5115 0,
|
|
nengel@9
|
5116 1,
|
|
nengel@9
|
5117 0
|
|
nengel@9
|
5118 },
|
|
nengel@9
|
5119 sizeof(struct MBRecContext)
|
|
nengel@9
|
5120 },
|
|
nengel@9
|
5121 {
|
|
nengel@9
|
5122 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
5123 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
5124 {
|
|
nengel@9
|
5125 1,
|
|
nengel@9
|
5126 0,
|
|
nengel@9
|
5127 1,
|
|
nengel@9
|
5128 0
|
|
nengel@9
|
5129 },
|
|
nengel@9
|
5130 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5131 },
|
|
nengel@9
|
5132 {
|
|
nengel@9
|
5133 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
5134 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
5135 {
|
|
nengel@9
|
5136 1,
|
|
nengel@9
|
5137 0,
|
|
nengel@9
|
5138 1,
|
|
nengel@9
|
5139 0
|
|
nengel@9
|
5140 },
|
|
nengel@9
|
5141 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5142 },
|
|
nengel@9
|
5143 {
|
|
nengel@9
|
5144 (void **) &ol_args->__tmp_4_0,
|
|
nengel@9
|
5145 ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
|
|
nengel@9
|
5146 {
|
|
nengel@9
|
5147 1,
|
|
nengel@9
|
5148 0,
|
|
nengel@9
|
5149 1,
|
|
nengel@9
|
5150 0
|
|
nengel@9
|
5151 },
|
|
nengel@9
|
5152 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5153 },
|
|
nengel@9
|
5154 {
|
|
nengel@9
|
5155 (void **) &ol_args->__tmp_5_0,
|
|
nengel@9
|
5156 ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
|
|
nengel@9
|
5157 {
|
|
nengel@9
|
5158 1,
|
|
nengel@9
|
5159 1,
|
|
nengel@9
|
5160 1,
|
|
nengel@9
|
5161 0
|
|
nengel@9
|
5162 },
|
|
nengel@9
|
5163 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5164 }
|
|
nengel@9
|
5165 };
|
|
nengel@9
|
5166 err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
5167 if (err != NANOS_OK)
|
|
nengel@9
|
5168 nanos_handle_error(err);
|
|
nengel@9
|
5169 }
|
|
nengel@9
|
5170 else
|
|
nengel@9
|
5171 {
|
|
nengel@9
|
5172 _nx_data_env_0_t imm_args;
|
|
nengel@9
|
5173 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5174 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5175 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5176 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5177 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5178 imm_args.__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
5179 nanos_dependence_t _dependences[5] = {
|
|
nengel@9
|
5180 {
|
|
nengel@9
|
5181 (void **) &imm_args.__tmp_0_0,
|
|
nengel@9
|
5182 ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
|
|
nengel@9
|
5183 {
|
|
nengel@9
|
5184 1,
|
|
nengel@9
|
5185 0,
|
|
nengel@9
|
5186 1,
|
|
nengel@9
|
5187 0
|
|
nengel@9
|
5188 },
|
|
nengel@9
|
5189 sizeof(struct MBRecContext)
|
|
nengel@9
|
5190 },
|
|
nengel@9
|
5191 {
|
|
nengel@9
|
5192 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
5193 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
5194 {
|
|
nengel@9
|
5195 1,
|
|
nengel@9
|
5196 0,
|
|
nengel@9
|
5197 1,
|
|
nengel@9
|
5198 0
|
|
nengel@9
|
5199 },
|
|
nengel@9
|
5200 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5201 },
|
|
nengel@9
|
5202 {
|
|
nengel@9
|
5203 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
5204 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
5205 {
|
|
nengel@9
|
5206 1,
|
|
nengel@9
|
5207 0,
|
|
nengel@9
|
5208 1,
|
|
nengel@9
|
5209 0
|
|
nengel@9
|
5210 },
|
|
nengel@9
|
5211 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5212 },
|
|
nengel@9
|
5213 {
|
|
nengel@9
|
5214 (void **) &imm_args.__tmp_4_0,
|
|
nengel@9
|
5215 ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
|
|
nengel@9
|
5216 {
|
|
nengel@9
|
5217 1,
|
|
nengel@9
|
5218 0,
|
|
nengel@9
|
5219 1,
|
|
nengel@9
|
5220 0
|
|
nengel@9
|
5221 },
|
|
nengel@9
|
5222 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5223 },
|
|
nengel@9
|
5224 {
|
|
nengel@9
|
5225 (void **) &imm_args.__tmp_5_0,
|
|
nengel@9
|
5226 ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
|
|
nengel@9
|
5227 {
|
|
nengel@9
|
5228 1,
|
|
nengel@9
|
5229 1,
|
|
nengel@9
|
5230 1,
|
|
nengel@9
|
5231 0
|
|
nengel@9
|
5232 },
|
|
nengel@9
|
5233 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5234 }
|
|
nengel@9
|
5235 };
|
|
nengel@9
|
5236 dyn_props.priority = 0;
|
|
nengel@9
|
5237 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);
|
|
nengel@9
|
5238 if (err != NANOS_OK)
|
|
nengel@9
|
5239 nanos_handle_error(err);
|
|
nengel@9
|
5240 }
|
|
nengel@9
|
5241 }
|
|
nengel@9
|
5242 ;
|
|
nengel@9
|
5243 }
|
|
nengel@9
|
5244 }
|
|
nengel@9
|
5245 {
|
|
nengel@9
|
5246 struct MBRecContext *__tmp_0 = d;
|
|
nengel@9
|
5247 SliceBufferEntry *__tmp_1 = sbe;
|
|
nengel@9
|
5248 struct SuperMBContext *__tmp_2 = smbc;
|
|
nengel@9
|
5249 struct SuperMBTask *__tmp_3 = sm;
|
|
nengel@9
|
5250 int __tmp_4 = j;
|
|
nengel@9
|
5251 {
|
|
nengel@9
|
5252 /* SMP device descriptor */
|
|
nengel@9
|
5253 static nanos_smp_args_t _ol_decode_mb_in_slice_1_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_1};
|
|
nengel@9
|
5254 _nx_data_env_1_t *ol_args = (_nx_data_env_1_t *) 0;
|
|
nengel@9
|
5255 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
5256 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
5257 {
|
|
nengel@9
|
5258 nanos_const_wd_definition_t base;
|
|
nengel@9
|
5259 nanos_device_t devices[1];
|
|
nengel@9
|
5260 };
|
|
nengel@9
|
5261 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
5262 {
|
|
nengel@9
|
5263 {
|
|
nengel@9
|
5264 0,
|
|
nengel@9
|
5265 1,
|
|
nengel@9
|
5266 0,
|
|
nengel@9
|
5267 0,
|
|
nengel@9
|
5268 0,
|
|
nengel@9
|
5269 0,
|
|
nengel@9
|
5270 0,
|
|
nengel@9
|
5271 0
|
|
nengel@9
|
5272 },
|
|
nengel@9
|
5273 __alignof__(_nx_data_env_1_t),
|
|
nengel@9
|
5274 0,
|
|
nengel@9
|
5275 1
|
|
nengel@9
|
5276 },
|
|
nengel@9
|
5277 {{
|
|
nengel@9
|
5278 nanos_smp_factory,
|
|
nengel@9
|
5279 &_ol_decode_mb_in_slice_1_smp_args
|
|
nengel@9
|
5280 }}
|
|
nengel@9
|
5281 };
|
|
nengel@9
|
5282 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
5283 nanos_err_t err;
|
|
nengel@9
|
5284 dyn_props.priority = 0;
|
|
nengel@9
|
5285 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);
|
|
nengel@9
|
5286 if (err != NANOS_OK)
|
|
nengel@9
|
5287 nanos_handle_error(err);
|
|
nengel@9
|
5288 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
5289 {
|
|
nengel@9
|
5290 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5291 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5292 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5293 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5294 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5295 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
5296 {
|
|
nengel@9
|
5297 (void **) &ol_args->__tmp_0_0,
|
|
nengel@9
|
5298 ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
|
|
nengel@9
|
5299 {
|
|
nengel@9
|
5300 1,
|
|
nengel@9
|
5301 0,
|
|
nengel@9
|
5302 1,
|
|
nengel@9
|
5303 0
|
|
nengel@9
|
5304 },
|
|
nengel@9
|
5305 sizeof(struct MBRecContext)
|
|
nengel@9
|
5306 },
|
|
nengel@9
|
5307 {
|
|
nengel@9
|
5308 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
5309 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
5310 {
|
|
nengel@9
|
5311 1,
|
|
nengel@9
|
5312 0,
|
|
nengel@9
|
5313 1,
|
|
nengel@9
|
5314 0
|
|
nengel@9
|
5315 },
|
|
nengel@9
|
5316 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5317 },
|
|
nengel@9
|
5318 {
|
|
nengel@9
|
5319 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
5320 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
5321 {
|
|
nengel@9
|
5322 1,
|
|
nengel@9
|
5323 1,
|
|
nengel@9
|
5324 1,
|
|
nengel@9
|
5325 0
|
|
nengel@9
|
5326 },
|
|
nengel@9
|
5327 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5328 }
|
|
nengel@9
|
5329 };
|
|
nengel@9
|
5330 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
5331 if (err != NANOS_OK)
|
|
nengel@9
|
5332 nanos_handle_error(err);
|
|
nengel@9
|
5333 }
|
|
nengel@9
|
5334 else
|
|
nengel@9
|
5335 {
|
|
nengel@9
|
5336 _nx_data_env_1_t imm_args;
|
|
nengel@9
|
5337 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5338 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5339 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5340 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5341 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5342 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
5343 {
|
|
nengel@9
|
5344 (void **) &imm_args.__tmp_0_0,
|
|
nengel@9
|
5345 ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
|
|
nengel@9
|
5346 {
|
|
nengel@9
|
5347 1,
|
|
nengel@9
|
5348 0,
|
|
nengel@9
|
5349 1,
|
|
nengel@9
|
5350 0
|
|
nengel@9
|
5351 },
|
|
nengel@9
|
5352 sizeof(struct MBRecContext)
|
|
nengel@9
|
5353 },
|
|
nengel@9
|
5354 {
|
|
nengel@9
|
5355 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
5356 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
5357 {
|
|
nengel@9
|
5358 1,
|
|
nengel@9
|
5359 0,
|
|
nengel@9
|
5360 1,
|
|
nengel@9
|
5361 0
|
|
nengel@9
|
5362 },
|
|
nengel@9
|
5363 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5364 },
|
|
nengel@9
|
5365 {
|
|
nengel@9
|
5366 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
5367 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
5368 {
|
|
nengel@9
|
5369 1,
|
|
nengel@9
|
5370 1,
|
|
nengel@9
|
5371 1,
|
|
nengel@9
|
5372 0
|
|
nengel@9
|
5373 },
|
|
nengel@9
|
5374 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5375 }
|
|
nengel@9
|
5376 };
|
|
nengel@9
|
5377 dyn_props.priority = 0;
|
|
nengel@9
|
5378 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);
|
|
nengel@9
|
5379 if (err != NANOS_OK)
|
|
nengel@9
|
5380 nanos_handle_error(err);
|
|
nengel@9
|
5381 }
|
|
nengel@9
|
5382 }
|
|
nengel@9
|
5383 ;
|
|
nengel@9
|
5384 }
|
|
nengel@9
|
5385 }
|
|
nengel@9
|
5386 {
|
|
nengel@9
|
5387 struct _dependence_holder
|
|
nengel@9
|
5388 {
|
|
nengel@9
|
5389 struct SuperMBTask *dep_0;
|
|
nengel@9
|
5390 } _dep_holder = {&(*sm)};
|
|
nengel@9
|
5391 nanos_dependence_t _wait_dependences[1] = {{
|
|
nengel@9
|
5392 (void **) &_dep_holder.dep_0,
|
|
nengel@9
|
5393 ((char *) ((sm)) - (char *) _dep_holder.dep_0),
|
|
nengel@9
|
5394 {
|
|
nengel@9
|
5395 1,
|
|
nengel@9
|
5396 0,
|
|
nengel@9
|
5397 0,
|
|
nengel@9
|
5398 0
|
|
nengel@9
|
5399 },
|
|
nengel@9
|
5400 sizeof (*sm)
|
|
nengel@9
|
5401 }};
|
|
nengel@9
|
5402 nanos_wait_on(1, _wait_dependences);
|
|
nengel@9
|
5403 }
|
|
nengel@9
|
5404 release_smbc(h, smbc);
|
|
nengel@9
|
5405 }
|
|
nengel@9
|
5406 __attribute__((weak)) nanos_lock_t _nx_u_dpb_critical_lock = {NANOS_LOCK_FREE};
|
|
nengel@9
|
5407 static void decode_slice_mb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe)
|
|
nengel@9
|
5408 {
|
|
nengel@9
|
5409 H264Slice *s = &sbe->slice;
|
|
nengel@9
|
5410 for (int i = 0;
|
|
nengel@9
|
5411 i < 2;
|
|
nengel@9
|
5412 i++)
|
|
nengel@9
|
5413 {
|
|
nengel@9
|
5414 for (int j = 0;
|
|
nengel@9
|
5415 j < s->ref_count[i];
|
|
nengel@9
|
5416 j++)
|
|
nengel@9
|
5417 {
|
|
nengel@9
|
5418 if (s->ref_list_cpn[i][j] == - 1)
|
|
nengel@9
|
5419 continue;
|
|
nengel@9
|
5420 int k;
|
|
nengel@9
|
5421 for (k = 0;
|
|
nengel@9
|
5422 k < h->max_dpb_cnt;
|
|
nengel@9
|
5423 k++)
|
|
nengel@9
|
5424 {
|
|
nengel@9
|
5425 if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j])
|
|
nengel@9
|
5426 {
|
|
nengel@9
|
5427 s->dp_ref_list[i][j] = &h->dpb[k];
|
|
nengel@9
|
5428 break;
|
|
nengel@9
|
5429 }
|
|
nengel@9
|
5430 }
|
|
nengel@9
|
5431 }
|
|
nengel@9
|
5432 }
|
|
nengel@9
|
5433 {
|
|
nengel@9
|
5434 nanos_set_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
5435 get_dpb_entry(h, s);
|
|
nengel@9
|
5436 nanos_unset_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
5437 }
|
|
nengel@9
|
5438 if (!h->no_mbd)
|
|
nengel@9
|
5439 {
|
|
nengel@9
|
5440 decode_mb_in_slice(h, d, sbe);
|
|
nengel@9
|
5441 }
|
|
nengel@9
|
5442 for (int i = 0;
|
|
nengel@9
|
5443 i < s->release_cnt;
|
|
nengel@9
|
5444 i++)
|
|
nengel@9
|
5445 {
|
|
nengel@9
|
5446 for (int j = 0;
|
|
nengel@9
|
5447 j < h->max_dpb_cnt;
|
|
nengel@9
|
5448 j++)
|
|
nengel@9
|
5449 {
|
|
nengel@9
|
5450 if (h->dpb[j].cpn == s->release_ref_cpn[i])
|
|
nengel@9
|
5451 {
|
|
nengel@9
|
5452 {
|
|
nengel@9
|
5453 nanos_set_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
5454 release_dpb_entry(h, &h->dpb[j], 2);
|
|
nengel@9
|
5455 nanos_unset_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
5456 }
|
|
nengel@9
|
5457 break;
|
|
nengel@9
|
5458 }
|
|
nengel@9
|
5459 }
|
|
nengel@9
|
5460 }
|
|
nengel@9
|
5461 s->release_cnt = 0;
|
|
nengel@9
|
5462 }
|
|
nengel@9
|
5463 static void decode_3dwave_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *mprev, SuperMBTask *m)
|
|
nengel@9
|
5464 {
|
|
nengel@9
|
5465 H264Slice *s = &sbe->slice;
|
|
nengel@9
|
5466 H264Mb *mbs = sbe->mbs;
|
|
nengel@9
|
5467 decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y);
|
|
nengel@9
|
5468 }
|
|
nengel@9
|
5469 static void init_ref_list_and_get_dpb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe, int *init)
|
|
nengel@9
|
5470 {
|
|
nengel@9
|
5471 H264Slice *s = &sbe->slice;
|
|
nengel@9
|
5472 for (int i = 0;
|
|
nengel@9
|
5473 i < 2;
|
|
nengel@9
|
5474 i++)
|
|
nengel@9
|
5475 {
|
|
nengel@9
|
5476 for (int j = 0;
|
|
nengel@9
|
5477 j < s->ref_count[i];
|
|
nengel@9
|
5478 j++)
|
|
nengel@9
|
5479 {
|
|
nengel@9
|
5480 if (s->ref_list_cpn[i][j] == - 1)
|
|
nengel@9
|
5481 continue;
|
|
nengel@9
|
5482 int k;
|
|
nengel@9
|
5483 for (k = 0;
|
|
nengel@9
|
5484 k < h->max_dpb_cnt;
|
|
nengel@9
|
5485 k++)
|
|
nengel@9
|
5486 {
|
|
nengel@9
|
5487 if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j])
|
|
nengel@9
|
5488 {
|
|
nengel@9
|
5489 s->dp_ref_list[i][j] = &h->dpb[k];
|
|
nengel@9
|
5490 break;
|
|
nengel@9
|
5491 }
|
|
nengel@9
|
5492 }
|
|
nengel@9
|
5493 }
|
|
nengel@9
|
5494 }
|
|
nengel@9
|
5495 {
|
|
nengel@9
|
5496 nanos_set_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
5497 get_dpb_entry(h, s);
|
|
nengel@9
|
5498 nanos_unset_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
5499 }
|
|
nengel@9
|
5500 }
|
|
nengel@9
|
5501 typedef struct _nx_data_env_2_t_tag
|
|
nengel@9
|
5502 {
|
|
nengel@9
|
5503 struct MBRecContext *__tmp_0_0;
|
|
nengel@9
|
5504 SliceBufferEntry *__tmp_1_0;
|
|
nengel@9
|
5505 struct SuperMBContext *__tmp_2_0;
|
|
nengel@9
|
5506 struct SuperMBTask *__tmp_3_0;
|
|
nengel@9
|
5507 struct SuperMBTask *__tmp_4_0;
|
|
nengel@9
|
5508 struct SuperMBTask *__tmp_5_0;
|
|
nengel@9
|
5509 struct SuperMBTask *__tmp_6_0;
|
|
nengel@9
|
5510 } _nx_data_env_2_t;
|
|
nengel@9
|
5511 static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
|
|
nengel@9
|
5512 static void _smp__ol_add_decode_slice_3dwave_tasks_2(_nx_data_env_2_t *const __restrict__ _args)
|
|
nengel@9
|
5513 {
|
|
nengel@9
|
5514 struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
5515 SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
5516 struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
5517 struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
5518 struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
5519 struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0;
|
|
nengel@9
|
5520 struct SuperMBTask *___tmp_6_0 = _args->__tmp_6_0;
|
|
nengel@9
|
5521 /* Translation is done by the runtime */
|
|
nengel@9
|
5522 {
|
|
nengel@9
|
5523 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));
|
|
nengel@9
|
5524 }
|
|
nengel@9
|
5525 }
|
|
nengel@9
|
5526 typedef struct _nx_data_env_3_t_tag
|
|
nengel@9
|
5527 {
|
|
nengel@9
|
5528 struct MBRecContext *__tmp_0_0;
|
|
nengel@9
|
5529 SliceBufferEntry *__tmp_1_0;
|
|
nengel@9
|
5530 struct SuperMBContext *__tmp_2_0;
|
|
nengel@9
|
5531 struct SuperMBTask *__tmp_3_0;
|
|
nengel@9
|
5532 int __tmp_4_0;
|
|
nengel@9
|
5533 } _nx_data_env_3_t;
|
|
nengel@9
|
5534 static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
|
|
nengel@9
|
5535 static void _smp__ol_add_decode_slice_3dwave_tasks_3(_nx_data_env_3_t *const __restrict__ _args)
|
|
nengel@9
|
5536 {
|
|
nengel@9
|
5537 struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
5538 SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
5539 struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
5540 struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
5541 int ___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
5542 /* Translation is done by the runtime */
|
|
nengel@9
|
5543 {
|
|
nengel@9
|
5544 draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0));
|
|
nengel@9
|
5545 }
|
|
nengel@9
|
5546 }
|
|
nengel@9
|
5547 typedef struct _nx_data_env_4_t_tag
|
|
nengel@9
|
5548 {
|
|
nengel@9
|
5549 struct MBRecContext *__tmp_0_0;
|
|
nengel@9
|
5550 SliceBufferEntry *__tmp_1_0;
|
|
nengel@9
|
5551 struct SuperMBContext *__tmp_2_0;
|
|
nengel@9
|
5552 struct SuperMBTask *__tmp_3_0;
|
|
nengel@9
|
5553 struct SuperMBTask *__tmp_4_0;
|
|
nengel@9
|
5554 struct SuperMBTask *__tmp_5_0;
|
|
nengel@9
|
5555 } _nx_data_env_4_t;
|
|
nengel@9
|
5556 static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
|
|
nengel@9
|
5557 static void _smp__ol_add_decode_slice_3dwave_tasks_4(_nx_data_env_4_t *const __restrict__ _args)
|
|
nengel@9
|
5558 {
|
|
nengel@9
|
5559 struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
5560 SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
5561 struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
5562 struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
5563 struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
5564 struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0;
|
|
nengel@9
|
5565 /* Translation is done by the runtime */
|
|
nengel@9
|
5566 {
|
|
nengel@9
|
5567 decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
|
|
nengel@9
|
5568 }
|
|
nengel@9
|
5569 }
|
|
nengel@9
|
5570 typedef struct _nx_data_env_5_t_tag
|
|
nengel@9
|
5571 {
|
|
nengel@9
|
5572 struct MBRecContext *__tmp_0_0;
|
|
nengel@9
|
5573 SliceBufferEntry *__tmp_1_0;
|
|
nengel@9
|
5574 struct SuperMBContext *__tmp_2_0;
|
|
nengel@9
|
5575 struct SuperMBTask *__tmp_3_0;
|
|
nengel@9
|
5576 int __tmp_4_0;
|
|
nengel@9
|
5577 } _nx_data_env_5_t;
|
|
nengel@9
|
5578 static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
|
|
nengel@9
|
5579 static void _smp__ol_add_decode_slice_3dwave_tasks_5(_nx_data_env_5_t *const __restrict__ _args)
|
|
nengel@9
|
5580 {
|
|
nengel@9
|
5581 struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
5582 SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
5583 struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
5584 struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
5585 int ___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
5586 /* Translation is done by the runtime */
|
|
nengel@9
|
5587 {
|
|
nengel@9
|
5588 draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0));
|
|
nengel@9
|
5589 }
|
|
nengel@9
|
5590 }
|
|
nengel@9
|
5591 static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc)
|
|
nengel@9
|
5592 {
|
|
nengel@9
|
5593 int i, j;
|
|
nengel@9
|
5594 int smb_3d_height = smbc->nsmb_3dheight;
|
|
nengel@9
|
5595 int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width;
|
|
nengel@9
|
5596 int smb_diff_prev = smb_height - smb_3d_height;
|
|
nengel@9
|
5597 SuperMBTask *sm = ((void *) 0), *sml, *smur, *smprev;
|
|
nengel@9
|
5598 SuperMBTask *smbs = smbc->smbs[smbc->index++];
|
|
nengel@9
|
5599 smbc->index %= 2;
|
|
nengel@9
|
5600 SuperMBTask *smbs_prev = smbc->smbs[smbc->index];
|
|
nengel@9
|
5601 for (j = 0;
|
|
nengel@9
|
5602 j < smb_3d_height;
|
|
nengel@9
|
5603 j++)
|
|
nengel@9
|
5604 {
|
|
nengel@9
|
5605 for (i = 0;
|
|
nengel@9
|
5606 i < smb_width;
|
|
nengel@9
|
5607 i++)
|
|
nengel@9
|
5608 {
|
|
nengel@9
|
5609 sm = smbs + j * smb_width + i;
|
|
nengel@9
|
5610 sml = sm - ((i > 0) ? 1 : 0);
|
|
nengel@9
|
5611 smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0);
|
|
nengel@9
|
5612 smprev = smbs_prev + (j + smb_diff_prev + 1) * smb_width - 1;
|
|
nengel@9
|
5613 {
|
|
nengel@9
|
5614 struct MBRecContext *__tmp_0 = d;
|
|
nengel@9
|
5615 SliceBufferEntry *__tmp_1 = sbe;
|
|
nengel@9
|
5616 struct SuperMBContext *__tmp_2 = smbc;
|
|
nengel@9
|
5617 struct SuperMBTask *__tmp_3 = sml;
|
|
nengel@9
|
5618 struct SuperMBTask *__tmp_4 = smur;
|
|
nengel@9
|
5619 struct SuperMBTask *__tmp_5 = smprev;
|
|
nengel@9
|
5620 struct SuperMBTask *__tmp_6 = sm;
|
|
nengel@9
|
5621 {
|
|
nengel@9
|
5622 /* SMP device descriptor */
|
|
nengel@9
|
5623 static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_2_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_2};
|
|
nengel@9
|
5624 _nx_data_env_2_t *ol_args = (_nx_data_env_2_t *) 0;
|
|
nengel@9
|
5625 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
5626 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
5627 {
|
|
nengel@9
|
5628 nanos_const_wd_definition_t base;
|
|
nengel@9
|
5629 nanos_device_t devices[1];
|
|
nengel@9
|
5630 };
|
|
nengel@9
|
5631 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
5632 {
|
|
nengel@9
|
5633 {
|
|
nengel@9
|
5634 0,
|
|
nengel@9
|
5635 1,
|
|
nengel@9
|
5636 0,
|
|
nengel@9
|
5637 0,
|
|
nengel@9
|
5638 0,
|
|
nengel@9
|
5639 0,
|
|
nengel@9
|
5640 0,
|
|
nengel@9
|
5641 0
|
|
nengel@9
|
5642 },
|
|
nengel@9
|
5643 __alignof__(_nx_data_env_2_t),
|
|
nengel@9
|
5644 0,
|
|
nengel@9
|
5645 1
|
|
nengel@9
|
5646 },
|
|
nengel@9
|
5647 {{
|
|
nengel@9
|
5648 nanos_smp_factory,
|
|
nengel@9
|
5649 &_ol_add_decode_slice_3dwave_tasks_2_smp_args
|
|
nengel@9
|
5650 }}
|
|
nengel@9
|
5651 };
|
|
nengel@9
|
5652 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
5653 nanos_err_t err;
|
|
nengel@9
|
5654 dyn_props.priority = 0;
|
|
nengel@9
|
5655 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);
|
|
nengel@9
|
5656 if (err != NANOS_OK)
|
|
nengel@9
|
5657 nanos_handle_error(err);
|
|
nengel@9
|
5658 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
5659 {
|
|
nengel@9
|
5660 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5661 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5662 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5663 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5664 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5665 ol_args->__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
5666 ol_args->__tmp_6_0 = __tmp_6;
|
|
nengel@9
|
5667 nanos_dependence_t _dependences[6] = {
|
|
nengel@9
|
5668 {
|
|
nengel@9
|
5669 (void **) &ol_args->__tmp_0_0,
|
|
nengel@9
|
5670 ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
|
|
nengel@9
|
5671 {
|
|
nengel@9
|
5672 1,
|
|
nengel@9
|
5673 0,
|
|
nengel@9
|
5674 1,
|
|
nengel@9
|
5675 0
|
|
nengel@9
|
5676 },
|
|
nengel@9
|
5677 sizeof(struct MBRecContext)
|
|
nengel@9
|
5678 },
|
|
nengel@9
|
5679 {
|
|
nengel@9
|
5680 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
5681 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
5682 {
|
|
nengel@9
|
5683 1,
|
|
nengel@9
|
5684 0,
|
|
nengel@9
|
5685 1,
|
|
nengel@9
|
5686 0
|
|
nengel@9
|
5687 },
|
|
nengel@9
|
5688 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5689 },
|
|
nengel@9
|
5690 {
|
|
nengel@9
|
5691 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
5692 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
5693 {
|
|
nengel@9
|
5694 1,
|
|
nengel@9
|
5695 0,
|
|
nengel@9
|
5696 1,
|
|
nengel@9
|
5697 0
|
|
nengel@9
|
5698 },
|
|
nengel@9
|
5699 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5700 },
|
|
nengel@9
|
5701 {
|
|
nengel@9
|
5702 (void **) &ol_args->__tmp_4_0,
|
|
nengel@9
|
5703 ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
|
|
nengel@9
|
5704 {
|
|
nengel@9
|
5705 1,
|
|
nengel@9
|
5706 0,
|
|
nengel@9
|
5707 1,
|
|
nengel@9
|
5708 0
|
|
nengel@9
|
5709 },
|
|
nengel@9
|
5710 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5711 },
|
|
nengel@9
|
5712 {
|
|
nengel@9
|
5713 (void **) &ol_args->__tmp_5_0,
|
|
nengel@9
|
5714 ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
|
|
nengel@9
|
5715 {
|
|
nengel@9
|
5716 1,
|
|
nengel@9
|
5717 0,
|
|
nengel@9
|
5718 1,
|
|
nengel@9
|
5719 0
|
|
nengel@9
|
5720 },
|
|
nengel@9
|
5721 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5722 },
|
|
nengel@9
|
5723 {
|
|
nengel@9
|
5724 (void **) &ol_args->__tmp_6_0,
|
|
nengel@9
|
5725 ((char *) ((__tmp_6)) - (char *) ol_args->__tmp_6_0),
|
|
nengel@9
|
5726 {
|
|
nengel@9
|
5727 1,
|
|
nengel@9
|
5728 1,
|
|
nengel@9
|
5729 1,
|
|
nengel@9
|
5730 0
|
|
nengel@9
|
5731 },
|
|
nengel@9
|
5732 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5733 }
|
|
nengel@9
|
5734 };
|
|
nengel@9
|
5735 err = nanos_submit(wd, 6, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
5736 if (err != NANOS_OK)
|
|
nengel@9
|
5737 nanos_handle_error(err);
|
|
nengel@9
|
5738 }
|
|
nengel@9
|
5739 else
|
|
nengel@9
|
5740 {
|
|
nengel@9
|
5741 _nx_data_env_2_t imm_args;
|
|
nengel@9
|
5742 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5743 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5744 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5745 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5746 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5747 imm_args.__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
5748 imm_args.__tmp_6_0 = __tmp_6;
|
|
nengel@9
|
5749 nanos_dependence_t _dependences[6] = {
|
|
nengel@9
|
5750 {
|
|
nengel@9
|
5751 (void **) &imm_args.__tmp_0_0,
|
|
nengel@9
|
5752 ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
|
|
nengel@9
|
5753 {
|
|
nengel@9
|
5754 1,
|
|
nengel@9
|
5755 0,
|
|
nengel@9
|
5756 1,
|
|
nengel@9
|
5757 0
|
|
nengel@9
|
5758 },
|
|
nengel@9
|
5759 sizeof(struct MBRecContext)
|
|
nengel@9
|
5760 },
|
|
nengel@9
|
5761 {
|
|
nengel@9
|
5762 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
5763 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
5764 {
|
|
nengel@9
|
5765 1,
|
|
nengel@9
|
5766 0,
|
|
nengel@9
|
5767 1,
|
|
nengel@9
|
5768 0
|
|
nengel@9
|
5769 },
|
|
nengel@9
|
5770 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5771 },
|
|
nengel@9
|
5772 {
|
|
nengel@9
|
5773 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
5774 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
5775 {
|
|
nengel@9
|
5776 1,
|
|
nengel@9
|
5777 0,
|
|
nengel@9
|
5778 1,
|
|
nengel@9
|
5779 0
|
|
nengel@9
|
5780 },
|
|
nengel@9
|
5781 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5782 },
|
|
nengel@9
|
5783 {
|
|
nengel@9
|
5784 (void **) &imm_args.__tmp_4_0,
|
|
nengel@9
|
5785 ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
|
|
nengel@9
|
5786 {
|
|
nengel@9
|
5787 1,
|
|
nengel@9
|
5788 0,
|
|
nengel@9
|
5789 1,
|
|
nengel@9
|
5790 0
|
|
nengel@9
|
5791 },
|
|
nengel@9
|
5792 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5793 },
|
|
nengel@9
|
5794 {
|
|
nengel@9
|
5795 (void **) &imm_args.__tmp_5_0,
|
|
nengel@9
|
5796 ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
|
|
nengel@9
|
5797 {
|
|
nengel@9
|
5798 1,
|
|
nengel@9
|
5799 0,
|
|
nengel@9
|
5800 1,
|
|
nengel@9
|
5801 0
|
|
nengel@9
|
5802 },
|
|
nengel@9
|
5803 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5804 },
|
|
nengel@9
|
5805 {
|
|
nengel@9
|
5806 (void **) &imm_args.__tmp_6_0,
|
|
nengel@9
|
5807 ((char *) ((__tmp_6)) - (char *) imm_args.__tmp_6_0),
|
|
nengel@9
|
5808 {
|
|
nengel@9
|
5809 1,
|
|
nengel@9
|
5810 1,
|
|
nengel@9
|
5811 1,
|
|
nengel@9
|
5812 0
|
|
nengel@9
|
5813 },
|
|
nengel@9
|
5814 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5815 }
|
|
nengel@9
|
5816 };
|
|
nengel@9
|
5817 dyn_props.priority = 0;
|
|
nengel@9
|
5818 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);
|
|
nengel@9
|
5819 if (err != NANOS_OK)
|
|
nengel@9
|
5820 nanos_handle_error(err);
|
|
nengel@9
|
5821 }
|
|
nengel@9
|
5822 }
|
|
nengel@9
|
5823 ;
|
|
nengel@9
|
5824 }
|
|
nengel@9
|
5825 }
|
|
nengel@9
|
5826 {
|
|
nengel@9
|
5827 struct MBRecContext *__tmp_0 = d;
|
|
nengel@9
|
5828 SliceBufferEntry *__tmp_1 = sbe;
|
|
nengel@9
|
5829 struct SuperMBContext *__tmp_2 = smbc;
|
|
nengel@9
|
5830 struct SuperMBTask *__tmp_3 = sm;
|
|
nengel@9
|
5831 int __tmp_4 = j;
|
|
nengel@9
|
5832 {
|
|
nengel@9
|
5833 /* SMP device descriptor */
|
|
nengel@9
|
5834 static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_3_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_3};
|
|
nengel@9
|
5835 _nx_data_env_3_t *ol_args = (_nx_data_env_3_t *) 0;
|
|
nengel@9
|
5836 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
5837 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
5838 {
|
|
nengel@9
|
5839 nanos_const_wd_definition_t base;
|
|
nengel@9
|
5840 nanos_device_t devices[1];
|
|
nengel@9
|
5841 };
|
|
nengel@9
|
5842 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
5843 {
|
|
nengel@9
|
5844 {
|
|
nengel@9
|
5845 0,
|
|
nengel@9
|
5846 1,
|
|
nengel@9
|
5847 0,
|
|
nengel@9
|
5848 0,
|
|
nengel@9
|
5849 0,
|
|
nengel@9
|
5850 0,
|
|
nengel@9
|
5851 0,
|
|
nengel@9
|
5852 0
|
|
nengel@9
|
5853 },
|
|
nengel@9
|
5854 __alignof__(_nx_data_env_3_t),
|
|
nengel@9
|
5855 0,
|
|
nengel@9
|
5856 1
|
|
nengel@9
|
5857 },
|
|
nengel@9
|
5858 {{
|
|
nengel@9
|
5859 nanos_smp_factory,
|
|
nengel@9
|
5860 &_ol_add_decode_slice_3dwave_tasks_3_smp_args
|
|
nengel@9
|
5861 }}
|
|
nengel@9
|
5862 };
|
|
nengel@9
|
5863 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
5864 nanos_err_t err;
|
|
nengel@9
|
5865 dyn_props.priority = 0;
|
|
nengel@9
|
5866 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);
|
|
nengel@9
|
5867 if (err != NANOS_OK)
|
|
nengel@9
|
5868 nanos_handle_error(err);
|
|
nengel@9
|
5869 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
5870 {
|
|
nengel@9
|
5871 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5872 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5873 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5874 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5875 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5876 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
5877 {
|
|
nengel@9
|
5878 (void **) &ol_args->__tmp_0_0,
|
|
nengel@9
|
5879 ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
|
|
nengel@9
|
5880 {
|
|
nengel@9
|
5881 1,
|
|
nengel@9
|
5882 0,
|
|
nengel@9
|
5883 1,
|
|
nengel@9
|
5884 0
|
|
nengel@9
|
5885 },
|
|
nengel@9
|
5886 sizeof(struct MBRecContext)
|
|
nengel@9
|
5887 },
|
|
nengel@9
|
5888 {
|
|
nengel@9
|
5889 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
5890 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
5891 {
|
|
nengel@9
|
5892 1,
|
|
nengel@9
|
5893 0,
|
|
nengel@9
|
5894 1,
|
|
nengel@9
|
5895 0
|
|
nengel@9
|
5896 },
|
|
nengel@9
|
5897 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5898 },
|
|
nengel@9
|
5899 {
|
|
nengel@9
|
5900 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
5901 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
5902 {
|
|
nengel@9
|
5903 1,
|
|
nengel@9
|
5904 1,
|
|
nengel@9
|
5905 1,
|
|
nengel@9
|
5906 0
|
|
nengel@9
|
5907 },
|
|
nengel@9
|
5908 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5909 }
|
|
nengel@9
|
5910 };
|
|
nengel@9
|
5911 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
5912 if (err != NANOS_OK)
|
|
nengel@9
|
5913 nanos_handle_error(err);
|
|
nengel@9
|
5914 }
|
|
nengel@9
|
5915 else
|
|
nengel@9
|
5916 {
|
|
nengel@9
|
5917 _nx_data_env_3_t imm_args;
|
|
nengel@9
|
5918 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
5919 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
5920 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
5921 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
5922 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
5923 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
5924 {
|
|
nengel@9
|
5925 (void **) &imm_args.__tmp_0_0,
|
|
nengel@9
|
5926 ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
|
|
nengel@9
|
5927 {
|
|
nengel@9
|
5928 1,
|
|
nengel@9
|
5929 0,
|
|
nengel@9
|
5930 1,
|
|
nengel@9
|
5931 0
|
|
nengel@9
|
5932 },
|
|
nengel@9
|
5933 sizeof(struct MBRecContext)
|
|
nengel@9
|
5934 },
|
|
nengel@9
|
5935 {
|
|
nengel@9
|
5936 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
5937 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
5938 {
|
|
nengel@9
|
5939 1,
|
|
nengel@9
|
5940 0,
|
|
nengel@9
|
5941 1,
|
|
nengel@9
|
5942 0
|
|
nengel@9
|
5943 },
|
|
nengel@9
|
5944 sizeof(SliceBufferEntry)
|
|
nengel@9
|
5945 },
|
|
nengel@9
|
5946 {
|
|
nengel@9
|
5947 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
5948 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
5949 {
|
|
nengel@9
|
5950 1,
|
|
nengel@9
|
5951 1,
|
|
nengel@9
|
5952 1,
|
|
nengel@9
|
5953 0
|
|
nengel@9
|
5954 },
|
|
nengel@9
|
5955 sizeof(struct SuperMBTask)
|
|
nengel@9
|
5956 }
|
|
nengel@9
|
5957 };
|
|
nengel@9
|
5958 dyn_props.priority = 0;
|
|
nengel@9
|
5959 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);
|
|
nengel@9
|
5960 if (err != NANOS_OK)
|
|
nengel@9
|
5961 nanos_handle_error(err);
|
|
nengel@9
|
5962 }
|
|
nengel@9
|
5963 }
|
|
nengel@9
|
5964 ;
|
|
nengel@9
|
5965 }
|
|
nengel@9
|
5966 }
|
|
nengel@9
|
5967 for (;
|
|
nengel@9
|
5968 j < smb_height;
|
|
nengel@9
|
5969 j++)
|
|
nengel@9
|
5970 {
|
|
nengel@9
|
5971 for (i = 0;
|
|
nengel@9
|
5972 i < smb_width;
|
|
nengel@9
|
5973 i++)
|
|
nengel@9
|
5974 {
|
|
nengel@9
|
5975 sm = smbs + j * smb_width + i;
|
|
nengel@9
|
5976 sml = sm - ((i > 0) ? 1 : 0);
|
|
nengel@9
|
5977 smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0);
|
|
nengel@9
|
5978 {
|
|
nengel@9
|
5979 struct MBRecContext *__tmp_0 = d;
|
|
nengel@9
|
5980 SliceBufferEntry *__tmp_1 = sbe;
|
|
nengel@9
|
5981 struct SuperMBContext *__tmp_2 = smbc;
|
|
nengel@9
|
5982 struct SuperMBTask *__tmp_3 = sml;
|
|
nengel@9
|
5983 struct SuperMBTask *__tmp_4 = smur;
|
|
nengel@9
|
5984 struct SuperMBTask *__tmp_5 = sm;
|
|
nengel@9
|
5985 {
|
|
nengel@9
|
5986 /* SMP device descriptor */
|
|
nengel@9
|
5987 static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_4_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_4};
|
|
nengel@9
|
5988 _nx_data_env_4_t *ol_args = (_nx_data_env_4_t *) 0;
|
|
nengel@9
|
5989 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
5990 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
5991 {
|
|
nengel@9
|
5992 nanos_const_wd_definition_t base;
|
|
nengel@9
|
5993 nanos_device_t devices[1];
|
|
nengel@9
|
5994 };
|
|
nengel@9
|
5995 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
5996 {
|
|
nengel@9
|
5997 {
|
|
nengel@9
|
5998 0,
|
|
nengel@9
|
5999 1,
|
|
nengel@9
|
6000 0,
|
|
nengel@9
|
6001 0,
|
|
nengel@9
|
6002 0,
|
|
nengel@9
|
6003 0,
|
|
nengel@9
|
6004 0,
|
|
nengel@9
|
6005 0
|
|
nengel@9
|
6006 },
|
|
nengel@9
|
6007 __alignof__(_nx_data_env_4_t),
|
|
nengel@9
|
6008 0,
|
|
nengel@9
|
6009 1
|
|
nengel@9
|
6010 },
|
|
nengel@9
|
6011 {{
|
|
nengel@9
|
6012 nanos_smp_factory,
|
|
nengel@9
|
6013 &_ol_add_decode_slice_3dwave_tasks_4_smp_args
|
|
nengel@9
|
6014 }}
|
|
nengel@9
|
6015 };
|
|
nengel@9
|
6016 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
6017 nanos_err_t err;
|
|
nengel@9
|
6018 dyn_props.priority = 0;
|
|
nengel@9
|
6019 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);
|
|
nengel@9
|
6020 if (err != NANOS_OK)
|
|
nengel@9
|
6021 nanos_handle_error(err);
|
|
nengel@9
|
6022 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
6023 {
|
|
nengel@9
|
6024 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6025 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6026 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6027 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
6028 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
6029 ol_args->__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
6030 nanos_dependence_t _dependences[5] = {
|
|
nengel@9
|
6031 {
|
|
nengel@9
|
6032 (void **) &ol_args->__tmp_0_0,
|
|
nengel@9
|
6033 ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
|
|
nengel@9
|
6034 {
|
|
nengel@9
|
6035 1,
|
|
nengel@9
|
6036 0,
|
|
nengel@9
|
6037 1,
|
|
nengel@9
|
6038 0
|
|
nengel@9
|
6039 },
|
|
nengel@9
|
6040 sizeof(struct MBRecContext)
|
|
nengel@9
|
6041 },
|
|
nengel@9
|
6042 {
|
|
nengel@9
|
6043 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
6044 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
6045 {
|
|
nengel@9
|
6046 1,
|
|
nengel@9
|
6047 0,
|
|
nengel@9
|
6048 1,
|
|
nengel@9
|
6049 0
|
|
nengel@9
|
6050 },
|
|
nengel@9
|
6051 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6052 },
|
|
nengel@9
|
6053 {
|
|
nengel@9
|
6054 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
6055 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
6056 {
|
|
nengel@9
|
6057 1,
|
|
nengel@9
|
6058 0,
|
|
nengel@9
|
6059 1,
|
|
nengel@9
|
6060 0
|
|
nengel@9
|
6061 },
|
|
nengel@9
|
6062 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6063 },
|
|
nengel@9
|
6064 {
|
|
nengel@9
|
6065 (void **) &ol_args->__tmp_4_0,
|
|
nengel@9
|
6066 ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
|
|
nengel@9
|
6067 {
|
|
nengel@9
|
6068 1,
|
|
nengel@9
|
6069 0,
|
|
nengel@9
|
6070 1,
|
|
nengel@9
|
6071 0
|
|
nengel@9
|
6072 },
|
|
nengel@9
|
6073 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6074 },
|
|
nengel@9
|
6075 {
|
|
nengel@9
|
6076 (void **) &ol_args->__tmp_5_0,
|
|
nengel@9
|
6077 ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
|
|
nengel@9
|
6078 {
|
|
nengel@9
|
6079 1,
|
|
nengel@9
|
6080 1,
|
|
nengel@9
|
6081 1,
|
|
nengel@9
|
6082 0
|
|
nengel@9
|
6083 },
|
|
nengel@9
|
6084 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6085 }
|
|
nengel@9
|
6086 };
|
|
nengel@9
|
6087 err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
6088 if (err != NANOS_OK)
|
|
nengel@9
|
6089 nanos_handle_error(err);
|
|
nengel@9
|
6090 }
|
|
nengel@9
|
6091 else
|
|
nengel@9
|
6092 {
|
|
nengel@9
|
6093 _nx_data_env_4_t imm_args;
|
|
nengel@9
|
6094 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6095 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6096 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6097 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
6098 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
6099 imm_args.__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
6100 nanos_dependence_t _dependences[5] = {
|
|
nengel@9
|
6101 {
|
|
nengel@9
|
6102 (void **) &imm_args.__tmp_0_0,
|
|
nengel@9
|
6103 ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
|
|
nengel@9
|
6104 {
|
|
nengel@9
|
6105 1,
|
|
nengel@9
|
6106 0,
|
|
nengel@9
|
6107 1,
|
|
nengel@9
|
6108 0
|
|
nengel@9
|
6109 },
|
|
nengel@9
|
6110 sizeof(struct MBRecContext)
|
|
nengel@9
|
6111 },
|
|
nengel@9
|
6112 {
|
|
nengel@9
|
6113 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
6114 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
6115 {
|
|
nengel@9
|
6116 1,
|
|
nengel@9
|
6117 0,
|
|
nengel@9
|
6118 1,
|
|
nengel@9
|
6119 0
|
|
nengel@9
|
6120 },
|
|
nengel@9
|
6121 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6122 },
|
|
nengel@9
|
6123 {
|
|
nengel@9
|
6124 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
6125 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
6126 {
|
|
nengel@9
|
6127 1,
|
|
nengel@9
|
6128 0,
|
|
nengel@9
|
6129 1,
|
|
nengel@9
|
6130 0
|
|
nengel@9
|
6131 },
|
|
nengel@9
|
6132 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6133 },
|
|
nengel@9
|
6134 {
|
|
nengel@9
|
6135 (void **) &imm_args.__tmp_4_0,
|
|
nengel@9
|
6136 ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
|
|
nengel@9
|
6137 {
|
|
nengel@9
|
6138 1,
|
|
nengel@9
|
6139 0,
|
|
nengel@9
|
6140 1,
|
|
nengel@9
|
6141 0
|
|
nengel@9
|
6142 },
|
|
nengel@9
|
6143 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6144 },
|
|
nengel@9
|
6145 {
|
|
nengel@9
|
6146 (void **) &imm_args.__tmp_5_0,
|
|
nengel@9
|
6147 ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
|
|
nengel@9
|
6148 {
|
|
nengel@9
|
6149 1,
|
|
nengel@9
|
6150 1,
|
|
nengel@9
|
6151 1,
|
|
nengel@9
|
6152 0
|
|
nengel@9
|
6153 },
|
|
nengel@9
|
6154 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6155 }
|
|
nengel@9
|
6156 };
|
|
nengel@9
|
6157 dyn_props.priority = 0;
|
|
nengel@9
|
6158 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);
|
|
nengel@9
|
6159 if (err != NANOS_OK)
|
|
nengel@9
|
6160 nanos_handle_error(err);
|
|
nengel@9
|
6161 }
|
|
nengel@9
|
6162 }
|
|
nengel@9
|
6163 ;
|
|
nengel@9
|
6164 }
|
|
nengel@9
|
6165 }
|
|
nengel@9
|
6166 {
|
|
nengel@9
|
6167 struct MBRecContext *__tmp_0 = d;
|
|
nengel@9
|
6168 SliceBufferEntry *__tmp_1 = sbe;
|
|
nengel@9
|
6169 struct SuperMBContext *__tmp_2 = smbc;
|
|
nengel@9
|
6170 struct SuperMBTask *__tmp_3 = sm;
|
|
nengel@9
|
6171 int __tmp_4 = j;
|
|
nengel@9
|
6172 {
|
|
nengel@9
|
6173 /* SMP device descriptor */
|
|
nengel@9
|
6174 static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_5_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_5};
|
|
nengel@9
|
6175 _nx_data_env_5_t *ol_args = (_nx_data_env_5_t *) 0;
|
|
nengel@9
|
6176 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
6177 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
6178 {
|
|
nengel@9
|
6179 nanos_const_wd_definition_t base;
|
|
nengel@9
|
6180 nanos_device_t devices[1];
|
|
nengel@9
|
6181 };
|
|
nengel@9
|
6182 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
6183 {
|
|
nengel@9
|
6184 {
|
|
nengel@9
|
6185 0,
|
|
nengel@9
|
6186 1,
|
|
nengel@9
|
6187 0,
|
|
nengel@9
|
6188 0,
|
|
nengel@9
|
6189 0,
|
|
nengel@9
|
6190 0,
|
|
nengel@9
|
6191 0,
|
|
nengel@9
|
6192 0
|
|
nengel@9
|
6193 },
|
|
nengel@9
|
6194 __alignof__(_nx_data_env_5_t),
|
|
nengel@9
|
6195 0,
|
|
nengel@9
|
6196 1
|
|
nengel@9
|
6197 },
|
|
nengel@9
|
6198 {{
|
|
nengel@9
|
6199 nanos_smp_factory,
|
|
nengel@9
|
6200 &_ol_add_decode_slice_3dwave_tasks_5_smp_args
|
|
nengel@9
|
6201 }}
|
|
nengel@9
|
6202 };
|
|
nengel@9
|
6203 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
6204 nanos_err_t err;
|
|
nengel@9
|
6205 dyn_props.priority = 0;
|
|
nengel@9
|
6206 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);
|
|
nengel@9
|
6207 if (err != NANOS_OK)
|
|
nengel@9
|
6208 nanos_handle_error(err);
|
|
nengel@9
|
6209 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
6210 {
|
|
nengel@9
|
6211 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6212 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6213 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6214 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
6215 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
6216 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
6217 {
|
|
nengel@9
|
6218 (void **) &ol_args->__tmp_0_0,
|
|
nengel@9
|
6219 ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
|
|
nengel@9
|
6220 {
|
|
nengel@9
|
6221 1,
|
|
nengel@9
|
6222 0,
|
|
nengel@9
|
6223 1,
|
|
nengel@9
|
6224 0
|
|
nengel@9
|
6225 },
|
|
nengel@9
|
6226 sizeof(struct MBRecContext)
|
|
nengel@9
|
6227 },
|
|
nengel@9
|
6228 {
|
|
nengel@9
|
6229 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
6230 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
6231 {
|
|
nengel@9
|
6232 1,
|
|
nengel@9
|
6233 0,
|
|
nengel@9
|
6234 1,
|
|
nengel@9
|
6235 0
|
|
nengel@9
|
6236 },
|
|
nengel@9
|
6237 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6238 },
|
|
nengel@9
|
6239 {
|
|
nengel@9
|
6240 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
6241 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
6242 {
|
|
nengel@9
|
6243 1,
|
|
nengel@9
|
6244 1,
|
|
nengel@9
|
6245 1,
|
|
nengel@9
|
6246 0
|
|
nengel@9
|
6247 },
|
|
nengel@9
|
6248 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6249 }
|
|
nengel@9
|
6250 };
|
|
nengel@9
|
6251 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
6252 if (err != NANOS_OK)
|
|
nengel@9
|
6253 nanos_handle_error(err);
|
|
nengel@9
|
6254 }
|
|
nengel@9
|
6255 else
|
|
nengel@9
|
6256 {
|
|
nengel@9
|
6257 _nx_data_env_5_t imm_args;
|
|
nengel@9
|
6258 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6259 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6260 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6261 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
6262 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
6263 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
6264 {
|
|
nengel@9
|
6265 (void **) &imm_args.__tmp_0_0,
|
|
nengel@9
|
6266 ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
|
|
nengel@9
|
6267 {
|
|
nengel@9
|
6268 1,
|
|
nengel@9
|
6269 0,
|
|
nengel@9
|
6270 1,
|
|
nengel@9
|
6271 0
|
|
nengel@9
|
6272 },
|
|
nengel@9
|
6273 sizeof(struct MBRecContext)
|
|
nengel@9
|
6274 },
|
|
nengel@9
|
6275 {
|
|
nengel@9
|
6276 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
6277 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
6278 {
|
|
nengel@9
|
6279 1,
|
|
nengel@9
|
6280 0,
|
|
nengel@9
|
6281 1,
|
|
nengel@9
|
6282 0
|
|
nengel@9
|
6283 },
|
|
nengel@9
|
6284 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6285 },
|
|
nengel@9
|
6286 {
|
|
nengel@9
|
6287 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
6288 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
6289 {
|
|
nengel@9
|
6290 1,
|
|
nengel@9
|
6291 1,
|
|
nengel@9
|
6292 1,
|
|
nengel@9
|
6293 0
|
|
nengel@9
|
6294 },
|
|
nengel@9
|
6295 sizeof(struct SuperMBTask)
|
|
nengel@9
|
6296 }
|
|
nengel@9
|
6297 };
|
|
nengel@9
|
6298 dyn_props.priority = 0;
|
|
nengel@9
|
6299 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);
|
|
nengel@9
|
6300 if (err != NANOS_OK)
|
|
nengel@9
|
6301 nanos_handle_error(err);
|
|
nengel@9
|
6302 }
|
|
nengel@9
|
6303 }
|
|
nengel@9
|
6304 ;
|
|
nengel@9
|
6305 }
|
|
nengel@9
|
6306 }
|
|
nengel@9
|
6307 return sm;
|
|
nengel@9
|
6308 }
|
|
nengel@9
|
6309 static void release_ref_list_task(H264Context *h, SuperMBContext *smbc, MBRecContext *d, SliceBufferEntry *sbe, SuperMBTask *lastsmb, int *release)
|
|
nengel@9
|
6310 {
|
|
nengel@9
|
6311 H264Slice *s = &sbe->slice;
|
|
nengel@9
|
6312 for (int i = 0;
|
|
nengel@9
|
6313 i < s->release_cnt;
|
|
nengel@9
|
6314 i++)
|
|
nengel@9
|
6315 {
|
|
nengel@9
|
6316 for (int j = 0;
|
|
nengel@9
|
6317 j < h->max_dpb_cnt;
|
|
nengel@9
|
6318 j++)
|
|
nengel@9
|
6319 {
|
|
nengel@9
|
6320 if (h->dpb[j].cpn == s->release_ref_cpn[i])
|
|
nengel@9
|
6321 {
|
|
nengel@9
|
6322 {
|
|
nengel@9
|
6323 nanos_set_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
6324 release_dpb_entry(h, &h->dpb[j], 2);
|
|
nengel@9
|
6325 nanos_unset_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
6326 }
|
|
nengel@9
|
6327 break;
|
|
nengel@9
|
6328 }
|
|
nengel@9
|
6329 }
|
|
nengel@9
|
6330 }
|
|
nengel@9
|
6331 s->release_cnt = 0;
|
|
nengel@9
|
6332 release_smbc(h, smbc);
|
|
nengel@9
|
6333 }
|
|
nengel@9
|
6334 static void output_task(H264Context *h, OutputContext *oc, SliceBufferEntry *sbe)
|
|
nengel@9
|
6335 {
|
|
nengel@9
|
6336 DecodedPicture *out = output_frame(h, oc, sbe->slice.curr_pic, h->ofile, h->frame_width, h->frame_height);
|
|
nengel@9
|
6337 if (out)
|
|
nengel@9
|
6338 {
|
|
nengel@9
|
6339 {
|
|
nengel@9
|
6340 nanos_set_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
6341 release_dpb_entry(h, out, 1);
|
|
nengel@9
|
6342 nanos_unset_lock(&_nx_u_dpb_critical_lock);
|
|
nengel@9
|
6343 }
|
|
nengel@9
|
6344 }
|
|
nengel@9
|
6345 }
|
|
nengel@9
|
6346 typedef struct _nx_data_env_6_t_tag
|
|
nengel@9
|
6347 {
|
|
nengel@9
|
6348 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6349 struct ParserContext *__tmp_1_0;
|
|
nengel@9
|
6350 struct NalContext *__tmp_2_0;
|
|
nengel@9
|
6351 SliceBufferEntry *__tmp_3_0;
|
|
nengel@9
|
6352 } _nx_data_env_6_t;
|
|
nengel@9
|
6353 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6354 static void _smp__ol_h264_decode_ompss_6(_nx_data_env_6_t *const __restrict__ _args)
|
|
nengel@9
|
6355 {
|
|
nengel@9
|
6356 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6357 struct ParserContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6358 struct NalContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6359 SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
6360 /* Translation is done by the runtime */
|
|
nengel@9
|
6361 {
|
|
nengel@9
|
6362 parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
|
|
nengel@9
|
6363 }
|
|
nengel@9
|
6364 }
|
|
nengel@9
|
6365 typedef struct _nx_data_env_7_t_tag
|
|
nengel@9
|
6366 {
|
|
nengel@9
|
6367 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6368 struct EntropyContext *__tmp_1_0;
|
|
nengel@9
|
6369 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6370 } _nx_data_env_7_t;
|
|
nengel@9
|
6371 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6372 static void _smp__ol_h264_decode_ompss_7(_nx_data_env_7_t *const __restrict__ _args)
|
|
nengel@9
|
6373 {
|
|
nengel@9
|
6374 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6375 struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6376 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6377 /* Translation is done by the runtime */
|
|
nengel@9
|
6378 {
|
|
nengel@9
|
6379 decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
|
|
nengel@9
|
6380 }
|
|
nengel@9
|
6381 }
|
|
nengel@9
|
6382 typedef struct _nx_data_env_8_t_tag
|
|
nengel@9
|
6383 {
|
|
nengel@9
|
6384 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6385 struct ParserContext *__tmp_1_0;
|
|
nengel@9
|
6386 struct NalContext *__tmp_2_0;
|
|
nengel@9
|
6387 SliceBufferEntry *__tmp_3_0;
|
|
nengel@9
|
6388 } _nx_data_env_8_t;
|
|
nengel@9
|
6389 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6390 static void _smp__ol_h264_decode_ompss_8(_nx_data_env_8_t *const __restrict__ _args)
|
|
nengel@9
|
6391 {
|
|
nengel@9
|
6392 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6393 struct ParserContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6394 struct NalContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6395 SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
6396 /* Translation is done by the runtime */
|
|
nengel@9
|
6397 {
|
|
nengel@9
|
6398 parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
|
|
nengel@9
|
6399 }
|
|
nengel@9
|
6400 }
|
|
nengel@9
|
6401 typedef struct _nx_data_env_9_t_tag
|
|
nengel@9
|
6402 {
|
|
nengel@9
|
6403 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6404 struct EntropyContext *__tmp_1_0;
|
|
nengel@9
|
6405 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6406 } _nx_data_env_9_t;
|
|
nengel@9
|
6407 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6408 static void _smp__ol_h264_decode_ompss_9(_nx_data_env_9_t *const __restrict__ _args)
|
|
nengel@9
|
6409 {
|
|
nengel@9
|
6410 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6411 struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6412 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6413 /* Translation is done by the runtime */
|
|
nengel@9
|
6414 {
|
|
nengel@9
|
6415 decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
|
|
nengel@9
|
6416 }
|
|
nengel@9
|
6417 }
|
|
nengel@9
|
6418 typedef struct _nx_data_env_10_t_tag
|
|
nengel@9
|
6419 {
|
|
nengel@9
|
6420 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6421 struct MBRecContext *__tmp_1_0;
|
|
nengel@9
|
6422 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6423 int *__tmp_3_0;
|
|
nengel@9
|
6424 } _nx_data_env_10_t;
|
|
nengel@9
|
6425 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6426 static void _smp__ol_h264_decode_ompss_10(_nx_data_env_10_t *const __restrict__ _args)
|
|
nengel@9
|
6427 {
|
|
nengel@9
|
6428 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6429 struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6430 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6431 int *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
6432 /* Translation is done by the runtime */
|
|
nengel@9
|
6433 {
|
|
nengel@9
|
6434 init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
|
|
nengel@9
|
6435 }
|
|
nengel@9
|
6436 }
|
|
nengel@9
|
6437 typedef struct _nx_data_env_11_t_tag
|
|
nengel@9
|
6438 {
|
|
nengel@9
|
6439 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6440 struct SuperMBContext *__tmp_1_0;
|
|
nengel@9
|
6441 struct MBRecContext *__tmp_2_0;
|
|
nengel@9
|
6442 SliceBufferEntry *__tmp_3_0;
|
|
nengel@9
|
6443 struct SuperMBTask *__tmp_4_0;
|
|
nengel@9
|
6444 int *__tmp_5_0;
|
|
nengel@9
|
6445 } _nx_data_env_11_t;
|
|
nengel@9
|
6446 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6447 static void _smp__ol_h264_decode_ompss_11(_nx_data_env_11_t *const __restrict__ _args)
|
|
nengel@9
|
6448 {
|
|
nengel@9
|
6449 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6450 struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6451 struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6452 SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
6453 struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
6454 int *___tmp_5_0 = _args->__tmp_5_0;
|
|
nengel@9
|
6455 /* Translation is done by the runtime */
|
|
nengel@9
|
6456 {
|
|
nengel@9
|
6457 release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
|
|
nengel@9
|
6458 }
|
|
nengel@9
|
6459 }
|
|
nengel@9
|
6460 typedef struct _nx_data_env_12_t_tag
|
|
nengel@9
|
6461 {
|
|
nengel@9
|
6462 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6463 struct OutputContext *__tmp_1_0;
|
|
nengel@9
|
6464 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6465 } _nx_data_env_12_t;
|
|
nengel@9
|
6466 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6467 static void _smp__ol_h264_decode_ompss_12(_nx_data_env_12_t *const __restrict__ _args)
|
|
nengel@9
|
6468 {
|
|
nengel@9
|
6469 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6470 struct OutputContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6471 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6472 /* Translation is done by the runtime */
|
|
nengel@9
|
6473 {
|
|
nengel@9
|
6474 output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
|
|
nengel@9
|
6475 }
|
|
nengel@9
|
6476 }
|
|
nengel@9
|
6477 typedef struct _nx_data_env_13_t_tag
|
|
nengel@9
|
6478 {
|
|
nengel@9
|
6479 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6480 struct MBRecContext *__tmp_1_0;
|
|
nengel@9
|
6481 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6482 int *__tmp_3_0;
|
|
nengel@9
|
6483 } _nx_data_env_13_t;
|
|
nengel@9
|
6484 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6485 static void _smp__ol_h264_decode_ompss_13(_nx_data_env_13_t *const __restrict__ _args)
|
|
nengel@9
|
6486 {
|
|
nengel@9
|
6487 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6488 struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6489 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6490 int *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
6491 /* Translation is done by the runtime */
|
|
nengel@9
|
6492 {
|
|
nengel@9
|
6493 init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
|
|
nengel@9
|
6494 }
|
|
nengel@9
|
6495 }
|
|
nengel@9
|
6496 typedef struct _nx_data_env_14_t_tag
|
|
nengel@9
|
6497 {
|
|
nengel@9
|
6498 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6499 struct SuperMBContext *__tmp_1_0;
|
|
nengel@9
|
6500 struct MBRecContext *__tmp_2_0;
|
|
nengel@9
|
6501 SliceBufferEntry *__tmp_3_0;
|
|
nengel@9
|
6502 struct SuperMBTask *__tmp_4_0;
|
|
nengel@9
|
6503 int *__tmp_5_0;
|
|
nengel@9
|
6504 } _nx_data_env_14_t;
|
|
nengel@9
|
6505 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6506 static void _smp__ol_h264_decode_ompss_14(_nx_data_env_14_t *const __restrict__ _args)
|
|
nengel@9
|
6507 {
|
|
nengel@9
|
6508 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6509 struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6510 struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6511 SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
6512 struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
|
|
nengel@9
|
6513 int *___tmp_5_0 = _args->__tmp_5_0;
|
|
nengel@9
|
6514 /* Translation is done by the runtime */
|
|
nengel@9
|
6515 {
|
|
nengel@9
|
6516 release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
|
|
nengel@9
|
6517 }
|
|
nengel@9
|
6518 }
|
|
nengel@9
|
6519 typedef struct _nx_data_env_15_t_tag
|
|
nengel@9
|
6520 {
|
|
nengel@9
|
6521 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6522 struct OutputContext *__tmp_1_0;
|
|
nengel@9
|
6523 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6524 } _nx_data_env_15_t;
|
|
nengel@9
|
6525 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6526 static void _smp__ol_h264_decode_ompss_15(_nx_data_env_15_t *const __restrict__ _args)
|
|
nengel@9
|
6527 {
|
|
nengel@9
|
6528 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6529 struct OutputContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6530 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6531 /* Translation is done by the runtime */
|
|
nengel@9
|
6532 {
|
|
nengel@9
|
6533 output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
|
|
nengel@9
|
6534 }
|
|
nengel@9
|
6535 }
|
|
nengel@9
|
6536 typedef struct _nx_data_env_16_t_tag
|
|
nengel@9
|
6537 {
|
|
nengel@9
|
6538 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6539 struct ParserContext *__tmp_1_0;
|
|
nengel@9
|
6540 struct NalContext *__tmp_2_0;
|
|
nengel@9
|
6541 SliceBufferEntry *__tmp_3_0;
|
|
nengel@9
|
6542 } _nx_data_env_16_t;
|
|
nengel@9
|
6543 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6544 static void _smp__ol_h264_decode_ompss_16(_nx_data_env_16_t *const __restrict__ _args)
|
|
nengel@9
|
6545 {
|
|
nengel@9
|
6546 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6547 struct ParserContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6548 struct NalContext *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6549 SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
|
|
nengel@9
|
6550 /* Translation is done by the runtime */
|
|
nengel@9
|
6551 {
|
|
nengel@9
|
6552 parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
|
|
nengel@9
|
6553 }
|
|
nengel@9
|
6554 }
|
|
nengel@9
|
6555 typedef struct _nx_data_env_17_t_tag
|
|
nengel@9
|
6556 {
|
|
nengel@9
|
6557 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6558 struct EntropyContext *__tmp_1_0;
|
|
nengel@9
|
6559 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6560 } _nx_data_env_17_t;
|
|
nengel@9
|
6561 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6562 static void _smp__ol_h264_decode_ompss_17(_nx_data_env_17_t *const __restrict__ _args)
|
|
nengel@9
|
6563 {
|
|
nengel@9
|
6564 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6565 struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6566 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6567 /* Translation is done by the runtime */
|
|
nengel@9
|
6568 {
|
|
nengel@9
|
6569 decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
|
|
nengel@9
|
6570 }
|
|
nengel@9
|
6571 }
|
|
nengel@9
|
6572 typedef struct _nx_data_env_18_t_tag
|
|
nengel@9
|
6573 {
|
|
nengel@9
|
6574 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6575 struct MBRecContext *__tmp_1_0;
|
|
nengel@9
|
6576 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6577 } _nx_data_env_18_t;
|
|
nengel@9
|
6578 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6579 static void _smp__ol_h264_decode_ompss_18(_nx_data_env_18_t *const __restrict__ _args)
|
|
nengel@9
|
6580 {
|
|
nengel@9
|
6581 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6582 struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6583 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6584 /* Translation is done by the runtime */
|
|
nengel@9
|
6585 {
|
|
nengel@9
|
6586 decode_slice_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
|
|
nengel@9
|
6587 }
|
|
nengel@9
|
6588 }
|
|
nengel@9
|
6589 typedef struct _nx_data_env_19_t_tag
|
|
nengel@9
|
6590 {
|
|
nengel@9
|
6591 struct H264Context *__tmp_0_0;
|
|
nengel@9
|
6592 struct OutputContext *__tmp_1_0;
|
|
nengel@9
|
6593 SliceBufferEntry *__tmp_2_0;
|
|
nengel@9
|
6594 } _nx_data_env_19_t;
|
|
nengel@9
|
6595 int h264_decode_ompss(H264Context *h);
|
|
nengel@9
|
6596 static void _smp__ol_h264_decode_ompss_19(_nx_data_env_19_t *const __restrict__ _args)
|
|
nengel@9
|
6597 {
|
|
nengel@9
|
6598 struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
|
|
nengel@9
|
6599 struct OutputContext *___tmp_1_0 = _args->__tmp_1_0;
|
|
nengel@9
|
6600 SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
|
|
nengel@9
|
6601 /* Translation is done by the runtime */
|
|
nengel@9
|
6602 {
|
|
nengel@9
|
6603 output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
|
|
nengel@9
|
6604 }
|
|
nengel@9
|
6605 }
|
|
nengel@9
|
6606 int h264_decode_ompss(H264Context *h)
|
|
nengel@9
|
6607 {
|
|
nengel@9
|
6608 const int bufs = h->pipe_bufs;
|
|
nengel@9
|
6609 ParserContext *pc;
|
|
nengel@9
|
6610 NalContext *nc;
|
|
nengel@9
|
6611 EntropyContext *ec[bufs];
|
|
nengel@9
|
6612 MBRecContext *rc[2];
|
|
nengel@9
|
6613 OutputContext *oc;
|
|
nengel@9
|
6614 SliceBufferEntry *sbe;
|
|
nengel@9
|
6615 SuperMBContext *smbc;
|
|
nengel@9
|
6616 DecodedPicture *out;
|
|
nengel@9
|
6617 int frames = 0;
|
|
nengel@9
|
6618 sbe = av_mallocz(sizeof(SliceBufferEntry) * bufs);
|
|
nengel@9
|
6619 pc = get_parse_context(h->ifile);
|
|
nengel@9
|
6620 nc = get_nal_context(h->width, h->height);
|
|
nengel@9
|
6621 for (int i = 0;
|
|
nengel@9
|
6622 i < bufs;
|
|
nengel@9
|
6623 i++)
|
|
nengel@9
|
6624 {
|
|
nengel@9
|
6625 ec[i] = get_entropy_context(h);
|
|
nengel@9
|
6626 }
|
|
nengel@9
|
6627 for (int i = 0;
|
|
nengel@9
|
6628 i < 2;
|
|
nengel@9
|
6629 i++)
|
|
nengel@9
|
6630 {
|
|
nengel@9
|
6631 rc[i] = get_mbrec_context(h);
|
|
nengel@9
|
6632 }
|
|
nengel@9
|
6633 oc = get_output_context(h);
|
|
nengel@9
|
6634 av_start_timer();
|
|
nengel@9
|
6635 int k = 0;
|
|
nengel@9
|
6636 int init, release;
|
|
nengel@9
|
6637 if (h->static_3d && bufs < h->num_frames)
|
|
nengel@9
|
6638 {
|
|
nengel@9
|
6639 int num_pre_ed = 0;
|
|
nengel@9
|
6640 for (num_pre_ed = 0;
|
|
nengel@9
|
6641 num_pre_ed < bufs - 1 && !pc->final_frame;
|
|
nengel@9
|
6642 num_pre_ed++)
|
|
nengel@9
|
6643 {
|
|
nengel@9
|
6644 {
|
|
nengel@9
|
6645 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
6646 struct ParserContext *__tmp_1 = pc;
|
|
nengel@9
|
6647 struct NalContext *__tmp_2 = nc;
|
|
nengel@9
|
6648 SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
|
|
nengel@9
|
6649 {
|
|
nengel@9
|
6650 /* SMP device descriptor */
|
|
nengel@9
|
6651 static nanos_smp_args_t _ol_h264_decode_ompss_6_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_6};
|
|
nengel@9
|
6652 _nx_data_env_6_t *ol_args = (_nx_data_env_6_t *) 0;
|
|
nengel@9
|
6653 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
6654 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
6655 {
|
|
nengel@9
|
6656 nanos_const_wd_definition_t base;
|
|
nengel@9
|
6657 nanos_device_t devices[1];
|
|
nengel@9
|
6658 };
|
|
nengel@9
|
6659 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
6660 {
|
|
nengel@9
|
6661 {
|
|
nengel@9
|
6662 0,
|
|
nengel@9
|
6663 1,
|
|
nengel@9
|
6664 0,
|
|
nengel@9
|
6665 0,
|
|
nengel@9
|
6666 0,
|
|
nengel@9
|
6667 0,
|
|
nengel@9
|
6668 0,
|
|
nengel@9
|
6669 0
|
|
nengel@9
|
6670 },
|
|
nengel@9
|
6671 __alignof__(_nx_data_env_6_t),
|
|
nengel@9
|
6672 0,
|
|
nengel@9
|
6673 1
|
|
nengel@9
|
6674 },
|
|
nengel@9
|
6675 {{
|
|
nengel@9
|
6676 nanos_smp_factory,
|
|
nengel@9
|
6677 &_ol_h264_decode_ompss_6_smp_args
|
|
nengel@9
|
6678 }}
|
|
nengel@9
|
6679 };
|
|
nengel@9
|
6680 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
6681 nanos_err_t err;
|
|
nengel@9
|
6682 dyn_props.priority = 0;
|
|
nengel@9
|
6683 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);
|
|
nengel@9
|
6684 if (err != NANOS_OK)
|
|
nengel@9
|
6685 nanos_handle_error(err);
|
|
nengel@9
|
6686 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
6687 {
|
|
nengel@9
|
6688 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6689 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6690 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6691 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
6692 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
6693 {
|
|
nengel@9
|
6694 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
6695 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
6696 {
|
|
nengel@9
|
6697 0,
|
|
nengel@9
|
6698 1,
|
|
nengel@9
|
6699 1,
|
|
nengel@9
|
6700 0
|
|
nengel@9
|
6701 },
|
|
nengel@9
|
6702 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6703 },
|
|
nengel@9
|
6704 {
|
|
nengel@9
|
6705 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
6706 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
6707 {
|
|
nengel@9
|
6708 1,
|
|
nengel@9
|
6709 1,
|
|
nengel@9
|
6710 1,
|
|
nengel@9
|
6711 0
|
|
nengel@9
|
6712 },
|
|
nengel@9
|
6713 sizeof(struct ParserContext)
|
|
nengel@9
|
6714 },
|
|
nengel@9
|
6715 {
|
|
nengel@9
|
6716 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
6717 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
6718 {
|
|
nengel@9
|
6719 1,
|
|
nengel@9
|
6720 1,
|
|
nengel@9
|
6721 1,
|
|
nengel@9
|
6722 0
|
|
nengel@9
|
6723 },
|
|
nengel@9
|
6724 sizeof(struct NalContext)
|
|
nengel@9
|
6725 }
|
|
nengel@9
|
6726 };
|
|
nengel@9
|
6727 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
6728 if (err != NANOS_OK)
|
|
nengel@9
|
6729 nanos_handle_error(err);
|
|
nengel@9
|
6730 }
|
|
nengel@9
|
6731 else
|
|
nengel@9
|
6732 {
|
|
nengel@9
|
6733 _nx_data_env_6_t imm_args;
|
|
nengel@9
|
6734 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6735 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6736 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6737 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
6738 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
6739 {
|
|
nengel@9
|
6740 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
6741 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
6742 {
|
|
nengel@9
|
6743 0,
|
|
nengel@9
|
6744 1,
|
|
nengel@9
|
6745 1,
|
|
nengel@9
|
6746 0
|
|
nengel@9
|
6747 },
|
|
nengel@9
|
6748 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6749 },
|
|
nengel@9
|
6750 {
|
|
nengel@9
|
6751 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
6752 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
6753 {
|
|
nengel@9
|
6754 1,
|
|
nengel@9
|
6755 1,
|
|
nengel@9
|
6756 1,
|
|
nengel@9
|
6757 0
|
|
nengel@9
|
6758 },
|
|
nengel@9
|
6759 sizeof(struct ParserContext)
|
|
nengel@9
|
6760 },
|
|
nengel@9
|
6761 {
|
|
nengel@9
|
6762 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
6763 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
6764 {
|
|
nengel@9
|
6765 1,
|
|
nengel@9
|
6766 1,
|
|
nengel@9
|
6767 1,
|
|
nengel@9
|
6768 0
|
|
nengel@9
|
6769 },
|
|
nengel@9
|
6770 sizeof(struct NalContext)
|
|
nengel@9
|
6771 }
|
|
nengel@9
|
6772 };
|
|
nengel@9
|
6773 dyn_props.priority = 0;
|
|
nengel@9
|
6774 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);
|
|
nengel@9
|
6775 if (err != NANOS_OK)
|
|
nengel@9
|
6776 nanos_handle_error(err);
|
|
nengel@9
|
6777 }
|
|
nengel@9
|
6778 }
|
|
nengel@9
|
6779 ;
|
|
nengel@9
|
6780 }
|
|
nengel@9
|
6781 {
|
|
nengel@9
|
6782 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
6783 struct EntropyContext *__tmp_1 = ec[k % bufs];
|
|
nengel@9
|
6784 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
6785 {
|
|
nengel@9
|
6786 /* SMP device descriptor */
|
|
nengel@9
|
6787 static nanos_smp_args_t _ol_h264_decode_ompss_7_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_7};
|
|
nengel@9
|
6788 _nx_data_env_7_t *ol_args = (_nx_data_env_7_t *) 0;
|
|
nengel@9
|
6789 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
6790 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
6791 {
|
|
nengel@9
|
6792 nanos_const_wd_definition_t base;
|
|
nengel@9
|
6793 nanos_device_t devices[1];
|
|
nengel@9
|
6794 };
|
|
nengel@9
|
6795 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
6796 {
|
|
nengel@9
|
6797 {
|
|
nengel@9
|
6798 0,
|
|
nengel@9
|
6799 1,
|
|
nengel@9
|
6800 0,
|
|
nengel@9
|
6801 0,
|
|
nengel@9
|
6802 0,
|
|
nengel@9
|
6803 0,
|
|
nengel@9
|
6804 0,
|
|
nengel@9
|
6805 0
|
|
nengel@9
|
6806 },
|
|
nengel@9
|
6807 __alignof__(_nx_data_env_7_t),
|
|
nengel@9
|
6808 0,
|
|
nengel@9
|
6809 1
|
|
nengel@9
|
6810 },
|
|
nengel@9
|
6811 {{
|
|
nengel@9
|
6812 nanos_smp_factory,
|
|
nengel@9
|
6813 &_ol_h264_decode_ompss_7_smp_args
|
|
nengel@9
|
6814 }}
|
|
nengel@9
|
6815 };
|
|
nengel@9
|
6816 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
6817 nanos_err_t err;
|
|
nengel@9
|
6818 dyn_props.priority = 0;
|
|
nengel@9
|
6819 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);
|
|
nengel@9
|
6820 if (err != NANOS_OK)
|
|
nengel@9
|
6821 nanos_handle_error(err);
|
|
nengel@9
|
6822 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
6823 {
|
|
nengel@9
|
6824 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6825 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6826 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6827 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
6828 {
|
|
nengel@9
|
6829 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
6830 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
6831 {
|
|
nengel@9
|
6832 1,
|
|
nengel@9
|
6833 1,
|
|
nengel@9
|
6834 1,
|
|
nengel@9
|
6835 0
|
|
nengel@9
|
6836 },
|
|
nengel@9
|
6837 sizeof(struct EntropyContext)
|
|
nengel@9
|
6838 },
|
|
nengel@9
|
6839 {
|
|
nengel@9
|
6840 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
6841 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
6842 {
|
|
nengel@9
|
6843 1,
|
|
nengel@9
|
6844 1,
|
|
nengel@9
|
6845 1,
|
|
nengel@9
|
6846 0
|
|
nengel@9
|
6847 },
|
|
nengel@9
|
6848 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6849 }
|
|
nengel@9
|
6850 };
|
|
nengel@9
|
6851 err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
6852 if (err != NANOS_OK)
|
|
nengel@9
|
6853 nanos_handle_error(err);
|
|
nengel@9
|
6854 }
|
|
nengel@9
|
6855 else
|
|
nengel@9
|
6856 {
|
|
nengel@9
|
6857 _nx_data_env_7_t imm_args;
|
|
nengel@9
|
6858 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6859 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6860 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6861 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
6862 {
|
|
nengel@9
|
6863 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
6864 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
6865 {
|
|
nengel@9
|
6866 1,
|
|
nengel@9
|
6867 1,
|
|
nengel@9
|
6868 1,
|
|
nengel@9
|
6869 0
|
|
nengel@9
|
6870 },
|
|
nengel@9
|
6871 sizeof(struct EntropyContext)
|
|
nengel@9
|
6872 },
|
|
nengel@9
|
6873 {
|
|
nengel@9
|
6874 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
6875 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
6876 {
|
|
nengel@9
|
6877 1,
|
|
nengel@9
|
6878 1,
|
|
nengel@9
|
6879 1,
|
|
nengel@9
|
6880 0
|
|
nengel@9
|
6881 },
|
|
nengel@9
|
6882 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6883 }
|
|
nengel@9
|
6884 };
|
|
nengel@9
|
6885 dyn_props.priority = 0;
|
|
nengel@9
|
6886 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);
|
|
nengel@9
|
6887 if (err != NANOS_OK)
|
|
nengel@9
|
6888 nanos_handle_error(err);
|
|
nengel@9
|
6889 }
|
|
nengel@9
|
6890 }
|
|
nengel@9
|
6891 ;
|
|
nengel@9
|
6892 }
|
|
nengel@9
|
6893 {
|
|
nengel@9
|
6894 struct _dependence_holder
|
|
nengel@9
|
6895 {
|
|
nengel@9
|
6896 struct ParserContext *dep_0;
|
|
nengel@9
|
6897 } _dep_holder = {&(*pc)};
|
|
nengel@9
|
6898 nanos_dependence_t _wait_dependences[1] = {{
|
|
nengel@9
|
6899 (void **) &_dep_holder.dep_0,
|
|
nengel@9
|
6900 ((char *) ((pc)) - (char *) _dep_holder.dep_0),
|
|
nengel@9
|
6901 {
|
|
nengel@9
|
6902 1,
|
|
nengel@9
|
6903 0,
|
|
nengel@9
|
6904 0,
|
|
nengel@9
|
6905 0
|
|
nengel@9
|
6906 },
|
|
nengel@9
|
6907 sizeof (*pc)
|
|
nengel@9
|
6908 }};
|
|
nengel@9
|
6909 nanos_wait_on(1, _wait_dependences);
|
|
nengel@9
|
6910 }
|
|
nengel@9
|
6911 k++;
|
|
nengel@9
|
6912 }
|
|
nengel@9
|
6913 while (!pc->final_frame && frames++ < h->num_frames && !h->quit)
|
|
nengel@9
|
6914 {
|
|
nengel@9
|
6915 {
|
|
nengel@9
|
6916 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
6917 struct ParserContext *__tmp_1 = pc;
|
|
nengel@9
|
6918 struct NalContext *__tmp_2 = nc;
|
|
nengel@9
|
6919 SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
|
|
nengel@9
|
6920 {
|
|
nengel@9
|
6921 /* SMP device descriptor */
|
|
nengel@9
|
6922 static nanos_smp_args_t _ol_h264_decode_ompss_8_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_8};
|
|
nengel@9
|
6923 _nx_data_env_8_t *ol_args = (_nx_data_env_8_t *) 0;
|
|
nengel@9
|
6924 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
6925 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
6926 {
|
|
nengel@9
|
6927 nanos_const_wd_definition_t base;
|
|
nengel@9
|
6928 nanos_device_t devices[1];
|
|
nengel@9
|
6929 };
|
|
nengel@9
|
6930 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
6931 {
|
|
nengel@9
|
6932 {
|
|
nengel@9
|
6933 0,
|
|
nengel@9
|
6934 1,
|
|
nengel@9
|
6935 0,
|
|
nengel@9
|
6936 0,
|
|
nengel@9
|
6937 0,
|
|
nengel@9
|
6938 0,
|
|
nengel@9
|
6939 0,
|
|
nengel@9
|
6940 0
|
|
nengel@9
|
6941 },
|
|
nengel@9
|
6942 __alignof__(_nx_data_env_8_t),
|
|
nengel@9
|
6943 0,
|
|
nengel@9
|
6944 1
|
|
nengel@9
|
6945 },
|
|
nengel@9
|
6946 {{
|
|
nengel@9
|
6947 nanos_smp_factory,
|
|
nengel@9
|
6948 &_ol_h264_decode_ompss_8_smp_args
|
|
nengel@9
|
6949 }}
|
|
nengel@9
|
6950 };
|
|
nengel@9
|
6951 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
6952 nanos_err_t err;
|
|
nengel@9
|
6953 dyn_props.priority = 0;
|
|
nengel@9
|
6954 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);
|
|
nengel@9
|
6955 if (err != NANOS_OK)
|
|
nengel@9
|
6956 nanos_handle_error(err);
|
|
nengel@9
|
6957 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
6958 {
|
|
nengel@9
|
6959 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
6960 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
6961 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
6962 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
6963 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
6964 {
|
|
nengel@9
|
6965 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
6966 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
6967 {
|
|
nengel@9
|
6968 0,
|
|
nengel@9
|
6969 1,
|
|
nengel@9
|
6970 1,
|
|
nengel@9
|
6971 0
|
|
nengel@9
|
6972 },
|
|
nengel@9
|
6973 sizeof(SliceBufferEntry)
|
|
nengel@9
|
6974 },
|
|
nengel@9
|
6975 {
|
|
nengel@9
|
6976 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
6977 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
6978 {
|
|
nengel@9
|
6979 1,
|
|
nengel@9
|
6980 1,
|
|
nengel@9
|
6981 1,
|
|
nengel@9
|
6982 0
|
|
nengel@9
|
6983 },
|
|
nengel@9
|
6984 sizeof(struct ParserContext)
|
|
nengel@9
|
6985 },
|
|
nengel@9
|
6986 {
|
|
nengel@9
|
6987 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
6988 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
6989 {
|
|
nengel@9
|
6990 1,
|
|
nengel@9
|
6991 1,
|
|
nengel@9
|
6992 1,
|
|
nengel@9
|
6993 0
|
|
nengel@9
|
6994 },
|
|
nengel@9
|
6995 sizeof(struct NalContext)
|
|
nengel@9
|
6996 }
|
|
nengel@9
|
6997 };
|
|
nengel@9
|
6998 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
6999 if (err != NANOS_OK)
|
|
nengel@9
|
7000 nanos_handle_error(err);
|
|
nengel@9
|
7001 }
|
|
nengel@9
|
7002 else
|
|
nengel@9
|
7003 {
|
|
nengel@9
|
7004 _nx_data_env_8_t imm_args;
|
|
nengel@9
|
7005 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7006 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7007 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7008 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7009 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
7010 {
|
|
nengel@9
|
7011 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
7012 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
7013 {
|
|
nengel@9
|
7014 0,
|
|
nengel@9
|
7015 1,
|
|
nengel@9
|
7016 1,
|
|
nengel@9
|
7017 0
|
|
nengel@9
|
7018 },
|
|
nengel@9
|
7019 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7020 },
|
|
nengel@9
|
7021 {
|
|
nengel@9
|
7022 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
7023 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
7024 {
|
|
nengel@9
|
7025 1,
|
|
nengel@9
|
7026 1,
|
|
nengel@9
|
7027 1,
|
|
nengel@9
|
7028 0
|
|
nengel@9
|
7029 },
|
|
nengel@9
|
7030 sizeof(struct ParserContext)
|
|
nengel@9
|
7031 },
|
|
nengel@9
|
7032 {
|
|
nengel@9
|
7033 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7034 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7035 {
|
|
nengel@9
|
7036 1,
|
|
nengel@9
|
7037 1,
|
|
nengel@9
|
7038 1,
|
|
nengel@9
|
7039 0
|
|
nengel@9
|
7040 },
|
|
nengel@9
|
7041 sizeof(struct NalContext)
|
|
nengel@9
|
7042 }
|
|
nengel@9
|
7043 };
|
|
nengel@9
|
7044 dyn_props.priority = 0;
|
|
nengel@9
|
7045 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);
|
|
nengel@9
|
7046 if (err != NANOS_OK)
|
|
nengel@9
|
7047 nanos_handle_error(err);
|
|
nengel@9
|
7048 }
|
|
nengel@9
|
7049 }
|
|
nengel@9
|
7050 ;
|
|
nengel@9
|
7051 }
|
|
nengel@9
|
7052 {
|
|
nengel@9
|
7053 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
7054 struct EntropyContext *__tmp_1 = ec[k % bufs];
|
|
nengel@9
|
7055 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
7056 {
|
|
nengel@9
|
7057 /* SMP device descriptor */
|
|
nengel@9
|
7058 static nanos_smp_args_t _ol_h264_decode_ompss_9_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_9};
|
|
nengel@9
|
7059 _nx_data_env_9_t *ol_args = (_nx_data_env_9_t *) 0;
|
|
nengel@9
|
7060 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
7061 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
7062 {
|
|
nengel@9
|
7063 nanos_const_wd_definition_t base;
|
|
nengel@9
|
7064 nanos_device_t devices[1];
|
|
nengel@9
|
7065 };
|
|
nengel@9
|
7066 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
7067 {
|
|
nengel@9
|
7068 {
|
|
nengel@9
|
7069 0,
|
|
nengel@9
|
7070 1,
|
|
nengel@9
|
7071 0,
|
|
nengel@9
|
7072 0,
|
|
nengel@9
|
7073 0,
|
|
nengel@9
|
7074 0,
|
|
nengel@9
|
7075 0,
|
|
nengel@9
|
7076 0
|
|
nengel@9
|
7077 },
|
|
nengel@9
|
7078 __alignof__(_nx_data_env_9_t),
|
|
nengel@9
|
7079 0,
|
|
nengel@9
|
7080 1
|
|
nengel@9
|
7081 },
|
|
nengel@9
|
7082 {{
|
|
nengel@9
|
7083 nanos_smp_factory,
|
|
nengel@9
|
7084 &_ol_h264_decode_ompss_9_smp_args
|
|
nengel@9
|
7085 }}
|
|
nengel@9
|
7086 };
|
|
nengel@9
|
7087 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
7088 nanos_err_t err;
|
|
nengel@9
|
7089 dyn_props.priority = 0;
|
|
nengel@9
|
7090 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);
|
|
nengel@9
|
7091 if (err != NANOS_OK)
|
|
nengel@9
|
7092 nanos_handle_error(err);
|
|
nengel@9
|
7093 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
7094 {
|
|
nengel@9
|
7095 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7096 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7097 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7098 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
7099 {
|
|
nengel@9
|
7100 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
7101 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
7102 {
|
|
nengel@9
|
7103 1,
|
|
nengel@9
|
7104 1,
|
|
nengel@9
|
7105 1,
|
|
nengel@9
|
7106 0
|
|
nengel@9
|
7107 },
|
|
nengel@9
|
7108 sizeof(struct EntropyContext)
|
|
nengel@9
|
7109 },
|
|
nengel@9
|
7110 {
|
|
nengel@9
|
7111 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
7112 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
7113 {
|
|
nengel@9
|
7114 1,
|
|
nengel@9
|
7115 1,
|
|
nengel@9
|
7116 1,
|
|
nengel@9
|
7117 0
|
|
nengel@9
|
7118 },
|
|
nengel@9
|
7119 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7120 }
|
|
nengel@9
|
7121 };
|
|
nengel@9
|
7122 err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
7123 if (err != NANOS_OK)
|
|
nengel@9
|
7124 nanos_handle_error(err);
|
|
nengel@9
|
7125 }
|
|
nengel@9
|
7126 else
|
|
nengel@9
|
7127 {
|
|
nengel@9
|
7128 _nx_data_env_9_t imm_args;
|
|
nengel@9
|
7129 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7130 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7131 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7132 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
7133 {
|
|
nengel@9
|
7134 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
7135 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
7136 {
|
|
nengel@9
|
7137 1,
|
|
nengel@9
|
7138 1,
|
|
nengel@9
|
7139 1,
|
|
nengel@9
|
7140 0
|
|
nengel@9
|
7141 },
|
|
nengel@9
|
7142 sizeof(struct EntropyContext)
|
|
nengel@9
|
7143 },
|
|
nengel@9
|
7144 {
|
|
nengel@9
|
7145 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7146 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7147 {
|
|
nengel@9
|
7148 1,
|
|
nengel@9
|
7149 1,
|
|
nengel@9
|
7150 1,
|
|
nengel@9
|
7151 0
|
|
nengel@9
|
7152 },
|
|
nengel@9
|
7153 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7154 }
|
|
nengel@9
|
7155 };
|
|
nengel@9
|
7156 dyn_props.priority = 0;
|
|
nengel@9
|
7157 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);
|
|
nengel@9
|
7158 if (err != NANOS_OK)
|
|
nengel@9
|
7159 nanos_handle_error(err);
|
|
nengel@9
|
7160 }
|
|
nengel@9
|
7161 }
|
|
nengel@9
|
7162 ;
|
|
nengel@9
|
7163 }
|
|
nengel@9
|
7164 k++;
|
|
nengel@9
|
7165 {
|
|
nengel@9
|
7166 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
7167 struct MBRecContext *__tmp_1 = rc[k % 2];
|
|
nengel@9
|
7168 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
7169 int *__tmp_3 = &init;
|
|
nengel@9
|
7170 {
|
|
nengel@9
|
7171 /* SMP device descriptor */
|
|
nengel@9
|
7172 static nanos_smp_args_t _ol_h264_decode_ompss_10_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_10};
|
|
nengel@9
|
7173 _nx_data_env_10_t *ol_args = (_nx_data_env_10_t *) 0;
|
|
nengel@9
|
7174 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
7175 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
7176 {
|
|
nengel@9
|
7177 nanos_const_wd_definition_t base;
|
|
nengel@9
|
7178 nanos_device_t devices[1];
|
|
nengel@9
|
7179 };
|
|
nengel@9
|
7180 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
7181 {
|
|
nengel@9
|
7182 {
|
|
nengel@9
|
7183 0,
|
|
nengel@9
|
7184 1,
|
|
nengel@9
|
7185 0,
|
|
nengel@9
|
7186 0,
|
|
nengel@9
|
7187 0,
|
|
nengel@9
|
7188 0,
|
|
nengel@9
|
7189 0,
|
|
nengel@9
|
7190 0
|
|
nengel@9
|
7191 },
|
|
nengel@9
|
7192 __alignof__(_nx_data_env_10_t),
|
|
nengel@9
|
7193 0,
|
|
nengel@9
|
7194 1
|
|
nengel@9
|
7195 },
|
|
nengel@9
|
7196 {{
|
|
nengel@9
|
7197 nanos_smp_factory,
|
|
nengel@9
|
7198 &_ol_h264_decode_ompss_10_smp_args
|
|
nengel@9
|
7199 }}
|
|
nengel@9
|
7200 };
|
|
nengel@9
|
7201 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
7202 nanos_err_t err;
|
|
nengel@9
|
7203 dyn_props.priority = 0;
|
|
nengel@9
|
7204 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);
|
|
nengel@9
|
7205 if (err != NANOS_OK)
|
|
nengel@9
|
7206 nanos_handle_error(err);
|
|
nengel@9
|
7207 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
7208 {
|
|
nengel@9
|
7209 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7210 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7211 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7212 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7213 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
7214 {
|
|
nengel@9
|
7215 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
7216 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
7217 {
|
|
nengel@9
|
7218 1,
|
|
nengel@9
|
7219 1,
|
|
nengel@9
|
7220 1,
|
|
nengel@9
|
7221 0
|
|
nengel@9
|
7222 },
|
|
nengel@9
|
7223 sizeof(struct MBRecContext)
|
|
nengel@9
|
7224 },
|
|
nengel@9
|
7225 {
|
|
nengel@9
|
7226 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
7227 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
7228 {
|
|
nengel@9
|
7229 1,
|
|
nengel@9
|
7230 1,
|
|
nengel@9
|
7231 1,
|
|
nengel@9
|
7232 0
|
|
nengel@9
|
7233 },
|
|
nengel@9
|
7234 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7235 },
|
|
nengel@9
|
7236 {
|
|
nengel@9
|
7237 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
7238 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
7239 {
|
|
nengel@9
|
7240 1,
|
|
nengel@9
|
7241 1,
|
|
nengel@9
|
7242 1,
|
|
nengel@9
|
7243 0
|
|
nengel@9
|
7244 },
|
|
nengel@9
|
7245 sizeof(int)
|
|
nengel@9
|
7246 }
|
|
nengel@9
|
7247 };
|
|
nengel@9
|
7248 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
7249 if (err != NANOS_OK)
|
|
nengel@9
|
7250 nanos_handle_error(err);
|
|
nengel@9
|
7251 }
|
|
nengel@9
|
7252 else
|
|
nengel@9
|
7253 {
|
|
nengel@9
|
7254 _nx_data_env_10_t imm_args;
|
|
nengel@9
|
7255 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7256 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7257 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7258 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7259 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
7260 {
|
|
nengel@9
|
7261 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
7262 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
7263 {
|
|
nengel@9
|
7264 1,
|
|
nengel@9
|
7265 1,
|
|
nengel@9
|
7266 1,
|
|
nengel@9
|
7267 0
|
|
nengel@9
|
7268 },
|
|
nengel@9
|
7269 sizeof(struct MBRecContext)
|
|
nengel@9
|
7270 },
|
|
nengel@9
|
7271 {
|
|
nengel@9
|
7272 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7273 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7274 {
|
|
nengel@9
|
7275 1,
|
|
nengel@9
|
7276 1,
|
|
nengel@9
|
7277 1,
|
|
nengel@9
|
7278 0
|
|
nengel@9
|
7279 },
|
|
nengel@9
|
7280 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7281 },
|
|
nengel@9
|
7282 {
|
|
nengel@9
|
7283 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
7284 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
7285 {
|
|
nengel@9
|
7286 1,
|
|
nengel@9
|
7287 1,
|
|
nengel@9
|
7288 1,
|
|
nengel@9
|
7289 0
|
|
nengel@9
|
7290 },
|
|
nengel@9
|
7291 sizeof(int)
|
|
nengel@9
|
7292 }
|
|
nengel@9
|
7293 };
|
|
nengel@9
|
7294 dyn_props.priority = 0;
|
|
nengel@9
|
7295 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);
|
|
nengel@9
|
7296 if (err != NANOS_OK)
|
|
nengel@9
|
7297 nanos_handle_error(err);
|
|
nengel@9
|
7298 }
|
|
nengel@9
|
7299 }
|
|
nengel@9
|
7300 ;
|
|
nengel@9
|
7301 }
|
|
nengel@9
|
7302 smbc = acquire_smbc(h);
|
|
nengel@9
|
7303 SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc);
|
|
nengel@9
|
7304 {
|
|
nengel@9
|
7305 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
7306 struct SuperMBContext *__tmp_1 = smbc;
|
|
nengel@9
|
7307 struct MBRecContext *__tmp_2 = rc[k % 2];
|
|
nengel@9
|
7308 SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
|
|
nengel@9
|
7309 struct SuperMBTask *__tmp_4 = lastsmb;
|
|
nengel@9
|
7310 int *__tmp_5 = &release;
|
|
nengel@9
|
7311 {
|
|
nengel@9
|
7312 /* SMP device descriptor */
|
|
nengel@9
|
7313 static nanos_smp_args_t _ol_h264_decode_ompss_11_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_11};
|
|
nengel@9
|
7314 _nx_data_env_11_t *ol_args = (_nx_data_env_11_t *) 0;
|
|
nengel@9
|
7315 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
7316 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
7317 {
|
|
nengel@9
|
7318 nanos_const_wd_definition_t base;
|
|
nengel@9
|
7319 nanos_device_t devices[1];
|
|
nengel@9
|
7320 };
|
|
nengel@9
|
7321 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
7322 {
|
|
nengel@9
|
7323 {
|
|
nengel@9
|
7324 0,
|
|
nengel@9
|
7325 1,
|
|
nengel@9
|
7326 0,
|
|
nengel@9
|
7327 0,
|
|
nengel@9
|
7328 0,
|
|
nengel@9
|
7329 0,
|
|
nengel@9
|
7330 0,
|
|
nengel@9
|
7331 0
|
|
nengel@9
|
7332 },
|
|
nengel@9
|
7333 __alignof__(_nx_data_env_11_t),
|
|
nengel@9
|
7334 0,
|
|
nengel@9
|
7335 1
|
|
nengel@9
|
7336 },
|
|
nengel@9
|
7337 {{
|
|
nengel@9
|
7338 nanos_smp_factory,
|
|
nengel@9
|
7339 &_ol_h264_decode_ompss_11_smp_args
|
|
nengel@9
|
7340 }}
|
|
nengel@9
|
7341 };
|
|
nengel@9
|
7342 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
7343 nanos_err_t err;
|
|
nengel@9
|
7344 dyn_props.priority = 0;
|
|
nengel@9
|
7345 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);
|
|
nengel@9
|
7346 if (err != NANOS_OK)
|
|
nengel@9
|
7347 nanos_handle_error(err);
|
|
nengel@9
|
7348 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
7349 {
|
|
nengel@9
|
7350 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7351 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7352 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7353 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7354 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
7355 ol_args->__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
7356 nanos_dependence_t _dependences[4] = {
|
|
nengel@9
|
7357 {
|
|
nengel@9
|
7358 (void **) &ol_args->__tmp_4_0,
|
|
nengel@9
|
7359 ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
|
|
nengel@9
|
7360 {
|
|
nengel@9
|
7361 1,
|
|
nengel@9
|
7362 0,
|
|
nengel@9
|
7363 1,
|
|
nengel@9
|
7364 0
|
|
nengel@9
|
7365 },
|
|
nengel@9
|
7366 sizeof(struct SuperMBTask)
|
|
nengel@9
|
7367 },
|
|
nengel@9
|
7368 {
|
|
nengel@9
|
7369 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
7370 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
7371 {
|
|
nengel@9
|
7372 1,
|
|
nengel@9
|
7373 1,
|
|
nengel@9
|
7374 1,
|
|
nengel@9
|
7375 0
|
|
nengel@9
|
7376 },
|
|
nengel@9
|
7377 sizeof(struct MBRecContext)
|
|
nengel@9
|
7378 },
|
|
nengel@9
|
7379 {
|
|
nengel@9
|
7380 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
7381 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
7382 {
|
|
nengel@9
|
7383 1,
|
|
nengel@9
|
7384 1,
|
|
nengel@9
|
7385 1,
|
|
nengel@9
|
7386 0
|
|
nengel@9
|
7387 },
|
|
nengel@9
|
7388 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7389 },
|
|
nengel@9
|
7390 {
|
|
nengel@9
|
7391 (void **) &ol_args->__tmp_5_0,
|
|
nengel@9
|
7392 ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
|
|
nengel@9
|
7393 {
|
|
nengel@9
|
7394 1,
|
|
nengel@9
|
7395 1,
|
|
nengel@9
|
7396 1,
|
|
nengel@9
|
7397 0
|
|
nengel@9
|
7398 },
|
|
nengel@9
|
7399 sizeof(int)
|
|
nengel@9
|
7400 }
|
|
nengel@9
|
7401 };
|
|
nengel@9
|
7402 err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
7403 if (err != NANOS_OK)
|
|
nengel@9
|
7404 nanos_handle_error(err);
|
|
nengel@9
|
7405 }
|
|
nengel@9
|
7406 else
|
|
nengel@9
|
7407 {
|
|
nengel@9
|
7408 _nx_data_env_11_t imm_args;
|
|
nengel@9
|
7409 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7410 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7411 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7412 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7413 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
7414 imm_args.__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
7415 nanos_dependence_t _dependences[4] = {
|
|
nengel@9
|
7416 {
|
|
nengel@9
|
7417 (void **) &imm_args.__tmp_4_0,
|
|
nengel@9
|
7418 ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
|
|
nengel@9
|
7419 {
|
|
nengel@9
|
7420 1,
|
|
nengel@9
|
7421 0,
|
|
nengel@9
|
7422 1,
|
|
nengel@9
|
7423 0
|
|
nengel@9
|
7424 },
|
|
nengel@9
|
7425 sizeof(struct SuperMBTask)
|
|
nengel@9
|
7426 },
|
|
nengel@9
|
7427 {
|
|
nengel@9
|
7428 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7429 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7430 {
|
|
nengel@9
|
7431 1,
|
|
nengel@9
|
7432 1,
|
|
nengel@9
|
7433 1,
|
|
nengel@9
|
7434 0
|
|
nengel@9
|
7435 },
|
|
nengel@9
|
7436 sizeof(struct MBRecContext)
|
|
nengel@9
|
7437 },
|
|
nengel@9
|
7438 {
|
|
nengel@9
|
7439 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
7440 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
7441 {
|
|
nengel@9
|
7442 1,
|
|
nengel@9
|
7443 1,
|
|
nengel@9
|
7444 1,
|
|
nengel@9
|
7445 0
|
|
nengel@9
|
7446 },
|
|
nengel@9
|
7447 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7448 },
|
|
nengel@9
|
7449 {
|
|
nengel@9
|
7450 (void **) &imm_args.__tmp_5_0,
|
|
nengel@9
|
7451 ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
|
|
nengel@9
|
7452 {
|
|
nengel@9
|
7453 1,
|
|
nengel@9
|
7454 1,
|
|
nengel@9
|
7455 1,
|
|
nengel@9
|
7456 0
|
|
nengel@9
|
7457 },
|
|
nengel@9
|
7458 sizeof(int)
|
|
nengel@9
|
7459 }
|
|
nengel@9
|
7460 };
|
|
nengel@9
|
7461 dyn_props.priority = 0;
|
|
nengel@9
|
7462 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);
|
|
nengel@9
|
7463 if (err != NANOS_OK)
|
|
nengel@9
|
7464 nanos_handle_error(err);
|
|
nengel@9
|
7465 }
|
|
nengel@9
|
7466 }
|
|
nengel@9
|
7467 ;
|
|
nengel@9
|
7468 }
|
|
nengel@9
|
7469 {
|
|
nengel@9
|
7470 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
7471 struct OutputContext *__tmp_1 = oc;
|
|
nengel@9
|
7472 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
7473 {
|
|
nengel@9
|
7474 /* SMP device descriptor */
|
|
nengel@9
|
7475 static nanos_smp_args_t _ol_h264_decode_ompss_12_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_12};
|
|
nengel@9
|
7476 _nx_data_env_12_t *ol_args = (_nx_data_env_12_t *) 0;
|
|
nengel@9
|
7477 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
7478 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
7479 {
|
|
nengel@9
|
7480 nanos_const_wd_definition_t base;
|
|
nengel@9
|
7481 nanos_device_t devices[1];
|
|
nengel@9
|
7482 };
|
|
nengel@9
|
7483 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
7484 {
|
|
nengel@9
|
7485 {
|
|
nengel@9
|
7486 0,
|
|
nengel@9
|
7487 1,
|
|
nengel@9
|
7488 0,
|
|
nengel@9
|
7489 0,
|
|
nengel@9
|
7490 0,
|
|
nengel@9
|
7491 0,
|
|
nengel@9
|
7492 0,
|
|
nengel@9
|
7493 0
|
|
nengel@9
|
7494 },
|
|
nengel@9
|
7495 __alignof__(_nx_data_env_12_t),
|
|
nengel@9
|
7496 0,
|
|
nengel@9
|
7497 1
|
|
nengel@9
|
7498 },
|
|
nengel@9
|
7499 {{
|
|
nengel@9
|
7500 nanos_smp_factory,
|
|
nengel@9
|
7501 &_ol_h264_decode_ompss_12_smp_args
|
|
nengel@9
|
7502 }}
|
|
nengel@9
|
7503 };
|
|
nengel@9
|
7504 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
7505 nanos_err_t err;
|
|
nengel@9
|
7506 dyn_props.priority = 0;
|
|
nengel@9
|
7507 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);
|
|
nengel@9
|
7508 if (err != NANOS_OK)
|
|
nengel@9
|
7509 nanos_handle_error(err);
|
|
nengel@9
|
7510 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
7511 {
|
|
nengel@9
|
7512 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7513 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7514 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7515 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
7516 {
|
|
nengel@9
|
7517 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
7518 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
7519 {
|
|
nengel@9
|
7520 1,
|
|
nengel@9
|
7521 0,
|
|
nengel@9
|
7522 1,
|
|
nengel@9
|
7523 0
|
|
nengel@9
|
7524 },
|
|
nengel@9
|
7525 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7526 },
|
|
nengel@9
|
7527 {
|
|
nengel@9
|
7528 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
7529 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
7530 {
|
|
nengel@9
|
7531 1,
|
|
nengel@9
|
7532 1,
|
|
nengel@9
|
7533 1,
|
|
nengel@9
|
7534 0
|
|
nengel@9
|
7535 },
|
|
nengel@9
|
7536 sizeof(struct OutputContext)
|
|
nengel@9
|
7537 }
|
|
nengel@9
|
7538 };
|
|
nengel@9
|
7539 err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
7540 if (err != NANOS_OK)
|
|
nengel@9
|
7541 nanos_handle_error(err);
|
|
nengel@9
|
7542 }
|
|
nengel@9
|
7543 else
|
|
nengel@9
|
7544 {
|
|
nengel@9
|
7545 _nx_data_env_12_t imm_args;
|
|
nengel@9
|
7546 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7547 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7548 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7549 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
7550 {
|
|
nengel@9
|
7551 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7552 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7553 {
|
|
nengel@9
|
7554 1,
|
|
nengel@9
|
7555 0,
|
|
nengel@9
|
7556 1,
|
|
nengel@9
|
7557 0
|
|
nengel@9
|
7558 },
|
|
nengel@9
|
7559 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7560 },
|
|
nengel@9
|
7561 {
|
|
nengel@9
|
7562 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
7563 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
7564 {
|
|
nengel@9
|
7565 1,
|
|
nengel@9
|
7566 1,
|
|
nengel@9
|
7567 1,
|
|
nengel@9
|
7568 0
|
|
nengel@9
|
7569 },
|
|
nengel@9
|
7570 sizeof(struct OutputContext)
|
|
nengel@9
|
7571 }
|
|
nengel@9
|
7572 };
|
|
nengel@9
|
7573 dyn_props.priority = 0;
|
|
nengel@9
|
7574 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);
|
|
nengel@9
|
7575 if (err != NANOS_OK)
|
|
nengel@9
|
7576 nanos_handle_error(err);
|
|
nengel@9
|
7577 }
|
|
nengel@9
|
7578 }
|
|
nengel@9
|
7579 ;
|
|
nengel@9
|
7580 }
|
|
nengel@9
|
7581 {
|
|
nengel@9
|
7582 struct _dependence_holder
|
|
nengel@9
|
7583 {
|
|
nengel@9
|
7584 struct ParserContext *dep_0;
|
|
nengel@9
|
7585 } _dep_holder = {&(*pc)};
|
|
nengel@9
|
7586 nanos_dependence_t _wait_dependences[1] = {{
|
|
nengel@9
|
7587 (void **) &_dep_holder.dep_0,
|
|
nengel@9
|
7588 ((char *) ((pc)) - (char *) _dep_holder.dep_0),
|
|
nengel@9
|
7589 {
|
|
nengel@9
|
7590 1,
|
|
nengel@9
|
7591 0,
|
|
nengel@9
|
7592 0,
|
|
nengel@9
|
7593 0
|
|
nengel@9
|
7594 },
|
|
nengel@9
|
7595 sizeof (*pc)
|
|
nengel@9
|
7596 }};
|
|
nengel@9
|
7597 nanos_wait_on(1, _wait_dependences);
|
|
nengel@9
|
7598 }
|
|
nengel@9
|
7599 }
|
|
nengel@9
|
7600 for (int i = 0;
|
|
nengel@9
|
7601 i < num_pre_ed;
|
|
nengel@9
|
7602 i++)
|
|
nengel@9
|
7603 {
|
|
nengel@9
|
7604 k++;
|
|
nengel@9
|
7605 {
|
|
nengel@9
|
7606 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
7607 struct MBRecContext *__tmp_1 = rc[k % 2];
|
|
nengel@9
|
7608 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
7609 int *__tmp_3 = &init;
|
|
nengel@9
|
7610 {
|
|
nengel@9
|
7611 /* SMP device descriptor */
|
|
nengel@9
|
7612 static nanos_smp_args_t _ol_h264_decode_ompss_13_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_13};
|
|
nengel@9
|
7613 _nx_data_env_13_t *ol_args = (_nx_data_env_13_t *) 0;
|
|
nengel@9
|
7614 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
7615 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
7616 {
|
|
nengel@9
|
7617 nanos_const_wd_definition_t base;
|
|
nengel@9
|
7618 nanos_device_t devices[1];
|
|
nengel@9
|
7619 };
|
|
nengel@9
|
7620 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
7621 {
|
|
nengel@9
|
7622 {
|
|
nengel@9
|
7623 0,
|
|
nengel@9
|
7624 1,
|
|
nengel@9
|
7625 0,
|
|
nengel@9
|
7626 0,
|
|
nengel@9
|
7627 0,
|
|
nengel@9
|
7628 0,
|
|
nengel@9
|
7629 0,
|
|
nengel@9
|
7630 0
|
|
nengel@9
|
7631 },
|
|
nengel@9
|
7632 __alignof__(_nx_data_env_13_t),
|
|
nengel@9
|
7633 0,
|
|
nengel@9
|
7634 1
|
|
nengel@9
|
7635 },
|
|
nengel@9
|
7636 {{
|
|
nengel@9
|
7637 nanos_smp_factory,
|
|
nengel@9
|
7638 &_ol_h264_decode_ompss_13_smp_args
|
|
nengel@9
|
7639 }}
|
|
nengel@9
|
7640 };
|
|
nengel@9
|
7641 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
7642 nanos_err_t err;
|
|
nengel@9
|
7643 dyn_props.priority = 0;
|
|
nengel@9
|
7644 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);
|
|
nengel@9
|
7645 if (err != NANOS_OK)
|
|
nengel@9
|
7646 nanos_handle_error(err);
|
|
nengel@9
|
7647 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
7648 {
|
|
nengel@9
|
7649 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7650 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7651 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7652 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7653 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
7654 {
|
|
nengel@9
|
7655 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
7656 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
7657 {
|
|
nengel@9
|
7658 1,
|
|
nengel@9
|
7659 1,
|
|
nengel@9
|
7660 1,
|
|
nengel@9
|
7661 0
|
|
nengel@9
|
7662 },
|
|
nengel@9
|
7663 sizeof(struct MBRecContext)
|
|
nengel@9
|
7664 },
|
|
nengel@9
|
7665 {
|
|
nengel@9
|
7666 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
7667 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
7668 {
|
|
nengel@9
|
7669 1,
|
|
nengel@9
|
7670 1,
|
|
nengel@9
|
7671 1,
|
|
nengel@9
|
7672 0
|
|
nengel@9
|
7673 },
|
|
nengel@9
|
7674 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7675 },
|
|
nengel@9
|
7676 {
|
|
nengel@9
|
7677 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
7678 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
7679 {
|
|
nengel@9
|
7680 1,
|
|
nengel@9
|
7681 1,
|
|
nengel@9
|
7682 1,
|
|
nengel@9
|
7683 0
|
|
nengel@9
|
7684 },
|
|
nengel@9
|
7685 sizeof(int)
|
|
nengel@9
|
7686 }
|
|
nengel@9
|
7687 };
|
|
nengel@9
|
7688 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
7689 if (err != NANOS_OK)
|
|
nengel@9
|
7690 nanos_handle_error(err);
|
|
nengel@9
|
7691 }
|
|
nengel@9
|
7692 else
|
|
nengel@9
|
7693 {
|
|
nengel@9
|
7694 _nx_data_env_13_t imm_args;
|
|
nengel@9
|
7695 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7696 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7697 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7698 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7699 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
7700 {
|
|
nengel@9
|
7701 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
7702 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
7703 {
|
|
nengel@9
|
7704 1,
|
|
nengel@9
|
7705 1,
|
|
nengel@9
|
7706 1,
|
|
nengel@9
|
7707 0
|
|
nengel@9
|
7708 },
|
|
nengel@9
|
7709 sizeof(struct MBRecContext)
|
|
nengel@9
|
7710 },
|
|
nengel@9
|
7711 {
|
|
nengel@9
|
7712 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7713 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7714 {
|
|
nengel@9
|
7715 1,
|
|
nengel@9
|
7716 1,
|
|
nengel@9
|
7717 1,
|
|
nengel@9
|
7718 0
|
|
nengel@9
|
7719 },
|
|
nengel@9
|
7720 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7721 },
|
|
nengel@9
|
7722 {
|
|
nengel@9
|
7723 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
7724 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
7725 {
|
|
nengel@9
|
7726 1,
|
|
nengel@9
|
7727 1,
|
|
nengel@9
|
7728 1,
|
|
nengel@9
|
7729 0
|
|
nengel@9
|
7730 },
|
|
nengel@9
|
7731 sizeof(int)
|
|
nengel@9
|
7732 }
|
|
nengel@9
|
7733 };
|
|
nengel@9
|
7734 dyn_props.priority = 0;
|
|
nengel@9
|
7735 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);
|
|
nengel@9
|
7736 if (err != NANOS_OK)
|
|
nengel@9
|
7737 nanos_handle_error(err);
|
|
nengel@9
|
7738 }
|
|
nengel@9
|
7739 }
|
|
nengel@9
|
7740 ;
|
|
nengel@9
|
7741 }
|
|
nengel@9
|
7742 smbc = acquire_smbc(h);
|
|
nengel@9
|
7743 SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc);
|
|
nengel@9
|
7744 {
|
|
nengel@9
|
7745 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
7746 struct SuperMBContext *__tmp_1 = smbc;
|
|
nengel@9
|
7747 struct MBRecContext *__tmp_2 = rc[k % 2];
|
|
nengel@9
|
7748 SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
|
|
nengel@9
|
7749 struct SuperMBTask *__tmp_4 = lastsmb;
|
|
nengel@9
|
7750 int *__tmp_5 = &release;
|
|
nengel@9
|
7751 {
|
|
nengel@9
|
7752 /* SMP device descriptor */
|
|
nengel@9
|
7753 static nanos_smp_args_t _ol_h264_decode_ompss_14_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_14};
|
|
nengel@9
|
7754 _nx_data_env_14_t *ol_args = (_nx_data_env_14_t *) 0;
|
|
nengel@9
|
7755 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
7756 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
7757 {
|
|
nengel@9
|
7758 nanos_const_wd_definition_t base;
|
|
nengel@9
|
7759 nanos_device_t devices[1];
|
|
nengel@9
|
7760 };
|
|
nengel@9
|
7761 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
7762 {
|
|
nengel@9
|
7763 {
|
|
nengel@9
|
7764 0,
|
|
nengel@9
|
7765 1,
|
|
nengel@9
|
7766 0,
|
|
nengel@9
|
7767 0,
|
|
nengel@9
|
7768 0,
|
|
nengel@9
|
7769 0,
|
|
nengel@9
|
7770 0,
|
|
nengel@9
|
7771 0
|
|
nengel@9
|
7772 },
|
|
nengel@9
|
7773 __alignof__(_nx_data_env_14_t),
|
|
nengel@9
|
7774 0,
|
|
nengel@9
|
7775 1
|
|
nengel@9
|
7776 },
|
|
nengel@9
|
7777 {{
|
|
nengel@9
|
7778 nanos_smp_factory,
|
|
nengel@9
|
7779 &_ol_h264_decode_ompss_14_smp_args
|
|
nengel@9
|
7780 }}
|
|
nengel@9
|
7781 };
|
|
nengel@9
|
7782 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
7783 nanos_err_t err;
|
|
nengel@9
|
7784 dyn_props.priority = 0;
|
|
nengel@9
|
7785 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);
|
|
nengel@9
|
7786 if (err != NANOS_OK)
|
|
nengel@9
|
7787 nanos_handle_error(err);
|
|
nengel@9
|
7788 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
7789 {
|
|
nengel@9
|
7790 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7791 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7792 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7793 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7794 ol_args->__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
7795 ol_args->__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
7796 nanos_dependence_t _dependences[4] = {
|
|
nengel@9
|
7797 {
|
|
nengel@9
|
7798 (void **) &ol_args->__tmp_4_0,
|
|
nengel@9
|
7799 ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
|
|
nengel@9
|
7800 {
|
|
nengel@9
|
7801 1,
|
|
nengel@9
|
7802 0,
|
|
nengel@9
|
7803 1,
|
|
nengel@9
|
7804 0
|
|
nengel@9
|
7805 },
|
|
nengel@9
|
7806 sizeof(struct SuperMBTask)
|
|
nengel@9
|
7807 },
|
|
nengel@9
|
7808 {
|
|
nengel@9
|
7809 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
7810 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
7811 {
|
|
nengel@9
|
7812 1,
|
|
nengel@9
|
7813 1,
|
|
nengel@9
|
7814 1,
|
|
nengel@9
|
7815 0
|
|
nengel@9
|
7816 },
|
|
nengel@9
|
7817 sizeof(struct MBRecContext)
|
|
nengel@9
|
7818 },
|
|
nengel@9
|
7819 {
|
|
nengel@9
|
7820 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
7821 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
7822 {
|
|
nengel@9
|
7823 1,
|
|
nengel@9
|
7824 1,
|
|
nengel@9
|
7825 1,
|
|
nengel@9
|
7826 0
|
|
nengel@9
|
7827 },
|
|
nengel@9
|
7828 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7829 },
|
|
nengel@9
|
7830 {
|
|
nengel@9
|
7831 (void **) &ol_args->__tmp_5_0,
|
|
nengel@9
|
7832 ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
|
|
nengel@9
|
7833 {
|
|
nengel@9
|
7834 1,
|
|
nengel@9
|
7835 1,
|
|
nengel@9
|
7836 1,
|
|
nengel@9
|
7837 0
|
|
nengel@9
|
7838 },
|
|
nengel@9
|
7839 sizeof(int)
|
|
nengel@9
|
7840 }
|
|
nengel@9
|
7841 };
|
|
nengel@9
|
7842 err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
7843 if (err != NANOS_OK)
|
|
nengel@9
|
7844 nanos_handle_error(err);
|
|
nengel@9
|
7845 }
|
|
nengel@9
|
7846 else
|
|
nengel@9
|
7847 {
|
|
nengel@9
|
7848 _nx_data_env_14_t imm_args;
|
|
nengel@9
|
7849 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7850 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7851 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7852 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
7853 imm_args.__tmp_4_0 = __tmp_4;
|
|
nengel@9
|
7854 imm_args.__tmp_5_0 = __tmp_5;
|
|
nengel@9
|
7855 nanos_dependence_t _dependences[4] = {
|
|
nengel@9
|
7856 {
|
|
nengel@9
|
7857 (void **) &imm_args.__tmp_4_0,
|
|
nengel@9
|
7858 ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
|
|
nengel@9
|
7859 {
|
|
nengel@9
|
7860 1,
|
|
nengel@9
|
7861 0,
|
|
nengel@9
|
7862 1,
|
|
nengel@9
|
7863 0
|
|
nengel@9
|
7864 },
|
|
nengel@9
|
7865 sizeof(struct SuperMBTask)
|
|
nengel@9
|
7866 },
|
|
nengel@9
|
7867 {
|
|
nengel@9
|
7868 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7869 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7870 {
|
|
nengel@9
|
7871 1,
|
|
nengel@9
|
7872 1,
|
|
nengel@9
|
7873 1,
|
|
nengel@9
|
7874 0
|
|
nengel@9
|
7875 },
|
|
nengel@9
|
7876 sizeof(struct MBRecContext)
|
|
nengel@9
|
7877 },
|
|
nengel@9
|
7878 {
|
|
nengel@9
|
7879 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
7880 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
7881 {
|
|
nengel@9
|
7882 1,
|
|
nengel@9
|
7883 1,
|
|
nengel@9
|
7884 1,
|
|
nengel@9
|
7885 0
|
|
nengel@9
|
7886 },
|
|
nengel@9
|
7887 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7888 },
|
|
nengel@9
|
7889 {
|
|
nengel@9
|
7890 (void **) &imm_args.__tmp_5_0,
|
|
nengel@9
|
7891 ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
|
|
nengel@9
|
7892 {
|
|
nengel@9
|
7893 1,
|
|
nengel@9
|
7894 1,
|
|
nengel@9
|
7895 1,
|
|
nengel@9
|
7896 0
|
|
nengel@9
|
7897 },
|
|
nengel@9
|
7898 sizeof(int)
|
|
nengel@9
|
7899 }
|
|
nengel@9
|
7900 };
|
|
nengel@9
|
7901 dyn_props.priority = 0;
|
|
nengel@9
|
7902 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);
|
|
nengel@9
|
7903 if (err != NANOS_OK)
|
|
nengel@9
|
7904 nanos_handle_error(err);
|
|
nengel@9
|
7905 }
|
|
nengel@9
|
7906 }
|
|
nengel@9
|
7907 ;
|
|
nengel@9
|
7908 }
|
|
nengel@9
|
7909 {
|
|
nengel@9
|
7910 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
7911 struct OutputContext *__tmp_1 = oc;
|
|
nengel@9
|
7912 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
7913 {
|
|
nengel@9
|
7914 /* SMP device descriptor */
|
|
nengel@9
|
7915 static nanos_smp_args_t _ol_h264_decode_ompss_15_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_15};
|
|
nengel@9
|
7916 _nx_data_env_15_t *ol_args = (_nx_data_env_15_t *) 0;
|
|
nengel@9
|
7917 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
7918 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
7919 {
|
|
nengel@9
|
7920 nanos_const_wd_definition_t base;
|
|
nengel@9
|
7921 nanos_device_t devices[1];
|
|
nengel@9
|
7922 };
|
|
nengel@9
|
7923 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
7924 {
|
|
nengel@9
|
7925 {
|
|
nengel@9
|
7926 0,
|
|
nengel@9
|
7927 1,
|
|
nengel@9
|
7928 0,
|
|
nengel@9
|
7929 0,
|
|
nengel@9
|
7930 0,
|
|
nengel@9
|
7931 0,
|
|
nengel@9
|
7932 0,
|
|
nengel@9
|
7933 0
|
|
nengel@9
|
7934 },
|
|
nengel@9
|
7935 __alignof__(_nx_data_env_15_t),
|
|
nengel@9
|
7936 0,
|
|
nengel@9
|
7937 1
|
|
nengel@9
|
7938 },
|
|
nengel@9
|
7939 {{
|
|
nengel@9
|
7940 nanos_smp_factory,
|
|
nengel@9
|
7941 &_ol_h264_decode_ompss_15_smp_args
|
|
nengel@9
|
7942 }}
|
|
nengel@9
|
7943 };
|
|
nengel@9
|
7944 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
7945 nanos_err_t err;
|
|
nengel@9
|
7946 dyn_props.priority = 0;
|
|
nengel@9
|
7947 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);
|
|
nengel@9
|
7948 if (err != NANOS_OK)
|
|
nengel@9
|
7949 nanos_handle_error(err);
|
|
nengel@9
|
7950 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
7951 {
|
|
nengel@9
|
7952 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7953 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7954 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7955 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
7956 {
|
|
nengel@9
|
7957 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
7958 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
7959 {
|
|
nengel@9
|
7960 1,
|
|
nengel@9
|
7961 0,
|
|
nengel@9
|
7962 1,
|
|
nengel@9
|
7963 0
|
|
nengel@9
|
7964 },
|
|
nengel@9
|
7965 sizeof(SliceBufferEntry)
|
|
nengel@9
|
7966 },
|
|
nengel@9
|
7967 {
|
|
nengel@9
|
7968 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
7969 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
7970 {
|
|
nengel@9
|
7971 1,
|
|
nengel@9
|
7972 1,
|
|
nengel@9
|
7973 1,
|
|
nengel@9
|
7974 0
|
|
nengel@9
|
7975 },
|
|
nengel@9
|
7976 sizeof(struct OutputContext)
|
|
nengel@9
|
7977 }
|
|
nengel@9
|
7978 };
|
|
nengel@9
|
7979 err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
7980 if (err != NANOS_OK)
|
|
nengel@9
|
7981 nanos_handle_error(err);
|
|
nengel@9
|
7982 }
|
|
nengel@9
|
7983 else
|
|
nengel@9
|
7984 {
|
|
nengel@9
|
7985 _nx_data_env_15_t imm_args;
|
|
nengel@9
|
7986 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
7987 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
7988 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
7989 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
7990 {
|
|
nengel@9
|
7991 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
7992 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
7993 {
|
|
nengel@9
|
7994 1,
|
|
nengel@9
|
7995 0,
|
|
nengel@9
|
7996 1,
|
|
nengel@9
|
7997 0
|
|
nengel@9
|
7998 },
|
|
nengel@9
|
7999 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8000 },
|
|
nengel@9
|
8001 {
|
|
nengel@9
|
8002 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
8003 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
8004 {
|
|
nengel@9
|
8005 1,
|
|
nengel@9
|
8006 1,
|
|
nengel@9
|
8007 1,
|
|
nengel@9
|
8008 0
|
|
nengel@9
|
8009 },
|
|
nengel@9
|
8010 sizeof(struct OutputContext)
|
|
nengel@9
|
8011 }
|
|
nengel@9
|
8012 };
|
|
nengel@9
|
8013 dyn_props.priority = 0;
|
|
nengel@9
|
8014 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);
|
|
nengel@9
|
8015 if (err != NANOS_OK)
|
|
nengel@9
|
8016 nanos_handle_error(err);
|
|
nengel@9
|
8017 }
|
|
nengel@9
|
8018 }
|
|
nengel@9
|
8019 ;
|
|
nengel@9
|
8020 }
|
|
nengel@9
|
8021 }
|
|
nengel@9
|
8022 }
|
|
nengel@9
|
8023 else
|
|
nengel@9
|
8024 {
|
|
nengel@9
|
8025 while (!pc->final_frame && frames++ < h->num_frames && !h->quit)
|
|
nengel@9
|
8026 {
|
|
nengel@9
|
8027 {
|
|
nengel@9
|
8028 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
8029 struct ParserContext *__tmp_1 = pc;
|
|
nengel@9
|
8030 struct NalContext *__tmp_2 = nc;
|
|
nengel@9
|
8031 SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
|
|
nengel@9
|
8032 {
|
|
nengel@9
|
8033 /* SMP device descriptor */
|
|
nengel@9
|
8034 static nanos_smp_args_t _ol_h264_decode_ompss_16_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_16};
|
|
nengel@9
|
8035 _nx_data_env_16_t *ol_args = (_nx_data_env_16_t *) 0;
|
|
nengel@9
|
8036 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
8037 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
8038 {
|
|
nengel@9
|
8039 nanos_const_wd_definition_t base;
|
|
nengel@9
|
8040 nanos_device_t devices[1];
|
|
nengel@9
|
8041 };
|
|
nengel@9
|
8042 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
8043 {
|
|
nengel@9
|
8044 {
|
|
nengel@9
|
8045 0,
|
|
nengel@9
|
8046 1,
|
|
nengel@9
|
8047 0,
|
|
nengel@9
|
8048 0,
|
|
nengel@9
|
8049 0,
|
|
nengel@9
|
8050 0,
|
|
nengel@9
|
8051 0,
|
|
nengel@9
|
8052 0
|
|
nengel@9
|
8053 },
|
|
nengel@9
|
8054 __alignof__(_nx_data_env_16_t),
|
|
nengel@9
|
8055 0,
|
|
nengel@9
|
8056 1
|
|
nengel@9
|
8057 },
|
|
nengel@9
|
8058 {{
|
|
nengel@9
|
8059 nanos_smp_factory,
|
|
nengel@9
|
8060 &_ol_h264_decode_ompss_16_smp_args
|
|
nengel@9
|
8061 }}
|
|
nengel@9
|
8062 };
|
|
nengel@9
|
8063 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
8064 nanos_err_t err;
|
|
nengel@9
|
8065 dyn_props.priority = 0;
|
|
nengel@9
|
8066 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);
|
|
nengel@9
|
8067 if (err != NANOS_OK)
|
|
nengel@9
|
8068 nanos_handle_error(err);
|
|
nengel@9
|
8069 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
8070 {
|
|
nengel@9
|
8071 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8072 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8073 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8074 ol_args->__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
8075 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
8076 {
|
|
nengel@9
|
8077 (void **) &ol_args->__tmp_3_0,
|
|
nengel@9
|
8078 ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
|
|
nengel@9
|
8079 {
|
|
nengel@9
|
8080 0,
|
|
nengel@9
|
8081 1,
|
|
nengel@9
|
8082 1,
|
|
nengel@9
|
8083 0
|
|
nengel@9
|
8084 },
|
|
nengel@9
|
8085 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8086 },
|
|
nengel@9
|
8087 {
|
|
nengel@9
|
8088 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
8089 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
8090 {
|
|
nengel@9
|
8091 1,
|
|
nengel@9
|
8092 1,
|
|
nengel@9
|
8093 1,
|
|
nengel@9
|
8094 0
|
|
nengel@9
|
8095 },
|
|
nengel@9
|
8096 sizeof(struct ParserContext)
|
|
nengel@9
|
8097 },
|
|
nengel@9
|
8098 {
|
|
nengel@9
|
8099 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
8100 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
8101 {
|
|
nengel@9
|
8102 1,
|
|
nengel@9
|
8103 1,
|
|
nengel@9
|
8104 1,
|
|
nengel@9
|
8105 0
|
|
nengel@9
|
8106 },
|
|
nengel@9
|
8107 sizeof(struct NalContext)
|
|
nengel@9
|
8108 }
|
|
nengel@9
|
8109 };
|
|
nengel@9
|
8110 err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
8111 if (err != NANOS_OK)
|
|
nengel@9
|
8112 nanos_handle_error(err);
|
|
nengel@9
|
8113 }
|
|
nengel@9
|
8114 else
|
|
nengel@9
|
8115 {
|
|
nengel@9
|
8116 _nx_data_env_16_t imm_args;
|
|
nengel@9
|
8117 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8118 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8119 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8120 imm_args.__tmp_3_0 = __tmp_3;
|
|
nengel@9
|
8121 nanos_dependence_t _dependences[3] = {
|
|
nengel@9
|
8122 {
|
|
nengel@9
|
8123 (void **) &imm_args.__tmp_3_0,
|
|
nengel@9
|
8124 ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
|
|
nengel@9
|
8125 {
|
|
nengel@9
|
8126 0,
|
|
nengel@9
|
8127 1,
|
|
nengel@9
|
8128 1,
|
|
nengel@9
|
8129 0
|
|
nengel@9
|
8130 },
|
|
nengel@9
|
8131 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8132 },
|
|
nengel@9
|
8133 {
|
|
nengel@9
|
8134 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
8135 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
8136 {
|
|
nengel@9
|
8137 1,
|
|
nengel@9
|
8138 1,
|
|
nengel@9
|
8139 1,
|
|
nengel@9
|
8140 0
|
|
nengel@9
|
8141 },
|
|
nengel@9
|
8142 sizeof(struct ParserContext)
|
|
nengel@9
|
8143 },
|
|
nengel@9
|
8144 {
|
|
nengel@9
|
8145 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
8146 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
8147 {
|
|
nengel@9
|
8148 1,
|
|
nengel@9
|
8149 1,
|
|
nengel@9
|
8150 1,
|
|
nengel@9
|
8151 0
|
|
nengel@9
|
8152 },
|
|
nengel@9
|
8153 sizeof(struct NalContext)
|
|
nengel@9
|
8154 }
|
|
nengel@9
|
8155 };
|
|
nengel@9
|
8156 dyn_props.priority = 0;
|
|
nengel@9
|
8157 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);
|
|
nengel@9
|
8158 if (err != NANOS_OK)
|
|
nengel@9
|
8159 nanos_handle_error(err);
|
|
nengel@9
|
8160 }
|
|
nengel@9
|
8161 }
|
|
nengel@9
|
8162 ;
|
|
nengel@9
|
8163 }
|
|
nengel@9
|
8164 {
|
|
nengel@9
|
8165 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
8166 struct EntropyContext *__tmp_1 = ec[k % bufs];
|
|
nengel@9
|
8167 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
8168 {
|
|
nengel@9
|
8169 /* SMP device descriptor */
|
|
nengel@9
|
8170 static nanos_smp_args_t _ol_h264_decode_ompss_17_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_17};
|
|
nengel@9
|
8171 _nx_data_env_17_t *ol_args = (_nx_data_env_17_t *) 0;
|
|
nengel@9
|
8172 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
8173 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
8174 {
|
|
nengel@9
|
8175 nanos_const_wd_definition_t base;
|
|
nengel@9
|
8176 nanos_device_t devices[1];
|
|
nengel@9
|
8177 };
|
|
nengel@9
|
8178 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
8179 {
|
|
nengel@9
|
8180 {
|
|
nengel@9
|
8181 0,
|
|
nengel@9
|
8182 1,
|
|
nengel@9
|
8183 0,
|
|
nengel@9
|
8184 0,
|
|
nengel@9
|
8185 0,
|
|
nengel@9
|
8186 0,
|
|
nengel@9
|
8187 0,
|
|
nengel@9
|
8188 0
|
|
nengel@9
|
8189 },
|
|
nengel@9
|
8190 __alignof__(_nx_data_env_17_t),
|
|
nengel@9
|
8191 0,
|
|
nengel@9
|
8192 1
|
|
nengel@9
|
8193 },
|
|
nengel@9
|
8194 {{
|
|
nengel@9
|
8195 nanos_smp_factory,
|
|
nengel@9
|
8196 &_ol_h264_decode_ompss_17_smp_args
|
|
nengel@9
|
8197 }}
|
|
nengel@9
|
8198 };
|
|
nengel@9
|
8199 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
8200 nanos_err_t err;
|
|
nengel@9
|
8201 dyn_props.priority = 0;
|
|
nengel@9
|
8202 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);
|
|
nengel@9
|
8203 if (err != NANOS_OK)
|
|
nengel@9
|
8204 nanos_handle_error(err);
|
|
nengel@9
|
8205 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
8206 {
|
|
nengel@9
|
8207 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8208 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8209 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8210 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
8211 {
|
|
nengel@9
|
8212 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
8213 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
8214 {
|
|
nengel@9
|
8215 1,
|
|
nengel@9
|
8216 1,
|
|
nengel@9
|
8217 1,
|
|
nengel@9
|
8218 0
|
|
nengel@9
|
8219 },
|
|
nengel@9
|
8220 sizeof(struct EntropyContext)
|
|
nengel@9
|
8221 },
|
|
nengel@9
|
8222 {
|
|
nengel@9
|
8223 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
8224 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
8225 {
|
|
nengel@9
|
8226 1,
|
|
nengel@9
|
8227 1,
|
|
nengel@9
|
8228 1,
|
|
nengel@9
|
8229 0
|
|
nengel@9
|
8230 },
|
|
nengel@9
|
8231 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8232 }
|
|
nengel@9
|
8233 };
|
|
nengel@9
|
8234 err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
8235 if (err != NANOS_OK)
|
|
nengel@9
|
8236 nanos_handle_error(err);
|
|
nengel@9
|
8237 }
|
|
nengel@9
|
8238 else
|
|
nengel@9
|
8239 {
|
|
nengel@9
|
8240 _nx_data_env_17_t imm_args;
|
|
nengel@9
|
8241 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8242 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8243 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8244 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
8245 {
|
|
nengel@9
|
8246 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
8247 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
8248 {
|
|
nengel@9
|
8249 1,
|
|
nengel@9
|
8250 1,
|
|
nengel@9
|
8251 1,
|
|
nengel@9
|
8252 0
|
|
nengel@9
|
8253 },
|
|
nengel@9
|
8254 sizeof(struct EntropyContext)
|
|
nengel@9
|
8255 },
|
|
nengel@9
|
8256 {
|
|
nengel@9
|
8257 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
8258 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
8259 {
|
|
nengel@9
|
8260 1,
|
|
nengel@9
|
8261 1,
|
|
nengel@9
|
8262 1,
|
|
nengel@9
|
8263 0
|
|
nengel@9
|
8264 },
|
|
nengel@9
|
8265 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8266 }
|
|
nengel@9
|
8267 };
|
|
nengel@9
|
8268 dyn_props.priority = 0;
|
|
nengel@9
|
8269 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);
|
|
nengel@9
|
8270 if (err != NANOS_OK)
|
|
nengel@9
|
8271 nanos_handle_error(err);
|
|
nengel@9
|
8272 }
|
|
nengel@9
|
8273 }
|
|
nengel@9
|
8274 ;
|
|
nengel@9
|
8275 }
|
|
nengel@9
|
8276 {
|
|
nengel@9
|
8277 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
8278 struct MBRecContext *__tmp_1 = rc[0];
|
|
nengel@9
|
8279 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
8280 {
|
|
nengel@9
|
8281 /* SMP device descriptor */
|
|
nengel@9
|
8282 static nanos_smp_args_t _ol_h264_decode_ompss_18_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_18};
|
|
nengel@9
|
8283 _nx_data_env_18_t *ol_args = (_nx_data_env_18_t *) 0;
|
|
nengel@9
|
8284 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
8285 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
8286 {
|
|
nengel@9
|
8287 nanos_const_wd_definition_t base;
|
|
nengel@9
|
8288 nanos_device_t devices[1];
|
|
nengel@9
|
8289 };
|
|
nengel@9
|
8290 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
8291 {
|
|
nengel@9
|
8292 {
|
|
nengel@9
|
8293 0,
|
|
nengel@9
|
8294 1,
|
|
nengel@9
|
8295 0,
|
|
nengel@9
|
8296 0,
|
|
nengel@9
|
8297 0,
|
|
nengel@9
|
8298 0,
|
|
nengel@9
|
8299 0,
|
|
nengel@9
|
8300 0
|
|
nengel@9
|
8301 },
|
|
nengel@9
|
8302 __alignof__(_nx_data_env_18_t),
|
|
nengel@9
|
8303 0,
|
|
nengel@9
|
8304 1
|
|
nengel@9
|
8305 },
|
|
nengel@9
|
8306 {{
|
|
nengel@9
|
8307 nanos_smp_factory,
|
|
nengel@9
|
8308 &_ol_h264_decode_ompss_18_smp_args
|
|
nengel@9
|
8309 }}
|
|
nengel@9
|
8310 };
|
|
nengel@9
|
8311 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
8312 nanos_err_t err;
|
|
nengel@9
|
8313 dyn_props.priority = 0;
|
|
nengel@9
|
8314 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);
|
|
nengel@9
|
8315 if (err != NANOS_OK)
|
|
nengel@9
|
8316 nanos_handle_error(err);
|
|
nengel@9
|
8317 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
8318 {
|
|
nengel@9
|
8319 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8320 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8321 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8322 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
8323 {
|
|
nengel@9
|
8324 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
8325 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
8326 {
|
|
nengel@9
|
8327 1,
|
|
nengel@9
|
8328 1,
|
|
nengel@9
|
8329 1,
|
|
nengel@9
|
8330 0
|
|
nengel@9
|
8331 },
|
|
nengel@9
|
8332 sizeof(struct MBRecContext)
|
|
nengel@9
|
8333 },
|
|
nengel@9
|
8334 {
|
|
nengel@9
|
8335 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
8336 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
8337 {
|
|
nengel@9
|
8338 1,
|
|
nengel@9
|
8339 1,
|
|
nengel@9
|
8340 1,
|
|
nengel@9
|
8341 0
|
|
nengel@9
|
8342 },
|
|
nengel@9
|
8343 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8344 }
|
|
nengel@9
|
8345 };
|
|
nengel@9
|
8346 err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
8347 if (err != NANOS_OK)
|
|
nengel@9
|
8348 nanos_handle_error(err);
|
|
nengel@9
|
8349 }
|
|
nengel@9
|
8350 else
|
|
nengel@9
|
8351 {
|
|
nengel@9
|
8352 _nx_data_env_18_t imm_args;
|
|
nengel@9
|
8353 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8354 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8355 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8356 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
8357 {
|
|
nengel@9
|
8358 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
8359 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
8360 {
|
|
nengel@9
|
8361 1,
|
|
nengel@9
|
8362 1,
|
|
nengel@9
|
8363 1,
|
|
nengel@9
|
8364 0
|
|
nengel@9
|
8365 },
|
|
nengel@9
|
8366 sizeof(struct MBRecContext)
|
|
nengel@9
|
8367 },
|
|
nengel@9
|
8368 {
|
|
nengel@9
|
8369 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
8370 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
8371 {
|
|
nengel@9
|
8372 1,
|
|
nengel@9
|
8373 1,
|
|
nengel@9
|
8374 1,
|
|
nengel@9
|
8375 0
|
|
nengel@9
|
8376 },
|
|
nengel@9
|
8377 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8378 }
|
|
nengel@9
|
8379 };
|
|
nengel@9
|
8380 dyn_props.priority = 0;
|
|
nengel@9
|
8381 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);
|
|
nengel@9
|
8382 if (err != NANOS_OK)
|
|
nengel@9
|
8383 nanos_handle_error(err);
|
|
nengel@9
|
8384 }
|
|
nengel@9
|
8385 }
|
|
nengel@9
|
8386 ;
|
|
nengel@9
|
8387 }
|
|
nengel@9
|
8388 {
|
|
nengel@9
|
8389 struct H264Context *__tmp_0 = h;
|
|
nengel@9
|
8390 struct OutputContext *__tmp_1 = oc;
|
|
nengel@9
|
8391 SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
|
|
nengel@9
|
8392 {
|
|
nengel@9
|
8393 /* SMP device descriptor */
|
|
nengel@9
|
8394 static nanos_smp_args_t _ol_h264_decode_ompss_19_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_19};
|
|
nengel@9
|
8395 _nx_data_env_19_t *ol_args = (_nx_data_env_19_t *) 0;
|
|
nengel@9
|
8396 nanos_wd_t wd = (nanos_wd_t) 0;
|
|
nengel@9
|
8397 struct nanos_const_wd_definition_local_t
|
|
nengel@9
|
8398 {
|
|
nengel@9
|
8399 nanos_const_wd_definition_t base;
|
|
nengel@9
|
8400 nanos_device_t devices[1];
|
|
nengel@9
|
8401 };
|
|
nengel@9
|
8402 static struct nanos_const_wd_definition_local_t _const_def = {
|
|
nengel@9
|
8403 {
|
|
nengel@9
|
8404 {
|
|
nengel@9
|
8405 0,
|
|
nengel@9
|
8406 1,
|
|
nengel@9
|
8407 0,
|
|
nengel@9
|
8408 0,
|
|
nengel@9
|
8409 0,
|
|
nengel@9
|
8410 0,
|
|
nengel@9
|
8411 0,
|
|
nengel@9
|
8412 0
|
|
nengel@9
|
8413 },
|
|
nengel@9
|
8414 __alignof__(_nx_data_env_19_t),
|
|
nengel@9
|
8415 0,
|
|
nengel@9
|
8416 1
|
|
nengel@9
|
8417 },
|
|
nengel@9
|
8418 {{
|
|
nengel@9
|
8419 nanos_smp_factory,
|
|
nengel@9
|
8420 &_ol_h264_decode_ompss_19_smp_args
|
|
nengel@9
|
8421 }}
|
|
nengel@9
|
8422 };
|
|
nengel@9
|
8423 nanos_wd_dyn_props_t dyn_props = {0};
|
|
nengel@9
|
8424 nanos_err_t err;
|
|
nengel@9
|
8425 dyn_props.priority = 0;
|
|
nengel@9
|
8426 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);
|
|
nengel@9
|
8427 if (err != NANOS_OK)
|
|
nengel@9
|
8428 nanos_handle_error(err);
|
|
nengel@9
|
8429 if (wd != (nanos_wd_t) 0)
|
|
nengel@9
|
8430 {
|
|
nengel@9
|
8431 ol_args->__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8432 ol_args->__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8433 ol_args->__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8434 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
8435 {
|
|
nengel@9
|
8436 (void **) &ol_args->__tmp_2_0,
|
|
nengel@9
|
8437 ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
|
|
nengel@9
|
8438 {
|
|
nengel@9
|
8439 1,
|
|
nengel@9
|
8440 0,
|
|
nengel@9
|
8441 1,
|
|
nengel@9
|
8442 0
|
|
nengel@9
|
8443 },
|
|
nengel@9
|
8444 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8445 },
|
|
nengel@9
|
8446 {
|
|
nengel@9
|
8447 (void **) &ol_args->__tmp_1_0,
|
|
nengel@9
|
8448 ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
|
|
nengel@9
|
8449 {
|
|
nengel@9
|
8450 1,
|
|
nengel@9
|
8451 1,
|
|
nengel@9
|
8452 1,
|
|
nengel@9
|
8453 0
|
|
nengel@9
|
8454 },
|
|
nengel@9
|
8455 sizeof(struct OutputContext)
|
|
nengel@9
|
8456 }
|
|
nengel@9
|
8457 };
|
|
nengel@9
|
8458 err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
|
|
nengel@9
|
8459 if (err != NANOS_OK)
|
|
nengel@9
|
8460 nanos_handle_error(err);
|
|
nengel@9
|
8461 }
|
|
nengel@9
|
8462 else
|
|
nengel@9
|
8463 {
|
|
nengel@9
|
8464 _nx_data_env_19_t imm_args;
|
|
nengel@9
|
8465 imm_args.__tmp_0_0 = __tmp_0;
|
|
nengel@9
|
8466 imm_args.__tmp_1_0 = __tmp_1;
|
|
nengel@9
|
8467 imm_args.__tmp_2_0 = __tmp_2;
|
|
nengel@9
|
8468 nanos_dependence_t _dependences[2] = {
|
|
nengel@9
|
8469 {
|
|
nengel@9
|
8470 (void **) &imm_args.__tmp_2_0,
|
|
nengel@9
|
8471 ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
|
|
nengel@9
|
8472 {
|
|
nengel@9
|
8473 1,
|
|
nengel@9
|
8474 0,
|
|
nengel@9
|
8475 1,
|
|
nengel@9
|
8476 0
|
|
nengel@9
|
8477 },
|
|
nengel@9
|
8478 sizeof(SliceBufferEntry)
|
|
nengel@9
|
8479 },
|
|
nengel@9
|
8480 {
|
|
nengel@9
|
8481 (void **) &imm_args.__tmp_1_0,
|
|
nengel@9
|
8482 ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
|
|
nengel@9
|
8483 {
|
|
nengel@9
|
8484 1,
|
|
nengel@9
|
8485 1,
|
|
nengel@9
|
8486 1,
|
|
nengel@9
|
8487 0
|
|
nengel@9
|
8488 },
|
|
nengel@9
|
8489 sizeof(struct OutputContext)
|
|
nengel@9
|
8490 }
|
|
nengel@9
|
8491 };
|
|
nengel@9
|
8492 dyn_props.priority = 0;
|
|
nengel@9
|
8493 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);
|
|
nengel@9
|
8494 if (err != NANOS_OK)
|
|
nengel@9
|
8495 nanos_handle_error(err);
|
|
nengel@9
|
8496 }
|
|
nengel@9
|
8497 }
|
|
nengel@9
|
8498 ;
|
|
nengel@9
|
8499 }
|
|
nengel@9
|
8500 {
|
|
nengel@9
|
8501 struct _dependence_holder
|
|
nengel@9
|
8502 {
|
|
nengel@9
|
8503 struct ParserContext *dep_0;
|
|
nengel@9
|
8504 } _dep_holder = {&(*pc)};
|
|
nengel@9
|
8505 nanos_dependence_t _wait_dependences[1] = {{
|
|
nengel@9
|
8506 (void **) &_dep_holder.dep_0,
|
|
nengel@9
|
8507 ((char *) ((pc)) - (char *) _dep_holder.dep_0),
|
|
nengel@9
|
8508 {
|
|
nengel@9
|
8509 1,
|
|
nengel@9
|
8510 0,
|
|
nengel@9
|
8511 0,
|
|
nengel@9
|
8512 0
|
|
nengel@9
|
8513 },
|
|
nengel@9
|
8514 sizeof (*pc)
|
|
nengel@9
|
8515 }};
|
|
nengel@9
|
8516 nanos_wait_on(1, _wait_dependences);
|
|
nengel@9
|
8517 }
|
|
nengel@9
|
8518 k++;
|
|
nengel@9
|
8519 }
|
|
nengel@9
|
8520 }
|
|
nengel@9
|
8521 nanos_wg_wait_completion(nanos_current_wd(), 0);
|
|
nengel@9
|
8522 while ((out = output_frame(h, oc, ((void *) 0), h->ofile, h->frame_width, h->frame_height)))
|
|
nengel@9
|
8523 ;
|
|
nengel@9
|
8524 h->num_frames = oc->frame_number;
|
|
nengel@9
|
8525 free_parse_context(pc);
|
|
nengel@9
|
8526 free_nal_context(nc);
|
|
nengel@9
|
8527 free_output_context(oc);
|
|
nengel@9
|
8528 for (int i = 0;
|
|
nengel@9
|
8529 i < bufs;
|
|
nengel@9
|
8530 i++)
|
|
nengel@9
|
8531 {
|
|
nengel@9
|
8532 free_sb_entry(&sbe[i]);
|
|
nengel@9
|
8533 free_entropy_context(ec[i]);
|
|
nengel@9
|
8534 }
|
|
nengel@9
|
8535 av_free(sbe);
|
|
nengel@9
|
8536 for (int i = 0;
|
|
nengel@9
|
8537 i < 2;
|
|
nengel@9
|
8538 i++)
|
|
nengel@9
|
8539 {
|
|
nengel@9
|
8540 free_mbrec_context(rc[i]);
|
|
nengel@9
|
8541 }
|
|
nengel@9
|
8542 return 0;
|
|
nengel@9
|
8543 }
|
|
nengel@9
|
8544 __attribute__((weak, section("nanos_init"))) nanos_init_desc_t __section__nanos_init = {
|
|
nengel@9
|
8545 nanos_omp_set_interface,
|
|
nengel@9
|
8546 (void *) 0
|
|
nengel@9
|
8547 };
|