]>
Commit | Line | Data |
---|---|---|
1 | # 1 "video_out_dfb.c" | |
2 | # 1 "<built-in>" | |
3 | #define __STDC__ 1 | |
4 | # 1 "<built-in>" | |
5 | #define __STDC_HOSTED__ 1 | |
6 | # 1 "<built-in>" | |
7 | #define __GNUC__ 4 | |
8 | # 1 "<built-in>" | |
9 | #define __GNUC_MINOR__ 1 | |
10 | # 1 "<built-in>" | |
11 | #define __GNUC_PATCHLEVEL__ 2 | |
12 | # 1 "<built-in>" | |
13 | #define __SIZE_TYPE__ long unsigned int | |
14 | # 1 "<built-in>" | |
15 | #define __PTRDIFF_TYPE__ long int | |
16 | # 1 "<built-in>" | |
17 | #define __WCHAR_TYPE__ int | |
18 | # 1 "<built-in>" | |
19 | #define __WINT_TYPE__ unsigned int | |
20 | # 1 "<built-in>" | |
21 | #define __INTMAX_TYPE__ long int | |
22 | # 1 "<built-in>" | |
23 | #define __UINTMAX_TYPE__ long unsigned int | |
24 | # 1 "<built-in>" | |
25 | #define __GXX_ABI_VERSION 1002 | |
26 | # 1 "<built-in>" | |
27 | #define __SCHAR_MAX__ 127 | |
28 | # 1 "<built-in>" | |
29 | #define __SHRT_MAX__ 32767 | |
30 | # 1 "<built-in>" | |
31 | #define __INT_MAX__ 2147483647 | |
32 | # 1 "<built-in>" | |
33 | #define __LONG_MAX__ 9223372036854775807L | |
34 | # 1 "<built-in>" | |
35 | #define __LONG_LONG_MAX__ 9223372036854775807LL | |
36 | # 1 "<built-in>" | |
37 | #define __WCHAR_MAX__ 2147483647 | |
38 | # 1 "<built-in>" | |
39 | #define __CHAR_BIT__ 8 | |
40 | # 1 "<built-in>" | |
41 | #define __INTMAX_MAX__ 9223372036854775807L | |
42 | # 1 "<built-in>" | |
43 | #define __FLT_EVAL_METHOD__ 0 | |
44 | # 1 "<built-in>" | |
45 | #define __FLT_RADIX__ 2 | |
46 | # 1 "<built-in>" | |
47 | #define __FLT_MANT_DIG__ 24 | |
48 | # 1 "<built-in>" | |
49 | #define __FLT_DIG__ 6 | |
50 | # 1 "<built-in>" | |
51 | #define __FLT_MIN_EXP__ (-125) | |
52 | # 1 "<built-in>" | |
53 | #define __FLT_MIN_10_EXP__ (-37) | |
54 | # 1 "<built-in>" | |
55 | #define __FLT_MAX_EXP__ 128 | |
56 | # 1 "<built-in>" | |
57 | #define __FLT_MAX_10_EXP__ 38 | |
58 | # 1 "<built-in>" | |
59 | #define __FLT_MAX__ 3.40282347e+38F | |
60 | # 1 "<built-in>" | |
61 | #define __FLT_MIN__ 1.17549435e-38F | |
62 | # 1 "<built-in>" | |
63 | #define __FLT_EPSILON__ 1.19209290e-7F | |
64 | # 1 "<built-in>" | |
65 | #define __FLT_DENORM_MIN__ 1.40129846e-45F | |
66 | # 1 "<built-in>" | |
67 | #define __FLT_HAS_INFINITY__ 1 | |
68 | # 1 "<built-in>" | |
69 | #define __FLT_HAS_QUIET_NAN__ 1 | |
70 | # 1 "<built-in>" | |
71 | #define __DBL_MANT_DIG__ 53 | |
72 | # 1 "<built-in>" | |
73 | #define __DBL_DIG__ 15 | |
74 | # 1 "<built-in>" | |
75 | #define __DBL_MIN_EXP__ (-1021) | |
76 | # 1 "<built-in>" | |
77 | #define __DBL_MIN_10_EXP__ (-307) | |
78 | # 1 "<built-in>" | |
79 | #define __DBL_MAX_EXP__ 1024 | |
80 | # 1 "<built-in>" | |
81 | #define __DBL_MAX_10_EXP__ 308 | |
82 | # 1 "<built-in>" | |
83 | #define __DBL_MAX__ 1.7976931348623157e+308 | |
84 | # 1 "<built-in>" | |
85 | #define __DBL_MIN__ 2.2250738585072014e-308 | |
86 | # 1 "<built-in>" | |
87 | #define __DBL_EPSILON__ 2.2204460492503131e-16 | |
88 | # 1 "<built-in>" | |
89 | #define __DBL_DENORM_MIN__ 4.9406564584124654e-324 | |
90 | # 1 "<built-in>" | |
91 | #define __DBL_HAS_INFINITY__ 1 | |
92 | # 1 "<built-in>" | |
93 | #define __DBL_HAS_QUIET_NAN__ 1 | |
94 | # 1 "<built-in>" | |
95 | #define __LDBL_MANT_DIG__ 64 | |
96 | # 1 "<built-in>" | |
97 | #define __LDBL_DIG__ 18 | |
98 | # 1 "<built-in>" | |
99 | #define __LDBL_MIN_EXP__ (-16381) | |
100 | # 1 "<built-in>" | |
101 | #define __LDBL_MIN_10_EXP__ (-4931) | |
102 | # 1 "<built-in>" | |
103 | #define __LDBL_MAX_EXP__ 16384 | |
104 | # 1 "<built-in>" | |
105 | #define __LDBL_MAX_10_EXP__ 4932 | |
106 | # 1 "<built-in>" | |
107 | #define __DECIMAL_DIG__ 21 | |
108 | # 1 "<built-in>" | |
109 | #define __LDBL_MAX__ 1.18973149535723176502e+4932L | |
110 | # 1 "<built-in>" | |
111 | #define __LDBL_MIN__ 3.36210314311209350626e-4932L | |
112 | # 1 "<built-in>" | |
113 | #define __LDBL_EPSILON__ 1.08420217248550443401e-19L | |
114 | # 1 "<built-in>" | |
115 | #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L | |
116 | # 1 "<built-in>" | |
117 | #define __LDBL_HAS_INFINITY__ 1 | |
118 | # 1 "<built-in>" | |
119 | #define __LDBL_HAS_QUIET_NAN__ 1 | |
120 | # 1 "<built-in>" | |
121 | #define __REGISTER_PREFIX__ | |
122 | # 1 "<built-in>" | |
123 | #define __USER_LABEL_PREFIX__ | |
124 | # 1 "<built-in>" | |
125 | #define __VERSION__ "4.1.2 20070214 ( (gdc 0.23, using dmd 1.007)) (Gentoo 4.1.2)" | |
126 | # 1 "<built-in>" | |
127 | #define _LP64 1 | |
128 | # 1 "<built-in>" | |
129 | #define __LP64__ 1 | |
130 | # 1 "<built-in>" | |
131 | #define __OPTIMIZE__ 1 | |
132 | # 1 "<built-in>" | |
133 | #define __FAST_MATH__ 1 | |
134 | # 1 "<built-in>" | |
135 | #define __FINITE_MATH_ONLY__ 1 | |
136 | # 1 "<built-in>" | |
137 | #define __amd64 1 | |
138 | # 1 "<built-in>" | |
139 | #define __amd64__ 1 | |
140 | # 1 "<built-in>" | |
141 | #define __x86_64 1 | |
142 | # 1 "<built-in>" | |
143 | #define __x86_64__ 1 | |
144 | # 1 "<built-in>" | |
145 | #define __tune_k8__ 1 | |
146 | # 1 "<built-in>" | |
147 | #define __MMX__ 1 | |
148 | # 1 "<built-in>" | |
149 | #define __3dNOW__ 1 | |
150 | # 1 "<built-in>" | |
151 | #define __3dNOW_A__ 1 | |
152 | # 1 "<built-in>" | |
153 | #define __SSE__ 1 | |
154 | # 1 "<built-in>" | |
155 | #define __SSE2__ 1 | |
156 | # 1 "<built-in>" | |
157 | #define __SSE_MATH__ 1 | |
158 | # 1 "<built-in>" | |
159 | #define __SSE2_MATH__ 1 | |
160 | # 1 "<built-in>" | |
161 | #define __k8 1 | |
162 | # 1 "<built-in>" | |
163 | #define __k8__ 1 | |
164 | # 1 "<built-in>" | |
165 | #define __gnu_linux__ 1 | |
166 | # 1 "<built-in>" | |
167 | #define __linux 1 | |
168 | # 1 "<built-in>" | |
169 | #define __linux__ 1 | |
170 | # 1 "<built-in>" | |
171 | #define linux 1 | |
172 | # 1 "<built-in>" | |
173 | #define __unix 1 | |
174 | # 1 "<built-in>" | |
175 | #define __unix__ 1 | |
176 | # 1 "<built-in>" | |
177 | #define unix 1 | |
178 | # 1 "<built-in>" | |
179 | #define __PIC__ 1 | |
180 | # 1 "<built-in>" | |
181 | #define __pic__ 1 | |
182 | # 1 "<built-in>" | |
183 | #define __ELF__ 1 | |
184 | # 1 "<command line>" | |
185 | #define HAVE_CONFIG_H 1 | |
186 | # 1 "<command line>" | |
187 | #define _REENTRANT 1 | |
188 | # 1 "<command line>" | |
189 | #define _GNU_SOURCE 1 | |
190 | # 1 "<command line>" | |
191 | #define _REENTRANT 1 | |
192 | # 1 "<command line>" | |
193 | #define REENTRANT 1 | |
194 | # 1 "<command line>" | |
195 | #define PIC 1 | |
196 | # 1 "video_out_dfb.c" | |
197 | # 20 "video_out_dfb.c" | |
198 | # 1 "../../../config.h" 1 | |
199 | # 14 "../../../config.h" | |
200 | #define DIRECTFB_VERSION "0.9.25" | |
201 | ||
202 | ||
203 | #define HAVE_DLFCN_H 1 | |
204 | ||
205 | ||
206 | ||
207 | ||
208 | ||
209 | #define HAVE_INTTYPES_H 1 | |
210 | ||
211 | ||
212 | #define HAVE_MEMORY_H 1 | |
213 | ||
214 | ||
215 | #define HAVE_STDINT_H 1 | |
216 | ||
217 | ||
218 | #define HAVE_STDLIB_H 1 | |
219 | ||
220 | ||
221 | #define HAVE_STRINGS_H 1 | |
222 | ||
223 | ||
224 | #define HAVE_STRING_H 1 | |
225 | ||
226 | ||
227 | #define HAVE_SYS_STAT_H 1 | |
228 | ||
229 | ||
230 | #define HAVE_SYS_TYPES_H 1 | |
231 | ||
232 | ||
233 | #define HAVE_UNISTD_H 1 | |
234 | ||
235 | ||
236 | #define PACKAGE_BUGREPORT "" | |
237 | ||
238 | ||
239 | #define PACKAGE_NAME "" | |
240 | ||
241 | ||
242 | #define PACKAGE_STRING "" | |
243 | ||
244 | ||
245 | #define PACKAGE_TARNAME "" | |
246 | ||
247 | ||
248 | #define PACKAGE_VERSION "" | |
249 | ||
250 | ||
251 | #define STDC_HEADERS 1 | |
252 | ||
253 | ||
254 | #define USE_MMX 1 | |
255 | # 21 "video_out_dfb.c" 2 | |
256 | ||
257 | ||
258 | # 1 "/usr/include/stdio.h" 1 3 4 | |
259 | ||
260 | ||
261 | ||
262 | ||
263 | ||
264 | ||
265 | ||
266 | # 1 "/usr/include/gentoo-multilib/amd64/stdio.h" 1 3 4 | |
267 | # 27 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
268 | #define _STDIO_H 1 | |
269 | # 1 "/usr/include/features.h" 1 3 4 | |
270 | ||
271 | ||
272 | ||
273 | ||
274 | ||
275 | ||
276 | ||
277 | # 1 "/usr/include/gentoo-multilib/amd64/features.h" 1 3 4 | |
278 | # 21 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
279 | #define _FEATURES_H 1 | |
280 | # 93 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
281 | #undef __USE_ISOC99 | |
282 | #undef __USE_POSIX | |
283 | #undef __USE_POSIX2 | |
284 | #undef __USE_POSIX199309 | |
285 | #undef __USE_POSIX199506 | |
286 | #undef __USE_XOPEN | |
287 | #undef __USE_XOPEN_EXTENDED | |
288 | #undef __USE_UNIX98 | |
289 | #undef __USE_XOPEN2K | |
290 | #undef __USE_LARGEFILE | |
291 | #undef __USE_LARGEFILE64 | |
292 | #undef __USE_FILE_OFFSET64 | |
293 | #undef __USE_BSD | |
294 | #undef __USE_SVID | |
295 | #undef __USE_MISC | |
296 | #undef __USE_ATFILE | |
297 | #undef __USE_GNU | |
298 | #undef __USE_REENTRANT | |
299 | #undef __USE_FORTIFY_LEVEL | |
300 | #undef __FAVOR_BSD | |
301 | #undef __KERNEL_STRICT_NAMES | |
302 | ||
303 | ||
304 | ||
305 | ||
306 | #define __KERNEL_STRICT_NAMES | |
307 | ||
308 | ||
309 | ||
310 | #define __USE_ANSI 1 | |
311 | # 132 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
312 | #define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) | |
313 | # 149 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
314 | #undef _ISOC99_SOURCE | |
315 | #define _ISOC99_SOURCE 1 | |
316 | #undef _POSIX_SOURCE | |
317 | #define _POSIX_SOURCE 1 | |
318 | #undef _POSIX_C_SOURCE | |
319 | #define _POSIX_C_SOURCE 200112L | |
320 | #undef _XOPEN_SOURCE | |
321 | #define _XOPEN_SOURCE 600 | |
322 | #undef _XOPEN_SOURCE_EXTENDED | |
323 | #define _XOPEN_SOURCE_EXTENDED 1 | |
324 | #undef _LARGEFILE64_SOURCE | |
325 | #define _LARGEFILE64_SOURCE 1 | |
326 | #undef _BSD_SOURCE | |
327 | #define _BSD_SOURCE 1 | |
328 | #undef _SVID_SOURCE | |
329 | #define _SVID_SOURCE 1 | |
330 | #undef _ATFILE_SOURCE | |
331 | #define _ATFILE_SOURCE 1 | |
332 | # 185 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
333 | #define __USE_ISOC99 1 | |
334 | # 203 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
335 | #define __USE_POSIX 1 | |
336 | ||
337 | ||
338 | ||
339 | #define __USE_POSIX2 1 | |
340 | ||
341 | ||
342 | ||
343 | #define __USE_POSIX199309 1 | |
344 | ||
345 | ||
346 | ||
347 | #define __USE_POSIX199506 1 | |
348 | ||
349 | ||
350 | ||
351 | #define __USE_XOPEN2K 1 | |
352 | ||
353 | ||
354 | ||
355 | #define __USE_XOPEN 1 | |
356 | ||
357 | #define __USE_XOPEN_EXTENDED 1 | |
358 | #define __USE_UNIX98 1 | |
359 | #undef _LARGEFILE_SOURCE | |
360 | #define _LARGEFILE_SOURCE 1 | |
361 | ||
362 | #define __USE_XOPEN2K 1 | |
363 | #undef __USE_ISOC99 | |
364 | #define __USE_ISOC99 1 | |
365 | # 242 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
366 | #define __USE_LARGEFILE 1 | |
367 | ||
368 | ||
369 | ||
370 | #define __USE_LARGEFILE64 1 | |
371 | ||
372 | ||
373 | ||
374 | ||
375 | ||
376 | ||
377 | ||
378 | #define __USE_MISC 1 | |
379 | ||
380 | ||
381 | ||
382 | #define __USE_BSD 1 | |
383 | ||
384 | ||
385 | ||
386 | #define __USE_SVID 1 | |
387 | ||
388 | ||
389 | ||
390 | #define __USE_ATFILE 1 | |
391 | ||
392 | ||
393 | ||
394 | #define __USE_GNU 1 | |
395 | ||
396 | ||
397 | ||
398 | #define __USE_REENTRANT 1 | |
399 | # 285 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
400 | #define __USE_FORTIFY_LEVEL 0 | |
401 | ||
402 | ||
403 | ||
404 | #define __STDC_IEC_559__ 1 | |
405 | #define __STDC_IEC_559_COMPLEX__ 1 | |
406 | ||
407 | ||
408 | #define __STDC_ISO_10646__ 200009L | |
409 | ||
410 | ||
411 | ||
412 | ||
413 | ||
414 | ||
415 | ||
416 | #undef __GNU_LIBRARY__ | |
417 | #define __GNU_LIBRARY__ 6 | |
418 | ||
419 | ||
420 | ||
421 | #define __GLIBC__ 2 | |
422 | #define __GLIBC_MINOR__ 5 | |
423 | ||
424 | #define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) | |
425 | ||
426 | ||
427 | ||
428 | ||
429 | ||
430 | ||
431 | ||
432 | #define __GLIBC_HAVE_LONG_LONG 1 | |
433 | ||
434 | ||
435 | ||
436 | ||
437 | ||
438 | # 1 "/usr/include/sys/cdefs.h" 1 3 4 | |
439 | ||
440 | ||
441 | ||
442 | ||
443 | ||
444 | ||
445 | ||
446 | # 1 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 1 3 4 | |
447 | # 21 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
448 | #define _SYS_CDEFS_H 1 | |
449 | # 36 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
450 | #undef __P | |
451 | #undef __PMT | |
452 | # 47 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
453 | #define __THROW __attribute__ ((__nothrow__)) | |
454 | #define __NTH(fct) __attribute__ ((__nothrow__)) fct | |
455 | # 74 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
456 | #define __P(args) args | |
457 | #define __PMT(args) args | |
458 | ||
459 | ||
460 | ||
461 | ||
462 | #define __CONCAT(x,y) x ## y | |
463 | #define __STRING(x) #x | |
464 | ||
465 | ||
466 | #define __ptr_t void * | |
467 | #define __long_double_t long double | |
468 | ||
469 | ||
470 | ||
471 | ||
472 | ||
473 | ||
474 | ||
475 | #define __BEGIN_DECLS | |
476 | #define __END_DECLS | |
477 | # 114 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
478 | #define __BEGIN_NAMESPACE_STD | |
479 | #define __END_NAMESPACE_STD | |
480 | #define __USING_NAMESPACE_STD(name) | |
481 | #define __BEGIN_NAMESPACE_C99 | |
482 | #define __END_NAMESPACE_C99 | |
483 | #define __USING_NAMESPACE_C99(name) | |
484 | ||
485 | ||
486 | ||
487 | ||
488 | ||
489 | #define __bounded | |
490 | #define __unbounded | |
491 | #define __ptrvalue | |
492 | ||
493 | ||
494 | ||
495 | ||
496 | #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) | |
497 | #define __bos0(ptr) __builtin_object_size (ptr, 0) | |
498 | #define __warndecl(name,msg) extern void name (void) | |
499 | ||
500 | ||
501 | ||
502 | ||
503 | ||
504 | #define __flexarr [] | |
505 | # 167 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
506 | #define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) | |
507 | ||
508 | ||
509 | ||
510 | ||
511 | #define __REDIRECT_NTH(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROW | |
512 | ||
513 | ||
514 | #define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) | |
515 | #define __ASMNAME2(prefix,cname) __STRING (prefix) cname | |
516 | # 197 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
517 | #define __attribute_malloc__ __attribute__ ((__malloc__)) | |
518 | # 206 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
519 | #define __attribute_pure__ __attribute__ ((__pure__)) | |
520 | # 215 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
521 | #define __attribute_used__ __attribute__ ((__used__)) | |
522 | #define __attribute_noinline__ __attribute__ ((__noinline__)) | |
523 | ||
524 | ||
525 | ||
526 | ||
527 | ||
528 | ||
529 | ||
530 | #define __attribute_deprecated__ __attribute__ ((__deprecated__)) | |
531 | # 236 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
532 | #define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) | |
533 | # 246 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
534 | #define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b))) | |
535 | # 255 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
536 | #define __nonnull(params) __attribute__ ((__nonnull__ params)) | |
537 | ||
538 | ||
539 | ||
540 | ||
541 | ||
542 | ||
543 | ||
544 | #define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__)) | |
545 | # 272 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
546 | #define __wur | |
547 | ||
548 | ||
549 | ||
550 | ||
551 | #define __always_inline __inline __attribute__ ((__always_inline__)) | |
552 | # 299 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
553 | #define __restrict_arr __restrict | |
554 | # 313 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
555 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
556 | ||
557 | ||
558 | ||
559 | ||
560 | ||
561 | ||
562 | ||
563 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
564 | ||
565 | ||
566 | ||
567 | #define __WORDSIZE 64 | |
568 | #define __WORDSIZE_COMPAT32 1 | |
569 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
570 | # 314 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 2 3 4 | |
571 | # 331 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4 | |
572 | #define __LDBL_REDIR1(name,proto,alias) name proto | |
573 | #define __LDBL_REDIR(name,proto) name proto | |
574 | #define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW | |
575 | #define __LDBL_REDIR_NTH(name,proto) name proto __THROW | |
576 | #define __LDBL_REDIR_DECL(name) | |
577 | # 9 "/usr/include/sys/cdefs.h" 2 3 4 | |
578 | # 324 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4 | |
579 | # 338 "/usr/include/gentoo-multilib/amd64/features.h" 3 4 | |
580 | #define __USE_EXTERN_INLINES 1 | |
581 | ||
582 | ||
583 | ||
584 | ||
585 | ||
586 | ||
587 | ||
588 | # 1 "/usr/include/gnu/stubs.h" 1 3 4 | |
589 | ||
590 | ||
591 | ||
592 | ||
593 | ||
594 | ||
595 | ||
596 | # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 1 3 4 | |
597 | ||
598 | ||
599 | ||
600 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
601 | ||
602 | ||
603 | ||
604 | ||
605 | ||
606 | ||
607 | ||
608 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
609 | ||
610 | ||
611 | ||
612 | #define __WORDSIZE 64 | |
613 | #define __WORDSIZE_COMPAT32 1 | |
614 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
615 | # 5 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4 | |
616 | ||
617 | ||
618 | ||
619 | ||
620 | # 1 "/usr/include/gnu/stubs-64.h" 1 3 4 | |
621 | ||
622 | ||
623 | ||
624 | # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 1 3 4 | |
625 | # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 3 4 | |
626 | #define __stub___kernel_cosl | |
627 | #define __stub___kernel_rem_pio2l | |
628 | #define __stub___kernel_sinl | |
629 | #define __stub___kernel_tanl | |
630 | #define __stub_bdflush | |
631 | #define __stub_chflags | |
632 | #define __stub_fattach | |
633 | #define __stub_fchflags | |
634 | #define __stub_fdetach | |
635 | #define __stub_feupdateenv | |
636 | #define __stub_getmsg | |
637 | #define __stub_gtty | |
638 | #define __stub_lchmod | |
639 | #define __stub_lutimes | |
640 | #define __stub_putmsg | |
641 | #define __stub_revoke | |
642 | #define __stub_setlogin | |
643 | #define __stub_sigreturn | |
644 | #define __stub_sstk | |
645 | #define __stub_stty | |
646 | # 5 "/usr/include/gnu/stubs-64.h" 2 3 4 | |
647 | # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4 | |
648 | # 9 "/usr/include/gnu/stubs.h" 2 3 4 | |
649 | # 347 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4 | |
650 | # 9 "/usr/include/features.h" 2 3 4 | |
651 | # 29 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 | |
652 | ||
653 | ||
654 | ||
655 | #define __need_size_t | |
656 | #define __need_NULL | |
657 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
658 | # 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
659 | #define __size_t__ | |
660 | #define __SIZE_T__ | |
661 | #define _SIZE_T | |
662 | #define _SYS_SIZE_T_H | |
663 | #define _T_SIZE_ | |
664 | #define _T_SIZE | |
665 | #define __SIZE_T | |
666 | #define _SIZE_T_ | |
667 | #define _BSD_SIZE_T_ | |
668 | #define _SIZE_T_DEFINED_ | |
669 | #define _SIZE_T_DEFINED | |
670 | #define _BSD_SIZE_T_DEFINED_ | |
671 | #define _SIZE_T_DECLARED | |
672 | #define ___int_size_t_h | |
673 | #define _GCC_SIZE_T | |
674 | #define _SIZET_ | |
675 | ||
676 | ||
677 | ||
678 | #define __size_t | |
679 | ||
680 | ||
681 | ||
682 | ||
683 | ||
684 | typedef long unsigned int size_t; | |
685 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
686 | #undef __need_size_t | |
687 | # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
688 | #undef NULL | |
689 | ||
690 | ||
691 | ||
692 | ||
693 | #define NULL ((void *)0) | |
694 | ||
695 | ||
696 | ||
697 | ||
698 | ||
699 | #undef __need_NULL | |
700 | # 35 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 | |
701 | ||
702 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
703 | ||
704 | ||
705 | ||
706 | ||
707 | ||
708 | ||
709 | ||
710 | # 1 "/usr/include/gentoo-multilib/amd64/bits/types.h" 1 3 4 | |
711 | # 25 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4 | |
712 | #define _BITS_TYPES_H 1 | |
713 | ||
714 | # 1 "/usr/include/features.h" 1 3 4 | |
715 | # 28 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4 | |
716 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
717 | ||
718 | ||
719 | ||
720 | ||
721 | ||
722 | ||
723 | ||
724 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
725 | ||
726 | ||
727 | ||
728 | #define __WORDSIZE 64 | |
729 | #define __WORDSIZE_COMPAT32 1 | |
730 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
731 | # 29 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4 | |
732 | ||
733 | #define __need_size_t | |
734 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
735 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
736 | #undef __need_size_t | |
737 | # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
738 | #undef __need_NULL | |
739 | # 32 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4 | |
740 | ||
741 | ||
742 | typedef unsigned char __u_char; | |
743 | typedef unsigned short int __u_short; | |
744 | typedef unsigned int __u_int; | |
745 | typedef unsigned long int __u_long; | |
746 | ||
747 | ||
748 | typedef signed char __int8_t; | |
749 | typedef unsigned char __uint8_t; | |
750 | typedef signed short int __int16_t; | |
751 | typedef unsigned short int __uint16_t; | |
752 | typedef signed int __int32_t; | |
753 | typedef unsigned int __uint32_t; | |
754 | ||
755 | typedef signed long int __int64_t; | |
756 | typedef unsigned long int __uint64_t; | |
757 | ||
758 | ||
759 | ||
760 | ||
761 | ||
762 | ||
763 | ||
764 | typedef long int __quad_t; | |
765 | typedef unsigned long int __u_quad_t; | |
766 | # 102 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4 | |
767 | #define __S16_TYPE short int | |
768 | #define __U16_TYPE unsigned short int | |
769 | #define __S32_TYPE int | |
770 | #define __U32_TYPE unsigned int | |
771 | #define __SLONGWORD_TYPE long int | |
772 | #define __ULONGWORD_TYPE unsigned long int | |
773 | # 121 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4 | |
774 | #define __SQUAD_TYPE long int | |
775 | #define __UQUAD_TYPE unsigned long int | |
776 | #define __SWORD_TYPE long int | |
777 | #define __UWORD_TYPE unsigned long int | |
778 | #define __SLONG32_TYPE int | |
779 | #define __ULONG32_TYPE unsigned int | |
780 | #define __S64_TYPE long int | |
781 | #define __U64_TYPE unsigned long int | |
782 | ||
783 | #define __STD_TYPE typedef | |
784 | ||
785 | ||
786 | ||
787 | # 1 "/usr/include/bits/typesizes.h" 1 3 4 | |
788 | ||
789 | ||
790 | ||
791 | ||
792 | ||
793 | ||
794 | ||
795 | # 1 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 1 3 4 | |
796 | # 25 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 3 4 | |
797 | #define _BITS_TYPESIZES_H 1 | |
798 | ||
799 | ||
800 | ||
801 | ||
802 | #define __DEV_T_TYPE __UQUAD_TYPE | |
803 | #define __UID_T_TYPE __U32_TYPE | |
804 | #define __GID_T_TYPE __U32_TYPE | |
805 | #define __INO_T_TYPE __ULONGWORD_TYPE | |
806 | #define __INO64_T_TYPE __UQUAD_TYPE | |
807 | #define __MODE_T_TYPE __U32_TYPE | |
808 | #define __NLINK_T_TYPE __UWORD_TYPE | |
809 | #define __OFF_T_TYPE __SLONGWORD_TYPE | |
810 | #define __OFF64_T_TYPE __SQUAD_TYPE | |
811 | #define __PID_T_TYPE __S32_TYPE | |
812 | #define __RLIM_T_TYPE __ULONGWORD_TYPE | |
813 | #define __RLIM64_T_TYPE __UQUAD_TYPE | |
814 | #define __BLKCNT_T_TYPE __SLONGWORD_TYPE | |
815 | #define __BLKCNT64_T_TYPE __SQUAD_TYPE | |
816 | #define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE | |
817 | #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE | |
818 | #define __FSFILCNT_T_TYPE __ULONGWORD_TYPE | |
819 | #define __FSFILCNT64_T_TYPE __UQUAD_TYPE | |
820 | #define __ID_T_TYPE __U32_TYPE | |
821 | #define __CLOCK_T_TYPE __SLONGWORD_TYPE | |
822 | #define __TIME_T_TYPE __SLONGWORD_TYPE | |
823 | #define __USECONDS_T_TYPE __U32_TYPE | |
824 | #define __SUSECONDS_T_TYPE __SLONGWORD_TYPE | |
825 | #define __DADDR_T_TYPE __S32_TYPE | |
826 | #define __SWBLK_T_TYPE __SLONGWORD_TYPE | |
827 | #define __KEY_T_TYPE __S32_TYPE | |
828 | #define __CLOCKID_T_TYPE __S32_TYPE | |
829 | #define __TIMER_T_TYPE void * | |
830 | #define __BLKSIZE_T_TYPE __SLONGWORD_TYPE | |
831 | #define __FSID_T_TYPE struct { int __val[2]; } | |
832 | #define __SSIZE_T_TYPE __SWORD_TYPE | |
833 | ||
834 | ||
835 | #define __FD_SETSIZE 1024 | |
836 | # 9 "/usr/include/bits/typesizes.h" 2 3 4 | |
837 | # 135 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4 | |
838 | ||
839 | ||
840 | typedef unsigned long int __dev_t; | |
841 | typedef unsigned int __uid_t; | |
842 | typedef unsigned int __gid_t; | |
843 | typedef unsigned long int __ino_t; | |
844 | typedef unsigned long int __ino64_t; | |
845 | typedef unsigned int __mode_t; | |
846 | typedef unsigned long int __nlink_t; | |
847 | typedef long int __off_t; | |
848 | typedef long int __off64_t; | |
849 | typedef int __pid_t; | |
850 | typedef struct { int __val[2]; } __fsid_t; | |
851 | typedef long int __clock_t; | |
852 | typedef unsigned long int __rlim_t; | |
853 | typedef unsigned long int __rlim64_t; | |
854 | typedef unsigned int __id_t; | |
855 | typedef long int __time_t; | |
856 | typedef unsigned int __useconds_t; | |
857 | typedef long int __suseconds_t; | |
858 | ||
859 | typedef int __daddr_t; | |
860 | typedef long int __swblk_t; | |
861 | typedef int __key_t; | |
862 | ||
863 | ||
864 | typedef int __clockid_t; | |
865 | ||
866 | ||
867 | typedef void * __timer_t; | |
868 | ||
869 | ||
870 | typedef long int __blksize_t; | |
871 | ||
872 | ||
873 | ||
874 | ||
875 | typedef long int __blkcnt_t; | |
876 | typedef long int __blkcnt64_t; | |
877 | ||
878 | ||
879 | typedef unsigned long int __fsblkcnt_t; | |
880 | typedef unsigned long int __fsblkcnt64_t; | |
881 | ||
882 | ||
883 | typedef unsigned long int __fsfilcnt_t; | |
884 | typedef unsigned long int __fsfilcnt64_t; | |
885 | ||
886 | typedef long int __ssize_t; | |
887 | ||
888 | ||
889 | ||
890 | typedef __off64_t __loff_t; | |
891 | typedef __quad_t *__qaddr_t; | |
892 | typedef char *__caddr_t; | |
893 | ||
894 | ||
895 | typedef long int __intptr_t; | |
896 | ||
897 | ||
898 | typedef unsigned int __socklen_t; | |
899 | ||
900 | ||
901 | #undef __STD_TYPE | |
902 | # 9 "/usr/include/bits/types.h" 2 3 4 | |
903 | # 37 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 | |
904 | #define __need_FILE | |
905 | #define __need___FILE | |
906 | ||
907 | ||
908 | ||
909 | ||
910 | ||
911 | ||
912 | ||
913 | typedef struct _IO_FILE FILE; | |
914 | ||
915 | ||
916 | ||
917 | ||
918 | ||
919 | ||
920 | ||
921 | #define __FILE_defined 1 | |
922 | ||
923 | #undef __need_FILE | |
924 | ||
925 | ||
926 | ||
927 | ||
928 | ||
929 | typedef struct _IO_FILE __FILE; | |
930 | ||
931 | #define ____FILE_defined 1 | |
932 | ||
933 | #undef __need___FILE | |
934 | ||
935 | ||
936 | ||
937 | #define _STDIO_USES_IOSTREAM | |
938 | ||
939 | # 1 "/usr/include/libio.h" 1 3 4 | |
940 | ||
941 | ||
942 | ||
943 | ||
944 | ||
945 | ||
946 | ||
947 | # 1 "/usr/include/gentoo-multilib/amd64/libio.h" 1 3 4 | |
948 | # 30 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
949 | #define _IO_STDIO_H | |
950 | ||
951 | # 1 "/usr/include/_G_config.h" 1 3 4 | |
952 | ||
953 | ||
954 | ||
955 | ||
956 | ||
957 | ||
958 | ||
959 | # 1 "/usr/include/gentoo-multilib/amd64/_G_config.h" 1 3 4 | |
960 | ||
961 | ||
962 | ||
963 | ||
964 | #define _G_config_h 1 | |
965 | ||
966 | ||
967 | ||
968 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
969 | # 10 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4 | |
970 | #define __need_size_t | |
971 | #define __need_wchar_t | |
972 | #define __need_wint_t | |
973 | #define __need_NULL | |
974 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
975 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
976 | #undef __need_size_t | |
977 | # 265 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
978 | #define __wchar_t__ | |
979 | #define __WCHAR_T__ | |
980 | #define _WCHAR_T | |
981 | #define _T_WCHAR_ | |
982 | #define _T_WCHAR | |
983 | #define __WCHAR_T | |
984 | #define _WCHAR_T_ | |
985 | #define _BSD_WCHAR_T_ | |
986 | #define _WCHAR_T_DEFINED_ | |
987 | #define _WCHAR_T_DEFINED | |
988 | #define _WCHAR_T_H | |
989 | #define ___int_wchar_t_h | |
990 | #define __INT_WCHAR_T_H | |
991 | #define _GCC_WCHAR_T | |
992 | #define _WCHAR_T_DECLARED | |
993 | # 292 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
994 | #undef _BSD_WCHAR_T_ | |
995 | # 326 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
996 | typedef int wchar_t; | |
997 | # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
998 | #undef __need_wchar_t | |
999 | ||
1000 | ||
1001 | ||
1002 | ||
1003 | #define _WINT_T | |
1004 | ||
1005 | ||
1006 | ||
1007 | ||
1008 | typedef unsigned int wint_t; | |
1009 | ||
1010 | #undef __need_wint_t | |
1011 | # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1012 | #undef NULL | |
1013 | ||
1014 | ||
1015 | ||
1016 | ||
1017 | #define NULL ((void *)0) | |
1018 | ||
1019 | ||
1020 | ||
1021 | ||
1022 | ||
1023 | #undef __need_NULL | |
1024 | # 15 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4 | |
1025 | # 23 "/usr/include/gentoo-multilib/amd64/_G_config.h" 3 4 | |
1026 | #define __need_mbstate_t | |
1027 | # 1 "/usr/include/wchar.h" 1 3 4 | |
1028 | ||
1029 | ||
1030 | ||
1031 | ||
1032 | ||
1033 | ||
1034 | ||
1035 | # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4 | |
1036 | # 47 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 | |
1037 | #define __need_wint_t | |
1038 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
1039 | # 357 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1040 | #undef __need_wint_t | |
1041 | # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1042 | #undef __need_NULL | |
1043 | # 49 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 | |
1044 | ||
1045 | # 1 "/usr/include/bits/wchar.h" 1 3 4 | |
1046 | ||
1047 | ||
1048 | ||
1049 | ||
1050 | ||
1051 | ||
1052 | ||
1053 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 1 3 4 | |
1054 | # 21 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 3 4 | |
1055 | #define _BITS_WCHAR_H 1 | |
1056 | ||
1057 | #define __WCHAR_MIN (-2147483647 - 1) | |
1058 | #define __WCHAR_MAX (2147483647) | |
1059 | # 9 "/usr/include/bits/wchar.h" 2 3 4 | |
1060 | # 51 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 | |
1061 | # 74 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 | |
1062 | #define __mbstate_t_defined 1 | |
1063 | ||
1064 | typedef struct | |
1065 | { | |
1066 | int __count; | |
1067 | union | |
1068 | { | |
1069 | wint_t __wch; | |
1070 | char __wchb[4]; | |
1071 | } __value; | |
1072 | } __mbstate_t; | |
1073 | ||
1074 | #undef __need_mbstate_t | |
1075 | # 9 "/usr/include/wchar.h" 2 3 4 | |
1076 | # 25 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4 | |
1077 | #define _G_size_t size_t | |
1078 | typedef struct | |
1079 | { | |
1080 | __off_t __pos; | |
1081 | __mbstate_t __state; | |
1082 | } _G_fpos_t; | |
1083 | typedef struct | |
1084 | { | |
1085 | __off64_t __pos; | |
1086 | __mbstate_t __state; | |
1087 | } _G_fpos64_t; | |
1088 | #define _G_ssize_t __ssize_t | |
1089 | #define _G_off_t __off_t | |
1090 | #define _G_off64_t __off64_t | |
1091 | #define _G_pid_t __pid_t | |
1092 | #define _G_uid_t __uid_t | |
1093 | #define _G_wchar_t wchar_t | |
1094 | #define _G_wint_t wint_t | |
1095 | #define _G_stat64 stat64 | |
1096 | # 1 "/usr/include/gconv.h" 1 3 4 | |
1097 | ||
1098 | ||
1099 | ||
1100 | ||
1101 | ||
1102 | ||
1103 | ||
1104 | # 1 "/usr/include/gentoo-multilib/amd64/gconv.h" 1 3 4 | |
1105 | # 24 "/usr/include/gentoo-multilib/amd64/gconv.h" 3 4 | |
1106 | #define _GCONV_H 1 | |
1107 | ||
1108 | # 1 "/usr/include/features.h" 1 3 4 | |
1109 | # 27 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4 | |
1110 | #define __need_mbstate_t | |
1111 | # 1 "/usr/include/wchar.h" 1 3 4 | |
1112 | ||
1113 | ||
1114 | ||
1115 | ||
1116 | ||
1117 | ||
1118 | ||
1119 | # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4 | |
1120 | # 47 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 | |
1121 | #define __need_wint_t | |
1122 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
1123 | # 357 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1124 | #undef __need_wint_t | |
1125 | # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1126 | #undef __need_NULL | |
1127 | # 49 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 | |
1128 | ||
1129 | # 1 "/usr/include/bits/wchar.h" 1 3 4 | |
1130 | # 51 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4 | |
1131 | # 86 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4 | |
1132 | #undef __need_mbstate_t | |
1133 | # 9 "/usr/include/wchar.h" 2 3 4 | |
1134 | # 29 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4 | |
1135 | #define __need_size_t | |
1136 | #define __need_wchar_t | |
1137 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
1138 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1139 | #undef __need_size_t | |
1140 | # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1141 | #undef __need_wchar_t | |
1142 | # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
1143 | #undef __need_NULL | |
1144 | # 32 "/usr/include/gentoo-multilib/amd64/gconv.h" 2 3 4 | |
1145 | ||
1146 | ||
1147 | #define __UNKNOWN_10646_CHAR ((wchar_t) 0xfffd) | |
1148 | ||
1149 | ||
1150 | enum | |
1151 | { | |
1152 | __GCONV_OK = 0, | |
1153 | __GCONV_NOCONV, | |
1154 | __GCONV_NODB, | |
1155 | __GCONV_NOMEM, | |
1156 | ||
1157 | __GCONV_EMPTY_INPUT, | |
1158 | __GCONV_FULL_OUTPUT, | |
1159 | __GCONV_ILLEGAL_INPUT, | |
1160 | __GCONV_INCOMPLETE_INPUT, | |
1161 | ||
1162 | __GCONV_ILLEGAL_DESCRIPTOR, | |
1163 | __GCONV_INTERNAL_ERROR | |
1164 | }; | |
1165 | ||
1166 | ||
1167 | ||
1168 | enum | |
1169 | { | |
1170 | __GCONV_IS_LAST = 0x0001, | |
1171 | __GCONV_IGNORE_ERRORS = 0x0002 | |
1172 | }; | |
1173 | ||
1174 | ||
1175 | ||
1176 | struct __gconv_step; | |
1177 | struct __gconv_step_data; | |
1178 | struct __gconv_loaded_object; | |
1179 | struct __gconv_trans_data; | |
1180 | ||
1181 | ||
1182 | ||
1183 | typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, | |
1184 | __const unsigned char **, __const unsigned char *, | |
1185 | unsigned char **, size_t *, int, int); | |
1186 | ||
1187 | ||
1188 | typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); | |
1189 | ||
1190 | ||
1191 | typedef int (*__gconv_init_fct) (struct __gconv_step *); | |
1192 | typedef void (*__gconv_end_fct) (struct __gconv_step *); | |
1193 | ||
1194 | ||
1195 | ||
1196 | typedef int (*__gconv_trans_fct) (struct __gconv_step *, | |
1197 | struct __gconv_step_data *, void *, | |
1198 | __const unsigned char *, | |
1199 | __const unsigned char **, | |
1200 | __const unsigned char *, unsigned char **, | |
1201 | size_t *); | |
1202 | ||
1203 | ||
1204 | typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, | |
1205 | __const unsigned char *, | |
1206 | unsigned char *, unsigned char *); | |
1207 | ||
1208 | ||
1209 | typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, | |
1210 | size_t *); | |
1211 | ||
1212 | ||
1213 | typedef int (*__gconv_trans_init_fct) (void **, const char *); | |
1214 | typedef void (*__gconv_trans_end_fct) (void *); | |
1215 | ||
1216 | struct __gconv_trans_data | |
1217 | { | |
1218 | ||
1219 | __gconv_trans_fct __trans_fct; | |
1220 | __gconv_trans_context_fct __trans_context_fct; | |
1221 | __gconv_trans_end_fct __trans_end_fct; | |
1222 | void *__data; | |
1223 | struct __gconv_trans_data *__next; | |
1224 | }; | |
1225 | ||
1226 | ||
1227 | ||
1228 | struct __gconv_step | |
1229 | { | |
1230 | struct __gconv_loaded_object *__shlib_handle; | |
1231 | __const char *__modname; | |
1232 | ||
1233 | int __counter; | |
1234 | ||
1235 | char *__from_name; | |
1236 | char *__to_name; | |
1237 | ||
1238 | __gconv_fct __fct; | |
1239 | __gconv_btowc_fct __btowc_fct; | |
1240 | __gconv_init_fct __init_fct; | |
1241 | __gconv_end_fct __end_fct; | |
1242 | ||
1243 | ||
1244 | ||
1245 | int __min_needed_from; | |
1246 | int __max_needed_from; | |
1247 | int __min_needed_to; | |
1248 | int __max_needed_to; | |
1249 | ||
1250 | ||
1251 | int __stateful; | |
1252 | ||
1253 | void *__data; | |
1254 | }; | |
1255 | ||
1256 | ||
1257 | ||
1258 | struct __gconv_step_data | |
1259 | { | |
1260 | unsigned char *__outbuf; | |
1261 | unsigned char *__outbufend; | |
1262 | ||
1263 | ||
1264 | ||
1265 | int __flags; | |
1266 | ||
1267 | ||
1268 | ||
1269 | int __invocation_counter; | |
1270 | ||
1271 | ||
1272 | ||
1273 | int __internal_use; | |
1274 | ||
1275 | __mbstate_t *__statep; | |
1276 | __mbstate_t __state; | |
1277 | ||
1278 | ||
1279 | ||
1280 | struct __gconv_trans_data *__trans; | |
1281 | }; | |
1282 | ||
1283 | ||
1284 | ||
1285 | typedef struct __gconv_info | |
1286 | { | |
1287 | size_t __nsteps; | |
1288 | struct __gconv_step *__steps; | |
1289 | __extension__ struct __gconv_step_data __data []; | |
1290 | } *__gconv_t; | |
1291 | # 9 "/usr/include/gconv.h" 2 3 4 | |
1292 | # 45 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4 | |
1293 | typedef union | |
1294 | { | |
1295 | struct __gconv_info __cd; | |
1296 | struct | |
1297 | { | |
1298 | struct __gconv_info __cd; | |
1299 | struct __gconv_step_data __data; | |
1300 | } __combined; | |
1301 | } _G_iconv_t; | |
1302 | ||
1303 | typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); | |
1304 | typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); | |
1305 | typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); | |
1306 | typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); | |
1307 | ||
1308 | #define _G_HAVE_BOOL 1 | |
1309 | ||
1310 | ||
1311 | ||
1312 | #define _G_HAVE_ATEXIT 1 | |
1313 | #define _G_HAVE_SYS_CDEFS 1 | |
1314 | #define _G_HAVE_SYS_WAIT 1 | |
1315 | #define _G_NEED_STDARG_H 1 | |
1316 | #define _G_va_list __gnuc_va_list | |
1317 | ||
1318 | #define _G_HAVE_PRINTF_FP 1 | |
1319 | #define _G_HAVE_MMAP 1 | |
1320 | #define _G_HAVE_MREMAP 1 | |
1321 | #define _G_HAVE_LONG_DOUBLE_IO 1 | |
1322 | #define _G_HAVE_IO_FILE_OPEN 1 | |
1323 | #define _G_HAVE_IO_GETLINE_INFO 1 | |
1324 | ||
1325 | #define _G_IO_IO_FILE_VERSION 0x20001 | |
1326 | ||
1327 | #define _G_OPEN64 __open64 | |
1328 | #define _G_LSEEK64 __lseek64 | |
1329 | #define _G_MMAP64 __mmap64 | |
1330 | #define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf) | |
1331 | ||
1332 | ||
1333 | #define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE) | |
1334 | ||
1335 | #define _G_BUFSIZ 8192 | |
1336 | ||
1337 | ||
1338 | #define _G_NAMES_HAVE_UNDERSCORE 0 | |
1339 | #define _G_VTABLE_LABEL_HAS_LENGTH 1 | |
1340 | #define _G_USING_THUNKS 1 | |
1341 | #define _G_VTABLE_LABEL_PREFIX "__vt_" | |
1342 | #define _G_VTABLE_LABEL_PREFIX_ID __vt_ | |
1343 | ||
1344 | ||
1345 | ||
1346 | #define _G_ARGS(ARGLIST) ARGLIST | |
1347 | # 9 "/usr/include/_G_config.h" 2 3 4 | |
1348 | # 33 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4 | |
1349 | ||
1350 | #define _IO_pos_t _G_fpos_t | |
1351 | #define _IO_fpos_t _G_fpos_t | |
1352 | #define _IO_fpos64_t _G_fpos64_t | |
1353 | #define _IO_size_t _G_size_t | |
1354 | #define _IO_ssize_t _G_ssize_t | |
1355 | #define _IO_off_t _G_off_t | |
1356 | #define _IO_off64_t _G_off64_t | |
1357 | #define _IO_pid_t _G_pid_t | |
1358 | #define _IO_uid_t _G_uid_t | |
1359 | #define _IO_iconv_t _G_iconv_t | |
1360 | #define _IO_HAVE_SYS_WAIT _G_HAVE_SYS_WAIT | |
1361 | #define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE | |
1362 | #define _IO_BUFSIZ _G_BUFSIZ | |
1363 | #define _IO_va_list _G_va_list | |
1364 | #define _IO_wint_t _G_wint_t | |
1365 | ||
1366 | ||
1367 | ||
1368 | #define __need___va_list | |
1369 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4 | |
1370 | # 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 | |
1371 | #undef __need___va_list | |
1372 | ||
1373 | ||
1374 | ||
1375 | ||
1376 | #define __GNUC_VA_LIST | |
1377 | typedef __builtin_va_list __gnuc_va_list; | |
1378 | # 54 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4 | |
1379 | ||
1380 | #undef _IO_va_list | |
1381 | #define _IO_va_list __gnuc_va_list | |
1382 | # 76 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1383 | #define _PARAMS(protos) __P(protos) | |
1384 | ||
1385 | ||
1386 | ||
1387 | ||
1388 | ||
1389 | ||
1390 | ||
1391 | #define _IO_UNIFIED_JUMPTABLES 1 | |
1392 | ||
1393 | ||
1394 | ||
1395 | ||
1396 | ||
1397 | #define EOF (-1) | |
1398 | # 105 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1399 | #define _IOS_INPUT 1 | |
1400 | #define _IOS_OUTPUT 2 | |
1401 | #define _IOS_ATEND 4 | |
1402 | #define _IOS_APPEND 8 | |
1403 | #define _IOS_TRUNC 16 | |
1404 | #define _IOS_NOCREATE 32 | |
1405 | #define _IOS_NOREPLACE 64 | |
1406 | #define _IOS_BIN 128 | |
1407 | ||
1408 | ||
1409 | ||
1410 | ||
1411 | ||
1412 | ||
1413 | ||
1414 | #define _IO_MAGIC 0xFBAD0000 | |
1415 | #define _OLD_STDIO_MAGIC 0xFABC0000 | |
1416 | #define _IO_MAGIC_MASK 0xFFFF0000 | |
1417 | #define _IO_USER_BUF 1 | |
1418 | #define _IO_UNBUFFERED 2 | |
1419 | #define _IO_NO_READS 4 | |
1420 | #define _IO_NO_WRITES 8 | |
1421 | #define _IO_EOF_SEEN 0x10 | |
1422 | #define _IO_ERR_SEEN 0x20 | |
1423 | #define _IO_DELETE_DONT_CLOSE 0x40 | |
1424 | #define _IO_LINKED 0x80 | |
1425 | #define _IO_IN_BACKUP 0x100 | |
1426 | #define _IO_LINE_BUF 0x200 | |
1427 | #define _IO_TIED_PUT_GET 0x400 | |
1428 | #define _IO_CURRENTLY_PUTTING 0x800 | |
1429 | #define _IO_IS_APPENDING 0x1000 | |
1430 | #define _IO_IS_FILEBUF 0x2000 | |
1431 | #define _IO_BAD_SEEN 0x4000 | |
1432 | #define _IO_USER_LOCK 0x8000 | |
1433 | ||
1434 | #define _IO_FLAGS2_MMAP 1 | |
1435 | #define _IO_FLAGS2_NOTCANCEL 2 | |
1436 | ||
1437 | ||
1438 | ||
1439 | ||
1440 | ||
1441 | #define _IO_SKIPWS 01 | |
1442 | #define _IO_LEFT 02 | |
1443 | #define _IO_RIGHT 04 | |
1444 | #define _IO_INTERNAL 010 | |
1445 | #define _IO_DEC 020 | |
1446 | #define _IO_OCT 040 | |
1447 | #define _IO_HEX 0100 | |
1448 | #define _IO_SHOWBASE 0200 | |
1449 | #define _IO_SHOWPOINT 0400 | |
1450 | #define _IO_UPPERCASE 01000 | |
1451 | #define _IO_SHOWPOS 02000 | |
1452 | #define _IO_SCIENTIFIC 04000 | |
1453 | #define _IO_FIXED 010000 | |
1454 | #define _IO_UNITBUF 020000 | |
1455 | #define _IO_STDIO 040000 | |
1456 | #define _IO_DONT_CLOSE 0100000 | |
1457 | #define _IO_BOOLALPHA 0200000 | |
1458 | ||
1459 | ||
1460 | struct _IO_jump_t; struct _IO_FILE; | |
1461 | # 176 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1462 | typedef void _IO_lock_t; | |
1463 | ||
1464 | ||
1465 | ||
1466 | ||
1467 | ||
1468 | struct _IO_marker { | |
1469 | struct _IO_marker *_next; | |
1470 | struct _IO_FILE *_sbuf; | |
1471 | ||
1472 | ||
1473 | ||
1474 | int _pos; | |
1475 | # 199 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1476 | }; | |
1477 | ||
1478 | ||
1479 | enum __codecvt_result | |
1480 | { | |
1481 | __codecvt_ok, | |
1482 | __codecvt_partial, | |
1483 | __codecvt_error, | |
1484 | __codecvt_noconv | |
1485 | }; | |
1486 | # 267 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1487 | struct _IO_FILE { | |
1488 | int _flags; | |
1489 | #define _IO_file_flags _flags | |
1490 | ||
1491 | ||
1492 | ||
1493 | char* _IO_read_ptr; | |
1494 | char* _IO_read_end; | |
1495 | char* _IO_read_base; | |
1496 | char* _IO_write_base; | |
1497 | char* _IO_write_ptr; | |
1498 | char* _IO_write_end; | |
1499 | char* _IO_buf_base; | |
1500 | char* _IO_buf_end; | |
1501 | ||
1502 | char *_IO_save_base; | |
1503 | char *_IO_backup_base; | |
1504 | char *_IO_save_end; | |
1505 | ||
1506 | struct _IO_marker *_markers; | |
1507 | ||
1508 | struct _IO_FILE *_chain; | |
1509 | ||
1510 | int _fileno; | |
1511 | ||
1512 | ||
1513 | ||
1514 | int _flags2; | |
1515 | ||
1516 | __off_t _old_offset; | |
1517 | ||
1518 | #define __HAVE_COLUMN | |
1519 | ||
1520 | unsigned short _cur_column; | |
1521 | signed char _vtable_offset; | |
1522 | char _shortbuf[1]; | |
1523 | ||
1524 | ||
1525 | ||
1526 | _IO_lock_t *_lock; | |
1527 | # 315 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1528 | __off64_t _offset; | |
1529 | # 324 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1530 | void *__pad1; | |
1531 | void *__pad2; | |
1532 | void *__pad3; | |
1533 | void *__pad4; | |
1534 | size_t __pad5; | |
1535 | ||
1536 | int _mode; | |
1537 | ||
1538 | char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; | |
1539 | ||
1540 | }; | |
1541 | ||
1542 | ||
1543 | typedef struct _IO_FILE _IO_FILE; | |
1544 | ||
1545 | ||
1546 | struct _IO_FILE_plus; | |
1547 | ||
1548 | extern struct _IO_FILE_plus _IO_2_1_stdin_; | |
1549 | extern struct _IO_FILE_plus _IO_2_1_stdout_; | |
1550 | extern struct _IO_FILE_plus _IO_2_1_stderr_; | |
1551 | ||
1552 | #define _IO_stdin ((_IO_FILE*)(&_IO_2_1_stdin_)) | |
1553 | #define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_)) | |
1554 | #define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_)) | |
1555 | # 360 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1556 | typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); | |
1557 | ||
1558 | ||
1559 | ||
1560 | ||
1561 | ||
1562 | ||
1563 | ||
1564 | typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, | |
1565 | size_t __n); | |
1566 | ||
1567 | ||
1568 | ||
1569 | ||
1570 | ||
1571 | ||
1572 | ||
1573 | typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); | |
1574 | ||
1575 | ||
1576 | typedef int __io_close_fn (void *__cookie); | |
1577 | ||
1578 | ||
1579 | ||
1580 | ||
1581 | typedef __io_read_fn cookie_read_function_t; | |
1582 | typedef __io_write_fn cookie_write_function_t; | |
1583 | typedef __io_seek_fn cookie_seek_function_t; | |
1584 | typedef __io_close_fn cookie_close_function_t; | |
1585 | ||
1586 | ||
1587 | typedef struct | |
1588 | { | |
1589 | __io_read_fn *read; | |
1590 | __io_write_fn *write; | |
1591 | __io_seek_fn *seek; | |
1592 | __io_close_fn *close; | |
1593 | } _IO_cookie_io_functions_t; | |
1594 | typedef _IO_cookie_io_functions_t cookie_io_functions_t; | |
1595 | ||
1596 | struct _IO_cookie_file; | |
1597 | ||
1598 | ||
1599 | extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, | |
1600 | void *__cookie, _IO_cookie_io_functions_t __fns); | |
1601 | ||
1602 | ||
1603 | ||
1604 | ||
1605 | ||
1606 | ||
1607 | ||
1608 | extern int __underflow (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1609 | extern int __uflow (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1610 | extern int __overflow (_IO_FILE *, int) __attribute__ ((__nothrow__)); | |
1611 | extern wint_t __wunderflow (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1612 | extern wint_t __wuflow (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1613 | extern wint_t __woverflow (_IO_FILE *, wint_t) __attribute__ ((__nothrow__)); | |
1614 | ||
1615 | ||
1616 | #define _IO_BE(expr,res) __builtin_expect ((expr), res) | |
1617 | ||
1618 | ||
1619 | ||
1620 | ||
1621 | #define _IO_getc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) | |
1622 | ||
1623 | ||
1624 | #define _IO_peekc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) && __underflow (_fp) == EOF ? EOF : *(unsigned char *) (_fp)->_IO_read_ptr) | |
1625 | ||
1626 | ||
1627 | ||
1628 | #define _IO_putc_unlocked(_ch,_fp) (_IO_BE ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end, 0) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) | |
1629 | ||
1630 | ||
1631 | ||
1632 | ||
1633 | #define _IO_getwc_unlocked(_fp) (_IO_BE ((_fp)->_wide_data->_IO_read_ptr >= (_fp)->_wide_data->_IO_read_end, 0) ? __wuflow (_fp) : (_IO_wint_t) *(_fp)->_wide_data->_IO_read_ptr++) | |
1634 | ||
1635 | ||
1636 | ||
1637 | #define _IO_putwc_unlocked(_wch,_fp) (_IO_BE ((_fp)->_wide_data->_IO_write_ptr >= (_fp)->_wide_data->_IO_write_end, 0) ? __woverflow (_fp, _wch) : (_IO_wint_t) (*(_fp)->_wide_data->_IO_write_ptr++ = (_wch))) | |
1638 | ||
1639 | ||
1640 | ||
1641 | ||
1642 | ||
1643 | #define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0) | |
1644 | #define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0) | |
1645 | ||
1646 | extern int _IO_getc (_IO_FILE *__fp) __attribute__ ((__nothrow__)); | |
1647 | extern int _IO_putc (int __c, _IO_FILE *__fp) __attribute__ ((__nothrow__)); | |
1648 | extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); | |
1649 | extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); | |
1650 | ||
1651 | extern int _IO_peekc_locked (_IO_FILE *__fp) __attribute__ ((__nothrow__)); | |
1652 | ||
1653 | ||
1654 | #define _IO_PENDING_OUTPUT_COUNT(_fp) ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base) | |
1655 | ||
1656 | ||
1657 | extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1658 | extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1659 | extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1660 | # 472 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4 | |
1661 | #define _IO_peekc(_fp) _IO_peekc_unlocked (_fp) | |
1662 | #define _IO_flockfile(_fp) | |
1663 | #define _IO_funlockfile(_fp) | |
1664 | #define _IO_ftrylockfile(_fp) | |
1665 | #define _IO_cleanup_region_start(_fct,_fp) | |
1666 | #define _IO_cleanup_region_end(_Doit) | |
1667 | ||
1668 | ||
1669 | extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, | |
1670 | __gnuc_va_list, int *__restrict); | |
1671 | extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, | |
1672 | __gnuc_va_list); | |
1673 | extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) __attribute__ ((__nothrow__)); | |
1674 | extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) __attribute__ ((__nothrow__)); | |
1675 | ||
1676 | extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) __attribute__ ((__nothrow__)); | |
1677 | extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) __attribute__ ((__nothrow__)); | |
1678 | ||
1679 | extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); | |
1680 | # 9 "/usr/include/libio.h" 2 3 4 | |
1681 | # 73 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 | |
1682 | ||
1683 | ||
1684 | ||
1685 | ||
1686 | typedef __gnuc_va_list va_list; | |
1687 | #define _VA_LIST_DEFINED | |
1688 | ||
1689 | ||
1690 | ||
1691 | ||
1692 | ||
1693 | ||
1694 | ||
1695 | ||
1696 | ||
1697 | typedef _G_fpos_t fpos_t; | |
1698 | ||
1699 | ||
1700 | ||
1701 | ||
1702 | ||
1703 | typedef _G_fpos64_t fpos64_t; | |
1704 | ||
1705 | ||
1706 | ||
1707 | #define _IOFBF 0 | |
1708 | #define _IOLBF 1 | |
1709 | #define _IONBF 2 | |
1710 | ||
1711 | ||
1712 | ||
1713 | ||
1714 | #define BUFSIZ _IO_BUFSIZ | |
1715 | # 118 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
1716 | #define SEEK_SET 0 | |
1717 | #define SEEK_CUR 1 | |
1718 | #define SEEK_END 2 | |
1719 | ||
1720 | ||
1721 | ||
1722 | ||
1723 | #define P_tmpdir "/tmp" | |
1724 | # 138 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
1725 | # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 | |
1726 | ||
1727 | ||
1728 | ||
1729 | ||
1730 | ||
1731 | ||
1732 | ||
1733 | # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4 | |
1734 | # 24 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4 | |
1735 | #define L_tmpnam 20 | |
1736 | #define TMP_MAX 238328 | |
1737 | #define FILENAME_MAX 4096 | |
1738 | ||
1739 | ||
1740 | #define L_ctermid 9 | |
1741 | #define L_cuserid 9 | |
1742 | ||
1743 | ||
1744 | ||
1745 | ||
1746 | #undef FOPEN_MAX | |
1747 | #define FOPEN_MAX 16 | |
1748 | # 9 "/usr/include/bits/stdio_lim.h" 2 3 4 | |
1749 | # 139 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 | |
1750 | ||
1751 | ||
1752 | ||
1753 | extern struct _IO_FILE *stdin; | |
1754 | extern struct _IO_FILE *stdout; | |
1755 | extern struct _IO_FILE *stderr; | |
1756 | ||
1757 | #define stdin stdin | |
1758 | #define stdout stdout | |
1759 | #define stderr stderr | |
1760 | ||
1761 | ||
1762 | ||
1763 | extern int remove (__const char *__filename) __attribute__ ((__nothrow__)); | |
1764 | ||
1765 | extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__)); | |
1766 | ||
1767 | ||
1768 | ||
1769 | ||
1770 | extern int renameat (int __oldfd, __const char *__old, int __newfd, | |
1771 | __const char *__new) __attribute__ ((__nothrow__)); | |
1772 | ||
1773 | ||
1774 | ||
1775 | ||
1776 | ||
1777 | ||
1778 | ||
1779 | ||
1780 | extern FILE *tmpfile (void); | |
1781 | # 179 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
1782 | extern FILE *tmpfile64 (void); | |
1783 | ||
1784 | ||
1785 | ||
1786 | extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)); | |
1787 | ||
1788 | ||
1789 | ||
1790 | ||
1791 | ||
1792 | extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)); | |
1793 | # 201 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
1794 | extern char *tempnam (__const char *__dir, __const char *__pfx) | |
1795 | __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); | |
1796 | ||
1797 | ||
1798 | ||
1799 | ||
1800 | ||
1801 | ||
1802 | ||
1803 | ||
1804 | extern int fclose (FILE *__stream); | |
1805 | ||
1806 | ||
1807 | ||
1808 | ||
1809 | extern int fflush (FILE *__stream); | |
1810 | ||
1811 | # 226 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
1812 | extern int fflush_unlocked (FILE *__stream); | |
1813 | # 236 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
1814 | extern int fcloseall (void); | |
1815 | ||
1816 | ||
1817 | ||
1818 | ||
1819 | ||
1820 | ||
1821 | ||
1822 | ||
1823 | ||
1824 | extern FILE *fopen (__const char *__restrict __filename, | |
1825 | __const char *__restrict __modes); | |
1826 | ||
1827 | ||
1828 | ||
1829 | ||
1830 | extern FILE *freopen (__const char *__restrict __filename, | |
1831 | __const char *__restrict __modes, | |
1832 | FILE *__restrict __stream); | |
1833 | # 267 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
1834 | ||
1835 | ||
1836 | extern FILE *fopen64 (__const char *__restrict __filename, | |
1837 | __const char *__restrict __modes); | |
1838 | extern FILE *freopen64 (__const char *__restrict __filename, | |
1839 | __const char *__restrict __modes, | |
1840 | FILE *__restrict __stream); | |
1841 | ||
1842 | ||
1843 | ||
1844 | ||
1845 | extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)); | |
1846 | ||
1847 | ||
1848 | ||
1849 | ||
1850 | ||
1851 | extern FILE *fopencookie (void *__restrict __magic_cookie, | |
1852 | __const char *__restrict __modes, | |
1853 | _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)); | |
1854 | ||
1855 | ||
1856 | extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __attribute__ ((__nothrow__)); | |
1857 | ||
1858 | ||
1859 | ||
1860 | ||
1861 | extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)); | |
1862 | ||
1863 | ||
1864 | ||
1865 | ||
1866 | ||
1867 | ||
1868 | extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__)); | |
1869 | ||
1870 | ||
1871 | ||
1872 | extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, | |
1873 | int __modes, size_t __n) __attribute__ ((__nothrow__)); | |
1874 | ||
1875 | ||
1876 | ||
1877 | ||
1878 | ||
1879 | extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, | |
1880 | size_t __size) __attribute__ ((__nothrow__)); | |
1881 | ||
1882 | ||
1883 | extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__)); | |
1884 | ||
1885 | ||
1886 | ||
1887 | ||
1888 | ||
1889 | ||
1890 | ||
1891 | ||
1892 | extern int fprintf (FILE *__restrict __stream, | |
1893 | __const char *__restrict __format, ...); | |
1894 | ||
1895 | ||
1896 | ||
1897 | ||
1898 | extern int printf (__const char *__restrict __format, ...); | |
1899 | ||
1900 | extern int sprintf (char *__restrict __s, | |
1901 | __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); | |
1902 | ||
1903 | ||
1904 | ||
1905 | ||
1906 | ||
1907 | extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, | |
1908 | __gnuc_va_list __arg); | |
1909 | ||
1910 | ||
1911 | ||
1912 | ||
1913 | extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); | |
1914 | ||
1915 | extern int vsprintf (char *__restrict __s, __const char *__restrict __format, | |
1916 | __gnuc_va_list __arg) __attribute__ ((__nothrow__)); | |
1917 | ||
1918 | ||
1919 | ||
1920 | ||
1921 | ||
1922 | extern int snprintf (char *__restrict __s, size_t __maxlen, | |
1923 | __const char *__restrict __format, ...) | |
1924 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); | |
1925 | ||
1926 | extern int vsnprintf (char *__restrict __s, size_t __maxlen, | |
1927 | __const char *__restrict __format, __gnuc_va_list __arg) | |
1928 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); | |
1929 | ||
1930 | ||
1931 | ||
1932 | ||
1933 | ||
1934 | ||
1935 | extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, | |
1936 | __gnuc_va_list __arg) | |
1937 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); | |
1938 | extern int __asprintf (char **__restrict __ptr, | |
1939 | __const char *__restrict __fmt, ...) | |
1940 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); | |
1941 | extern int asprintf (char **__restrict __ptr, | |
1942 | __const char *__restrict __fmt, ...) | |
1943 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); | |
1944 | ||
1945 | ||
1946 | ||
1947 | ||
1948 | ||
1949 | ||
1950 | ||
1951 | extern int vdprintf (int __fd, __const char *__restrict __fmt, | |
1952 | __gnuc_va_list __arg) | |
1953 | __attribute__ ((__format__ (__printf__, 2, 0))); | |
1954 | extern int dprintf (int __fd, __const char *__restrict __fmt, ...) | |
1955 | __attribute__ ((__format__ (__printf__, 2, 3))); | |
1956 | ||
1957 | ||
1958 | ||
1959 | ||
1960 | ||
1961 | ||
1962 | ||
1963 | ||
1964 | extern int fscanf (FILE *__restrict __stream, | |
1965 | __const char *__restrict __format, ...) ; | |
1966 | ||
1967 | ||
1968 | ||
1969 | ||
1970 | extern int scanf (__const char *__restrict __format, ...) ; | |
1971 | ||
1972 | extern int sscanf (__const char *__restrict __s, | |
1973 | __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); | |
1974 | ||
1975 | ||
1976 | ||
1977 | ||
1978 | ||
1979 | ||
1980 | ||
1981 | ||
1982 | extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, | |
1983 | __gnuc_va_list __arg) | |
1984 | __attribute__ ((__format__ (__scanf__, 2, 0))) ; | |
1985 | ||
1986 | ||
1987 | ||
1988 | ||
1989 | ||
1990 | extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) | |
1991 | __attribute__ ((__format__ (__scanf__, 1, 0))) ; | |
1992 | ||
1993 | ||
1994 | extern int vsscanf (__const char *__restrict __s, | |
1995 | __const char *__restrict __format, __gnuc_va_list __arg) | |
1996 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); | |
1997 | ||
1998 | ||
1999 | ||
2000 | ||
2001 | ||
2002 | ||
2003 | ||
2004 | ||
2005 | ||
2006 | extern int fgetc (FILE *__stream); | |
2007 | extern int getc (FILE *__stream); | |
2008 | ||
2009 | ||
2010 | ||
2011 | ||
2012 | ||
2013 | extern int getchar (void); | |
2014 | ||
2015 | ||
2016 | ||
2017 | ||
2018 | #define getc(_fp) _IO_getc (_fp) | |
2019 | ||
2020 | ||
2021 | ||
2022 | ||
2023 | ||
2024 | ||
2025 | extern int getc_unlocked (FILE *__stream); | |
2026 | extern int getchar_unlocked (void); | |
2027 | # 469 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2028 | extern int fgetc_unlocked (FILE *__stream); | |
2029 | ||
2030 | ||
2031 | ||
2032 | ||
2033 | ||
2034 | ||
2035 | ||
2036 | ||
2037 | ||
2038 | ||
2039 | ||
2040 | extern int fputc (int __c, FILE *__stream); | |
2041 | extern int putc (int __c, FILE *__stream); | |
2042 | ||
2043 | ||
2044 | ||
2045 | ||
2046 | ||
2047 | extern int putchar (int __c); | |
2048 | ||
2049 | ||
2050 | ||
2051 | ||
2052 | #define putc(_ch,_fp) _IO_putc (_ch, _fp) | |
2053 | # 502 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2054 | extern int fputc_unlocked (int __c, FILE *__stream); | |
2055 | ||
2056 | ||
2057 | ||
2058 | ||
2059 | ||
2060 | ||
2061 | ||
2062 | extern int putc_unlocked (int __c, FILE *__stream); | |
2063 | extern int putchar_unlocked (int __c); | |
2064 | ||
2065 | ||
2066 | ||
2067 | ||
2068 | ||
2069 | ||
2070 | extern int getw (FILE *__stream); | |
2071 | ||
2072 | ||
2073 | extern int putw (int __w, FILE *__stream); | |
2074 | ||
2075 | ||
2076 | ||
2077 | ||
2078 | ||
2079 | ||
2080 | ||
2081 | ||
2082 | extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) | |
2083 | ; | |
2084 | ||
2085 | ||
2086 | ||
2087 | ||
2088 | ||
2089 | ||
2090 | extern char *gets (char *__s) ; | |
2091 | ||
2092 | # 548 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2093 | extern char *fgets_unlocked (char *__restrict __s, int __n, | |
2094 | FILE *__restrict __stream) ; | |
2095 | # 564 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2096 | extern __ssize_t __getdelim (char **__restrict __lineptr, | |
2097 | size_t *__restrict __n, int __delimiter, | |
2098 | FILE *__restrict __stream) ; | |
2099 | extern __ssize_t getdelim (char **__restrict __lineptr, | |
2100 | size_t *__restrict __n, int __delimiter, | |
2101 | FILE *__restrict __stream) ; | |
2102 | ||
2103 | ||
2104 | ||
2105 | ||
2106 | ||
2107 | ||
2108 | ||
2109 | extern __ssize_t getline (char **__restrict __lineptr, | |
2110 | size_t *__restrict __n, | |
2111 | FILE *__restrict __stream) ; | |
2112 | ||
2113 | ||
2114 | ||
2115 | ||
2116 | ||
2117 | ||
2118 | ||
2119 | ||
2120 | extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); | |
2121 | ||
2122 | ||
2123 | ||
2124 | ||
2125 | ||
2126 | extern int puts (__const char *__s); | |
2127 | ||
2128 | ||
2129 | ||
2130 | ||
2131 | ||
2132 | ||
2133 | extern int ungetc (int __c, FILE *__stream); | |
2134 | ||
2135 | ||
2136 | ||
2137 | ||
2138 | ||
2139 | ||
2140 | extern size_t fread (void *__restrict __ptr, size_t __size, | |
2141 | size_t __n, FILE *__restrict __stream) ; | |
2142 | ||
2143 | ||
2144 | ||
2145 | ||
2146 | extern size_t fwrite (__const void *__restrict __ptr, size_t __size, | |
2147 | size_t __n, FILE *__restrict __s) ; | |
2148 | ||
2149 | # 625 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2150 | extern int fputs_unlocked (__const char *__restrict __s, | |
2151 | FILE *__restrict __stream); | |
2152 | # 636 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2153 | extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, | |
2154 | size_t __n, FILE *__restrict __stream) ; | |
2155 | extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, | |
2156 | size_t __n, FILE *__restrict __stream) ; | |
2157 | ||
2158 | ||
2159 | ||
2160 | ||
2161 | ||
2162 | ||
2163 | ||
2164 | ||
2165 | extern int fseek (FILE *__stream, long int __off, int __whence); | |
2166 | ||
2167 | ||
2168 | ||
2169 | ||
2170 | extern long int ftell (FILE *__stream) ; | |
2171 | ||
2172 | ||
2173 | ||
2174 | ||
2175 | extern void rewind (FILE *__stream); | |
2176 | ||
2177 | # 672 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2178 | extern int fseeko (FILE *__stream, __off_t __off, int __whence); | |
2179 | ||
2180 | ||
2181 | ||
2182 | ||
2183 | extern __off_t ftello (FILE *__stream) ; | |
2184 | # 691 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2185 | ||
2186 | ||
2187 | ||
2188 | ||
2189 | ||
2190 | ||
2191 | extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); | |
2192 | ||
2193 | ||
2194 | ||
2195 | ||
2196 | extern int fsetpos (FILE *__stream, __const fpos_t *__pos); | |
2197 | # 714 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2198 | ||
2199 | ||
2200 | ||
2201 | extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); | |
2202 | extern __off64_t ftello64 (FILE *__stream) ; | |
2203 | extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); | |
2204 | extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); | |
2205 | ||
2206 | ||
2207 | ||
2208 | ||
2209 | extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); | |
2210 | ||
2211 | extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ; | |
2212 | ||
2213 | extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ; | |
2214 | ||
2215 | ||
2216 | ||
2217 | ||
2218 | extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); | |
2219 | extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; | |
2220 | extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; | |
2221 | ||
2222 | ||
2223 | ||
2224 | ||
2225 | ||
2226 | ||
2227 | ||
2228 | ||
2229 | extern void perror (__const char *__s); | |
2230 | ||
2231 | ||
2232 | ||
2233 | ||
2234 | ||
2235 | ||
2236 | # 1 "/usr/include/bits/sys_errlist.h" 1 3 4 | |
2237 | ||
2238 | ||
2239 | ||
2240 | ||
2241 | ||
2242 | ||
2243 | ||
2244 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 1 3 4 | |
2245 | # 27 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 3 4 | |
2246 | extern int sys_nerr; | |
2247 | extern __const char *__const sys_errlist[]; | |
2248 | ||
2249 | ||
2250 | extern int _sys_nerr; | |
2251 | extern __const char *__const _sys_errlist[]; | |
2252 | # 9 "/usr/include/bits/sys_errlist.h" 2 3 4 | |
2253 | # 753 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 | |
2254 | ||
2255 | ||
2256 | ||
2257 | ||
2258 | extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ; | |
2259 | ||
2260 | ||
2261 | ||
2262 | ||
2263 | extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ; | |
2264 | # 772 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2265 | extern FILE *popen (__const char *__command, __const char *__modes) ; | |
2266 | ||
2267 | ||
2268 | ||
2269 | ||
2270 | ||
2271 | extern int pclose (FILE *__stream); | |
2272 | ||
2273 | ||
2274 | ||
2275 | ||
2276 | ||
2277 | extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); | |
2278 | ||
2279 | ||
2280 | ||
2281 | ||
2282 | ||
2283 | extern char *cuserid (char *__s); | |
2284 | ||
2285 | ||
2286 | ||
2287 | ||
2288 | struct obstack; | |
2289 | ||
2290 | ||
2291 | extern int obstack_printf (struct obstack *__restrict __obstack, | |
2292 | __const char *__restrict __format, ...) | |
2293 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); | |
2294 | extern int obstack_vprintf (struct obstack *__restrict __obstack, | |
2295 | __const char *__restrict __format, | |
2296 | __gnuc_va_list __args) | |
2297 | __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); | |
2298 | ||
2299 | ||
2300 | ||
2301 | ||
2302 | ||
2303 | ||
2304 | ||
2305 | extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); | |
2306 | ||
2307 | ||
2308 | ||
2309 | extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ; | |
2310 | ||
2311 | ||
2312 | extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); | |
2313 | # 833 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2314 | # 1 "/usr/include/bits/stdio.h" 1 3 4 | |
2315 | ||
2316 | ||
2317 | ||
2318 | ||
2319 | ||
2320 | ||
2321 | ||
2322 | # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 1 3 4 | |
2323 | # 27 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 3 4 | |
2324 | #define __STDIO_INLINE extern __inline | |
2325 | ||
2326 | ||
2327 | ||
2328 | ||
2329 | ||
2330 | extern __inline int | |
2331 | vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) | |
2332 | { | |
2333 | return vfprintf (stdout, __fmt, __arg); | |
2334 | } | |
2335 | ||
2336 | ||
2337 | extern __inline int | |
2338 | getchar (void) | |
2339 | { | |
2340 | return _IO_getc (stdin); | |
2341 | } | |
2342 | ||
2343 | ||
2344 | ||
2345 | ||
2346 | extern __inline int | |
2347 | getc_unlocked (FILE *__fp) | |
2348 | { | |
2349 | return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); | |
2350 | } | |
2351 | ||
2352 | ||
2353 | extern __inline int | |
2354 | getchar_unlocked (void) | |
2355 | { | |
2356 | return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); | |
2357 | } | |
2358 | ||
2359 | ||
2360 | ||
2361 | ||
2362 | extern __inline int | |
2363 | putchar (int __c) | |
2364 | { | |
2365 | return _IO_putc (__c, stdout); | |
2366 | } | |
2367 | ||
2368 | ||
2369 | ||
2370 | ||
2371 | extern __inline int | |
2372 | fputc_unlocked (int __c, FILE *__stream) | |
2373 | { | |
2374 | return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); | |
2375 | } | |
2376 | ||
2377 | ||
2378 | ||
2379 | ||
2380 | ||
2381 | extern __inline int | |
2382 | putc_unlocked (int __c, FILE *__stream) | |
2383 | { | |
2384 | return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); | |
2385 | } | |
2386 | ||
2387 | ||
2388 | extern __inline int | |
2389 | putchar_unlocked (int __c) | |
2390 | { | |
2391 | return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); | |
2392 | } | |
2393 | ||
2394 | ||
2395 | ||
2396 | ||
2397 | ||
2398 | extern __inline __ssize_t | |
2399 | getline (char **__lineptr, size_t *__n, FILE *__stream) | |
2400 | { | |
2401 | return __getdelim (__lineptr, __n, '\n', __stream); | |
2402 | } | |
2403 | ||
2404 | ||
2405 | ||
2406 | ||
2407 | ||
2408 | extern __inline int | |
2409 | __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream) | |
2410 | { | |
2411 | return (((__stream)->_flags & 0x10) != 0); | |
2412 | } | |
2413 | ||
2414 | ||
2415 | extern __inline int | |
2416 | __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream) | |
2417 | { | |
2418 | return (((__stream)->_flags & 0x20) != 0); | |
2419 | } | |
2420 | ||
2421 | ||
2422 | ||
2423 | ||
2424 | ||
2425 | ||
2426 | ||
2427 | #define fread_unlocked(ptr,size,n,stream) (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) && (size_t) (size) * (size_t) (n) <= 8 && (size_t) (size) != 0) ? ({ char *__ptr = (char *) (ptr); FILE *__stream = (stream); size_t __cnt; for (__cnt = (size_t) (size) * (size_t) (n); __cnt > 0; --__cnt) { int __c = _IO_getc_unlocked (__stream); if (__c == EOF) break; *__ptr++ = __c; } ((size_t) (size) * (size_t) (n) - __cnt) / (size_t) (size); }) : (((__builtin_constant_p (size) && (size_t) (size) == 0) || (__builtin_constant_p (n) && (size_t) (n) == 0)) ? ((void) (ptr), (void) (stream), (void) (size), (void) (n), (size_t) 0) : fread_unlocked (ptr, size, n, stream)))) | |
2428 | # 154 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 3 4 | |
2429 | #define fwrite_unlocked(ptr,size,n,stream) (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) && (size_t) (size) * (size_t) (n) <= 8 && (size_t) (size) != 0) ? ({ const char *__ptr = (const char *) (ptr); FILE *__stream = (stream); size_t __cnt; for (__cnt = (size_t) (size) * (size_t) (n); __cnt > 0; --__cnt) if (_IO_putc_unlocked (*__ptr++, __stream) == EOF) break; ((size_t) (size) * (size_t) (n) - __cnt) / (size_t) (size); }) : (((__builtin_constant_p (size) && (size_t) (size) == 0) || (__builtin_constant_p (n) && (size_t) (n) == 0)) ? ((void) (ptr), (void) (stream), (void) (size), (void) (n), (size_t) 0) : fwrite_unlocked (ptr, size, n, stream)))) | |
2430 | # 176 "/usr/include/gentoo-multilib/amd64/bits/stdio.h" 3 4 | |
2431 | #undef __STDIO_INLINE | |
2432 | # 9 "/usr/include/bits/stdio.h" 2 3 4 | |
2433 | # 834 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4 | |
2434 | # 842 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4 | |
2435 | ||
2436 | # 9 "/usr/include/stdio.h" 2 3 4 | |
2437 | # 24 "video_out_dfb.c" 2 | |
2438 | # 1 "/usr/include/stdlib.h" 1 3 4 | |
2439 | ||
2440 | ||
2441 | ||
2442 | ||
2443 | ||
2444 | ||
2445 | ||
2446 | # 1 "/usr/include/gentoo-multilib/amd64/stdlib.h" 1 3 4 | |
2447 | # 25 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
2448 | # 1 "/usr/include/features.h" 1 3 4 | |
2449 | # 26 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 | |
2450 | ||
2451 | ||
2452 | #define __need_size_t | |
2453 | ||
2454 | #define __need_wchar_t | |
2455 | #define __need_NULL | |
2456 | ||
2457 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
2458 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
2459 | #undef __need_size_t | |
2460 | # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
2461 | #undef __need_wchar_t | |
2462 | # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
2463 | #undef NULL | |
2464 | ||
2465 | ||
2466 | ||
2467 | ||
2468 | #define NULL ((void *)0) | |
2469 | ||
2470 | ||
2471 | ||
2472 | ||
2473 | ||
2474 | #undef __need_NULL | |
2475 | # 34 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 | |
2476 | ||
2477 | ||
2478 | ||
2479 | ||
2480 | #define _STDLIB_H 1 | |
2481 | ||
2482 | ||
2483 | ||
2484 | # 1 "/usr/include/bits/waitflags.h" 1 3 4 | |
2485 | ||
2486 | ||
2487 | ||
2488 | ||
2489 | ||
2490 | ||
2491 | ||
2492 | # 1 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 1 3 4 | |
2493 | # 26 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 3 4 | |
2494 | #define WNOHANG 1 | |
2495 | #define WUNTRACED 2 | |
2496 | ||
2497 | ||
2498 | #define WSTOPPED 2 | |
2499 | #define WEXITED 4 | |
2500 | #define WCONTINUED 8 | |
2501 | #define WNOWAIT 0x01000000 | |
2502 | ||
2503 | #define __WNOTHREAD 0x20000000 | |
2504 | ||
2505 | #define __WALL 0x40000000 | |
2506 | #define __WCLONE 0x80000000 | |
2507 | # 9 "/usr/include/bits/waitflags.h" 2 3 4 | |
2508 | # 43 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 | |
2509 | # 1 "/usr/include/bits/waitstatus.h" 1 3 4 | |
2510 | ||
2511 | ||
2512 | ||
2513 | ||
2514 | ||
2515 | ||
2516 | ||
2517 | # 1 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 1 3 4 | |
2518 | # 29 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 3 4 | |
2519 | #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) | |
2520 | ||
2521 | ||
2522 | #define __WTERMSIG(status) ((status) & 0x7f) | |
2523 | ||
2524 | ||
2525 | #define __WSTOPSIG(status) __WEXITSTATUS(status) | |
2526 | ||
2527 | ||
2528 | #define __WIFEXITED(status) (__WTERMSIG(status) == 0) | |
2529 | ||
2530 | ||
2531 | #define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) | |
2532 | ||
2533 | ||
2534 | ||
2535 | #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) | |
2536 | ||
2537 | ||
2538 | ||
2539 | ||
2540 | #define __WIFCONTINUED(status) ((status) == __W_CONTINUED) | |
2541 | ||
2542 | ||
2543 | ||
2544 | #define __WCOREDUMP(status) ((status) & __WCOREFLAG) | |
2545 | ||
2546 | ||
2547 | #define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig)) | |
2548 | #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) | |
2549 | #define __W_CONTINUED 0xffff | |
2550 | #define __WCOREFLAG 0x80 | |
2551 | ||
2552 | ||
2553 | ||
2554 | ||
2555 | # 1 "/usr/include/endian.h" 1 3 4 | |
2556 | ||
2557 | ||
2558 | ||
2559 | ||
2560 | ||
2561 | ||
2562 | ||
2563 | # 1 "/usr/include/gentoo-multilib/amd64/endian.h" 1 3 4 | |
2564 | # 20 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4 | |
2565 | #define _ENDIAN_H 1 | |
2566 | ||
2567 | # 1 "/usr/include/features.h" 1 3 4 | |
2568 | # 23 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4 | |
2569 | # 32 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4 | |
2570 | #define __LITTLE_ENDIAN 1234 | |
2571 | #define __BIG_ENDIAN 4321 | |
2572 | #define __PDP_ENDIAN 3412 | |
2573 | ||
2574 | ||
2575 | # 1 "/usr/include/bits/endian.h" 1 3 4 | |
2576 | ||
2577 | ||
2578 | ||
2579 | ||
2580 | ||
2581 | ||
2582 | ||
2583 | # 1 "/usr/include/gentoo-multilib/amd64/bits/endian.h" 1 3 4 | |
2584 | ||
2585 | ||
2586 | ||
2587 | ||
2588 | ||
2589 | ||
2590 | #define __BYTE_ORDER __LITTLE_ENDIAN | |
2591 | # 9 "/usr/include/bits/endian.h" 2 3 4 | |
2592 | # 38 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4 | |
2593 | ||
2594 | ||
2595 | ||
2596 | ||
2597 | #define __FLOAT_WORD_ORDER __BYTE_ORDER | |
2598 | ||
2599 | ||
2600 | ||
2601 | #define LITTLE_ENDIAN __LITTLE_ENDIAN | |
2602 | #define BIG_ENDIAN __BIG_ENDIAN | |
2603 | #define PDP_ENDIAN __PDP_ENDIAN | |
2604 | #define BYTE_ORDER __BYTE_ORDER | |
2605 | ||
2606 | ||
2607 | ||
2608 | #define __LONG_LONG_PAIR(HI,LO) LO, HI | |
2609 | # 9 "/usr/include/endian.h" 2 3 4 | |
2610 | # 66 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 2 3 4 | |
2611 | ||
2612 | union wait | |
2613 | { | |
2614 | int w_status; | |
2615 | struct | |
2616 | { | |
2617 | ||
2618 | unsigned int __w_termsig:7; | |
2619 | unsigned int __w_coredump:1; | |
2620 | unsigned int __w_retcode:8; | |
2621 | unsigned int:16; | |
2622 | ||
2623 | ||
2624 | ||
2625 | ||
2626 | ||
2627 | ||
2628 | ||
2629 | } __wait_terminated; | |
2630 | struct | |
2631 | { | |
2632 | ||
2633 | unsigned int __w_stopval:8; | |
2634 | unsigned int __w_stopsig:8; | |
2635 | unsigned int:16; | |
2636 | ||
2637 | ||
2638 | ||
2639 | ||
2640 | ||
2641 | ||
2642 | } __wait_stopped; | |
2643 | }; | |
2644 | ||
2645 | #define w_termsig __wait_terminated.__w_termsig | |
2646 | #define w_coredump __wait_terminated.__w_coredump | |
2647 | #define w_retcode __wait_terminated.__w_retcode | |
2648 | #define w_stopsig __wait_stopped.__w_stopsig | |
2649 | #define w_stopval __wait_stopped.__w_stopval | |
2650 | # 9 "/usr/include/bits/waitstatus.h" 2 3 4 | |
2651 | # 44 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 | |
2652 | ||
2653 | ||
2654 | ||
2655 | ||
2656 | ||
2657 | ||
2658 | ||
2659 | #define __WAIT_INT(status) (__extension__ ({ union { __typeof(status) __in; int __i; } __u; __u.__in = (status); __u.__i; })) | |
2660 | # 68 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
2661 | typedef union | |
2662 | { | |
2663 | union wait *__uptr; | |
2664 | int *__iptr; | |
2665 | } __WAIT_STATUS __attribute__ ((__transparent_union__)); | |
2666 | #define __WAIT_STATUS_DEFN int * | |
2667 | # 85 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
2668 | #define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status)) | |
2669 | #define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status)) | |
2670 | #define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status)) | |
2671 | #define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status)) | |
2672 | #define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status)) | |
2673 | #define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status)) | |
2674 | ||
2675 | #define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status)) | |
2676 | ||
2677 | ||
2678 | ||
2679 | ||
2680 | ||
2681 | typedef struct | |
2682 | { | |
2683 | int quot; | |
2684 | int rem; | |
2685 | } div_t; | |
2686 | ||
2687 | ||
2688 | ||
2689 | typedef struct | |
2690 | { | |
2691 | long int quot; | |
2692 | long int rem; | |
2693 | } ldiv_t; | |
2694 | #define __ldiv_t_defined 1 | |
2695 | ||
2696 | ||
2697 | ||
2698 | ||
2699 | ||
2700 | ||
2701 | __extension__ typedef struct | |
2702 | { | |
2703 | long long int quot; | |
2704 | long long int rem; | |
2705 | } lldiv_t; | |
2706 | #define __lldiv_t_defined 1 | |
2707 | ||
2708 | ||
2709 | ||
2710 | ||
2711 | ||
2712 | #define RAND_MAX 2147483647 | |
2713 | ||
2714 | ||
2715 | ||
2716 | ||
2717 | #define EXIT_FAILURE 1 | |
2718 | #define EXIT_SUCCESS 0 | |
2719 | ||
2720 | ||
2721 | ||
2722 | #define MB_CUR_MAX (__ctype_get_mb_cur_max ()) | |
2723 | extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ; | |
2724 | ||
2725 | ||
2726 | ||
2727 | ||
2728 | extern double atof (__const char *__nptr) | |
2729 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; | |
2730 | ||
2731 | extern int atoi (__const char *__nptr) | |
2732 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; | |
2733 | ||
2734 | extern long int atol (__const char *__nptr) | |
2735 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; | |
2736 | ||
2737 | ||
2738 | ||
2739 | ||
2740 | ||
2741 | __extension__ extern long long int atoll (__const char *__nptr) | |
2742 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; | |
2743 | ||
2744 | ||
2745 | ||
2746 | ||
2747 | ||
2748 | extern double strtod (__const char *__restrict __nptr, | |
2749 | char **__restrict __endptr) | |
2750 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2751 | ||
2752 | ||
2753 | ||
2754 | ||
2755 | ||
2756 | extern float strtof (__const char *__restrict __nptr, | |
2757 | char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2758 | ||
2759 | extern long double strtold (__const char *__restrict __nptr, | |
2760 | char **__restrict __endptr) | |
2761 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2762 | ||
2763 | ||
2764 | ||
2765 | ||
2766 | ||
2767 | extern long int strtol (__const char *__restrict __nptr, | |
2768 | char **__restrict __endptr, int __base) | |
2769 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2770 | ||
2771 | extern unsigned long int strtoul (__const char *__restrict __nptr, | |
2772 | char **__restrict __endptr, int __base) | |
2773 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2774 | ||
2775 | ||
2776 | ||
2777 | ||
2778 | __extension__ | |
2779 | extern long long int strtoq (__const char *__restrict __nptr, | |
2780 | char **__restrict __endptr, int __base) | |
2781 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2782 | ||
2783 | __extension__ | |
2784 | extern unsigned long long int strtouq (__const char *__restrict __nptr, | |
2785 | char **__restrict __endptr, int __base) | |
2786 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2787 | ||
2788 | ||
2789 | ||
2790 | ||
2791 | ||
2792 | __extension__ | |
2793 | extern long long int strtoll (__const char *__restrict __nptr, | |
2794 | char **__restrict __endptr, int __base) | |
2795 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2796 | ||
2797 | __extension__ | |
2798 | extern unsigned long long int strtoull (__const char *__restrict __nptr, | |
2799 | char **__restrict __endptr, int __base) | |
2800 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2801 | ||
2802 | # 236 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
2803 | # 1 "/usr/include/xlocale.h" 1 3 4 | |
2804 | ||
2805 | ||
2806 | ||
2807 | ||
2808 | ||
2809 | ||
2810 | ||
2811 | # 1 "/usr/include/gentoo-multilib/amd64/xlocale.h" 1 3 4 | |
2812 | # 22 "/usr/include/gentoo-multilib/amd64/xlocale.h" 3 4 | |
2813 | #define _XLOCALE_H 1 | |
2814 | ||
2815 | ||
2816 | ||
2817 | ||
2818 | ||
2819 | typedef struct __locale_struct | |
2820 | { | |
2821 | ||
2822 | struct locale_data *__locales[13]; | |
2823 | ||
2824 | ||
2825 | const unsigned short int *__ctype_b; | |
2826 | const int *__ctype_tolower; | |
2827 | const int *__ctype_toupper; | |
2828 | ||
2829 | ||
2830 | const char *__names[13]; | |
2831 | } *__locale_t; | |
2832 | # 9 "/usr/include/xlocale.h" 2 3 4 | |
2833 | # 237 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 | |
2834 | ||
2835 | ||
2836 | ||
2837 | extern long int strtol_l (__const char *__restrict __nptr, | |
2838 | char **__restrict __endptr, int __base, | |
2839 | __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; | |
2840 | ||
2841 | extern unsigned long int strtoul_l (__const char *__restrict __nptr, | |
2842 | char **__restrict __endptr, | |
2843 | int __base, __locale_t __loc) | |
2844 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; | |
2845 | ||
2846 | __extension__ | |
2847 | extern long long int strtoll_l (__const char *__restrict __nptr, | |
2848 | char **__restrict __endptr, int __base, | |
2849 | __locale_t __loc) | |
2850 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; | |
2851 | ||
2852 | __extension__ | |
2853 | extern unsigned long long int strtoull_l (__const char *__restrict __nptr, | |
2854 | char **__restrict __endptr, | |
2855 | int __base, __locale_t __loc) | |
2856 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; | |
2857 | ||
2858 | extern double strtod_l (__const char *__restrict __nptr, | |
2859 | char **__restrict __endptr, __locale_t __loc) | |
2860 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; | |
2861 | ||
2862 | extern float strtof_l (__const char *__restrict __nptr, | |
2863 | char **__restrict __endptr, __locale_t __loc) | |
2864 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; | |
2865 | ||
2866 | extern long double strtold_l (__const char *__restrict __nptr, | |
2867 | char **__restrict __endptr, | |
2868 | __locale_t __loc) | |
2869 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; | |
2870 | ||
2871 | ||
2872 | ||
2873 | ||
2874 | ||
2875 | ||
2876 | extern double __strtod_internal (__const char *__restrict __nptr, | |
2877 | char **__restrict __endptr, int __group) | |
2878 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2879 | extern float __strtof_internal (__const char *__restrict __nptr, | |
2880 | char **__restrict __endptr, int __group) | |
2881 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2882 | extern long double __strtold_internal (__const char *__restrict __nptr, | |
2883 | char **__restrict __endptr, | |
2884 | int __group) | |
2885 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2886 | ||
2887 | extern long int __strtol_internal (__const char *__restrict __nptr, | |
2888 | char **__restrict __endptr, | |
2889 | int __base, int __group) | |
2890 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2891 | #define __strtol_internal_defined 1 | |
2892 | ||
2893 | ||
2894 | extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, | |
2895 | char **__restrict __endptr, | |
2896 | int __base, int __group) | |
2897 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2898 | #define __strtoul_internal_defined 1 | |
2899 | ||
2900 | ||
2901 | ||
2902 | __extension__ | |
2903 | extern long long int __strtoll_internal (__const char *__restrict __nptr, | |
2904 | char **__restrict __endptr, | |
2905 | int __base, int __group) | |
2906 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2907 | #define __strtoll_internal_defined 1 | |
2908 | ||
2909 | ||
2910 | __extension__ | |
2911 | extern unsigned long long int __strtoull_internal (__const char * | |
2912 | __restrict __nptr, | |
2913 | char **__restrict __endptr, | |
2914 | int __base, int __group) | |
2915 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
2916 | #define __strtoull_internal_defined 1 | |
2917 | ||
2918 | ||
2919 | ||
2920 | ||
2921 | ||
2922 | ||
2923 | ||
2924 | extern __inline double | |
2925 | __attribute__ ((__nothrow__)) strtod (__const char *__restrict __nptr, char **__restrict __endptr) | |
2926 | { | |
2927 | return __strtod_internal (__nptr, __endptr, 0); | |
2928 | } | |
2929 | extern __inline long int | |
2930 | __attribute__ ((__nothrow__)) strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) | |
2931 | ||
2932 | { | |
2933 | return __strtol_internal (__nptr, __endptr, __base, 0); | |
2934 | } | |
2935 | extern __inline unsigned long int | |
2936 | __attribute__ ((__nothrow__)) strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) | |
2937 | ||
2938 | { | |
2939 | return __strtoul_internal (__nptr, __endptr, __base, 0); | |
2940 | } | |
2941 | ||
2942 | ||
2943 | ||
2944 | ||
2945 | extern __inline float | |
2946 | __attribute__ ((__nothrow__)) strtof (__const char *__restrict __nptr, char **__restrict __endptr) | |
2947 | { | |
2948 | return __strtof_internal (__nptr, __endptr, 0); | |
2949 | } | |
2950 | ||
2951 | extern __inline long double | |
2952 | __attribute__ ((__nothrow__)) strtold (__const char *__restrict __nptr, char **__restrict __endptr) | |
2953 | { | |
2954 | return __strtold_internal (__nptr, __endptr, 0); | |
2955 | } | |
2956 | ||
2957 | ||
2958 | ||
2959 | ||
2960 | ||
2961 | __extension__ extern __inline long long int | |
2962 | __attribute__ ((__nothrow__)) strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) | |
2963 | ||
2964 | { | |
2965 | return __strtoll_internal (__nptr, __endptr, __base, 0); | |
2966 | } | |
2967 | __extension__ extern __inline unsigned long long int | |
2968 | __attribute__ ((__nothrow__)) strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) | |
2969 | ||
2970 | { | |
2971 | return __strtoull_internal (__nptr, __endptr, __base, 0); | |
2972 | } | |
2973 | ||
2974 | ||
2975 | ||
2976 | ||
2977 | __extension__ extern __inline long long int | |
2978 | __attribute__ ((__nothrow__)) strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) | |
2979 | ||
2980 | { | |
2981 | return __strtoll_internal (__nptr, __endptr, __base, 0); | |
2982 | } | |
2983 | __extension__ extern __inline unsigned long long int | |
2984 | __attribute__ ((__nothrow__)) strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) | |
2985 | ||
2986 | { | |
2987 | return __strtoull_internal (__nptr, __endptr, __base, 0); | |
2988 | } | |
2989 | ||
2990 | ||
2991 | ||
2992 | ||
2993 | extern __inline double | |
2994 | __attribute__ ((__nothrow__)) atof (__const char *__nptr) | |
2995 | { | |
2996 | return strtod (__nptr, (char **) ((void *)0)); | |
2997 | } | |
2998 | extern __inline int | |
2999 | __attribute__ ((__nothrow__)) atoi (__const char *__nptr) | |
3000 | { | |
3001 | return (int) strtol (__nptr, (char **) ((void *)0), 10); | |
3002 | } | |
3003 | extern __inline long int | |
3004 | __attribute__ ((__nothrow__)) atol (__const char *__nptr) | |
3005 | { | |
3006 | return strtol (__nptr, (char **) ((void *)0), 10); | |
3007 | } | |
3008 | ||
3009 | ||
3010 | ||
3011 | ||
3012 | __extension__ extern __inline long long int | |
3013 | __attribute__ ((__nothrow__)) atoll (__const char *__nptr) | |
3014 | { | |
3015 | return strtoll (__nptr, (char **) ((void *)0), 10); | |
3016 | } | |
3017 | ||
3018 | # 429 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
3019 | extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; | |
3020 | ||
3021 | ||
3022 | extern long int a64l (__const char *__s) | |
3023 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; | |
3024 | ||
3025 | ||
3026 | ||
3027 | ||
3028 | # 1 "/usr/include/sys/types.h" 1 3 4 | |
3029 | ||
3030 | ||
3031 | ||
3032 | ||
3033 | ||
3034 | ||
3035 | ||
3036 | # 1 "/usr/include/gentoo-multilib/amd64/sys/types.h" 1 3 4 | |
3037 | # 25 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4 | |
3038 | #define _SYS_TYPES_H 1 | |
3039 | ||
3040 | # 1 "/usr/include/features.h" 1 3 4 | |
3041 | # 28 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3042 | ||
3043 | ||
3044 | ||
3045 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3046 | # 32 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3047 | ||
3048 | ||
3049 | ||
3050 | typedef __u_char u_char; | |
3051 | typedef __u_short u_short; | |
3052 | typedef __u_int u_int; | |
3053 | typedef __u_long u_long; | |
3054 | typedef __quad_t quad_t; | |
3055 | typedef __u_quad_t u_quad_t; | |
3056 | typedef __fsid_t fsid_t; | |
3057 | #define __u_char_defined | |
3058 | ||
3059 | ||
3060 | ||
3061 | typedef __loff_t loff_t; | |
3062 | ||
3063 | ||
3064 | ||
3065 | typedef __ino_t ino_t; | |
3066 | ||
3067 | ||
3068 | ||
3069 | #define __ino_t_defined | |
3070 | ||
3071 | ||
3072 | typedef __ino64_t ino64_t; | |
3073 | #define __ino64_t_defined | |
3074 | ||
3075 | ||
3076 | ||
3077 | typedef __dev_t dev_t; | |
3078 | #define __dev_t_defined | |
3079 | ||
3080 | ||
3081 | ||
3082 | typedef __gid_t gid_t; | |
3083 | #define __gid_t_defined | |
3084 | ||
3085 | ||
3086 | ||
3087 | typedef __mode_t mode_t; | |
3088 | #define __mode_t_defined | |
3089 | ||
3090 | ||
3091 | ||
3092 | typedef __nlink_t nlink_t; | |
3093 | #define __nlink_t_defined | |
3094 | ||
3095 | ||
3096 | ||
3097 | typedef __uid_t uid_t; | |
3098 | #define __uid_t_defined | |
3099 | ||
3100 | ||
3101 | ||
3102 | ||
3103 | typedef __off_t off_t; | |
3104 | ||
3105 | ||
3106 | ||
3107 | #define __off_t_defined | |
3108 | ||
3109 | ||
3110 | typedef __off64_t off64_t; | |
3111 | #define __off64_t_defined | |
3112 | ||
3113 | ||
3114 | ||
3115 | typedef __pid_t pid_t; | |
3116 | #define __pid_t_defined | |
3117 | ||
3118 | ||
3119 | ||
3120 | typedef __id_t id_t; | |
3121 | #define __id_t_defined | |
3122 | ||
3123 | ||
3124 | ||
3125 | typedef __ssize_t ssize_t; | |
3126 | #define __ssize_t_defined | |
3127 | ||
3128 | ||
3129 | ||
3130 | ||
3131 | typedef __daddr_t daddr_t; | |
3132 | typedef __caddr_t caddr_t; | |
3133 | #define __daddr_t_defined | |
3134 | ||
3135 | ||
3136 | ||
3137 | ||
3138 | typedef __key_t key_t; | |
3139 | #define __key_t_defined | |
3140 | ||
3141 | ||
3142 | ||
3143 | #define __need_clock_t | |
3144 | ||
3145 | #define __need_time_t | |
3146 | #define __need_timer_t | |
3147 | #define __need_clockid_t | |
3148 | # 1 "/usr/include/time.h" 1 3 4 | |
3149 | ||
3150 | ||
3151 | ||
3152 | ||
3153 | ||
3154 | ||
3155 | ||
3156 | # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 | |
3157 | # 55 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
3158 | #define __clock_t_defined 1 | |
3159 | ||
3160 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3161 | # 58 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
3162 | ||
3163 | ||
3164 | ||
3165 | typedef __clock_t clock_t; | |
3166 | ||
3167 | ||
3168 | ||
3169 | ||
3170 | ||
3171 | ||
3172 | #undef __need_clock_t | |
3173 | ||
3174 | ||
3175 | #define __time_t_defined 1 | |
3176 | ||
3177 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3178 | # 74 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
3179 | ||
3180 | ||
3181 | ||
3182 | typedef __time_t time_t; | |
3183 | ||
3184 | ||
3185 | ||
3186 | ||
3187 | ||
3188 | ||
3189 | #undef __need_time_t | |
3190 | ||
3191 | ||
3192 | ||
3193 | #define __clockid_t_defined 1 | |
3194 | ||
3195 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3196 | # 91 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
3197 | ||
3198 | ||
3199 | typedef __clockid_t clockid_t; | |
3200 | ||
3201 | ||
3202 | #undef __clockid_time_t | |
3203 | ||
3204 | ||
3205 | ||
3206 | #define __timer_t_defined 1 | |
3207 | ||
3208 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3209 | # 103 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
3210 | ||
3211 | ||
3212 | typedef __timer_t timer_t; | |
3213 | ||
3214 | ||
3215 | #undef __need_timer_t | |
3216 | # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
3217 | #undef __need_timespec | |
3218 | # 9 "/usr/include/time.h" 2 3 4 | |
3219 | # 134 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3220 | ||
3221 | ||
3222 | ||
3223 | typedef __useconds_t useconds_t; | |
3224 | #define __useconds_t_defined | |
3225 | ||
3226 | ||
3227 | typedef __suseconds_t suseconds_t; | |
3228 | #define __suseconds_t_defined | |
3229 | ||
3230 | ||
3231 | ||
3232 | #define __need_size_t | |
3233 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
3234 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
3235 | #undef __need_size_t | |
3236 | # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
3237 | #undef __need_NULL | |
3238 | # 148 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3239 | ||
3240 | ||
3241 | ||
3242 | typedef unsigned long int ulong; | |
3243 | typedef unsigned short int ushort; | |
3244 | typedef unsigned int uint; | |
3245 | # 188 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4 | |
3246 | #define __intN_t(N,MODE) typedef int int ##N ##_t __attribute__ ((__mode__ (MODE))) | |
3247 | ||
3248 | #define __u_intN_t(N,MODE) typedef unsigned int u_int ##N ##_t __attribute__ ((__mode__ (MODE))) | |
3249 | ||
3250 | ||
3251 | ||
3252 | #define __int8_t_defined | |
3253 | typedef int int8_t __attribute__ ((__mode__ (__QI__))); | |
3254 | typedef int int16_t __attribute__ ((__mode__ (__HI__))); | |
3255 | typedef int int32_t __attribute__ ((__mode__ (__SI__))); | |
3256 | typedef int int64_t __attribute__ ((__mode__ (__DI__))); | |
3257 | ||
3258 | ||
3259 | typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); | |
3260 | typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); | |
3261 | typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); | |
3262 | typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); | |
3263 | ||
3264 | typedef int register_t __attribute__ ((__mode__ (__word__))); | |
3265 | ||
3266 | ||
3267 | ||
3268 | ||
3269 | ||
3270 | #define __BIT_TYPES_DEFINED__ 1 | |
3271 | ||
3272 | ||
3273 | ||
3274 | ||
3275 | # 1 "/usr/include/endian.h" 1 3 4 | |
3276 | # 218 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3277 | ||
3278 | ||
3279 | # 1 "/usr/include/sys/select.h" 1 3 4 | |
3280 | ||
3281 | ||
3282 | ||
3283 | ||
3284 | ||
3285 | ||
3286 | ||
3287 | # 1 "/usr/include/gentoo-multilib/amd64/sys/select.h" 1 3 4 | |
3288 | # 23 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 | |
3289 | #define _SYS_SELECT_H 1 | |
3290 | ||
3291 | # 1 "/usr/include/features.h" 1 3 4 | |
3292 | # 26 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 | |
3293 | ||
3294 | ||
3295 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3296 | # 29 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 | |
3297 | ||
3298 | ||
3299 | # 1 "/usr/include/bits/select.h" 1 3 4 | |
3300 | ||
3301 | ||
3302 | ||
3303 | ||
3304 | ||
3305 | ||
3306 | ||
3307 | # 1 "/usr/include/gentoo-multilib/amd64/bits/select.h" 1 3 4 | |
3308 | # 26 "/usr/include/gentoo-multilib/amd64/bits/select.h" 3 4 | |
3309 | #define __FD_ZERO(s) do { unsigned int __i; fd_set *__arr = (s); for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) __FDS_BITS (__arr)[__i] = 0; } while (0) | |
3310 | ||
3311 | ||
3312 | ||
3313 | ||
3314 | ||
3315 | ||
3316 | #define __FD_SET(d,s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)) | |
3317 | #define __FD_CLR(d,s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)) | |
3318 | #define __FD_ISSET(d,s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0) | |
3319 | # 9 "/usr/include/bits/select.h" 2 3 4 | |
3320 | # 32 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 | |
3321 | ||
3322 | ||
3323 | # 1 "/usr/include/bits/sigset.h" 1 3 4 | |
3324 | ||
3325 | ||
3326 | ||
3327 | ||
3328 | ||
3329 | ||
3330 | ||
3331 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4 | |
3332 | # 21 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 | |
3333 | #define _SIGSET_H_types 1 | |
3334 | ||
3335 | typedef int __sig_atomic_t; | |
3336 | ||
3337 | ||
3338 | ||
3339 | #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) | |
3340 | typedef struct | |
3341 | { | |
3342 | unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; | |
3343 | } __sigset_t; | |
3344 | # 9 "/usr/include/bits/sigset.h" 2 3 4 | |
3345 | # 35 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 | |
3346 | ||
3347 | ||
3348 | #define __sigset_t_defined | |
3349 | typedef __sigset_t sigset_t; | |
3350 | ||
3351 | ||
3352 | ||
3353 | #define __need_time_t | |
3354 | #define __need_timespec | |
3355 | # 1 "/usr/include/time.h" 1 3 4 | |
3356 | ||
3357 | ||
3358 | ||
3359 | ||
3360 | ||
3361 | ||
3362 | ||
3363 | # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 | |
3364 | # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
3365 | #undef __need_clock_t | |
3366 | # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
3367 | #undef __need_time_t | |
3368 | # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
3369 | #undef __clockid_time_t | |
3370 | # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
3371 | #undef __need_timer_t | |
3372 | ||
3373 | ||
3374 | ||
3375 | ||
3376 | ||
3377 | ||
3378 | #define __timespec_defined 1 | |
3379 | ||
3380 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3381 | # 118 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
3382 | ||
3383 | ||
3384 | ||
3385 | struct timespec | |
3386 | { | |
3387 | __time_t tv_sec; | |
3388 | long int tv_nsec; | |
3389 | }; | |
3390 | ||
3391 | ||
3392 | #undef __need_timespec | |
3393 | # 9 "/usr/include/time.h" 2 3 4 | |
3394 | # 45 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 | |
3395 | #define __need_timeval | |
3396 | # 1 "/usr/include/bits/time.h" 1 3 4 | |
3397 | ||
3398 | ||
3399 | ||
3400 | ||
3401 | ||
3402 | ||
3403 | ||
3404 | # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4 | |
3405 | # 62 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 | |
3406 | #undef __need_timeval | |
3407 | ||
3408 | #define _STRUCT_TIMEVAL 1 | |
3409 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
3410 | # 66 "/usr/include/gentoo-multilib/amd64/bits/time.h" 2 3 4 | |
3411 | ||
3412 | ||
3413 | ||
3414 | struct timeval | |
3415 | { | |
3416 | __time_t tv_sec; | |
3417 | __suseconds_t tv_usec; | |
3418 | }; | |
3419 | # 9 "/usr/include/bits/time.h" 2 3 4 | |
3420 | # 47 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4 | |
3421 | # 55 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 | |
3422 | typedef long int __fd_mask; | |
3423 | ||
3424 | ||
3425 | #undef __NFDBITS | |
3426 | #undef __FDELT | |
3427 | #undef __FDMASK | |
3428 | ||
3429 | #define __NFDBITS (8 * sizeof (__fd_mask)) | |
3430 | #define __FDELT(d) ((d) / __NFDBITS) | |
3431 | #define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) | |
3432 | ||
3433 | ||
3434 | typedef struct | |
3435 | { | |
3436 | ||
3437 | ||
3438 | ||
3439 | __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; | |
3440 | #define __FDS_BITS(set) ((set)->fds_bits) | |
3441 | ||
3442 | ||
3443 | ||
3444 | ||
3445 | } fd_set; | |
3446 | ||
3447 | ||
3448 | #define FD_SETSIZE __FD_SETSIZE | |
3449 | ||
3450 | ||
3451 | ||
3452 | typedef __fd_mask fd_mask; | |
3453 | ||
3454 | ||
3455 | #define NFDBITS __NFDBITS | |
3456 | ||
3457 | ||
3458 | ||
3459 | ||
3460 | #define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp) | |
3461 | #define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp) | |
3462 | #define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp) | |
3463 | #define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) | |
3464 | ||
3465 | ||
3466 | ||
3467 | # 109 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 | |
3468 | extern int select (int __nfds, fd_set *__restrict __readfds, | |
3469 | fd_set *__restrict __writefds, | |
3470 | fd_set *__restrict __exceptfds, | |
3471 | struct timeval *__restrict __timeout); | |
3472 | # 121 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4 | |
3473 | extern int pselect (int __nfds, fd_set *__restrict __readfds, | |
3474 | fd_set *__restrict __writefds, | |
3475 | fd_set *__restrict __exceptfds, | |
3476 | const struct timespec *__restrict __timeout, | |
3477 | const __sigset_t *__restrict __sigmask); | |
3478 | ||
3479 | ||
3480 | ||
3481 | # 9 "/usr/include/sys/select.h" 2 3 4 | |
3482 | # 221 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3483 | ||
3484 | ||
3485 | # 1 "/usr/include/sys/sysmacros.h" 1 3 4 | |
3486 | ||
3487 | ||
3488 | ||
3489 | ||
3490 | ||
3491 | ||
3492 | ||
3493 | # 1 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 1 3 4 | |
3494 | # 21 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 3 4 | |
3495 | #define _SYS_SYSMACROS_H 1 | |
3496 | ||
3497 | # 1 "/usr/include/features.h" 1 3 4 | |
3498 | # 24 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 2 3 4 | |
3499 | ||
3500 | ||
3501 | ||
3502 | ||
3503 | ||
3504 | __extension__ | |
3505 | extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) | |
3506 | __attribute__ ((__nothrow__)); | |
3507 | __extension__ | |
3508 | extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) | |
3509 | __attribute__ ((__nothrow__)); | |
3510 | __extension__ | |
3511 | extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, | |
3512 | unsigned int __minor) | |
3513 | __attribute__ ((__nothrow__)); | |
3514 | ||
3515 | ||
3516 | __extension__ extern __inline unsigned int | |
3517 | __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) | |
3518 | { | |
3519 | return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); | |
3520 | } | |
3521 | ||
3522 | __extension__ extern __inline unsigned int | |
3523 | __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) | |
3524 | { | |
3525 | return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); | |
3526 | } | |
3527 | ||
3528 | __extension__ extern __inline unsigned long long int | |
3529 | __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) | |
3530 | { | |
3531 | return ((__minor & 0xff) | ((__major & 0xfff) << 8) | |
3532 | | (((unsigned long long int) (__minor & ~0xff)) << 12) | |
3533 | | (((unsigned long long int) (__major & ~0xfff)) << 32)); | |
3534 | } | |
3535 | ||
3536 | ||
3537 | ||
3538 | ||
3539 | #define major(dev) gnu_dev_major (dev) | |
3540 | #define minor(dev) gnu_dev_minor (dev) | |
3541 | #define makedev(maj,min) gnu_dev_makedev (maj, min) | |
3542 | # 9 "/usr/include/sys/sysmacros.h" 2 3 4 | |
3543 | # 224 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3544 | ||
3545 | ||
3546 | ||
3547 | ||
3548 | typedef __blksize_t blksize_t; | |
3549 | #define __blksize_t_defined | |
3550 | ||
3551 | ||
3552 | ||
3553 | ||
3554 | ||
3555 | typedef __blkcnt_t blkcnt_t; | |
3556 | #define __blkcnt_t_defined | |
3557 | ||
3558 | ||
3559 | typedef __fsblkcnt_t fsblkcnt_t; | |
3560 | #define __fsblkcnt_t_defined | |
3561 | ||
3562 | ||
3563 | typedef __fsfilcnt_t fsfilcnt_t; | |
3564 | #define __fsfilcnt_t_defined | |
3565 | # 262 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4 | |
3566 | typedef __blkcnt64_t blkcnt64_t; | |
3567 | typedef __fsblkcnt64_t fsblkcnt64_t; | |
3568 | typedef __fsfilcnt64_t fsfilcnt64_t; | |
3569 | ||
3570 | ||
3571 | ||
3572 | ||
3573 | ||
3574 | # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 | |
3575 | ||
3576 | ||
3577 | ||
3578 | ||
3579 | ||
3580 | ||
3581 | ||
3582 | # 1 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 1 3 4 | |
3583 | # 21 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 | |
3584 | #define _BITS_PTHREADTYPES_H 1 | |
3585 | ||
3586 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
3587 | ||
3588 | ||
3589 | ||
3590 | ||
3591 | ||
3592 | ||
3593 | ||
3594 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
3595 | ||
3596 | ||
3597 | ||
3598 | #define __WORDSIZE 64 | |
3599 | #define __WORDSIZE_COMPAT32 1 | |
3600 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
3601 | # 24 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 2 3 4 | |
3602 | ||
3603 | ||
3604 | #define __SIZEOF_PTHREAD_ATTR_T 56 | |
3605 | #define __SIZEOF_PTHREAD_MUTEX_T 40 | |
3606 | #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 | |
3607 | #define __SIZEOF_PTHREAD_COND_T 48 | |
3608 | #define __SIZEOF_PTHREAD_CONDATTR_T 4 | |
3609 | #define __SIZEOF_PTHREAD_RWLOCK_T 56 | |
3610 | #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 | |
3611 | #define __SIZEOF_PTHREAD_BARRIER_T 32 | |
3612 | #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 | |
3613 | # 50 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 | |
3614 | typedef unsigned long int pthread_t; | |
3615 | ||
3616 | ||
3617 | typedef union | |
3618 | { | |
3619 | char __size[56]; | |
3620 | long int __align; | |
3621 | } pthread_attr_t; | |
3622 | ||
3623 | ||
3624 | ||
3625 | typedef struct __pthread_internal_list | |
3626 | { | |
3627 | struct __pthread_internal_list *__prev; | |
3628 | struct __pthread_internal_list *__next; | |
3629 | } __pthread_list_t; | |
3630 | # 76 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 | |
3631 | typedef union | |
3632 | { | |
3633 | struct __pthread_mutex_s | |
3634 | { | |
3635 | int __lock; | |
3636 | unsigned int __count; | |
3637 | int __owner; | |
3638 | ||
3639 | unsigned int __nusers; | |
3640 | ||
3641 | ||
3642 | ||
3643 | int __kind; | |
3644 | ||
3645 | int __spins; | |
3646 | __pthread_list_t __list; | |
3647 | #define __PTHREAD_MUTEX_HAVE_PREV 1 | |
3648 | # 101 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 | |
3649 | } __data; | |
3650 | char __size[40]; | |
3651 | long int __align; | |
3652 | } pthread_mutex_t; | |
3653 | ||
3654 | typedef union | |
3655 | { | |
3656 | char __size[4]; | |
3657 | int __align; | |
3658 | } pthread_mutexattr_t; | |
3659 | ||
3660 | ||
3661 | ||
3662 | ||
3663 | typedef union | |
3664 | { | |
3665 | struct | |
3666 | { | |
3667 | int __lock; | |
3668 | unsigned int __futex; | |
3669 | __extension__ unsigned long long int __total_seq; | |
3670 | __extension__ unsigned long long int __wakeup_seq; | |
3671 | __extension__ unsigned long long int __woken_seq; | |
3672 | void *__mutex; | |
3673 | unsigned int __nwaiters; | |
3674 | unsigned int __broadcast_seq; | |
3675 | } __data; | |
3676 | char __size[48]; | |
3677 | __extension__ long long int __align; | |
3678 | } pthread_cond_t; | |
3679 | ||
3680 | typedef union | |
3681 | { | |
3682 | char __size[4]; | |
3683 | int __align; | |
3684 | } pthread_condattr_t; | |
3685 | ||
3686 | ||
3687 | ||
3688 | typedef unsigned int pthread_key_t; | |
3689 | ||
3690 | ||
3691 | ||
3692 | typedef int pthread_once_t; | |
3693 | ||
3694 | ||
3695 | ||
3696 | ||
3697 | ||
3698 | typedef union | |
3699 | { | |
3700 | ||
3701 | struct | |
3702 | { | |
3703 | int __lock; | |
3704 | unsigned int __nr_readers; | |
3705 | unsigned int __readers_wakeup; | |
3706 | unsigned int __writer_wakeup; | |
3707 | unsigned int __nr_readers_queued; | |
3708 | unsigned int __nr_writers_queued; | |
3709 | int __writer; | |
3710 | int __pad1; | |
3711 | unsigned long int __pad2; | |
3712 | unsigned long int __pad3; | |
3713 | ||
3714 | ||
3715 | unsigned int __flags; | |
3716 | } __data; | |
3717 | # 184 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4 | |
3718 | char __size[56]; | |
3719 | long int __align; | |
3720 | } pthread_rwlock_t; | |
3721 | ||
3722 | typedef union | |
3723 | { | |
3724 | char __size[8]; | |
3725 | long int __align; | |
3726 | } pthread_rwlockattr_t; | |
3727 | ||
3728 | ||
3729 | ||
3730 | ||
3731 | ||
3732 | typedef volatile int pthread_spinlock_t; | |
3733 | ||
3734 | ||
3735 | ||
3736 | ||
3737 | typedef union | |
3738 | { | |
3739 | char __size[32]; | |
3740 | long int __align; | |
3741 | } pthread_barrier_t; | |
3742 | ||
3743 | typedef union | |
3744 | { | |
3745 | char __size[4]; | |
3746 | int __align; | |
3747 | } pthread_barrierattr_t; | |
3748 | # 9 "/usr/include/bits/pthreadtypes.h" 2 3 4 | |
3749 | # 271 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4 | |
3750 | ||
3751 | ||
3752 | ||
3753 | # 9 "/usr/include/sys/types.h" 2 3 4 | |
3754 | # 439 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 | |
3755 | ||
3756 | ||
3757 | ||
3758 | ||
3759 | ||
3760 | ||
3761 | extern long int random (void) __attribute__ ((__nothrow__)); | |
3762 | ||
3763 | ||
3764 | extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); | |
3765 | ||
3766 | ||
3767 | ||
3768 | ||
3769 | ||
3770 | extern char *initstate (unsigned int __seed, char *__statebuf, | |
3771 | size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
3772 | ||
3773 | ||
3774 | ||
3775 | extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3776 | ||
3777 | ||
3778 | ||
3779 | ||
3780 | ||
3781 | ||
3782 | ||
3783 | struct random_data | |
3784 | { | |
3785 | int32_t *fptr; | |
3786 | int32_t *rptr; | |
3787 | int32_t *state; | |
3788 | int rand_type; | |
3789 | int rand_deg; | |
3790 | int rand_sep; | |
3791 | int32_t *end_ptr; | |
3792 | }; | |
3793 | ||
3794 | extern int random_r (struct random_data *__restrict __buf, | |
3795 | int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3796 | ||
3797 | extern int srandom_r (unsigned int __seed, struct random_data *__buf) | |
3798 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
3799 | ||
3800 | extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, | |
3801 | size_t __statelen, | |
3802 | struct random_data *__restrict __buf) | |
3803 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); | |
3804 | ||
3805 | extern int setstate_r (char *__restrict __statebuf, | |
3806 | struct random_data *__restrict __buf) | |
3807 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3808 | ||
3809 | ||
3810 | ||
3811 | ||
3812 | ||
3813 | ||
3814 | extern int rand (void) __attribute__ ((__nothrow__)); | |
3815 | ||
3816 | extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); | |
3817 | ||
3818 | ||
3819 | ||
3820 | ||
3821 | extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); | |
3822 | ||
3823 | ||
3824 | ||
3825 | ||
3826 | ||
3827 | ||
3828 | ||
3829 | extern double drand48 (void) __attribute__ ((__nothrow__)); | |
3830 | extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3831 | ||
3832 | ||
3833 | extern long int lrand48 (void) __attribute__ ((__nothrow__)); | |
3834 | extern long int nrand48 (unsigned short int __xsubi[3]) | |
3835 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3836 | ||
3837 | ||
3838 | extern long int mrand48 (void) __attribute__ ((__nothrow__)); | |
3839 | extern long int jrand48 (unsigned short int __xsubi[3]) | |
3840 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3841 | ||
3842 | ||
3843 | extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); | |
3844 | extern unsigned short int *seed48 (unsigned short int __seed16v[3]) | |
3845 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3846 | extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3847 | ||
3848 | ||
3849 | ||
3850 | ||
3851 | ||
3852 | struct drand48_data | |
3853 | { | |
3854 | unsigned short int __x[3]; | |
3855 | unsigned short int __old_x[3]; | |
3856 | unsigned short int __c; | |
3857 | unsigned short int __init; | |
3858 | unsigned long long int __a; | |
3859 | }; | |
3860 | ||
3861 | ||
3862 | extern int drand48_r (struct drand48_data *__restrict __buffer, | |
3863 | double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3864 | extern int erand48_r (unsigned short int __xsubi[3], | |
3865 | struct drand48_data *__restrict __buffer, | |
3866 | double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3867 | ||
3868 | ||
3869 | extern int lrand48_r (struct drand48_data *__restrict __buffer, | |
3870 | long int *__restrict __result) | |
3871 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3872 | extern int nrand48_r (unsigned short int __xsubi[3], | |
3873 | struct drand48_data *__restrict __buffer, | |
3874 | long int *__restrict __result) | |
3875 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3876 | ||
3877 | ||
3878 | extern int mrand48_r (struct drand48_data *__restrict __buffer, | |
3879 | long int *__restrict __result) | |
3880 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3881 | extern int jrand48_r (unsigned short int __xsubi[3], | |
3882 | struct drand48_data *__restrict __buffer, | |
3883 | long int *__restrict __result) | |
3884 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3885 | ||
3886 | ||
3887 | extern int srand48_r (long int __seedval, struct drand48_data *__buffer) | |
3888 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
3889 | ||
3890 | extern int seed48_r (unsigned short int __seed16v[3], | |
3891 | struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3892 | ||
3893 | extern int lcong48_r (unsigned short int __param[7], | |
3894 | struct drand48_data *__buffer) | |
3895 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
3896 | ||
3897 | ||
3898 | ||
3899 | ||
3900 | ||
3901 | ||
3902 | #define __malloc_and_calloc_defined | |
3903 | ||
3904 | ||
3905 | extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; | |
3906 | ||
3907 | extern void *calloc (size_t __nmemb, size_t __size) | |
3908 | __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; | |
3909 | ||
3910 | ||
3911 | ||
3912 | ||
3913 | ||
3914 | ||
3915 | ||
3916 | extern void *realloc (void *__ptr, size_t __size) | |
3917 | __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); | |
3918 | ||
3919 | extern void free (void *__ptr) __attribute__ ((__nothrow__)); | |
3920 | ||
3921 | ||
3922 | ||
3923 | ||
3924 | extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); | |
3925 | ||
3926 | ||
3927 | ||
3928 | # 1 "/usr/include/alloca.h" 1 3 4 | |
3929 | ||
3930 | ||
3931 | ||
3932 | ||
3933 | ||
3934 | ||
3935 | ||
3936 | # 1 "/usr/include/gentoo-multilib/amd64/alloca.h" 1 3 4 | |
3937 | # 20 "/usr/include/gentoo-multilib/amd64/alloca.h" 3 4 | |
3938 | #define _ALLOCA_H 1 | |
3939 | ||
3940 | # 1 "/usr/include/features.h" 1 3 4 | |
3941 | # 23 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4 | |
3942 | ||
3943 | #define __need_size_t | |
3944 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
3945 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
3946 | #undef __need_size_t | |
3947 | # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
3948 | #undef __need_NULL | |
3949 | # 26 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4 | |
3950 | ||
3951 | ||
3952 | ||
3953 | ||
3954 | #undef alloca | |
3955 | ||
3956 | ||
3957 | extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); | |
3958 | ||
3959 | ||
3960 | #define alloca(size) __builtin_alloca (size) | |
3961 | ||
3962 | ||
3963 | ||
3964 | # 9 "/usr/include/alloca.h" 2 3 4 | |
3965 | # 613 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4 | |
3966 | ||
3967 | ||
3968 | ||
3969 | ||
3970 | extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; | |
3971 | ||
3972 | ||
3973 | ||
3974 | ||
3975 | extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) | |
3976 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
3977 | ||
3978 | ||
3979 | ||
3980 | ||
3981 | extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); | |
3982 | ||
3983 | ||
3984 | ||
3985 | extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3986 | ||
3987 | ||
3988 | ||
3989 | ||
3990 | ||
3991 | extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) | |
3992 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
3993 | ||
3994 | ||
3995 | ||
3996 | ||
3997 | ||
3998 | ||
3999 | extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); | |
4000 | ||
4001 | ||
4002 | ||
4003 | ||
4004 | ||
4005 | ||
4006 | extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); | |
4007 | ||
4008 | ||
4009 | ||
4010 | ||
4011 | ||
4012 | ||
4013 | extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
4014 | ||
4015 | ||
4016 | ||
4017 | ||
4018 | extern char *__secure_getenv (__const char *__name) | |
4019 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
4020 | ||
4021 | ||
4022 | ||
4023 | ||
4024 | ||
4025 | extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4026 | ||
4027 | ||
4028 | ||
4029 | ||
4030 | ||
4031 | extern int setenv (__const char *__name, __const char *__value, int __replace) | |
4032 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
4033 | ||
4034 | ||
4035 | extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); | |
4036 | ||
4037 | ||
4038 | ||
4039 | ||
4040 | ||
4041 | ||
4042 | extern int clearenv (void) __attribute__ ((__nothrow__)); | |
4043 | # 698 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4044 | extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
4045 | # 709 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4046 | extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; | |
4047 | # 719 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4048 | extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; | |
4049 | # 729 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4050 | extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
4051 | ||
4052 | ||
4053 | ||
4054 | ||
4055 | ||
4056 | ||
4057 | ||
4058 | ||
4059 | extern int system (__const char *__command) ; | |
4060 | ||
4061 | ||
4062 | ||
4063 | ||
4064 | ||
4065 | ||
4066 | ||
4067 | extern char *canonicalize_file_name (__const char *__name) | |
4068 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
4069 | # 757 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4070 | extern char *realpath (__const char *__restrict __name, | |
4071 | char *__restrict __resolved) __attribute__ ((__nothrow__)) ; | |
4072 | ||
4073 | ||
4074 | ||
4075 | ||
4076 | ||
4077 | #define __COMPAR_FN_T | |
4078 | typedef int (*__compar_fn_t) (__const void *, __const void *); | |
4079 | ||
4080 | ||
4081 | typedef __compar_fn_t comparison_fn_t; | |
4082 | ||
4083 | ||
4084 | ||
4085 | ||
4086 | ||
4087 | ||
4088 | extern void *bsearch (__const void *__key, __const void *__base, | |
4089 | size_t __nmemb, size_t __size, __compar_fn_t __compar) | |
4090 | __attribute__ ((__nonnull__ (1, 2, 5))) ; | |
4091 | ||
4092 | ||
4093 | ||
4094 | extern void qsort (void *__base, size_t __nmemb, size_t __size, | |
4095 | __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); | |
4096 | ||
4097 | ||
4098 | ||
4099 | extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; | |
4100 | extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; | |
4101 | ||
4102 | ||
4103 | ||
4104 | __extension__ extern long long int llabs (long long int __x) | |
4105 | __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; | |
4106 | ||
4107 | ||
4108 | ||
4109 | ||
4110 | ||
4111 | ||
4112 | ||
4113 | extern div_t div (int __numer, int __denom) | |
4114 | __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; | |
4115 | extern ldiv_t ldiv (long int __numer, long int __denom) | |
4116 | __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; | |
4117 | ||
4118 | ||
4119 | ||
4120 | ||
4121 | __extension__ extern lldiv_t lldiv (long long int __numer, | |
4122 | long long int __denom) | |
4123 | __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; | |
4124 | ||
4125 | # 822 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4126 | extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, | |
4127 | int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; | |
4128 | ||
4129 | ||
4130 | ||
4131 | ||
4132 | extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, | |
4133 | int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; | |
4134 | ||
4135 | ||
4136 | ||
4137 | ||
4138 | extern char *gcvt (double __value, int __ndigit, char *__buf) | |
4139 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; | |
4140 | ||
4141 | ||
4142 | ||
4143 | ||
4144 | extern char *qecvt (long double __value, int __ndigit, | |
4145 | int *__restrict __decpt, int *__restrict __sign) | |
4146 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; | |
4147 | extern char *qfcvt (long double __value, int __ndigit, | |
4148 | int *__restrict __decpt, int *__restrict __sign) | |
4149 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; | |
4150 | extern char *qgcvt (long double __value, int __ndigit, char *__buf) | |
4151 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; | |
4152 | ||
4153 | ||
4154 | ||
4155 | ||
4156 | extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, | |
4157 | int *__restrict __sign, char *__restrict __buf, | |
4158 | size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); | |
4159 | extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, | |
4160 | int *__restrict __sign, char *__restrict __buf, | |
4161 | size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); | |
4162 | ||
4163 | extern int qecvt_r (long double __value, int __ndigit, | |
4164 | int *__restrict __decpt, int *__restrict __sign, | |
4165 | char *__restrict __buf, size_t __len) | |
4166 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); | |
4167 | extern int qfcvt_r (long double __value, int __ndigit, | |
4168 | int *__restrict __decpt, int *__restrict __sign, | |
4169 | char *__restrict __buf, size_t __len) | |
4170 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); | |
4171 | ||
4172 | ||
4173 | ||
4174 | ||
4175 | ||
4176 | ||
4177 | ||
4178 | extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ; | |
4179 | ||
4180 | ||
4181 | extern int mbtowc (wchar_t *__restrict __pwc, | |
4182 | __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ; | |
4183 | ||
4184 | ||
4185 | extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ; | |
4186 | ||
4187 | ||
4188 | ||
4189 | extern size_t mbstowcs (wchar_t *__restrict __pwcs, | |
4190 | __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); | |
4191 | ||
4192 | extern size_t wcstombs (char *__restrict __s, | |
4193 | __const wchar_t *__restrict __pwcs, size_t __n) | |
4194 | __attribute__ ((__nothrow__)); | |
4195 | ||
4196 | ||
4197 | ||
4198 | ||
4199 | ||
4200 | ||
4201 | ||
4202 | ||
4203 | extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; | |
4204 | # 910 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4205 | extern int getsubopt (char **__restrict __optionp, | |
4206 | char *__const *__restrict __tokens, | |
4207 | char **__restrict __valuep) | |
4208 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; | |
4209 | ||
4210 | ||
4211 | ||
4212 | ||
4213 | ||
4214 | extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4215 | ||
4216 | ||
4217 | ||
4218 | ||
4219 | ||
4220 | ||
4221 | ||
4222 | extern int posix_openpt (int __oflag) ; | |
4223 | ||
4224 | ||
4225 | ||
4226 | ||
4227 | ||
4228 | ||
4229 | ||
4230 | extern int grantpt (int __fd) __attribute__ ((__nothrow__)); | |
4231 | ||
4232 | ||
4233 | ||
4234 | extern int unlockpt (int __fd) __attribute__ ((__nothrow__)); | |
4235 | ||
4236 | ||
4237 | ||
4238 | ||
4239 | extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ; | |
4240 | ||
4241 | ||
4242 | ||
4243 | ||
4244 | ||
4245 | ||
4246 | extern int ptsname_r (int __fd, char *__buf, size_t __buflen) | |
4247 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
4248 | ||
4249 | ||
4250 | extern int getpt (void); | |
4251 | ||
4252 | ||
4253 | ||
4254 | ||
4255 | ||
4256 | ||
4257 | extern int getloadavg (double __loadavg[], int __nelem) | |
4258 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4259 | # 976 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4 | |
4260 | #undef __need_malloc_and_calloc | |
4261 | ||
4262 | ||
4263 | # 9 "/usr/include/stdlib.h" 2 3 4 | |
4264 | # 25 "video_out_dfb.c" 2 | |
4265 | # 1 "/usr/include/string.h" 1 3 4 | |
4266 | ||
4267 | ||
4268 | ||
4269 | ||
4270 | ||
4271 | ||
4272 | ||
4273 | # 1 "/usr/include/gentoo-multilib/amd64/string.h" 1 3 4 | |
4274 | # 24 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 | |
4275 | #define _STRING_H 1 | |
4276 | ||
4277 | # 1 "/usr/include/features.h" 1 3 4 | |
4278 | # 27 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 | |
4279 | ||
4280 | ||
4281 | ||
4282 | ||
4283 | #define __need_size_t | |
4284 | #define __need_NULL | |
4285 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
4286 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
4287 | #undef __need_size_t | |
4288 | # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
4289 | #undef NULL | |
4290 | ||
4291 | ||
4292 | ||
4293 | ||
4294 | #define NULL ((void *)0) | |
4295 | ||
4296 | ||
4297 | ||
4298 | ||
4299 | ||
4300 | #undef __need_NULL | |
4301 | # 34 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 | |
4302 | ||
4303 | ||
4304 | ||
4305 | ||
4306 | extern void *memcpy (void *__restrict __dest, | |
4307 | __const void *__restrict __src, size_t __n) | |
4308 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4309 | ||
4310 | ||
4311 | extern void *memmove (void *__dest, __const void *__src, size_t __n) | |
4312 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4313 | ||
4314 | ||
4315 | ||
4316 | ||
4317 | ||
4318 | ||
4319 | extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, | |
4320 | int __c, size_t __n) | |
4321 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4322 | ||
4323 | ||
4324 | ||
4325 | ||
4326 | ||
4327 | extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4328 | ||
4329 | ||
4330 | extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) | |
4331 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4332 | ||
4333 | ||
4334 | extern void *memchr (__const void *__s, int __c, size_t __n) | |
4335 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4336 | ||
4337 | ||
4338 | ||
4339 | ||
4340 | ||
4341 | extern void *rawmemchr (__const void *__s, int __c) | |
4342 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4343 | ||
4344 | ||
4345 | extern void *memrchr (__const void *__s, int __c, size_t __n) | |
4346 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4347 | ||
4348 | ||
4349 | ||
4350 | ||
4351 | ||
4352 | extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) | |
4353 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4354 | ||
4355 | extern char *strncpy (char *__restrict __dest, | |
4356 | __const char *__restrict __src, size_t __n) | |
4357 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4358 | ||
4359 | ||
4360 | extern char *strcat (char *__restrict __dest, __const char *__restrict __src) | |
4361 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4362 | ||
4363 | extern char *strncat (char *__restrict __dest, __const char *__restrict __src, | |
4364 | size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4365 | ||
4366 | ||
4367 | extern int strcmp (__const char *__s1, __const char *__s2) | |
4368 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4369 | ||
4370 | extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) | |
4371 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4372 | ||
4373 | ||
4374 | extern int strcoll (__const char *__s1, __const char *__s2) | |
4375 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4376 | ||
4377 | extern size_t strxfrm (char *__restrict __dest, | |
4378 | __const char *__restrict __src, size_t __n) | |
4379 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
4380 | ||
4381 | ||
4382 | ||
4383 | ||
4384 | ||
4385 | ||
4386 | # 1 "/usr/include/xlocale.h" 1 3 4 | |
4387 | # 119 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 | |
4388 | ||
4389 | ||
4390 | extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) | |
4391 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); | |
4392 | ||
4393 | extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, | |
4394 | __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); | |
4395 | ||
4396 | ||
4397 | ||
4398 | ||
4399 | extern char *strdup (__const char *__s) | |
4400 | __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); | |
4401 | ||
4402 | ||
4403 | ||
4404 | ||
4405 | ||
4406 | ||
4407 | extern char *strndup (__const char *__string, size_t __n) | |
4408 | __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); | |
4409 | ||
4410 | ||
4411 | ||
4412 | ||
4413 | #define strdupa(s) (__extension__ ({ __const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); })) | |
4414 | # 154 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 | |
4415 | #define strndupa(s,n) (__extension__ ({ __const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); })) | |
4416 | # 165 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 | |
4417 | ||
4418 | ||
4419 | extern char *strchr (__const char *__s, int __c) | |
4420 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4421 | ||
4422 | extern char *strrchr (__const char *__s, int __c) | |
4423 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4424 | ||
4425 | ||
4426 | ||
4427 | ||
4428 | ||
4429 | extern char *strchrnul (__const char *__s, int __c) | |
4430 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4431 | ||
4432 | ||
4433 | ||
4434 | ||
4435 | ||
4436 | extern size_t strcspn (__const char *__s, __const char *__reject) | |
4437 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4438 | ||
4439 | ||
4440 | extern size_t strspn (__const char *__s, __const char *__accept) | |
4441 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4442 | ||
4443 | extern char *strpbrk (__const char *__s, __const char *__accept) | |
4444 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4445 | ||
4446 | extern char *strstr (__const char *__haystack, __const char *__needle) | |
4447 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4448 | ||
4449 | ||
4450 | ||
4451 | extern char *strtok (char *__restrict __s, __const char *__restrict __delim) | |
4452 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
4453 | ||
4454 | ||
4455 | ||
4456 | ||
4457 | extern char *__strtok_r (char *__restrict __s, | |
4458 | __const char *__restrict __delim, | |
4459 | char **__restrict __save_ptr) | |
4460 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); | |
4461 | ||
4462 | extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, | |
4463 | char **__restrict __save_ptr) | |
4464 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); | |
4465 | ||
4466 | ||
4467 | ||
4468 | ||
4469 | extern char *strcasestr (__const char *__haystack, __const char *__needle) | |
4470 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4471 | ||
4472 | ||
4473 | ||
4474 | ||
4475 | ||
4476 | ||
4477 | extern void *memmem (__const void *__haystack, size_t __haystacklen, | |
4478 | __const void *__needle, size_t __needlelen) | |
4479 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); | |
4480 | ||
4481 | ||
4482 | ||
4483 | extern void *__mempcpy (void *__restrict __dest, | |
4484 | __const void *__restrict __src, size_t __n) | |
4485 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4486 | extern void *mempcpy (void *__restrict __dest, | |
4487 | __const void *__restrict __src, size_t __n) | |
4488 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4489 | ||
4490 | ||
4491 | ||
4492 | ||
4493 | ||
4494 | extern size_t strlen (__const char *__s) | |
4495 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4496 | ||
4497 | ||
4498 | ||
4499 | ||
4500 | ||
4501 | extern size_t strnlen (__const char *__string, size_t __maxlen) | |
4502 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4503 | ||
4504 | ||
4505 | ||
4506 | ||
4507 | ||
4508 | extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); | |
4509 | ||
4510 | # 281 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 | |
4511 | extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) | |
4512 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
4513 | ||
4514 | ||
4515 | ||
4516 | ||
4517 | ||
4518 | extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4519 | ||
4520 | ||
4521 | ||
4522 | extern void bcopy (__const void *__src, void *__dest, size_t __n) | |
4523 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4524 | ||
4525 | ||
4526 | extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4527 | ||
4528 | ||
4529 | extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) | |
4530 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4531 | ||
4532 | ||
4533 | extern char *index (__const char *__s, int __c) | |
4534 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4535 | ||
4536 | ||
4537 | extern char *rindex (__const char *__s, int __c) | |
4538 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); | |
4539 | ||
4540 | ||
4541 | ||
4542 | extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
4543 | ||
4544 | ||
4545 | ||
4546 | ||
4547 | extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
4548 | ||
4549 | __extension__ extern int ffsll (long long int __ll) | |
4550 | __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
4551 | ||
4552 | ||
4553 | ||
4554 | ||
4555 | extern int strcasecmp (__const char *__s1, __const char *__s2) | |
4556 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4557 | ||
4558 | ||
4559 | extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) | |
4560 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4561 | ||
4562 | ||
4563 | ||
4564 | ||
4565 | ||
4566 | extern int strcasecmp_l (__const char *__s1, __const char *__s2, | |
4567 | __locale_t __loc) | |
4568 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); | |
4569 | ||
4570 | extern int strncasecmp_l (__const char *__s1, __const char *__s2, | |
4571 | size_t __n, __locale_t __loc) | |
4572 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); | |
4573 | ||
4574 | ||
4575 | ||
4576 | ||
4577 | ||
4578 | extern char *strsep (char **__restrict __stringp, | |
4579 | __const char *__restrict __delim) | |
4580 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4581 | ||
4582 | ||
4583 | ||
4584 | ||
4585 | extern int strverscmp (__const char *__s1, __const char *__s2) | |
4586 | __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); | |
4587 | ||
4588 | ||
4589 | extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); | |
4590 | ||
4591 | ||
4592 | extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) | |
4593 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4594 | extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) | |
4595 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4596 | ||
4597 | ||
4598 | ||
4599 | extern char *__stpncpy (char *__restrict __dest, | |
4600 | __const char *__restrict __src, size_t __n) | |
4601 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4602 | extern char *stpncpy (char *__restrict __dest, | |
4603 | __const char *__restrict __src, size_t __n) | |
4604 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
4605 | ||
4606 | ||
4607 | extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4608 | ||
4609 | ||
4610 | extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4611 | ||
4612 | ||
4613 | ||
4614 | ||
4615 | ||
4616 | ||
4617 | extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
4618 | # 414 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 | |
4619 | # 1 "/usr/include/bits/string.h" 1 3 4 | |
4620 | ||
4621 | ||
4622 | ||
4623 | ||
4624 | ||
4625 | ||
4626 | ||
4627 | # 1 "/usr/include/gentoo-multilib/amd64/bits/string.h" 1 3 4 | |
4628 | # 26 "/usr/include/gentoo-multilib/amd64/bits/string.h" 3 4 | |
4629 | #define _STRING_ARCH_unaligned 1 | |
4630 | # 9 "/usr/include/bits/string.h" 2 3 4 | |
4631 | # 415 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 | |
4632 | ||
4633 | ||
4634 | # 1 "/usr/include/bits/string2.h" 1 3 4 | |
4635 | ||
4636 | ||
4637 | ||
4638 | ||
4639 | ||
4640 | ||
4641 | ||
4642 | # 1 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 1 3 4 | |
4643 | # 46 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4644 | #define __STRING_INLINE extern __inline | |
4645 | ||
4646 | ||
4647 | ||
4648 | ||
4649 | ||
4650 | # 1 "/usr/include/endian.h" 1 3 4 | |
4651 | # 53 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 2 3 4 | |
4652 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
4653 | # 54 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 2 3 4 | |
4654 | ||
4655 | ||
4656 | #define __STRING2_SMALL_GET16(src,idx) (((__const unsigned char *) (__const char *) (src))[idx + 1] << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) | |
4657 | ||
4658 | ||
4659 | #define __STRING2_SMALL_GET32(src,idx) (((((__const unsigned char *) (__const char *) (src))[idx + 3] << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 2]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 1]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) | |
4660 | # 93 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4661 | #define __string2_1bptr_p(__x) ((size_t)(const void *)((__x) + 1) - (size_t)(const void *)(__x) == 1) | |
4662 | # 195 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4663 | #define __bzero(s,n) __builtin_memset (s, '\0', n) | |
4664 | # 207 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4665 | #define __mempcpy(dest,src,n) __builtin_mempcpy (dest, src, n) | |
4666 | # 223 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4667 | #define mempcpy(dest,src,n) __mempcpy (dest, src, n) | |
4668 | # 394 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4669 | extern void *__rawmemchr (const void *__s, int __c); | |
4670 | ||
4671 | #define strchr(s,c) (__extension__ (__builtin_constant_p (c) && !__builtin_constant_p (s) && (c) == '\0' ? (char *) __rawmemchr (s, c) : __builtin_strchr (s, c))) | |
4672 | # 577 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4673 | #define __stpcpy(dest,src) __builtin_stpcpy (dest, src) | |
4674 | # 598 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4675 | #define stpcpy(dest,src) __stpcpy (dest, src) | |
4676 | # 761 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4677 | #define strncpy(dest,src,n) __builtin_strncpy (dest, src, n) | |
4678 | # 785 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4679 | #define strncat(dest,src,n) __builtin_strncat (dest, src, n) | |
4680 | # 800 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4681 | #define strcmp(s1,s2) __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (s1) && __builtin_constant_p (s2) && (__s1_len = strlen (s1), __s2_len = strlen (s2), (!__string2_1bptr_p (s1) || __s1_len >= 4) && (!__string2_1bptr_p (s2) || __s2_len >= 4)) ? __builtin_strcmp (s1, s2) : (__builtin_constant_p (s1) && __string2_1bptr_p (s1) && (__s1_len = strlen (s1), __s1_len < 4) ? (__builtin_constant_p (s2) && __string2_1bptr_p (s2) ? __builtin_strcmp (s1, s2) : __strcmp_cg (s1, s2, __s1_len)) : (__builtin_constant_p (s2) && __string2_1bptr_p (s2) && (__s2_len = strlen (s2), __s2_len < 4) ? (__builtin_constant_p (s1) && __string2_1bptr_p (s1) ? __builtin_strcmp (s1, s2) : __strcmp_gc (s1, s2, __s2_len)) : __builtin_strcmp (s1, s2)))); }) | |
4682 | # 842 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4683 | #define __strcmp_cc(s1,s2,l) (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (s1))[0] - ((__const unsigned char *) (__const char *)(s2))[0]); if (l > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[1] - ((__const unsigned char *) (__const char *) (s2))[1]); if (l > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[2] - ((__const unsigned char *) (__const char *) (s2))[2]); if (l > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (s1))[3] - ((__const unsigned char *) (__const char *) (s2))[3]); } } __result; })) | |
4684 | # 869 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4685 | #define __strcmp_cg(s1,s2,l1) (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (s2); register int __result = (((__const unsigned char *) (__const char *) (s1))[0] - __s2[0]); if (l1 > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[1] - __s2[1]); if (l1 > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[2] - __s2[2]); if (l1 > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (s1))[3] - __s2[3]); } } __result; })) | |
4686 | # 891 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4687 | #define __strcmp_gc(s1,s2,l2) (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (s1); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (s2))[0]; if (l2 > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (s2))[1]); if (l2 > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (s2))[2]); if (l2 > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (s2))[3]); } } __result; })) | |
4688 | # 920 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4689 | #define strncmp(s1,s2,n) (__extension__ (__builtin_constant_p (n) && ((__builtin_constant_p (s1) && strlen (s1) < ((size_t) (n))) || (__builtin_constant_p (s2) && strlen (s2) < ((size_t) (n)))) ? strcmp (s1, s2) : strncmp (s1, s2, n))) | |
4690 | # 935 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4691 | #define strcspn(s,reject) __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (reject) && __string2_1bptr_p (reject) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strcspn (s, reject) : ((__r0 = ((__const char *) (reject))[0], __r0 == '\0') ? strlen (s) : ((__r1 = ((__const char *) (reject))[1], __r1 == '\0') ? __strcspn_c1 (s, __r0) : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0') ? __strcspn_c2 (s, __r0, __r1) : (((__const char *) (reject))[3] == '\0' ? __strcspn_c3 (s, __r0, __r1, __r2) : __builtin_strcspn (s, reject)))))) : __builtin_strcspn (s, reject)); }) | |
4692 | # 969 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4693 | extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); | |
4694 | extern __inline size_t | |
4695 | __strcspn_c1 (__const char *__s, int __reject) | |
4696 | { | |
4697 | register size_t __result = 0; | |
4698 | while (__s[__result] != '\0' && __s[__result] != __reject) | |
4699 | ++__result; | |
4700 | return __result; | |
4701 | } | |
4702 | ||
4703 | extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, | |
4704 | int __reject2); | |
4705 | extern __inline size_t | |
4706 | __strcspn_c2 (__const char *__s, int __reject1, int __reject2) | |
4707 | { | |
4708 | register size_t __result = 0; | |
4709 | while (__s[__result] != '\0' && __s[__result] != __reject1 | |
4710 | && __s[__result] != __reject2) | |
4711 | ++__result; | |
4712 | return __result; | |
4713 | } | |
4714 | ||
4715 | extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, | |
4716 | int __reject2, int __reject3); | |
4717 | extern __inline size_t | |
4718 | __strcspn_c3 (__const char *__s, int __reject1, int __reject2, | |
4719 | int __reject3) | |
4720 | { | |
4721 | register size_t __result = 0; | |
4722 | while (__s[__result] != '\0' && __s[__result] != __reject1 | |
4723 | && __s[__result] != __reject2 && __s[__result] != __reject3) | |
4724 | ++__result; | |
4725 | return __result; | |
4726 | } | |
4727 | # 1011 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4728 | #define strspn(s,accept) __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (accept) && __string2_1bptr_p (accept) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strspn (s, accept) : ((__a0 = ((__const char *) (accept))[0], __a0 == '\0') ? ((void) (s), 0) : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0') ? __strspn_c1 (s, __a0) : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0') ? __strspn_c2 (s, __a0, __a1) : (((__const char *) (accept))[3] == '\0' ? __strspn_c3 (s, __a0, __a1, __a2) : __builtin_strspn (s, accept)))))) : __builtin_strspn (s, accept)); }) | |
4729 | # 1045 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4730 | extern __inline size_t __strspn_c1 (__const char *__s, int __accept); | |
4731 | extern __inline size_t | |
4732 | __strspn_c1 (__const char *__s, int __accept) | |
4733 | { | |
4734 | register size_t __result = 0; | |
4735 | ||
4736 | while (__s[__result] == __accept) | |
4737 | ++__result; | |
4738 | return __result; | |
4739 | } | |
4740 | ||
4741 | extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, | |
4742 | int __accept2); | |
4743 | extern __inline size_t | |
4744 | __strspn_c2 (__const char *__s, int __accept1, int __accept2) | |
4745 | { | |
4746 | register size_t __result = 0; | |
4747 | ||
4748 | while (__s[__result] == __accept1 || __s[__result] == __accept2) | |
4749 | ++__result; | |
4750 | return __result; | |
4751 | } | |
4752 | ||
4753 | extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, | |
4754 | int __accept2, int __accept3); | |
4755 | extern __inline size_t | |
4756 | __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) | |
4757 | { | |
4758 | register size_t __result = 0; | |
4759 | ||
4760 | while (__s[__result] == __accept1 || __s[__result] == __accept2 | |
4761 | || __s[__result] == __accept3) | |
4762 | ++__result; | |
4763 | return __result; | |
4764 | } | |
4765 | ||
4766 | ||
4767 | ||
4768 | ||
4769 | ||
4770 | ||
4771 | ||
4772 | #define strpbrk(s,accept) __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (accept) && __string2_1bptr_p (accept) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strpbrk (s, accept) : ((__a0 = ((__const char *) (accept))[0], __a0 == '\0') ? ((void) (s), (char *) NULL) : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0') ? __builtin_strchr (s, __a0) : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0') ? __strpbrk_c2 (s, __a0, __a1) : (((__const char *) (accept))[3] == '\0' ? __strpbrk_c3 (s, __a0, __a1, __a2) : __builtin_strpbrk (s, accept)))))) : __builtin_strpbrk (s, accept)); }) | |
4773 | # 1121 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4774 | extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, | |
4775 | int __accept2); | |
4776 | extern __inline char * | |
4777 | __strpbrk_c2 (__const char *__s, int __accept1, int __accept2) | |
4778 | { | |
4779 | ||
4780 | while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) | |
4781 | ++__s; | |
4782 | return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; | |
4783 | } | |
4784 | ||
4785 | extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1, | |
4786 | int __accept2, int __accept3); | |
4787 | extern __inline char * | |
4788 | __strpbrk_c3 (__const char *__s, int __accept1, int __accept2, | |
4789 | int __accept3) | |
4790 | { | |
4791 | ||
4792 | while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 | |
4793 | && *__s != __accept3) | |
4794 | ++__s; | |
4795 | return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; | |
4796 | } | |
4797 | # 1164 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4798 | #define __strtok_r(s,sep,nextp) (__extension__ (__builtin_constant_p (sep) && __string2_1bptr_p (sep) ? (((__const char *) (sep))[0] != '\0' && ((__const char *) (sep))[1] == '\0' ? __strtok_r_1c (s, ((__const char *) (sep))[0], nextp) : __strtok_r (s, sep, nextp)) : __strtok_r (s, sep, nextp))) | |
4799 | # 1173 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4800 | extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); | |
4801 | extern __inline char * | |
4802 | __strtok_r_1c (char *__s, char __sep, char **__nextp) | |
4803 | { | |
4804 | char *__result; | |
4805 | if (__s == ((void *)0)) | |
4806 | __s = *__nextp; | |
4807 | while (*__s == __sep) | |
4808 | ++__s; | |
4809 | __result = ((void *)0); | |
4810 | if (*__s != '\0') | |
4811 | { | |
4812 | __result = __s++; | |
4813 | while (*__s != '\0') | |
4814 | if (*__s++ == __sep) | |
4815 | { | |
4816 | __s[-1] = '\0'; | |
4817 | break; | |
4818 | } | |
4819 | *__nextp = __s; | |
4820 | } | |
4821 | return __result; | |
4822 | } | |
4823 | ||
4824 | #define strtok_r(s,sep,nextp) __strtok_r (s, sep, nextp) | |
4825 | ||
4826 | ||
4827 | ||
4828 | ||
4829 | ||
4830 | ||
4831 | ||
4832 | extern char *__strsep_g (char **__stringp, __const char *__delim); | |
4833 | #define __strsep(s,reject) __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (reject) && __string2_1bptr_p (reject) && (__r0 = ((__const char *) (reject))[0], ((__const char *) (reject))[0] != '\0') ? ((__r1 = ((__const char *) (reject))[1], ((__const char *) (reject))[1] == '\0') ? __strsep_1c (s, __r0) : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0') ? __strsep_2c (s, __r0, __r1) : (((__const char *) (reject))[3] == '\0' ? __strsep_3c (s, __r0, __r1, __r2) : __strsep_g (s, reject)))) : __strsep_g (s, reject)); }) | |
4834 | # 1223 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4835 | extern __inline char *__strsep_1c (char **__s, char __reject); | |
4836 | extern __inline char * | |
4837 | __strsep_1c (char **__s, char __reject) | |
4838 | { | |
4839 | register char *__retval = *__s; | |
4840 | 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)) | |
4841 | *(*__s)++ = '\0'; | |
4842 | return __retval; | |
4843 | } | |
4844 | ||
4845 | extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); | |
4846 | extern __inline char * | |
4847 | __strsep_2c (char **__s, char __reject1, char __reject2) | |
4848 | { | |
4849 | register char *__retval = *__s; | |
4850 | if (__retval != ((void *)0)) | |
4851 | { | |
4852 | register char *__cp = __retval; | |
4853 | while (1) | |
4854 | { | |
4855 | if (*__cp == '\0') | |
4856 | { | |
4857 | __cp = ((void *)0); | |
4858 | break; | |
4859 | } | |
4860 | if (*__cp == __reject1 || *__cp == __reject2) | |
4861 | { | |
4862 | *__cp++ = '\0'; | |
4863 | break; | |
4864 | } | |
4865 | ++__cp; | |
4866 | } | |
4867 | *__s = __cp; | |
4868 | } | |
4869 | return __retval; | |
4870 | } | |
4871 | ||
4872 | extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, | |
4873 | char __reject3); | |
4874 | extern __inline char * | |
4875 | __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) | |
4876 | { | |
4877 | register char *__retval = *__s; | |
4878 | if (__retval != ((void *)0)) | |
4879 | { | |
4880 | register char *__cp = __retval; | |
4881 | while (1) | |
4882 | { | |
4883 | if (*__cp == '\0') | |
4884 | { | |
4885 | __cp = ((void *)0); | |
4886 | break; | |
4887 | } | |
4888 | if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) | |
4889 | { | |
4890 | *__cp++ = '\0'; | |
4891 | break; | |
4892 | } | |
4893 | ++__cp; | |
4894 | } | |
4895 | *__s = __cp; | |
4896 | } | |
4897 | return __retval; | |
4898 | } | |
4899 | ||
4900 | #define strsep(s,reject) __strsep (s, reject) | |
4901 | # 1298 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4902 | #define __need_malloc_and_calloc | |
4903 | # 1 "/usr/include/stdlib.h" 1 3 4 | |
4904 | # 1300 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 2 3 4 | |
4905 | ||
4906 | ||
4907 | ||
4908 | ||
4909 | extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); | |
4910 | #define __strdup(s) (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) ? (((__const char *) (s))[0] == '\0' ? (char *) calloc (1, 1) : ({ size_t __len = strlen (s) + 1; char *__retval = (char *) malloc (__len); if (__retval != NULL) __retval = (char *) memcpy (__retval, s, __len); __retval; })) : __strdup (s))) | |
4911 | # 1317 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4912 | #define strdup(s) __strdup (s) | |
4913 | ||
4914 | ||
4915 | ||
4916 | ||
4917 | ||
4918 | extern char *__strndup (__const char *__string, size_t __n) | |
4919 | __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); | |
4920 | #define __strndup(s,n) (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) ? (((__const char *) (s))[0] == '\0' ? (char *) calloc (1, 1) : ({ size_t __len = strlen (s) + 1; size_t __n = (n); char *__retval; if (__n < __len) __len = __n + 1; __retval = (char *) malloc (__len); if (__retval != NULL) { __retval[__len - 1] = '\0'; __retval = (char *) memcpy (__retval, s, __len - 1); } __retval; })) : __strndup (s, n))) | |
4921 | # 1345 "/usr/include/gentoo-multilib/amd64/bits/string2.h" 3 4 | |
4922 | #define strndup(s,n) __strndup (s, n) | |
4923 | ||
4924 | ||
4925 | ||
4926 | ||
4927 | ||
4928 | ||
4929 | #undef __STRING_INLINE | |
4930 | # 9 "/usr/include/bits/string2.h" 2 3 4 | |
4931 | # 418 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4 | |
4932 | # 426 "/usr/include/gentoo-multilib/amd64/string.h" 3 4 | |
4933 | ||
4934 | # 9 "/usr/include/string.h" 2 3 4 | |
4935 | # 26 "video_out_dfb.c" 2 | |
4936 | # 1 "/usr/include/pthread.h" 1 3 4 | |
4937 | ||
4938 | ||
4939 | ||
4940 | ||
4941 | ||
4942 | ||
4943 | ||
4944 | # 1 "/usr/include/gentoo-multilib/amd64/pthread.h" 1 3 4 | |
4945 | # 20 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
4946 | #define _PTHREAD_H 1 | |
4947 | ||
4948 | # 1 "/usr/include/features.h" 1 3 4 | |
4949 | # 23 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 | |
4950 | # 1 "/usr/include/sched.h" 1 3 4 | |
4951 | ||
4952 | ||
4953 | ||
4954 | ||
4955 | ||
4956 | ||
4957 | ||
4958 | # 1 "/usr/include/gentoo-multilib/amd64/sched.h" 1 3 4 | |
4959 | # 21 "/usr/include/gentoo-multilib/amd64/sched.h" 3 4 | |
4960 | #define _SCHED_H 1 | |
4961 | ||
4962 | # 1 "/usr/include/features.h" 1 3 4 | |
4963 | # 24 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 | |
4964 | ||
4965 | ||
4966 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
4967 | # 27 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 | |
4968 | ||
4969 | #define __need_timespec | |
4970 | # 1 "/usr/include/time.h" 1 3 4 | |
4971 | ||
4972 | ||
4973 | ||
4974 | ||
4975 | ||
4976 | ||
4977 | ||
4978 | # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 | |
4979 | # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
4980 | #undef __need_clock_t | |
4981 | # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
4982 | #undef __need_time_t | |
4983 | # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
4984 | #undef __clockid_time_t | |
4985 | # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
4986 | #undef __need_timer_t | |
4987 | # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
4988 | #undef __need_timespec | |
4989 | # 9 "/usr/include/time.h" 2 3 4 | |
4990 | # 30 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 | |
4991 | ||
4992 | ||
4993 | # 1 "/usr/include/bits/sched.h" 1 3 4 | |
4994 | ||
4995 | ||
4996 | ||
4997 | ||
4998 | ||
4999 | ||
5000 | ||
5001 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 1 3 4 | |
5002 | # 29 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4 | |
5003 | #define SCHED_OTHER 0 | |
5004 | #define SCHED_FIFO 1 | |
5005 | #define SCHED_RR 2 | |
5006 | ||
5007 | #define SCHED_BATCH 3 | |
5008 | ||
5009 | ||
5010 | ||
5011 | ||
5012 | #define CSIGNAL 0x000000ff | |
5013 | #define CLONE_VM 0x00000100 | |
5014 | #define CLONE_FS 0x00000200 | |
5015 | #define CLONE_FILES 0x00000400 | |
5016 | #define CLONE_SIGHAND 0x00000800 | |
5017 | #define CLONE_PTRACE 0x00002000 | |
5018 | #define CLONE_VFORK 0x00004000 | |
5019 | ||
5020 | #define CLONE_PARENT 0x00008000 | |
5021 | ||
5022 | #define CLONE_THREAD 0x00010000 | |
5023 | #define CLONE_NEWNS 0x00020000 | |
5024 | #define CLONE_SYSVSEM 0x00040000 | |
5025 | #define CLONE_SETTLS 0x00080000 | |
5026 | #define CLONE_PARENT_SETTID 0x00100000 | |
5027 | ||
5028 | #define CLONE_CHILD_CLEARTID 0x00200000 | |
5029 | ||
5030 | #define CLONE_DETACHED 0x00400000 | |
5031 | #define CLONE_UNTRACED 0x00800000 | |
5032 | ||
5033 | #define CLONE_CHILD_SETTID 0x01000000 | |
5034 | ||
5035 | #define CLONE_STOPPED 0x02000000 | |
5036 | ||
5037 | ||
5038 | ||
5039 | struct sched_param | |
5040 | { | |
5041 | int __sched_priority; | |
5042 | }; | |
5043 | ||
5044 | ||
5045 | ||
5046 | ||
5047 | ||
5048 | extern int clone (int (*__fn) (void *__arg), void *__child_stack, | |
5049 | int __flags, void *__arg, ...) __attribute__ ((__nothrow__)); | |
5050 | ||
5051 | ||
5052 | extern int unshare (int __flags) __attribute__ ((__nothrow__)); | |
5053 | ||
5054 | ||
5055 | ||
5056 | ||
5057 | ||
5058 | ||
5059 | ||
5060 | ||
5061 | #define __defined_schedparam 1 | |
5062 | ||
5063 | struct __sched_param | |
5064 | { | |
5065 | int __sched_priority; | |
5066 | }; | |
5067 | #undef __need_schedparam | |
5068 | ||
5069 | ||
5070 | ||
5071 | ||
5072 | #define __cpu_set_t_defined | |
5073 | ||
5074 | #define __CPU_SETSIZE 1024 | |
5075 | #define __NCPUBITS (8 * sizeof (__cpu_mask)) | |
5076 | ||
5077 | ||
5078 | typedef unsigned long int __cpu_mask; | |
5079 | ||
5080 | ||
5081 | #define __CPUELT(cpu) ((cpu) / __NCPUBITS) | |
5082 | #define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) | |
5083 | ||
5084 | ||
5085 | typedef struct | |
5086 | { | |
5087 | __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; | |
5088 | } cpu_set_t; | |
5089 | ||
5090 | ||
5091 | #define __CPU_ZERO(cpusetp) do { unsigned int __i; cpu_set_t *__arr = (cpusetp); for (__i = 0; __i < sizeof (cpu_set_t) / sizeof (__cpu_mask); ++__i) __arr->__bits[__i] = 0; } while (0) | |
5092 | ||
5093 | ||
5094 | ||
5095 | ||
5096 | ||
5097 | ||
5098 | #define __CPU_SET(cpu,cpusetp) ((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu)) | |
5099 | ||
5100 | #define __CPU_CLR(cpu,cpusetp) ((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu)) | |
5101 | ||
5102 | #define __CPU_ISSET(cpu,cpusetp) (((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0) | |
5103 | # 9 "/usr/include/bits/sched.h" 2 3 4 | |
5104 | # 33 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4 | |
5105 | ||
5106 | #define sched_priority __sched_priority | |
5107 | ||
5108 | ||
5109 | ||
5110 | ||
5111 | ||
5112 | extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) | |
5113 | __attribute__ ((__nothrow__)); | |
5114 | ||
5115 | ||
5116 | extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__)); | |
5117 | ||
5118 | ||
5119 | extern int sched_setscheduler (__pid_t __pid, int __policy, | |
5120 | __const struct sched_param *__param) __attribute__ ((__nothrow__)); | |
5121 | ||
5122 | ||
5123 | extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__)); | |
5124 | ||
5125 | ||
5126 | extern int sched_yield (void) __attribute__ ((__nothrow__)); | |
5127 | ||
5128 | ||
5129 | extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__)); | |
5130 | ||
5131 | ||
5132 | extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__)); | |
5133 | ||
5134 | ||
5135 | extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__)); | |
5136 | ||
5137 | ||
5138 | ||
5139 | ||
5140 | #define CPU_SETSIZE __CPU_SETSIZE | |
5141 | #define CPU_SET(cpu,cpusetp) __CPU_SET (cpu, cpusetp) | |
5142 | #define CPU_CLR(cpu,cpusetp) __CPU_CLR (cpu, cpusetp) | |
5143 | #define CPU_ISSET(cpu,cpusetp) __CPU_ISSET (cpu, cpusetp) | |
5144 | #define CPU_ZERO(cpusetp) __CPU_ZERO (cpusetp) | |
5145 | ||
5146 | ||
5147 | ||
5148 | extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, | |
5149 | __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__)); | |
5150 | ||
5151 | ||
5152 | extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, | |
5153 | cpu_set_t *__cpuset) __attribute__ ((__nothrow__)); | |
5154 | ||
5155 | ||
5156 | ||
5157 | # 9 "/usr/include/sched.h" 2 3 4 | |
5158 | # 24 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 | |
5159 | # 1 "/usr/include/time.h" 1 3 4 | |
5160 | ||
5161 | ||
5162 | ||
5163 | ||
5164 | ||
5165 | ||
5166 | ||
5167 | # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4 | |
5168 | # 28 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5169 | #define _TIME_H 1 | |
5170 | # 1 "/usr/include/features.h" 1 3 4 | |
5171 | # 30 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
5172 | ||
5173 | ||
5174 | ||
5175 | ||
5176 | ||
5177 | ||
5178 | ||
5179 | #define __need_size_t | |
5180 | #define __need_NULL | |
5181 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
5182 | # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
5183 | #undef __need_size_t | |
5184 | # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
5185 | #undef NULL | |
5186 | ||
5187 | ||
5188 | ||
5189 | ||
5190 | #define NULL ((void *)0) | |
5191 | ||
5192 | ||
5193 | ||
5194 | ||
5195 | ||
5196 | #undef __need_NULL | |
5197 | # 40 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
5198 | ||
5199 | ||
5200 | ||
5201 | # 1 "/usr/include/bits/time.h" 1 3 4 | |
5202 | ||
5203 | ||
5204 | ||
5205 | ||
5206 | ||
5207 | ||
5208 | ||
5209 | # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4 | |
5210 | # 26 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 | |
5211 | #define _BITS_TIME_H 1 | |
5212 | ||
5213 | ||
5214 | ||
5215 | ||
5216 | ||
5217 | ||
5218 | ||
5219 | #define CLOCKS_PER_SEC 1000000l | |
5220 | # 46 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 | |
5221 | #define CLOCK_REALTIME 0 | |
5222 | ||
5223 | #define CLOCK_MONOTONIC 1 | |
5224 | ||
5225 | #define CLOCK_PROCESS_CPUTIME_ID 2 | |
5226 | ||
5227 | #define CLOCK_THREAD_CPUTIME_ID 3 | |
5228 | ||
5229 | ||
5230 | #define TIMER_ABSTIME 1 | |
5231 | # 9 "/usr/include/bits/time.h" 2 3 4 | |
5232 | # 44 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
5233 | # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5234 | #undef __need_clock_t | |
5235 | # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5236 | #undef __need_time_t | |
5237 | # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5238 | #undef __clockid_time_t | |
5239 | # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5240 | #undef __need_timer_t | |
5241 | # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5242 | #undef __need_timespec | |
5243 | ||
5244 | ||
5245 | ||
5246 | ||
5247 | ||
5248 | struct tm | |
5249 | { | |
5250 | int tm_sec; | |
5251 | int tm_min; | |
5252 | int tm_hour; | |
5253 | int tm_mday; | |
5254 | int tm_mon; | |
5255 | int tm_year; | |
5256 | int tm_wday; | |
5257 | int tm_yday; | |
5258 | int tm_isdst; | |
5259 | ||
5260 | ||
5261 | long int tm_gmtoff; | |
5262 | __const char *tm_zone; | |
5263 | ||
5264 | ||
5265 | ||
5266 | ||
5267 | }; | |
5268 | ||
5269 | ||
5270 | ||
5271 | ||
5272 | ||
5273 | ||
5274 | ||
5275 | ||
5276 | struct itimerspec | |
5277 | { | |
5278 | struct timespec it_interval; | |
5279 | struct timespec it_value; | |
5280 | }; | |
5281 | ||
5282 | ||
5283 | struct sigevent; | |
5284 | # 181 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5285 | ||
5286 | ||
5287 | ||
5288 | extern clock_t clock (void) __attribute__ ((__nothrow__)); | |
5289 | ||
5290 | ||
5291 | extern time_t time (time_t *__timer) __attribute__ ((__nothrow__)); | |
5292 | ||
5293 | ||
5294 | extern double difftime (time_t __time1, time_t __time0) | |
5295 | __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
5296 | ||
5297 | ||
5298 | extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__)); | |
5299 | ||
5300 | ||
5301 | ||
5302 | ||
5303 | ||
5304 | extern size_t strftime (char *__restrict __s, size_t __maxsize, | |
5305 | __const char *__restrict __format, | |
5306 | __const struct tm *__restrict __tp) __attribute__ ((__nothrow__)); | |
5307 | ||
5308 | ||
5309 | ||
5310 | ||
5311 | ||
5312 | extern char *strptime (__const char *__restrict __s, | |
5313 | __const char *__restrict __fmt, struct tm *__tp) | |
5314 | __attribute__ ((__nothrow__)); | |
5315 | ||
5316 | ||
5317 | ||
5318 | ||
5319 | ||
5320 | # 1 "/usr/include/xlocale.h" 1 3 4 | |
5321 | # 217 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4 | |
5322 | ||
5323 | extern size_t strftime_l (char *__restrict __s, size_t __maxsize, | |
5324 | __const char *__restrict __format, | |
5325 | __const struct tm *__restrict __tp, | |
5326 | __locale_t __loc) __attribute__ ((__nothrow__)); | |
5327 | ||
5328 | extern char *strptime_l (__const char *__restrict __s, | |
5329 | __const char *__restrict __fmt, struct tm *__tp, | |
5330 | __locale_t __loc) __attribute__ ((__nothrow__)); | |
5331 | ||
5332 | ||
5333 | ||
5334 | ||
5335 | ||
5336 | ||
5337 | extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__)); | |
5338 | ||
5339 | ||
5340 | ||
5341 | extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__)); | |
5342 | ||
5343 | ||
5344 | ||
5345 | ||
5346 | ||
5347 | extern struct tm *gmtime_r (__const time_t *__restrict __timer, | |
5348 | struct tm *__restrict __tp) __attribute__ ((__nothrow__)); | |
5349 | ||
5350 | ||
5351 | ||
5352 | extern struct tm *localtime_r (__const time_t *__restrict __timer, | |
5353 | struct tm *__restrict __tp) __attribute__ ((__nothrow__)); | |
5354 | ||
5355 | ||
5356 | ||
5357 | ||
5358 | ||
5359 | extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__)); | |
5360 | ||
5361 | ||
5362 | extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__)); | |
5363 | ||
5364 | ||
5365 | ||
5366 | ||
5367 | ||
5368 | ||
5369 | ||
5370 | extern char *asctime_r (__const struct tm *__restrict __tp, | |
5371 | char *__restrict __buf) __attribute__ ((__nothrow__)); | |
5372 | ||
5373 | ||
5374 | extern char *ctime_r (__const time_t *__restrict __timer, | |
5375 | char *__restrict __buf) __attribute__ ((__nothrow__)); | |
5376 | ||
5377 | ||
5378 | ||
5379 | ||
5380 | extern char *__tzname[2]; | |
5381 | extern int __daylight; | |
5382 | extern long int __timezone; | |
5383 | ||
5384 | ||
5385 | ||
5386 | ||
5387 | extern char *tzname[2]; | |
5388 | ||
5389 | ||
5390 | ||
5391 | extern void tzset (void) __attribute__ ((__nothrow__)); | |
5392 | ||
5393 | ||
5394 | ||
5395 | extern int daylight; | |
5396 | extern long int timezone; | |
5397 | ||
5398 | ||
5399 | ||
5400 | ||
5401 | ||
5402 | extern int stime (__const time_t *__when) __attribute__ ((__nothrow__)); | |
5403 | ||
5404 | ||
5405 | ||
5406 | ||
5407 | ||
5408 | #define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) | |
5409 | # 312 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5410 | extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__)); | |
5411 | ||
5412 | ||
5413 | extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__)); | |
5414 | ||
5415 | ||
5416 | extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
5417 | # 327 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5418 | extern int nanosleep (__const struct timespec *__requested_time, | |
5419 | struct timespec *__remaining); | |
5420 | ||
5421 | ||
5422 | ||
5423 | extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__)); | |
5424 | ||
5425 | ||
5426 | extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__)); | |
5427 | ||
5428 | ||
5429 | extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) | |
5430 | __attribute__ ((__nothrow__)); | |
5431 | ||
5432 | ||
5433 | ||
5434 | ||
5435 | ||
5436 | ||
5437 | extern int clock_nanosleep (clockid_t __clock_id, int __flags, | |
5438 | __const struct timespec *__req, | |
5439 | struct timespec *__rem); | |
5440 | ||
5441 | ||
5442 | extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__)); | |
5443 | ||
5444 | ||
5445 | ||
5446 | ||
5447 | extern int timer_create (clockid_t __clock_id, | |
5448 | struct sigevent *__restrict __evp, | |
5449 | timer_t *__restrict __timerid) __attribute__ ((__nothrow__)); | |
5450 | ||
5451 | ||
5452 | extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__)); | |
5453 | ||
5454 | ||
5455 | extern int timer_settime (timer_t __timerid, int __flags, | |
5456 | __const struct itimerspec *__restrict __value, | |
5457 | struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__)); | |
5458 | ||
5459 | ||
5460 | extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) | |
5461 | __attribute__ ((__nothrow__)); | |
5462 | ||
5463 | ||
5464 | extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__)); | |
5465 | # 389 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5466 | extern int getdate_err; | |
5467 | # 398 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5468 | extern struct tm *getdate (__const char *__string); | |
5469 | # 412 "/usr/include/gentoo-multilib/amd64/time.h" 3 4 | |
5470 | extern int getdate_r (__const char *__restrict __string, | |
5471 | struct tm *__restrict __resbufp); | |
5472 | ||
5473 | ||
5474 | ||
5475 | # 9 "/usr/include/time.h" 2 3 4 | |
5476 | # 25 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 | |
5477 | ||
5478 | #define __need_sigset_t | |
5479 | # 1 "/usr/include/signal.h" 1 3 4 | |
5480 | ||
5481 | ||
5482 | ||
5483 | ||
5484 | ||
5485 | ||
5486 | ||
5487 | # 1 "/usr/include/gentoo-multilib/amd64/signal.h" 1 3 4 | |
5488 | # 29 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
5489 | # 1 "/usr/include/features.h" 1 3 4 | |
5490 | # 30 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
5491 | ||
5492 | ||
5493 | ||
5494 | # 1 "/usr/include/bits/sigset.h" 1 3 4 | |
5495 | ||
5496 | ||
5497 | ||
5498 | ||
5499 | ||
5500 | ||
5501 | ||
5502 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4 | |
5503 | # 9 "/usr/include/bits/sigset.h" 2 3 4 | |
5504 | # 34 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
5505 | # 52 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
5506 | #undef __need_sigset_t | |
5507 | # 400 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
5508 | ||
5509 | # 9 "/usr/include/signal.h" 2 3 4 | |
5510 | # 28 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 | |
5511 | # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 | |
5512 | # 29 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 | |
5513 | # 1 "/usr/include/bits/setjmp.h" 1 3 4 | |
5514 | ||
5515 | ||
5516 | ||
5517 | ||
5518 | ||
5519 | ||
5520 | ||
5521 | # 1 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 1 3 4 | |
5522 | # 21 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 3 4 | |
5523 | #define _BITS_SETJMP_H 1 | |
5524 | ||
5525 | ||
5526 | ||
5527 | ||
5528 | ||
5529 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
5530 | ||
5531 | ||
5532 | ||
5533 | ||
5534 | ||
5535 | ||
5536 | ||
5537 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
5538 | ||
5539 | ||
5540 | ||
5541 | #define __WORDSIZE 64 | |
5542 | #define __WORDSIZE_COMPAT32 1 | |
5543 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
5544 | # 28 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 2 3 4 | |
5545 | ||
5546 | ||
5547 | ||
5548 | ||
5549 | typedef long int __jmp_buf[8]; | |
5550 | # 9 "/usr/include/bits/setjmp.h" 2 3 4 | |
5551 | # 30 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 | |
5552 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
5553 | ||
5554 | ||
5555 | ||
5556 | ||
5557 | ||
5558 | ||
5559 | ||
5560 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
5561 | ||
5562 | ||
5563 | ||
5564 | #define __WORDSIZE 64 | |
5565 | #define __WORDSIZE_COMPAT32 1 | |
5566 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
5567 | # 31 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4 | |
5568 | ||
5569 | ||
5570 | ||
5571 | enum | |
5572 | { | |
5573 | PTHREAD_CREATE_JOINABLE, | |
5574 | #define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE | |
5575 | PTHREAD_CREATE_DETACHED | |
5576 | #define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED | |
5577 | }; | |
5578 | ||
5579 | ||
5580 | ||
5581 | enum | |
5582 | { | |
5583 | PTHREAD_MUTEX_TIMED_NP, | |
5584 | PTHREAD_MUTEX_RECURSIVE_NP, | |
5585 | PTHREAD_MUTEX_ERRORCHECK_NP, | |
5586 | PTHREAD_MUTEX_ADAPTIVE_NP | |
5587 | ||
5588 | , | |
5589 | PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, | |
5590 | PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, | |
5591 | PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, | |
5592 | PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL | |
5593 | ||
5594 | ||
5595 | ||
5596 | , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP | |
5597 | ||
5598 | }; | |
5599 | ||
5600 | ||
5601 | ||
5602 | ||
5603 | enum | |
5604 | { | |
5605 | PTHREAD_MUTEX_STALLED_NP, | |
5606 | PTHREAD_MUTEX_ROBUST_NP | |
5607 | }; | |
5608 | ||
5609 | ||
5610 | ||
5611 | ||
5612 | ||
5613 | enum | |
5614 | { | |
5615 | PTHREAD_PRIO_NONE, | |
5616 | PTHREAD_PRIO_INHERIT, | |
5617 | PTHREAD_PRIO_PROTECT | |
5618 | }; | |
5619 | ||
5620 | ||
5621 | ||
5622 | ||
5623 | ||
5624 | #define PTHREAD_MUTEX_INITIALIZER { { 0, 0, 0, 0, 0, 0, { 0, 0 } } } | |
5625 | ||
5626 | ||
5627 | #define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } } | |
5628 | ||
5629 | #define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { 0, 0 } } } | |
5630 | ||
5631 | #define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { 0, 0 } } } | |
5632 | # 113 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
5633 | enum | |
5634 | { | |
5635 | PTHREAD_RWLOCK_PREFER_READER_NP, | |
5636 | PTHREAD_RWLOCK_PREFER_WRITER_NP, | |
5637 | PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, | |
5638 | PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP | |
5639 | }; | |
5640 | ||
5641 | ||
5642 | ||
5643 | #define PTHREAD_RWLOCK_INITIALIZER { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } | |
5644 | ||
5645 | ||
5646 | ||
5647 | ||
5648 | ||
5649 | ||
5650 | ||
5651 | #define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } } | |
5652 | # 143 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
5653 | enum | |
5654 | { | |
5655 | PTHREAD_INHERIT_SCHED, | |
5656 | #define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED | |
5657 | PTHREAD_EXPLICIT_SCHED | |
5658 | #define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED | |
5659 | }; | |
5660 | ||
5661 | ||
5662 | ||
5663 | enum | |
5664 | { | |
5665 | PTHREAD_SCOPE_SYSTEM, | |
5666 | #define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM | |
5667 | PTHREAD_SCOPE_PROCESS | |
5668 | #define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS | |
5669 | }; | |
5670 | ||
5671 | ||
5672 | ||
5673 | enum | |
5674 | { | |
5675 | PTHREAD_PROCESS_PRIVATE, | |
5676 | #define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE | |
5677 | PTHREAD_PROCESS_SHARED | |
5678 | #define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED | |
5679 | }; | |
5680 | ||
5681 | ||
5682 | ||
5683 | ||
5684 | #define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } } | |
5685 | ||
5686 | ||
5687 | ||
5688 | struct _pthread_cleanup_buffer | |
5689 | { | |
5690 | void (*__routine) (void *); | |
5691 | void *__arg; | |
5692 | int __canceltype; | |
5693 | struct _pthread_cleanup_buffer *__prev; | |
5694 | }; | |
5695 | ||
5696 | ||
5697 | enum | |
5698 | { | |
5699 | PTHREAD_CANCEL_ENABLE, | |
5700 | #define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE | |
5701 | PTHREAD_CANCEL_DISABLE | |
5702 | #define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE | |
5703 | }; | |
5704 | enum | |
5705 | { | |
5706 | PTHREAD_CANCEL_DEFERRED, | |
5707 | #define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED | |
5708 | PTHREAD_CANCEL_ASYNCHRONOUS | |
5709 | #define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS | |
5710 | }; | |
5711 | #define PTHREAD_CANCELED ((void *) -1) | |
5712 | ||
5713 | ||
5714 | ||
5715 | #define PTHREAD_ONCE_INIT 0 | |
5716 | ||
5717 | ||
5718 | ||
5719 | ||
5720 | ||
5721 | ||
5722 | #define PTHREAD_BARRIER_SERIAL_THREAD -1 | |
5723 | ||
5724 | ||
5725 | ||
5726 | ||
5727 | ||
5728 | ||
5729 | ||
5730 | ||
5731 | extern int pthread_create (pthread_t *__restrict __newthread, | |
5732 | __const pthread_attr_t *__restrict __attr, | |
5733 | void *(*__start_routine) (void *), | |
5734 | void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); | |
5735 | ||
5736 | ||
5737 | ||
5738 | ||
5739 | ||
5740 | extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); | |
5741 | ||
5742 | ||
5743 | ||
5744 | ||
5745 | ||
5746 | ||
5747 | ||
5748 | extern int pthread_join (pthread_t __th, void **__thread_return); | |
5749 | ||
5750 | ||
5751 | ||
5752 | ||
5753 | extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__)); | |
5754 | ||
5755 | ||
5756 | ||
5757 | ||
5758 | ||
5759 | ||
5760 | ||
5761 | extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, | |
5762 | __const struct timespec *__abstime); | |
5763 | ||
5764 | ||
5765 | ||
5766 | ||
5767 | ||
5768 | ||
5769 | extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__)); | |
5770 | ||
5771 | ||
5772 | ||
5773 | extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
5774 | ||
5775 | ||
5776 | extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__)); | |
5777 | ||
5778 | ||
5779 | ||
5780 | ||
5781 | ||
5782 | ||
5783 | ||
5784 | extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5785 | ||
5786 | ||
5787 | extern int pthread_attr_destroy (pthread_attr_t *__attr) | |
5788 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5789 | ||
5790 | ||
5791 | extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, | |
5792 | int *__detachstate) | |
5793 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5794 | ||
5795 | ||
5796 | extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, | |
5797 | int __detachstate) | |
5798 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5799 | ||
5800 | ||
5801 | ||
5802 | extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, | |
5803 | size_t *__guardsize) | |
5804 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5805 | ||
5806 | ||
5807 | extern int pthread_attr_setguardsize (pthread_attr_t *__attr, | |
5808 | size_t __guardsize) | |
5809 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5810 | ||
5811 | ||
5812 | ||
5813 | extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict | |
5814 | __attr, | |
5815 | struct sched_param *__restrict __param) | |
5816 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5817 | ||
5818 | ||
5819 | extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, | |
5820 | __const struct sched_param *__restrict | |
5821 | __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5822 | ||
5823 | ||
5824 | extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict | |
5825 | __attr, int *__restrict __policy) | |
5826 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5827 | ||
5828 | ||
5829 | extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) | |
5830 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5831 | ||
5832 | ||
5833 | extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict | |
5834 | __attr, int *__restrict __inherit) | |
5835 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5836 | ||
5837 | ||
5838 | extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, | |
5839 | int __inherit) | |
5840 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5841 | ||
5842 | ||
5843 | ||
5844 | extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, | |
5845 | int *__restrict __scope) | |
5846 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5847 | ||
5848 | ||
5849 | extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) | |
5850 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5851 | ||
5852 | ||
5853 | extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict | |
5854 | __attr, void **__restrict __stackaddr) | |
5855 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); | |
5856 | ||
5857 | ||
5858 | ||
5859 | ||
5860 | ||
5861 | extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, | |
5862 | void *__stackaddr) | |
5863 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); | |
5864 | ||
5865 | ||
5866 | extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict | |
5867 | __attr, size_t *__restrict __stacksize) | |
5868 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
5869 | ||
5870 | ||
5871 | ||
5872 | ||
5873 | extern int pthread_attr_setstacksize (pthread_attr_t *__attr, | |
5874 | size_t __stacksize) | |
5875 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5876 | ||
5877 | ||
5878 | ||
5879 | extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, | |
5880 | void **__restrict __stackaddr, | |
5881 | size_t *__restrict __stacksize) | |
5882 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); | |
5883 | ||
5884 | ||
5885 | ||
5886 | ||
5887 | extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, | |
5888 | size_t __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
5889 | ||
5890 | ||
5891 | ||
5892 | ||
5893 | ||
5894 | extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, | |
5895 | size_t __cpusetsize, | |
5896 | __const cpu_set_t *__cpuset) | |
5897 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); | |
5898 | ||
5899 | ||
5900 | ||
5901 | extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, | |
5902 | size_t __cpusetsize, | |
5903 | cpu_set_t *__cpuset) | |
5904 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); | |
5905 | ||
5906 | ||
5907 | ||
5908 | ||
5909 | ||
5910 | extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) | |
5911 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
5912 | ||
5913 | ||
5914 | ||
5915 | ||
5916 | ||
5917 | ||
5918 | ||
5919 | extern int pthread_setschedparam (pthread_t __target_thread, int __policy, | |
5920 | __const struct sched_param *__param) | |
5921 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); | |
5922 | ||
5923 | ||
5924 | extern int pthread_getschedparam (pthread_t __target_thread, | |
5925 | int *__restrict __policy, | |
5926 | struct sched_param *__restrict __param) | |
5927 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); | |
5928 | ||
5929 | ||
5930 | extern int pthread_setschedprio (pthread_t __target_thread, int __prio) | |
5931 | __attribute__ ((__nothrow__)); | |
5932 | ||
5933 | ||
5934 | ||
5935 | ||
5936 | extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__)); | |
5937 | ||
5938 | ||
5939 | extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__)); | |
5940 | ||
5941 | ||
5942 | ||
5943 | ||
5944 | ||
5945 | ||
5946 | ||
5947 | extern int pthread_yield (void) __attribute__ ((__nothrow__)); | |
5948 | ||
5949 | ||
5950 | ||
5951 | ||
5952 | extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, | |
5953 | __const cpu_set_t *__cpuset) | |
5954 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); | |
5955 | ||
5956 | ||
5957 | extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, | |
5958 | cpu_set_t *__cpuset) | |
5959 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); | |
5960 | # 462 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
5961 | extern int pthread_once (pthread_once_t *__once_control, | |
5962 | void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); | |
5963 | # 474 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
5964 | extern int pthread_setcancelstate (int __state, int *__oldstate); | |
5965 | ||
5966 | ||
5967 | ||
5968 | extern int pthread_setcanceltype (int __type, int *__oldtype); | |
5969 | ||
5970 | ||
5971 | extern int pthread_cancel (pthread_t __th); | |
5972 | ||
5973 | ||
5974 | ||
5975 | ||
5976 | extern void pthread_testcancel (void); | |
5977 | ||
5978 | ||
5979 | ||
5980 | ||
5981 | typedef struct | |
5982 | { | |
5983 | struct | |
5984 | { | |
5985 | __jmp_buf __cancel_jmp_buf; | |
5986 | int __mask_was_saved; | |
5987 | } __cancel_jmp_buf[1]; | |
5988 | void *__pad[4]; | |
5989 | } __pthread_unwind_buf_t __attribute__ ((__aligned__)); | |
5990 | ||
5991 | ||
5992 | ||
5993 | #define __cleanup_fct_attribute | |
5994 | ||
5995 | ||
5996 | ||
5997 | ||
5998 | struct __pthread_cleanup_frame | |
5999 | { | |
6000 | void (*__cancel_routine) (void *); | |
6001 | void *__cancel_arg; | |
6002 | int __do_it; | |
6003 | int __cancel_type; | |
6004 | }; | |
6005 | # 632 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6006 | #define pthread_cleanup_push(routine,arg) do { __pthread_unwind_buf_t __cancel_buf; void (*__cancel_routine) (void *) = (routine); void *__cancel_arg = (arg); int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) __cancel_buf.__cancel_jmp_buf, 0); if (__builtin_expect (not_first_call, 0)) { __cancel_routine (__cancel_arg); __pthread_unwind_next (&__cancel_buf); } __pthread_register_cancel (&__cancel_buf); do { | |
6007 | # 648 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6008 | extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) | |
6009 | ; | |
6010 | ||
6011 | ||
6012 | ||
6013 | #define pthread_cleanup_pop(execute) } while (0); __pthread_unregister_cancel (&__cancel_buf); if (execute) __cancel_routine (__cancel_arg); } while (0) | |
6014 | ||
6015 | ||
6016 | ||
6017 | ||
6018 | ||
6019 | extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) | |
6020 | ; | |
6021 | ||
6022 | ||
6023 | ||
6024 | ||
6025 | ||
6026 | #define pthread_cleanup_push_defer_np(routine,arg) do { __pthread_unwind_buf_t __cancel_buf; void (*__cancel_routine) (void *) = (routine); void *__cancel_arg = (arg); int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) __cancel_buf.__cancel_jmp_buf, 0); if (__builtin_expect (not_first_call, 0)) { __cancel_routine (__cancel_arg); __pthread_unwind_next (&__cancel_buf); } __pthread_register_cancel_defer (&__cancel_buf); do { | |
6027 | # 682 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6028 | extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) | |
6029 | ; | |
6030 | ||
6031 | ||
6032 | ||
6033 | ||
6034 | #define pthread_cleanup_pop_restore_np(execute) } while (0); __pthread_unregister_cancel_restore (&__cancel_buf); if (execute) __cancel_routine (__cancel_arg); } while (0) | |
6035 | ||
6036 | ||
6037 | ||
6038 | ||
6039 | ||
6040 | extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) | |
6041 | ; | |
6042 | ||
6043 | ||
6044 | ||
6045 | extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) | |
6046 | __attribute__ ((__noreturn__)) | |
6047 | ||
6048 | __attribute__ ((__weak__)) | |
6049 | ||
6050 | ; | |
6051 | ||
6052 | ||
6053 | ||
6054 | struct __jmp_buf_tag; | |
6055 | extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__)); | |
6056 | ||
6057 | ||
6058 | ||
6059 | ||
6060 | ||
6061 | extern int pthread_mutex_init (pthread_mutex_t *__mutex, | |
6062 | __const pthread_mutexattr_t *__mutexattr) | |
6063 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6064 | ||
6065 | ||
6066 | extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) | |
6067 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6068 | ||
6069 | ||
6070 | extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) | |
6071 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6072 | ||
6073 | ||
6074 | extern int pthread_mutex_lock (pthread_mutex_t *__mutex) | |
6075 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6076 | ||
6077 | ||
6078 | ||
6079 | extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, | |
6080 | __const struct timespec *__restrict | |
6081 | __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6082 | ||
6083 | ||
6084 | ||
6085 | extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) | |
6086 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6087 | ||
6088 | ||
6089 | ||
6090 | ||
6091 | extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * | |
6092 | __restrict __mutex, | |
6093 | int *__restrict __prioceiling) | |
6094 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6095 | ||
6096 | ||
6097 | ||
6098 | extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, | |
6099 | int __prioceiling, | |
6100 | int *__restrict __old_ceiling) | |
6101 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); | |
6102 | ||
6103 | ||
6104 | ||
6105 | ||
6106 | ||
6107 | extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) | |
6108 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6109 | ||
6110 | ||
6111 | ||
6112 | ||
6113 | ||
6114 | ||
6115 | ||
6116 | extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) | |
6117 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6118 | ||
6119 | ||
6120 | extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) | |
6121 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6122 | ||
6123 | ||
6124 | extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * | |
6125 | __restrict __attr, | |
6126 | int *__restrict __pshared) | |
6127 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6128 | ||
6129 | ||
6130 | extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, | |
6131 | int __pshared) | |
6132 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6133 | ||
6134 | ||
6135 | ||
6136 | extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict | |
6137 | __attr, int *__restrict __kind) | |
6138 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6139 | ||
6140 | ||
6141 | ||
6142 | ||
6143 | extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) | |
6144 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6145 | ||
6146 | ||
6147 | extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * | |
6148 | __restrict __attr, | |
6149 | int *__restrict __protocol) | |
6150 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6151 | ||
6152 | ||
6153 | ||
6154 | extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, | |
6155 | int __protocol) | |
6156 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6157 | ||
6158 | ||
6159 | extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * | |
6160 | __restrict __attr, | |
6161 | int *__restrict __prioceiling) | |
6162 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6163 | ||
6164 | ||
6165 | extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, | |
6166 | int __prioceiling) | |
6167 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6168 | ||
6169 | ||
6170 | ||
6171 | ||
6172 | extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, | |
6173 | int *__robustness) | |
6174 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6175 | ||
6176 | ||
6177 | extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, | |
6178 | int __robustness) | |
6179 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6180 | # 842 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6181 | extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, | |
6182 | __const pthread_rwlockattr_t *__restrict | |
6183 | __attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6184 | ||
6185 | ||
6186 | extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) | |
6187 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6188 | ||
6189 | ||
6190 | extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) | |
6191 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6192 | ||
6193 | ||
6194 | extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) | |
6195 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6196 | ||
6197 | ||
6198 | ||
6199 | extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, | |
6200 | __const struct timespec *__restrict | |
6201 | __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6202 | ||
6203 | ||
6204 | ||
6205 | extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) | |
6206 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6207 | ||
6208 | ||
6209 | extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) | |
6210 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6211 | ||
6212 | ||
6213 | ||
6214 | extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, | |
6215 | __const struct timespec *__restrict | |
6216 | __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6217 | ||
6218 | ||
6219 | ||
6220 | extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) | |
6221 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6222 | ||
6223 | ||
6224 | ||
6225 | ||
6226 | ||
6227 | extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) | |
6228 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6229 | ||
6230 | ||
6231 | extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) | |
6232 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6233 | ||
6234 | ||
6235 | extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * | |
6236 | __restrict __attr, | |
6237 | int *__restrict __pshared) | |
6238 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6239 | ||
6240 | ||
6241 | extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, | |
6242 | int __pshared) | |
6243 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6244 | ||
6245 | ||
6246 | extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * | |
6247 | __restrict __attr, | |
6248 | int *__restrict __pref) | |
6249 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6250 | ||
6251 | ||
6252 | extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, | |
6253 | int __pref) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6254 | ||
6255 | ||
6256 | ||
6257 | ||
6258 | ||
6259 | ||
6260 | ||
6261 | extern int pthread_cond_init (pthread_cond_t *__restrict __cond, | |
6262 | __const pthread_condattr_t *__restrict | |
6263 | __cond_attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6264 | ||
6265 | ||
6266 | extern int pthread_cond_destroy (pthread_cond_t *__cond) | |
6267 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6268 | ||
6269 | ||
6270 | extern int pthread_cond_signal (pthread_cond_t *__cond) | |
6271 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6272 | ||
6273 | ||
6274 | extern int pthread_cond_broadcast (pthread_cond_t *__cond) | |
6275 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6276 | ||
6277 | ||
6278 | ||
6279 | ||
6280 | ||
6281 | ||
6282 | extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, | |
6283 | pthread_mutex_t *__restrict __mutex) | |
6284 | __attribute__ ((__nonnull__ (1, 2))); | |
6285 | # 954 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6286 | extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, | |
6287 | pthread_mutex_t *__restrict __mutex, | |
6288 | __const struct timespec *__restrict | |
6289 | __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); | |
6290 | ||
6291 | ||
6292 | ||
6293 | ||
6294 | extern int pthread_condattr_init (pthread_condattr_t *__attr) | |
6295 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6296 | ||
6297 | ||
6298 | extern int pthread_condattr_destroy (pthread_condattr_t *__attr) | |
6299 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6300 | ||
6301 | ||
6302 | extern int pthread_condattr_getpshared (__const pthread_condattr_t * | |
6303 | __restrict __attr, | |
6304 | int *__restrict __pshared) | |
6305 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6306 | ||
6307 | ||
6308 | extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, | |
6309 | int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6310 | ||
6311 | ||
6312 | ||
6313 | extern int pthread_condattr_getclock (__const pthread_condattr_t * | |
6314 | __restrict __attr, | |
6315 | __clockid_t *__restrict __clock_id) | |
6316 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6317 | ||
6318 | ||
6319 | extern int pthread_condattr_setclock (pthread_condattr_t *__attr, | |
6320 | __clockid_t __clock_id) | |
6321 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6322 | # 998 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6323 | extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) | |
6324 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6325 | ||
6326 | ||
6327 | extern int pthread_spin_destroy (pthread_spinlock_t *__lock) | |
6328 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6329 | ||
6330 | ||
6331 | extern int pthread_spin_lock (pthread_spinlock_t *__lock) | |
6332 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6333 | ||
6334 | ||
6335 | extern int pthread_spin_trylock (pthread_spinlock_t *__lock) | |
6336 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6337 | ||
6338 | ||
6339 | extern int pthread_spin_unlock (pthread_spinlock_t *__lock) | |
6340 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6341 | ||
6342 | ||
6343 | ||
6344 | ||
6345 | ||
6346 | ||
6347 | extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, | |
6348 | __const pthread_barrierattr_t *__restrict | |
6349 | __attr, unsigned int __count) | |
6350 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6351 | ||
6352 | ||
6353 | extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) | |
6354 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6355 | ||
6356 | ||
6357 | extern int pthread_barrier_wait (pthread_barrier_t *__barrier) | |
6358 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6359 | ||
6360 | ||
6361 | ||
6362 | extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) | |
6363 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6364 | ||
6365 | ||
6366 | extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) | |
6367 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6368 | ||
6369 | ||
6370 | extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * | |
6371 | __restrict __attr, | |
6372 | int *__restrict __pshared) | |
6373 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); | |
6374 | ||
6375 | ||
6376 | extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, | |
6377 | int __pshared) | |
6378 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6379 | # 1065 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6380 | extern int pthread_key_create (pthread_key_t *__key, | |
6381 | void (*__destr_function) (void *)) | |
6382 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6383 | ||
6384 | ||
6385 | extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__)); | |
6386 | ||
6387 | ||
6388 | extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__)); | |
6389 | ||
6390 | ||
6391 | extern int pthread_setspecific (pthread_key_t __key, | |
6392 | __const void *__pointer) __attribute__ ((__nothrow__)) ; | |
6393 | ||
6394 | ||
6395 | ||
6396 | ||
6397 | extern int pthread_getcpuclockid (pthread_t __thread_id, | |
6398 | __clockid_t *__clock_id) | |
6399 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); | |
6400 | # 1099 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4 | |
6401 | extern int pthread_atfork (void (*__prepare) (void), | |
6402 | void (*__parent) (void), | |
6403 | void (*__child) (void)) __attribute__ ((__nothrow__)); | |
6404 | ||
6405 | ||
6406 | ||
6407 | ||
6408 | extern __inline int | |
6409 | __attribute__ ((__nothrow__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) | |
6410 | { | |
6411 | return __thread1 == __thread2; | |
6412 | } | |
6413 | ||
6414 | ||
6415 | ||
6416 | # 9 "/usr/include/pthread.h" 2 3 4 | |
6417 | # 27 "video_out_dfb.c" 2 | |
6418 | ||
6419 | # 1 "/usr/include/directfb/directfb.h" 1 | |
6420 | # 29 "/usr/include/directfb/directfb.h" | |
6421 | #define __DIRECTFB_H__ | |
6422 | ||
6423 | # 1 "/usr/include/directfb/dfb_types.h" 1 | |
6424 | ||
6425 | #define __DFB_TYPES_H__ | |
6426 | ||
6427 | # 1 "/usr/include/sys/types.h" 1 3 4 | |
6428 | # 5 "/usr/include/directfb/dfb_types.h" 2 | |
6429 | ||
6430 | ||
6431 | ||
6432 | #define __u8 u_int8_t | |
6433 | #define __u16 u_int16_t | |
6434 | #define __u32 u_int32_t | |
6435 | #define __u64 u_int64_t | |
6436 | ||
6437 | #define __s8 int8_t | |
6438 | #define __s16 int16_t | |
6439 | #define __s32 int32_t | |
6440 | #define __s64 int64_t | |
6441 | # 32 "/usr/include/directfb/directfb.h" 2 | |
6442 | # 1 "/usr/include/sys/time.h" 1 3 4 | |
6443 | ||
6444 | ||
6445 | ||
6446 | ||
6447 | ||
6448 | ||
6449 | ||
6450 | # 1 "/usr/include/gentoo-multilib/amd64/sys/time.h" 1 3 4 | |
6451 | # 21 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 | |
6452 | #define _SYS_TIME_H 1 | |
6453 | ||
6454 | # 1 "/usr/include/features.h" 1 3 4 | |
6455 | # 24 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 | |
6456 | ||
6457 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
6458 | # 26 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 | |
6459 | #define __need_time_t | |
6460 | # 1 "/usr/include/time.h" 1 3 4 | |
6461 | # 28 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 | |
6462 | #define __need_timeval | |
6463 | # 1 "/usr/include/bits/time.h" 1 3 4 | |
6464 | ||
6465 | ||
6466 | ||
6467 | ||
6468 | ||
6469 | ||
6470 | ||
6471 | # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4 | |
6472 | # 62 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4 | |
6473 | #undef __need_timeval | |
6474 | # 9 "/usr/include/bits/time.h" 2 3 4 | |
6475 | # 30 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 | |
6476 | ||
6477 | # 1 "/usr/include/sys/select.h" 1 3 4 | |
6478 | # 32 "/usr/include/gentoo-multilib/amd64/sys/time.h" 2 3 4 | |
6479 | ||
6480 | ||
6481 | ||
6482 | ||
6483 | ||
6484 | ||
6485 | ||
6486 | ||
6487 | ||
6488 | ||
6489 | ||
6490 | #define TIMEVAL_TO_TIMESPEC(tv,ts) { (ts)->tv_sec = (tv)->tv_sec; (ts)->tv_nsec = (tv)->tv_usec * 1000; } | |
6491 | ||
6492 | ||
6493 | ||
6494 | #define TIMESPEC_TO_TIMEVAL(tv,ts) { (tv)->tv_sec = (ts)->tv_sec; (tv)->tv_usec = (ts)->tv_nsec / 1000; } | |
6495 | # 57 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 | |
6496 | struct timezone | |
6497 | { | |
6498 | int tz_minuteswest; | |
6499 | int tz_dsttime; | |
6500 | }; | |
6501 | ||
6502 | typedef struct timezone *__restrict __timezone_ptr_t; | |
6503 | # 73 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 | |
6504 | extern int gettimeofday (struct timeval *__restrict __tv, | |
6505 | __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6506 | ||
6507 | ||
6508 | ||
6509 | ||
6510 | extern int settimeofday (__const struct timeval *__tv, | |
6511 | __const struct timezone *__tz) | |
6512 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6513 | ||
6514 | ||
6515 | ||
6516 | ||
6517 | ||
6518 | extern int adjtime (__const struct timeval *__delta, | |
6519 | struct timeval *__olddelta) __attribute__ ((__nothrow__)); | |
6520 | ||
6521 | ||
6522 | ||
6523 | ||
6524 | enum __itimer_which | |
6525 | { | |
6526 | ||
6527 | ITIMER_REAL = 0, | |
6528 | #define ITIMER_REAL ITIMER_REAL | |
6529 | ||
6530 | ITIMER_VIRTUAL = 1, | |
6531 | #define ITIMER_VIRTUAL ITIMER_VIRTUAL | |
6532 | ||
6533 | ||
6534 | ITIMER_PROF = 2 | |
6535 | #define ITIMER_PROF ITIMER_PROF | |
6536 | }; | |
6537 | ||
6538 | ||
6539 | ||
6540 | struct itimerval | |
6541 | { | |
6542 | ||
6543 | struct timeval it_interval; | |
6544 | ||
6545 | struct timeval it_value; | |
6546 | }; | |
6547 | ||
6548 | ||
6549 | ||
6550 | ||
6551 | typedef enum __itimer_which __itimer_which_t; | |
6552 | ||
6553 | ||
6554 | ||
6555 | ||
6556 | ||
6557 | ||
6558 | extern int getitimer (__itimer_which_t __which, | |
6559 | struct itimerval *__value) __attribute__ ((__nothrow__)); | |
6560 | ||
6561 | ||
6562 | ||
6563 | ||
6564 | extern int setitimer (__itimer_which_t __which, | |
6565 | __const struct itimerval *__restrict __new, | |
6566 | struct itimerval *__restrict __old) __attribute__ ((__nothrow__)); | |
6567 | ||
6568 | ||
6569 | ||
6570 | ||
6571 | extern int utimes (__const char *__file, __const struct timeval __tvp[2]) | |
6572 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6573 | ||
6574 | ||
6575 | ||
6576 | extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) | |
6577 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
6578 | ||
6579 | ||
6580 | extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); | |
6581 | ||
6582 | ||
6583 | ||
6584 | ||
6585 | ||
6586 | ||
6587 | extern int futimesat (int __fd, __const char *__file, | |
6588 | __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); | |
6589 | ||
6590 | ||
6591 | ||
6592 | ||
6593 | ||
6594 | ||
6595 | #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) | |
6596 | #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) | |
6597 | #define timercmp(a,b,CMP) (((a)->tv_sec == (b)->tv_sec) ? ((a)->tv_usec CMP (b)->tv_usec) : ((a)->tv_sec CMP (b)->tv_sec)) | |
6598 | ||
6599 | ||
6600 | ||
6601 | #define timeradd(a,b,result) do { (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; if ((result)->tv_usec >= 1000000) { ++(result)->tv_sec; (result)->tv_usec -= 1000000; } } while (0) | |
6602 | # 180 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 | |
6603 | #define timersub(a,b,result) do { (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; if ((result)->tv_usec < 0) { --(result)->tv_sec; (result)->tv_usec += 1000000; } } while (0) | |
6604 | # 191 "/usr/include/gentoo-multilib/amd64/sys/time.h" 3 4 | |
6605 | ||
6606 | # 9 "/usr/include/sys/time.h" 2 3 4 | |
6607 | # 33 "/usr/include/directfb/directfb.h" 2 | |
6608 | ||
6609 | # 1 "/usr/include/directfb/directfb_keyboard.h" 1 | |
6610 | # 29 "/usr/include/directfb/directfb_keyboard.h" | |
6611 | #define __DIRECTFB_KEYBOARD_H__ | |
6612 | # 40 "/usr/include/directfb/directfb_keyboard.h" | |
6613 | typedef enum { | |
6614 | DIKT_UNICODE = 0x0000, | |
6615 | ||
6616 | DIKT_SPECIAL = 0xF000, | |
6617 | DIKT_FUNCTION = 0xF100, | |
6618 | DIKT_MODIFIER = 0xF200, | |
6619 | DIKT_LOCK = 0xF300, | |
6620 | DIKT_DEAD = 0xF400, | |
6621 | DIKT_CUSTOM = 0xF500, | |
6622 | DIKT_IDENTIFIER = 0xF600 | |
6623 | } DFBInputDeviceKeyType; | |
6624 | ||
6625 | #define DFB_KEY(type,index) ((DIKT_ ##type) | (index)) | |
6626 | ||
6627 | #define DFB_KEY_TYPE(symbol) ((symbol) & 0xFF00) | |
6628 | #define DFB_KEY_INDEX(symbol) ((symbol) & 0x00FF) | |
6629 | ||
6630 | #define DFB_KEY_IS_ASCII(symbol) ((symbol) < 128) | |
6631 | ||
6632 | #define DFB_FUNCTION_KEY(n) (DFB_KEY( FUNCTION, n )) | |
6633 | #define DFB_MODIFIER_KEY(i) (DFB_KEY( MODIFIER, (1 << i) )) | |
6634 | #define DFB_CUSTOM_KEY(n) (DFB_KEY( CUSTOM, n )) | |
6635 | ||
6636 | #define DFB_LOWER_CASE(symbol) (((symbol) >= 'A' && (symbol) <= 'Z') ? ((symbol) | 0x20) : (symbol)) | |
6637 | ||
6638 | #define DFB_UPPER_CASE(symbol) (((symbol) >= 'a' && (symbol) <= 'z') ? ((symbol) & ~0x20) : (symbol)) | |
6639 | ||
6640 | ||
6641 | ||
6642 | ||
6643 | ||
6644 | typedef enum { | |
6645 | DIMKI_SHIFT, | |
6646 | DIMKI_CONTROL, | |
6647 | DIMKI_ALT, | |
6648 | DIMKI_ALTGR, | |
6649 | DIMKI_META, | |
6650 | DIMKI_SUPER, | |
6651 | DIMKI_HYPER, | |
6652 | ||
6653 | DIMKI_FIRST = DIMKI_SHIFT, | |
6654 | DIMKI_LAST = DIMKI_HYPER | |
6655 | } DFBInputDeviceModifierKeyIdentifier; | |
6656 | ||
6657 | ||
6658 | ||
6659 | ||
6660 | typedef enum { | |
6661 | DIKI_UNKNOWN = ((DIKT_IDENTIFIER) | (0)), | |
6662 | ||
6663 | DIKI_A, | |
6664 | DIKI_B, | |
6665 | DIKI_C, | |
6666 | DIKI_D, | |
6667 | DIKI_E, | |
6668 | DIKI_F, | |
6669 | DIKI_G, | |
6670 | DIKI_H, | |
6671 | DIKI_I, | |
6672 | DIKI_J, | |
6673 | DIKI_K, | |
6674 | DIKI_L, | |
6675 | DIKI_M, | |
6676 | DIKI_N, | |
6677 | DIKI_O, | |
6678 | DIKI_P, | |
6679 | DIKI_Q, | |
6680 | DIKI_R, | |
6681 | DIKI_S, | |
6682 | DIKI_T, | |
6683 | DIKI_U, | |
6684 | DIKI_V, | |
6685 | DIKI_W, | |
6686 | DIKI_X, | |
6687 | DIKI_Y, | |
6688 | DIKI_Z, | |
6689 | ||
6690 | DIKI_0, | |
6691 | DIKI_1, | |
6692 | DIKI_2, | |
6693 | DIKI_3, | |
6694 | DIKI_4, | |
6695 | DIKI_5, | |
6696 | DIKI_6, | |
6697 | DIKI_7, | |
6698 | DIKI_8, | |
6699 | DIKI_9, | |
6700 | ||
6701 | DIKI_F1, | |
6702 | DIKI_F2, | |
6703 | DIKI_F3, | |
6704 | DIKI_F4, | |
6705 | DIKI_F5, | |
6706 | DIKI_F6, | |
6707 | DIKI_F7, | |
6708 | DIKI_F8, | |
6709 | DIKI_F9, | |
6710 | DIKI_F10, | |
6711 | DIKI_F11, | |
6712 | DIKI_F12, | |
6713 | ||
6714 | DIKI_SHIFT_L, | |
6715 | DIKI_SHIFT_R, | |
6716 | DIKI_CONTROL_L, | |
6717 | DIKI_CONTROL_R, | |
6718 | DIKI_ALT_L, | |
6719 | DIKI_ALT_R, | |
6720 | DIKI_META_L, | |
6721 | DIKI_META_R, | |
6722 | DIKI_SUPER_L, | |
6723 | DIKI_SUPER_R, | |
6724 | DIKI_HYPER_L, | |
6725 | DIKI_HYPER_R, | |
6726 | ||
6727 | DIKI_CAPS_LOCK, | |
6728 | DIKI_NUM_LOCK, | |
6729 | DIKI_SCROLL_LOCK, | |
6730 | ||
6731 | DIKI_ESCAPE, | |
6732 | DIKI_LEFT, | |
6733 | DIKI_RIGHT, | |
6734 | DIKI_UP, | |
6735 | DIKI_DOWN, | |
6736 | DIKI_TAB, | |
6737 | DIKI_ENTER, | |
6738 | DIKI_SPACE, | |
6739 | DIKI_BACKSPACE, | |
6740 | DIKI_INSERT, | |
6741 | DIKI_DELETE, | |
6742 | DIKI_HOME, | |
6743 | DIKI_END, | |
6744 | DIKI_PAGE_UP, | |
6745 | DIKI_PAGE_DOWN, | |
6746 | DIKI_PRINT, | |
6747 | DIKI_PAUSE, | |
6748 | ||
6749 | ||
6750 | ||
6751 | ||
6752 | ||
6753 | DIKI_QUOTE_LEFT, | |
6754 | DIKI_MINUS_SIGN, | |
6755 | DIKI_EQUALS_SIGN, | |
6756 | DIKI_BRACKET_LEFT, | |
6757 | DIKI_BRACKET_RIGHT, | |
6758 | DIKI_BACKSLASH, | |
6759 | DIKI_SEMICOLON, | |
6760 | DIKI_QUOTE_RIGHT, | |
6761 | DIKI_COMMA, | |
6762 | DIKI_PERIOD, | |
6763 | DIKI_SLASH, | |
6764 | ||
6765 | DIKI_LESS_SIGN, | |
6766 | ||
6767 | DIKI_KP_DIV, | |
6768 | DIKI_KP_MULT, | |
6769 | DIKI_KP_MINUS, | |
6770 | DIKI_KP_PLUS, | |
6771 | DIKI_KP_ENTER, | |
6772 | DIKI_KP_SPACE, | |
6773 | DIKI_KP_TAB, | |
6774 | DIKI_KP_F1, | |
6775 | DIKI_KP_F2, | |
6776 | DIKI_KP_F3, | |
6777 | DIKI_KP_F4, | |
6778 | DIKI_KP_EQUAL, | |
6779 | DIKI_KP_SEPARATOR, | |
6780 | ||
6781 | DIKI_KP_DECIMAL, | |
6782 | DIKI_KP_0, | |
6783 | DIKI_KP_1, | |
6784 | DIKI_KP_2, | |
6785 | DIKI_KP_3, | |
6786 | DIKI_KP_4, | |
6787 | DIKI_KP_5, | |
6788 | DIKI_KP_6, | |
6789 | DIKI_KP_7, | |
6790 | DIKI_KP_8, | |
6791 | DIKI_KP_9, | |
6792 | ||
6793 | DIKI_KEYDEF_END, | |
6794 | DIKI_NUMBER_OF_KEYS = DIKI_KEYDEF_END - ((DIKT_IDENTIFIER) | (0)) | |
6795 | ||
6796 | } DFBInputDeviceKeyIdentifier; | |
6797 | ||
6798 | ||
6799 | ||
6800 | ||
6801 | typedef enum { | |
6802 | ||
6803 | ||
6804 | ||
6805 | ||
6806 | ||
6807 | ||
6808 | DIKS_NULL = ((DIKT_UNICODE) | (0x00)), | |
6809 | DIKS_BACKSPACE = ((DIKT_UNICODE) | (0x08)), | |
6810 | DIKS_TAB = ((DIKT_UNICODE) | (0x09)), | |
6811 | DIKS_RETURN = ((DIKT_UNICODE) | (0x0D)), | |
6812 | DIKS_CANCEL = ((DIKT_UNICODE) | (0x18)), | |
6813 | DIKS_ESCAPE = ((DIKT_UNICODE) | (0x1B)), | |
6814 | DIKS_SPACE = ((DIKT_UNICODE) | (0x20)), | |
6815 | DIKS_EXCLAMATION_MARK = ((DIKT_UNICODE) | (0x21)), | |
6816 | DIKS_QUOTATION = ((DIKT_UNICODE) | (0x22)), | |
6817 | DIKS_NUMBER_SIGN = ((DIKT_UNICODE) | (0x23)), | |
6818 | DIKS_DOLLAR_SIGN = ((DIKT_UNICODE) | (0x24)), | |
6819 | DIKS_PERCENT_SIGN = ((DIKT_UNICODE) | (0x25)), | |
6820 | DIKS_AMPERSAND = ((DIKT_UNICODE) | (0x26)), | |
6821 | DIKS_APOSTROPHE = ((DIKT_UNICODE) | (0x27)), | |
6822 | DIKS_PARENTHESIS_LEFT = ((DIKT_UNICODE) | (0x28)), | |
6823 | DIKS_PARENTHESIS_RIGHT = ((DIKT_UNICODE) | (0x29)), | |
6824 | DIKS_ASTERISK = ((DIKT_UNICODE) | (0x2A)), | |
6825 | DIKS_PLUS_SIGN = ((DIKT_UNICODE) | (0x2B)), | |
6826 | DIKS_COMMA = ((DIKT_UNICODE) | (0x2C)), | |
6827 | DIKS_MINUS_SIGN = ((DIKT_UNICODE) | (0x2D)), | |
6828 | DIKS_PERIOD = ((DIKT_UNICODE) | (0x2E)), | |
6829 | DIKS_SLASH = ((DIKT_UNICODE) | (0x2F)), | |
6830 | DIKS_0 = ((DIKT_UNICODE) | (0x30)), | |
6831 | DIKS_1 = ((DIKT_UNICODE) | (0x31)), | |
6832 | DIKS_2 = ((DIKT_UNICODE) | (0x32)), | |
6833 | DIKS_3 = ((DIKT_UNICODE) | (0x33)), | |
6834 | DIKS_4 = ((DIKT_UNICODE) | (0x34)), | |
6835 | DIKS_5 = ((DIKT_UNICODE) | (0x35)), | |
6836 | DIKS_6 = ((DIKT_UNICODE) | (0x36)), | |
6837 | DIKS_7 = ((DIKT_UNICODE) | (0x37)), | |
6838 | DIKS_8 = ((DIKT_UNICODE) | (0x38)), | |
6839 | DIKS_9 = ((DIKT_UNICODE) | (0x39)), | |
6840 | DIKS_COLON = ((DIKT_UNICODE) | (0x3A)), | |
6841 | DIKS_SEMICOLON = ((DIKT_UNICODE) | (0x3B)), | |
6842 | DIKS_LESS_THAN_SIGN = ((DIKT_UNICODE) | (0x3C)), | |
6843 | DIKS_EQUALS_SIGN = ((DIKT_UNICODE) | (0x3D)), | |
6844 | DIKS_GREATER_THAN_SIGN = ((DIKT_UNICODE) | (0x3E)), | |
6845 | DIKS_QUESTION_MARK = ((DIKT_UNICODE) | (0x3F)), | |
6846 | DIKS_AT = ((DIKT_UNICODE) | (0x40)), | |
6847 | DIKS_CAPITAL_A = ((DIKT_UNICODE) | (0x41)), | |
6848 | DIKS_CAPITAL_B = ((DIKT_UNICODE) | (0x42)), | |
6849 | DIKS_CAPITAL_C = ((DIKT_UNICODE) | (0x43)), | |
6850 | DIKS_CAPITAL_D = ((DIKT_UNICODE) | (0x44)), | |
6851 | DIKS_CAPITAL_E = ((DIKT_UNICODE) | (0x45)), | |
6852 | DIKS_CAPITAL_F = ((DIKT_UNICODE) | (0x46)), | |
6853 | DIKS_CAPITAL_G = ((DIKT_UNICODE) | (0x47)), | |
6854 | DIKS_CAPITAL_H = ((DIKT_UNICODE) | (0x48)), | |
6855 | DIKS_CAPITAL_I = ((DIKT_UNICODE) | (0x49)), | |
6856 | DIKS_CAPITAL_J = ((DIKT_UNICODE) | (0x4A)), | |
6857 | DIKS_CAPITAL_K = ((DIKT_UNICODE) | (0x4B)), | |
6858 | DIKS_CAPITAL_L = ((DIKT_UNICODE) | (0x4C)), | |
6859 | DIKS_CAPITAL_M = ((DIKT_UNICODE) | (0x4D)), | |
6860 | DIKS_CAPITAL_N = ((DIKT_UNICODE) | (0x4E)), | |
6861 | DIKS_CAPITAL_O = ((DIKT_UNICODE) | (0x4F)), | |
6862 | DIKS_CAPITAL_P = ((DIKT_UNICODE) | (0x50)), | |
6863 | DIKS_CAPITAL_Q = ((DIKT_UNICODE) | (0x51)), | |
6864 | DIKS_CAPITAL_R = ((DIKT_UNICODE) | (0x52)), | |
6865 | DIKS_CAPITAL_S = ((DIKT_UNICODE) | (0x53)), | |
6866 | DIKS_CAPITAL_T = ((DIKT_UNICODE) | (0x54)), | |
6867 | DIKS_CAPITAL_U = ((DIKT_UNICODE) | (0x55)), | |
6868 | DIKS_CAPITAL_V = ((DIKT_UNICODE) | (0x56)), | |
6869 | DIKS_CAPITAL_W = ((DIKT_UNICODE) | (0x57)), | |
6870 | DIKS_CAPITAL_X = ((DIKT_UNICODE) | (0x58)), | |
6871 | DIKS_CAPITAL_Y = ((DIKT_UNICODE) | (0x59)), | |
6872 | DIKS_CAPITAL_Z = ((DIKT_UNICODE) | (0x5A)), | |
6873 | DIKS_SQUARE_BRACKET_LEFT = ((DIKT_UNICODE) | (0x5B)), | |
6874 | DIKS_BACKSLASH = ((DIKT_UNICODE) | (0x5C)), | |
6875 | DIKS_SQUARE_BRACKET_RIGHT = ((DIKT_UNICODE) | (0x5D)), | |
6876 | DIKS_CIRCUMFLEX_ACCENT = ((DIKT_UNICODE) | (0x5E)), | |
6877 | DIKS_UNDERSCORE = ((DIKT_UNICODE) | (0x5F)), | |
6878 | DIKS_GRAVE_ACCENT = ((DIKT_UNICODE) | (0x60)), | |
6879 | DIKS_SMALL_A = ((DIKT_UNICODE) | (0x61)), | |
6880 | DIKS_SMALL_B = ((DIKT_UNICODE) | (0x62)), | |
6881 | DIKS_SMALL_C = ((DIKT_UNICODE) | (0x63)), | |
6882 | DIKS_SMALL_D = ((DIKT_UNICODE) | (0x64)), | |
6883 | DIKS_SMALL_E = ((DIKT_UNICODE) | (0x65)), | |
6884 | DIKS_SMALL_F = ((DIKT_UNICODE) | (0x66)), | |
6885 | DIKS_SMALL_G = ((DIKT_UNICODE) | (0x67)), | |
6886 | DIKS_SMALL_H = ((DIKT_UNICODE) | (0x68)), | |
6887 | DIKS_SMALL_I = ((DIKT_UNICODE) | (0x69)), | |
6888 | DIKS_SMALL_J = ((DIKT_UNICODE) | (0x6A)), | |
6889 | DIKS_SMALL_K = ((DIKT_UNICODE) | (0x6B)), | |
6890 | DIKS_SMALL_L = ((DIKT_UNICODE) | (0x6C)), | |
6891 | DIKS_SMALL_M = ((DIKT_UNICODE) | (0x6D)), | |
6892 | DIKS_SMALL_N = ((DIKT_UNICODE) | (0x6E)), | |
6893 | DIKS_SMALL_O = ((DIKT_UNICODE) | (0x6F)), | |
6894 | DIKS_SMALL_P = ((DIKT_UNICODE) | (0x70)), | |
6895 | DIKS_SMALL_Q = ((DIKT_UNICODE) | (0x71)), | |
6896 | DIKS_SMALL_R = ((DIKT_UNICODE) | (0x72)), | |
6897 | DIKS_SMALL_S = ((DIKT_UNICODE) | (0x73)), | |
6898 | DIKS_SMALL_T = ((DIKT_UNICODE) | (0x74)), | |
6899 | DIKS_SMALL_U = ((DIKT_UNICODE) | (0x75)), | |
6900 | DIKS_SMALL_V = ((DIKT_UNICODE) | (0x76)), | |
6901 | DIKS_SMALL_W = ((DIKT_UNICODE) | (0x77)), | |
6902 | DIKS_SMALL_X = ((DIKT_UNICODE) | (0x78)), | |
6903 | DIKS_SMALL_Y = ((DIKT_UNICODE) | (0x79)), | |
6904 | DIKS_SMALL_Z = ((DIKT_UNICODE) | (0x7A)), | |
6905 | DIKS_CURLY_BRACKET_LEFT = ((DIKT_UNICODE) | (0x7B)), | |
6906 | DIKS_VERTICAL_BAR = ((DIKT_UNICODE) | (0x7C)), | |
6907 | DIKS_CURLY_BRACKET_RIGHT = ((DIKT_UNICODE) | (0x7D)), | |
6908 | DIKS_TILDE = ((DIKT_UNICODE) | (0x7E)), | |
6909 | DIKS_DELETE = ((DIKT_UNICODE) | (0x7F)), | |
6910 | ||
6911 | DIKS_ENTER = DIKS_RETURN, | |
6912 | ||
6913 | ||
6914 | ||
6915 | ||
6916 | DIKS_CURSOR_LEFT = ((DIKT_SPECIAL) | (0x00)), | |
6917 | DIKS_CURSOR_RIGHT = ((DIKT_SPECIAL) | (0x01)), | |
6918 | DIKS_CURSOR_UP = ((DIKT_SPECIAL) | (0x02)), | |
6919 | DIKS_CURSOR_DOWN = ((DIKT_SPECIAL) | (0x03)), | |
6920 | DIKS_INSERT = ((DIKT_SPECIAL) | (0x04)), | |
6921 | DIKS_HOME = ((DIKT_SPECIAL) | (0x05)), | |
6922 | DIKS_END = ((DIKT_SPECIAL) | (0x06)), | |
6923 | DIKS_PAGE_UP = ((DIKT_SPECIAL) | (0x07)), | |
6924 | DIKS_PAGE_DOWN = ((DIKT_SPECIAL) | (0x08)), | |
6925 | DIKS_PRINT = ((DIKT_SPECIAL) | (0x09)), | |
6926 | DIKS_PAUSE = ((DIKT_SPECIAL) | (0x0A)), | |
6927 | DIKS_OK = ((DIKT_SPECIAL) | (0x0B)), | |
6928 | DIKS_SELECT = ((DIKT_SPECIAL) | (0x0C)), | |
6929 | DIKS_GOTO = ((DIKT_SPECIAL) | (0x0D)), | |
6930 | DIKS_CLEAR = ((DIKT_SPECIAL) | (0x0E)), | |
6931 | DIKS_POWER = ((DIKT_SPECIAL) | (0x0F)), | |
6932 | DIKS_POWER2 = ((DIKT_SPECIAL) | (0x10)), | |
6933 | DIKS_OPTION = ((DIKT_SPECIAL) | (0x11)), | |
6934 | DIKS_MENU = ((DIKT_SPECIAL) | (0x12)), | |
6935 | DIKS_HELP = ((DIKT_SPECIAL) | (0x13)), | |
6936 | DIKS_INFO = ((DIKT_SPECIAL) | (0x14)), | |
6937 | DIKS_TIME = ((DIKT_SPECIAL) | (0x15)), | |
6938 | DIKS_VENDOR = ((DIKT_SPECIAL) | (0x16)), | |
6939 | ||
6940 | DIKS_ARCHIVE = ((DIKT_SPECIAL) | (0x17)), | |
6941 | DIKS_PROGRAM = ((DIKT_SPECIAL) | (0x18)), | |
6942 | DIKS_CHANNEL = ((DIKT_SPECIAL) | (0x19)), | |
6943 | DIKS_FAVORITES = ((DIKT_SPECIAL) | (0x1A)), | |
6944 | DIKS_EPG = ((DIKT_SPECIAL) | (0x1B)), | |
6945 | DIKS_PVR = ((DIKT_SPECIAL) | (0x1C)), | |
6946 | DIKS_MHP = ((DIKT_SPECIAL) | (0x1D)), | |
6947 | DIKS_LANGUAGE = ((DIKT_SPECIAL) | (0x1E)), | |
6948 | DIKS_TITLE = ((DIKT_SPECIAL) | (0x1F)), | |
6949 | DIKS_SUBTITLE = ((DIKT_SPECIAL) | (0x20)), | |
6950 | DIKS_ANGLE = ((DIKT_SPECIAL) | (0x21)), | |
6951 | DIKS_ZOOM = ((DIKT_SPECIAL) | (0x22)), | |
6952 | DIKS_MODE = ((DIKT_SPECIAL) | (0x23)), | |
6953 | DIKS_KEYBOARD = ((DIKT_SPECIAL) | (0x24)), | |
6954 | DIKS_PC = ((DIKT_SPECIAL) | (0x25)), | |
6955 | DIKS_SCREEN = ((DIKT_SPECIAL) | (0x26)), | |
6956 | ||
6957 | DIKS_TV = ((DIKT_SPECIAL) | (0x27)), | |
6958 | DIKS_TV2 = ((DIKT_SPECIAL) | (0x28)), | |
6959 | DIKS_VCR = ((DIKT_SPECIAL) | (0x29)), | |
6960 | DIKS_VCR2 = ((DIKT_SPECIAL) | (0x2A)), | |
6961 | DIKS_SAT = ((DIKT_SPECIAL) | (0x2B)), | |
6962 | DIKS_SAT2 = ((DIKT_SPECIAL) | (0x2C)), | |
6963 | DIKS_CD = ((DIKT_SPECIAL) | (0x2D)), | |
6964 | DIKS_TAPE = ((DIKT_SPECIAL) | (0x2E)), | |
6965 | DIKS_RADIO = ((DIKT_SPECIAL) | (0x2F)), | |
6966 | DIKS_TUNER = ((DIKT_SPECIAL) | (0x30)), | |
6967 | DIKS_PLAYER = ((DIKT_SPECIAL) | (0x31)), | |
6968 | DIKS_TEXT = ((DIKT_SPECIAL) | (0x32)), | |
6969 | DIKS_DVD = ((DIKT_SPECIAL) | (0x33)), | |
6970 | DIKS_AUX = ((DIKT_SPECIAL) | (0x34)), | |
6971 | DIKS_MP3 = ((DIKT_SPECIAL) | (0x35)), | |
6972 | DIKS_PHONE = ((DIKT_SPECIAL) | (0x36)), | |
6973 | DIKS_AUDIO = ((DIKT_SPECIAL) | (0x37)), | |
6974 | DIKS_VIDEO = ((DIKT_SPECIAL) | (0x38)), | |
6975 | ||
6976 | DIKS_INTERNET = ((DIKT_SPECIAL) | (0x39)), | |
6977 | DIKS_MAIL = ((DIKT_SPECIAL) | (0x3A)), | |
6978 | DIKS_NEWS = ((DIKT_SPECIAL) | (0x3B)), | |
6979 | DIKS_DIRECTORY = ((DIKT_SPECIAL) | (0x3C)), | |
6980 | DIKS_LIST = ((DIKT_SPECIAL) | (0x3D)), | |
6981 | DIKS_CALCULATOR = ((DIKT_SPECIAL) | (0x3E)), | |
6982 | DIKS_MEMO = ((DIKT_SPECIAL) | (0x3F)), | |
6983 | DIKS_CALENDAR = ((DIKT_SPECIAL) | (0x40)), | |
6984 | DIKS_EDITOR = ((DIKT_SPECIAL) | (0x41)), | |
6985 | ||
6986 | DIKS_RED = ((DIKT_SPECIAL) | (0x42)), | |
6987 | DIKS_GREEN = ((DIKT_SPECIAL) | (0x43)), | |
6988 | DIKS_YELLOW = ((DIKT_SPECIAL) | (0x44)), | |
6989 | DIKS_BLUE = ((DIKT_SPECIAL) | (0x45)), | |
6990 | ||
6991 | DIKS_CHANNEL_UP = ((DIKT_SPECIAL) | (0x46)), | |
6992 | DIKS_CHANNEL_DOWN = ((DIKT_SPECIAL) | (0x47)), | |
6993 | DIKS_BACK = ((DIKT_SPECIAL) | (0x48)), | |
6994 | DIKS_FORWARD = ((DIKT_SPECIAL) | (0x49)), | |
6995 | DIKS_FIRST = ((DIKT_SPECIAL) | (0x4A)), | |
6996 | DIKS_LAST = ((DIKT_SPECIAL) | (0x4B)), | |
6997 | DIKS_VOLUME_UP = ((DIKT_SPECIAL) | (0x4C)), | |
6998 | DIKS_VOLUME_DOWN = ((DIKT_SPECIAL) | (0x4D)), | |
6999 | DIKS_MUTE = ((DIKT_SPECIAL) | (0x4E)), | |
7000 | DIKS_AB = ((DIKT_SPECIAL) | (0x4F)), | |
7001 | DIKS_PLAYPAUSE = ((DIKT_SPECIAL) | (0x50)), | |
7002 | DIKS_PLAY = ((DIKT_SPECIAL) | (0x51)), | |
7003 | DIKS_STOP = ((DIKT_SPECIAL) | (0x52)), | |
7004 | DIKS_RESTART = ((DIKT_SPECIAL) | (0x53)), | |
7005 | DIKS_SLOW = ((DIKT_SPECIAL) | (0x54)), | |
7006 | DIKS_FAST = ((DIKT_SPECIAL) | (0x55)), | |
7007 | DIKS_RECORD = ((DIKT_SPECIAL) | (0x56)), | |
7008 | DIKS_EJECT = ((DIKT_SPECIAL) | (0x57)), | |
7009 | DIKS_SHUFFLE = ((DIKT_SPECIAL) | (0x58)), | |
7010 | DIKS_REWIND = ((DIKT_SPECIAL) | (0x59)), | |
7011 | DIKS_FASTFORWARD = ((DIKT_SPECIAL) | (0x5A)), | |
7012 | DIKS_PREVIOUS = ((DIKT_SPECIAL) | (0x5B)), | |
7013 | DIKS_NEXT = ((DIKT_SPECIAL) | (0x5C)), | |
7014 | DIKS_BEGIN = ((DIKT_SPECIAL) | (0x5D)), | |
7015 | ||
7016 | DIKS_DIGITS = ((DIKT_SPECIAL) | (0x5E)), | |
7017 | DIKS_TEEN = ((DIKT_SPECIAL) | (0x5F)), | |
7018 | DIKS_TWEN = ((DIKT_SPECIAL) | (0x60)), | |
7019 | ||
7020 | DIKS_BREAK = ((DIKT_SPECIAL) | (0x61)), | |
7021 | DIKS_EXIT = ((DIKT_SPECIAL) | (0x62)), | |
7022 | DIKS_SETUP = ((DIKT_SPECIAL) | (0x63)), | |
7023 | ||
7024 | DIKS_CURSOR_LEFT_UP = ((DIKT_SPECIAL) | (0x64)), | |
7025 | DIKS_CURSOR_LEFT_DOWN = ((DIKT_SPECIAL) | (0x65)), | |
7026 | DIKS_CURSOR_UP_RIGHT = ((DIKT_SPECIAL) | (0x66)), | |
7027 | DIKS_CURSOR_DOWN_RIGHT = ((DIKT_SPECIAL) | (0x67)), | |
7028 | ||
7029 | ||
7030 | ||
7031 | ||
7032 | ||
7033 | ||
7034 | DIKS_F1 = (((DIKT_FUNCTION) | (1))), | |
7035 | DIKS_F2 = (((DIKT_FUNCTION) | (2))), | |
7036 | DIKS_F3 = (((DIKT_FUNCTION) | (3))), | |
7037 | DIKS_F4 = (((DIKT_FUNCTION) | (4))), | |
7038 | DIKS_F5 = (((DIKT_FUNCTION) | (5))), | |
7039 | DIKS_F6 = (((DIKT_FUNCTION) | (6))), | |
7040 | DIKS_F7 = (((DIKT_FUNCTION) | (7))), | |
7041 | DIKS_F8 = (((DIKT_FUNCTION) | (8))), | |
7042 | DIKS_F9 = (((DIKT_FUNCTION) | (9))), | |
7043 | DIKS_F10 = (((DIKT_FUNCTION) | (10))), | |
7044 | DIKS_F11 = (((DIKT_FUNCTION) | (11))), | |
7045 | DIKS_F12 = (((DIKT_FUNCTION) | (12))), | |
7046 | ||
7047 | ||
7048 | ||
7049 | ||
7050 | DIKS_SHIFT = (((DIKT_MODIFIER) | ((1 << DIMKI_SHIFT)))), | |
7051 | DIKS_CONTROL = (((DIKT_MODIFIER) | ((1 << DIMKI_CONTROL)))), | |
7052 | DIKS_ALT = (((DIKT_MODIFIER) | ((1 << DIMKI_ALT)))), | |
7053 | DIKS_ALTGR = (((DIKT_MODIFIER) | ((1 << DIMKI_ALTGR)))), | |
7054 | DIKS_META = (((DIKT_MODIFIER) | ((1 << DIMKI_META)))), | |
7055 | DIKS_SUPER = (((DIKT_MODIFIER) | ((1 << DIMKI_SUPER)))), | |
7056 | DIKS_HYPER = (((DIKT_MODIFIER) | ((1 << DIMKI_HYPER)))), | |
7057 | ||
7058 | ||
7059 | ||
7060 | ||
7061 | DIKS_CAPS_LOCK = ((DIKT_LOCK) | (0x00)), | |
7062 | DIKS_NUM_LOCK = ((DIKT_LOCK) | (0x01)), | |
7063 | DIKS_SCROLL_LOCK = ((DIKT_LOCK) | (0x02)), | |
7064 | ||
7065 | ||
7066 | ||
7067 | ||
7068 | DIKS_DEAD_ABOVEDOT = ((DIKT_DEAD) | (0x00)), | |
7069 | DIKS_DEAD_ABOVERING = ((DIKT_DEAD) | (0x01)), | |
7070 | DIKS_DEAD_ACUTE = ((DIKT_DEAD) | (0x02)), | |
7071 | DIKS_DEAD_BREVE = ((DIKT_DEAD) | (0x03)), | |
7072 | DIKS_DEAD_CARON = ((DIKT_DEAD) | (0x04)), | |
7073 | DIKS_DEAD_CEDILLA = ((DIKT_DEAD) | (0x05)), | |
7074 | DIKS_DEAD_CIRCUMFLEX = ((DIKT_DEAD) | (0x06)), | |
7075 | DIKS_DEAD_DIAERESIS = ((DIKT_DEAD) | (0x07)), | |
7076 | DIKS_DEAD_DOUBLEACUTE = ((DIKT_DEAD) | (0x08)), | |
7077 | DIKS_DEAD_GRAVE = ((DIKT_DEAD) | (0x09)), | |
7078 | DIKS_DEAD_IOTA = ((DIKT_DEAD) | (0x0A)), | |
7079 | DIKS_DEAD_MACRON = ((DIKT_DEAD) | (0x0B)), | |
7080 | DIKS_DEAD_OGONEK = ((DIKT_DEAD) | (0x0C)), | |
7081 | DIKS_DEAD_SEMIVOICED_SOUND = ((DIKT_DEAD) | (0x0D)), | |
7082 | DIKS_DEAD_TILDE = ((DIKT_DEAD) | (0x0E)), | |
7083 | DIKS_DEAD_VOICED_SOUND = ((DIKT_DEAD) | (0x0F)), | |
7084 | ||
7085 | ||
7086 | ||
7087 | ||
7088 | ||
7089 | ||
7090 | DIKS_CUSTOM0 = (((DIKT_CUSTOM) | (0))), | |
7091 | DIKS_CUSTOM1 = (((DIKT_CUSTOM) | (1))), | |
7092 | DIKS_CUSTOM2 = (((DIKT_CUSTOM) | (2))), | |
7093 | DIKS_CUSTOM3 = (((DIKT_CUSTOM) | (3))), | |
7094 | DIKS_CUSTOM4 = (((DIKT_CUSTOM) | (4))), | |
7095 | DIKS_CUSTOM5 = (((DIKT_CUSTOM) | (5))), | |
7096 | DIKS_CUSTOM6 = (((DIKT_CUSTOM) | (6))), | |
7097 | DIKS_CUSTOM7 = (((DIKT_CUSTOM) | (7))), | |
7098 | DIKS_CUSTOM8 = (((DIKT_CUSTOM) | (8))), | |
7099 | DIKS_CUSTOM9 = (((DIKT_CUSTOM) | (9))) | |
7100 | } DFBInputDeviceKeySymbol; | |
7101 | ||
7102 | ||
7103 | ||
7104 | ||
7105 | typedef enum { | |
7106 | DILS_SCROLL = 0x00000001, | |
7107 | DILS_NUM = 0x00000002, | |
7108 | DILS_CAPS = 0x00000004 | |
7109 | } DFBInputDeviceLockState; | |
7110 | ||
7111 | ||
7112 | ||
7113 | ||
7114 | typedef enum { | |
7115 | DIKSI_BASE = 0x00, | |
7116 | ||
7117 | DIKSI_BASE_SHIFT = 0x01, | |
7118 | ||
7119 | DIKSI_ALT = 0x02, | |
7120 | ||
7121 | DIKSI_ALT_SHIFT = 0x03, | |
7122 | ||
7123 | ||
7124 | DIKSI_LAST = DIKSI_ALT_SHIFT | |
7125 | } DFBInputDeviceKeymapSymbolIndex; | |
7126 | ||
7127 | ||
7128 | ||
7129 | ||
7130 | typedef struct { | |
7131 | int code; | |
7132 | ||
7133 | DFBInputDeviceLockState locks; | |
7134 | ||
7135 | DFBInputDeviceKeyIdentifier identifier; | |
7136 | DFBInputDeviceKeySymbol symbols[DIKSI_LAST+1]; | |
7137 | ||
7138 | } DFBInputDeviceKeymapEntry; | |
7139 | # 35 "/usr/include/directfb/directfb.h" 2 | |
7140 | # 46 "/usr/include/directfb/directfb.h" | |
7141 | #define DECLARE_INTERFACE(IFACE) typedef struct _ ##IFACE IFACE; | |
7142 | ||
7143 | ||
7144 | ||
7145 | ||
7146 | ||
7147 | ||
7148 | ||
7149 | #define DEFINE_INTERFACE(IFACE,IDATA...) struct _ ##IFACE { void *priv; int magic; DFBResult (*AddRef)( IFACE *thiz ); DFBResult (*Release)( IFACE *thiz ); IDATA }; | |
7150 | # 68 "/usr/include/directfb/directfb.h" | |
7151 | extern const unsigned int directfb_major_version; | |
7152 | extern const unsigned int directfb_minor_version; | |
7153 | extern const unsigned int directfb_micro_version; | |
7154 | extern const unsigned int directfb_binary_age; | |
7155 | extern const unsigned int directfb_interface_age; | |
7156 | ||
7157 | ||
7158 | ||
7159 | ||
7160 | ||
7161 | const char * DirectFBCheckVersion( unsigned int required_major, | |
7162 | unsigned int required_minor, | |
7163 | unsigned int required_micro ); | |
7164 | ||
7165 | ||
7166 | ||
7167 | ||
7168 | ||
7169 | ||
7170 | typedef struct _IDirectFB IDirectFB; | |
7171 | ||
7172 | ||
7173 | ||
7174 | ||
7175 | ||
7176 | ||
7177 | typedef struct _IDirectFBScreen IDirectFBScreen; | |
7178 | ||
7179 | ||
7180 | ||
7181 | ||
7182 | ||
7183 | typedef struct _IDirectFBDisplayLayer IDirectFBDisplayLayer; | |
7184 | ||
7185 | ||
7186 | ||
7187 | ||
7188 | ||
7189 | typedef struct _IDirectFBSurface IDirectFBSurface; | |
7190 | ||
7191 | ||
7192 | ||
7193 | ||
7194 | typedef struct _IDirectFBPalette IDirectFBPalette; | |
7195 | ||
7196 | ||
7197 | ||
7198 | ||
7199 | ||
7200 | ||
7201 | typedef struct _IDirectFBWindow IDirectFBWindow; | |
7202 | ||
7203 | ||
7204 | ||
7205 | ||
7206 | typedef struct _IDirectFBInputDevice IDirectFBInputDevice; | |
7207 | ||
7208 | ||
7209 | ||
7210 | ||
7211 | typedef struct _IDirectFBEventBuffer IDirectFBEventBuffer; | |
7212 | ||
7213 | ||
7214 | ||
7215 | ||
7216 | typedef struct _IDirectFBFont IDirectFBFont; | |
7217 | ||
7218 | ||
7219 | ||
7220 | ||
7221 | typedef struct _IDirectFBImageProvider IDirectFBImageProvider; | |
7222 | ||
7223 | ||
7224 | ||
7225 | ||
7226 | typedef struct _IDirectFBVideoProvider IDirectFBVideoProvider; | |
7227 | ||
7228 | ||
7229 | ||
7230 | ||
7231 | typedef struct _IDirectFBDataBuffer IDirectFBDataBuffer; | |
7232 | ||
7233 | ||
7234 | ||
7235 | ||
7236 | typedef struct _IDirectFBGL IDirectFBGL; | |
7237 | ||
7238 | ||
7239 | ||
7240 | ||
7241 | ||
7242 | ||
7243 | ||
7244 | typedef enum { | |
7245 | DFB_OK, | |
7246 | DFB_FAILURE, | |
7247 | DFB_INIT, | |
7248 | DFB_BUG, | |
7249 | DFB_DEAD, | |
7250 | DFB_UNSUPPORTED, | |
7251 | DFB_UNIMPLEMENTED, | |
7252 | DFB_ACCESSDENIED, | |
7253 | DFB_INVARG, | |
7254 | DFB_NOSYSTEMMEMORY, | |
7255 | DFB_NOVIDEOMEMORY, | |
7256 | DFB_LOCKED, | |
7257 | DFB_BUFFEREMPTY, | |
7258 | DFB_FILENOTFOUND, | |
7259 | DFB_IO, | |
7260 | DFB_BUSY, | |
7261 | DFB_NOIMPL, | |
7262 | DFB_MISSINGFONT, | |
7263 | DFB_TIMEOUT, | |
7264 | DFB_MISSINGIMAGE, | |
7265 | DFB_THIZNULL, | |
7266 | DFB_IDNOTFOUND, | |
7267 | DFB_INVAREA, | |
7268 | DFB_DESTROYED, | |
7269 | DFB_FUSION, | |
7270 | DFB_BUFFERTOOLARGE, | |
7271 | DFB_INTERRUPTED, | |
7272 | DFB_NOCONTEXT, | |
7273 | DFB_TEMPUNAVAIL, | |
7274 | DFB_LIMITEXCEEDED, | |
7275 | DFB_NOSUCHMETHOD, | |
7276 | DFB_NOSUCHINSTANCE, | |
7277 | DFB_ITEMNOTFOUND, | |
7278 | DFB_VERSIONMISMATCH, | |
7279 | DFB_NOSHAREDMEMORY, | |
7280 | DFB_EOF | |
7281 | } DFBResult; | |
7282 | ||
7283 | ||
7284 | ||
7285 | ||
7286 | typedef enum { | |
7287 | DFB_FALSE = 0, | |
7288 | DFB_TRUE = !DFB_FALSE | |
7289 | } DFBBoolean; | |
7290 | ||
7291 | ||
7292 | ||
7293 | ||
7294 | typedef struct { | |
7295 | int x; | |
7296 | int y; | |
7297 | } DFBPoint; | |
7298 | ||
7299 | ||
7300 | ||
7301 | ||
7302 | typedef struct { | |
7303 | int x; | |
7304 | int w; | |
7305 | } DFBSpan; | |
7306 | ||
7307 | ||
7308 | ||
7309 | ||
7310 | typedef struct { | |
7311 | int w; | |
7312 | int h; | |
7313 | } DFBDimension; | |
7314 | ||
7315 | ||
7316 | ||
7317 | ||
7318 | typedef struct { | |
7319 | int x; | |
7320 | int y; | |
7321 | int w; | |
7322 | int h; | |
7323 | } DFBRectangle; | |
7324 | ||
7325 | ||
7326 | ||
7327 | ||
7328 | ||
7329 | ||
7330 | typedef struct { | |
7331 | float x; | |
7332 | float y; | |
7333 | float w; | |
7334 | float h; | |
7335 | } DFBLocation; | |
7336 | ||
7337 | ||
7338 | ||
7339 | ||
7340 | ||
7341 | ||
7342 | typedef struct { | |
7343 | int x1; | |
7344 | int y1; | |
7345 | int x2; | |
7346 | int y2; | |
7347 | } DFBRegion; | |
7348 | ||
7349 | ||
7350 | ||
7351 | ||
7352 | ||
7353 | ||
7354 | typedef struct { | |
7355 | int l; | |
7356 | int t; | |
7357 | int r; | |
7358 | int b; | |
7359 | } DFBInsets; | |
7360 | ||
7361 | ||
7362 | ||
7363 | ||
7364 | typedef struct { | |
7365 | int x1; | |
7366 | int y1; | |
7367 | int x2; | |
7368 | int y2; | |
7369 | int x3; | |
7370 | int y3; | |
7371 | } DFBTriangle; | |
7372 | ||
7373 | ||
7374 | ||
7375 | ||
7376 | typedef struct { | |
7377 | u_int8_t a; | |
7378 | u_int8_t r; | |
7379 | u_int8_t g; | |
7380 | u_int8_t b; | |
7381 | } DFBColor; | |
7382 | ||
7383 | ||
7384 | ||
7385 | ||
7386 | #define DFB_RECTANGLE_EQUAL(a,b) ((a).x == (b).x && (a).y == (b).y && (a).w == (b).w && (a).h == (b).h) | |
7387 | ||
7388 | ||
7389 | ||
7390 | ||
7391 | ||
7392 | ||
7393 | ||
7394 | #define DFB_LOCATION_EQUAL(a,b) ((a).x == (b).x && (a).y == (b).y && (a).w == (b).w && (a).h == (b).h) | |
7395 | ||
7396 | ||
7397 | ||
7398 | ||
7399 | ||
7400 | ||
7401 | ||
7402 | #define DFB_REGION_EQUAL(a,b) ((a).x1 == (b).x1 && (a).y1 == (b).y1 && (a).x2 == (b).x2 && (a).y2 == (b).y2) | |
7403 | ||
7404 | ||
7405 | ||
7406 | ||
7407 | ||
7408 | ||
7409 | ||
7410 | #define DFB_COLOR_EQUAL(x,y) ((x).a == (y).a && (x).r == (y).r && (x).g == (y).g && (x).b == (y).b) | |
7411 | # 336 "/usr/include/directfb/directfb.h" | |
7412 | DFBResult DirectFBError( | |
7413 | const char *msg, | |
7414 | DFBResult result | |
7415 | ); | |
7416 | ||
7417 | ||
7418 | ||
7419 | ||
7420 | DFBResult DirectFBErrorFatal( | |
7421 | const char *msg, | |
7422 | DFBResult result | |
7423 | ); | |
7424 | ||
7425 | ||
7426 | ||
7427 | ||
7428 | const char *DirectFBErrorString( | |
7429 | DFBResult result | |
7430 | ); | |
7431 | ||
7432 | ||
7433 | ||
7434 | ||
7435 | ||
7436 | ||
7437 | const char *DirectFBUsageString( void ); | |
7438 | ||
7439 | ||
7440 | ||
7441 | ||
7442 | ||
7443 | ||
7444 | DFBResult DirectFBInit( | |
7445 | int *argc, | |
7446 | char *(*argv[]) | |
7447 | ); | |
7448 | ||
7449 | ||
7450 | ||
7451 | ||
7452 | ||
7453 | ||
7454 | DFBResult DirectFBSetOption( | |
7455 | const char *name, | |
7456 | const char *value | |
7457 | ); | |
7458 | ||
7459 | ||
7460 | ||
7461 | ||
7462 | DFBResult DirectFBCreate( | |
7463 | IDirectFB **interface | |
7464 | ||
7465 | ); | |
7466 | ||
7467 | ||
7468 | typedef unsigned int DFBScreenID; | |
7469 | typedef unsigned int DFBDisplayLayerID; | |
7470 | typedef unsigned int DFBDisplayLayerSourceID; | |
7471 | typedef unsigned int DFBWindowID; | |
7472 | typedef unsigned int DFBInputDeviceID; | |
7473 | ||
7474 | typedef u_int32_t DFBDisplayLayerIDs; | |
7475 | ||
7476 | ||
7477 | ||
7478 | ||
7479 | #define DFB_DISPLAYLAYER_IDS_MAX 32 | |
7480 | ||
7481 | ||
7482 | ||
7483 | ||
7484 | #define DFB_DISPLAYLAYER_IDS_ADD(ids,id) (ids) |= (1 << (id)) | |
7485 | ||
7486 | ||
7487 | ||
7488 | ||
7489 | #define DFB_DISPLAYLAYER_IDS_REMOVE(ids,id) (ids) &= ~(1 << (id)) | |
7490 | ||
7491 | ||
7492 | ||
7493 | ||
7494 | #define DFB_DISPLAYLAYER_IDS_HAVE(ids,id) ((ids) & (1 << (id))) | |
7495 | ||
7496 | ||
7497 | ||
7498 | ||
7499 | #define DFB_DISPLAYLAYER_IDS_EMPTY(ids) (ids) = 0 | |
7500 | ||
7501 | ||
7502 | ||
7503 | ||
7504 | ||
7505 | typedef enum { | |
7506 | DFSCL_NORMAL = 0x00000000, | |
7507 | ||
7508 | ||
7509 | ||
7510 | ||
7511 | DFSCL_FULLSCREEN, | |
7512 | ||
7513 | ||
7514 | ||
7515 | DFSCL_EXCLUSIVE | |
7516 | ||
7517 | ||
7518 | ||
7519 | ||
7520 | ||
7521 | ||
7522 | } DFBCooperativeLevel; | |
7523 | ||
7524 | ||
7525 | ||
7526 | ||
7527 | typedef enum { | |
7528 | DLCAPS_NONE = 0x00000000, | |
7529 | ||
7530 | DLCAPS_SURFACE = 0x00000001, | |
7531 | ||
7532 | ||
7533 | ||
7534 | DLCAPS_OPACITY = 0x00000002, | |
7535 | ||
7536 | DLCAPS_ALPHACHANNEL = 0x00000004, | |
7537 | ||
7538 | DLCAPS_SCREEN_LOCATION = 0x00000008, | |
7539 | ||
7540 | ||
7541 | DLCAPS_FLICKER_FILTERING = 0x00000010, | |
7542 | ||
7543 | DLCAPS_DEINTERLACING = 0x00000020, | |
7544 | ||
7545 | ||
7546 | DLCAPS_SRC_COLORKEY = 0x00000040, | |
7547 | DLCAPS_DST_COLORKEY = 0x00000080, | |
7548 | ||
7549 | ||
7550 | DLCAPS_BRIGHTNESS = 0x00000100, | |
7551 | DLCAPS_CONTRAST = 0x00000200, | |
7552 | DLCAPS_HUE = 0x00000400, | |
7553 | DLCAPS_SATURATION = 0x00000800, | |
7554 | DLCAPS_LEVELS = 0x00001000, | |
7555 | ||
7556 | DLCAPS_FIELD_PARITY = 0x00002000, | |
7557 | DLCAPS_WINDOWS = 0x00004000, | |
7558 | DLCAPS_SOURCES = 0x00008000, | |
7559 | DLCAPS_ALPHA_RAMP = 0x00010000, | |
7560 | ||
7561 | ||
7562 | ||
7563 | ||
7564 | ||
7565 | DLCAPS_PREMULTIPLIED = 0x00020000, | |
7566 | ||
7567 | DLCAPS_SCREEN_POSITION = 0x00100000, | |
7568 | DLCAPS_SCREEN_SIZE = 0x00200000, | |
7569 | ||
7570 | DLCAPS_ALL = 0x0033FFFF | |
7571 | } DFBDisplayLayerCapabilities; | |
7572 | ||
7573 | ||
7574 | ||
7575 | ||
7576 | typedef enum { | |
7577 | DSCCAPS_NONE = 0x00000000, | |
7578 | ||
7579 | DSCCAPS_VSYNC = 0x00000001, | |
7580 | ||
7581 | DSCCAPS_POWER_MANAGEMENT = 0x00000002, | |
7582 | ||
7583 | DSCCAPS_MIXERS = 0x00000010, | |
7584 | DSCCAPS_ENCODERS = 0x00000020, | |
7585 | DSCCAPS_OUTPUTS = 0x00000040, | |
7586 | ||
7587 | DSCCAPS_ALL = 0x00000073 | |
7588 | } DFBScreenCapabilities; | |
7589 | ||
7590 | ||
7591 | ||
7592 | ||
7593 | typedef enum { | |
7594 | DLOP_NONE = 0x00000000, | |
7595 | DLOP_ALPHACHANNEL = 0x00000001, | |
7596 | ||
7597 | ||
7598 | DLOP_FLICKER_FILTERING = 0x00000002, | |
7599 | DLOP_DEINTERLACING = 0x00000004, | |
7600 | ||
7601 | DLOP_SRC_COLORKEY = 0x00000008, | |
7602 | DLOP_DST_COLORKEY = 0x00000010, | |
7603 | DLOP_OPACITY = 0x00000020, | |
7604 | ||
7605 | DLOP_FIELD_PARITY = 0x00000040 | |
7606 | } DFBDisplayLayerOptions; | |
7607 | ||
7608 | ||
7609 | ||
7610 | ||
7611 | typedef enum { | |
7612 | DLBM_UNKNOWN = 0x00000000, | |
7613 | ||
7614 | DLBM_FRONTONLY = 0x00000001, | |
7615 | DLBM_BACKVIDEO = 0x00000002, | |
7616 | DLBM_BACKSYSTEM = 0x00000004, | |
7617 | DLBM_TRIPLE = 0x00000008, | |
7618 | DLBM_WINDOWS = 0x00000010 | |
7619 | ||
7620 | } DFBDisplayLayerBufferMode; | |
7621 | ||
7622 | ||
7623 | ||
7624 | ||
7625 | typedef enum { | |
7626 | DSDESC_NONE = 0x00000000, | |
7627 | ||
7628 | DSDESC_CAPS = 0x00000001, | |
7629 | DSDESC_WIDTH = 0x00000002, | |
7630 | DSDESC_HEIGHT = 0x00000004, | |
7631 | DSDESC_PIXELFORMAT = 0x00000008, | |
7632 | DSDESC_PREALLOCATED = 0x00000010, | |
7633 | ||
7634 | ||
7635 | ||
7636 | ||
7637 | ||
7638 | ||
7639 | DSDESC_PALETTE = 0x00000020, | |
7640 | ||
7641 | ||
7642 | ||
7643 | DSDESC_ALL = 0x0000003F | |
7644 | } DFBSurfaceDescriptionFlags; | |
7645 | ||
7646 | ||
7647 | ||
7648 | ||
7649 | typedef enum { | |
7650 | DPDESC_CAPS = 0x00000001, | |
7651 | DPDESC_SIZE = 0x00000002, | |
7652 | DPDESC_ENTRIES = 0x00000004 | |
7653 | ||
7654 | ||
7655 | } DFBPaletteDescriptionFlags; | |
7656 | ||
7657 | ||
7658 | ||
7659 | ||
7660 | typedef enum { | |
7661 | DSCAPS_NONE = 0x00000000, | |
7662 | ||
7663 | DSCAPS_PRIMARY = 0x00000001, | |
7664 | DSCAPS_SYSTEMONLY = 0x00000002, | |
7665 | ||
7666 | DSCAPS_VIDEOONLY = 0x00000004, | |
7667 | ||
7668 | DSCAPS_DOUBLE = 0x00000010, | |
7669 | DSCAPS_SUBSURFACE = 0x00000020, | |
7670 | ||
7671 | DSCAPS_INTERLACED = 0x00000040, | |
7672 | ||
7673 | ||
7674 | ||
7675 | DSCAPS_SEPARATED = 0x00000080, | |
7676 | ||
7677 | ||
7678 | ||
7679 | DSCAPS_STATIC_ALLOC = 0x00000100, | |
7680 | ||
7681 | ||
7682 | ||
7683 | ||
7684 | ||
7685 | DSCAPS_TRIPLE = 0x00000200, | |
7686 | ||
7687 | DSCAPS_PREMULTIPLIED = 0x00001000, | |
7688 | ||
7689 | DSCAPS_DEPTH = 0x00010000, | |
7690 | ||
7691 | DSCAPS_ALL = 0x000113F7, | |
7692 | ||
7693 | ||
7694 | DSCAPS_FLIPPING = DSCAPS_DOUBLE | DSCAPS_TRIPLE | |
7695 | ||
7696 | } DFBSurfaceCapabilities; | |
7697 | ||
7698 | ||
7699 | ||
7700 | ||
7701 | typedef enum { | |
7702 | DPCAPS_NONE = 0x00000000 | |
7703 | } DFBPaletteCapabilities; | |
7704 | ||
7705 | ||
7706 | ||
7707 | ||
7708 | typedef enum { | |
7709 | DSDRAW_NOFX = 0x00000000, | |
7710 | DSDRAW_BLEND = 0x00000001, | |
7711 | DSDRAW_DST_COLORKEY = 0x00000002, | |
7712 | ||
7713 | DSDRAW_SRC_PREMULTIPLY = 0x00000004, | |
7714 | ||
7715 | DSDRAW_DST_PREMULTIPLY = 0x00000008, | |
7716 | DSDRAW_DEMULTIPLY = 0x00000010, | |
7717 | ||
7718 | DSDRAW_XOR = 0x00000020 | |
7719 | ||
7720 | } DFBSurfaceDrawingFlags; | |
7721 | ||
7722 | ||
7723 | ||
7724 | ||
7725 | typedef enum { | |
7726 | DSBLIT_NOFX = 0x00000000, | |
7727 | DSBLIT_BLEND_ALPHACHANNEL = 0x00000001, | |
7728 | ||
7729 | DSBLIT_BLEND_COLORALPHA = 0x00000002, | |
7730 | ||
7731 | DSBLIT_COLORIZE = 0x00000004, | |
7732 | ||
7733 | DSBLIT_SRC_COLORKEY = 0x00000008, | |
7734 | DSBLIT_DST_COLORKEY = 0x00000010, | |
7735 | ||
7736 | DSBLIT_SRC_PREMULTIPLY = 0x00000020, | |
7737 | ||
7738 | DSBLIT_DST_PREMULTIPLY = 0x00000040, | |
7739 | DSBLIT_DEMULTIPLY = 0x00000080, | |
7740 | ||
7741 | DSBLIT_DEINTERLACE = 0x00000100, | |
7742 | ||
7743 | ||
7744 | DSBLIT_SRC_PREMULTCOLOR = 0x00000200, | |
7745 | DSBLIT_XOR = 0x00000400 | |
7746 | ||
7747 | } DFBSurfaceBlittingFlags; | |
7748 | ||
7749 | ||
7750 | ||
7751 | ||
7752 | typedef enum { | |
7753 | DFXL_NONE = 0x00000000, | |
7754 | ||
7755 | DFXL_FILLRECTANGLE = 0x00000001, | |
7756 | DFXL_DRAWRECTANGLE = 0x00000002, | |
7757 | DFXL_DRAWLINE = 0x00000004, | |
7758 | DFXL_FILLTRIANGLE = 0x00000008, | |
7759 | ||
7760 | DFXL_BLIT = 0x00010000, | |
7761 | DFXL_STRETCHBLIT = 0x00020000, | |
7762 | DFXL_TEXTRIANGLES = 0x00040000, | |
7763 | ||
7764 | DFXL_DRAWSTRING = 0x01000000, | |
7765 | ||
7766 | DFXL_ALL = 0x0107000F | |
7767 | } DFBAccelerationMask; | |
7768 | ||
7769 | ||
7770 | ||
7771 | ||
7772 | ||
7773 | #define DFB_DRAWING_FUNCTION(a) ((a) & 0x0000FFFF) | |
7774 | ||
7775 | ||
7776 | ||
7777 | ||
7778 | #define DFB_BLITTING_FUNCTION(a) ((a) & 0xFFFF0000) | |
7779 | ||
7780 | ||
7781 | ||
7782 | ||
7783 | ||
7784 | typedef enum { | |
7785 | DLTF_NONE = 0x00000000, | |
7786 | ||
7787 | DLTF_GRAPHICS = 0x00000001, | |
7788 | DLTF_VIDEO = 0x00000002, | |
7789 | DLTF_STILL_PICTURE = 0x00000004, | |
7790 | DLTF_BACKGROUND = 0x00000008, | |
7791 | ||
7792 | DLTF_ALL = 0x0000000F | |
7793 | } DFBDisplayLayerTypeFlags; | |
7794 | ||
7795 | ||
7796 | ||
7797 | ||
7798 | ||
7799 | typedef enum { | |
7800 | DIDTF_NONE = 0x00000000, | |
7801 | ||
7802 | DIDTF_KEYBOARD = 0x00000001, | |
7803 | DIDTF_MOUSE = 0x00000002, | |
7804 | DIDTF_JOYSTICK = 0x00000004, | |
7805 | DIDTF_REMOTE = 0x00000008, | |
7806 | DIDTF_VIRTUAL = 0x00000010, | |
7807 | ||
7808 | DIDTF_ALL = 0x0000001F | |
7809 | } DFBInputDeviceTypeFlags; | |
7810 | ||
7811 | ||
7812 | ||
7813 | ||
7814 | typedef enum { | |
7815 | DICAPS_KEYS = 0x00000001, | |
7816 | DICAPS_AXES = 0x00000002, | |
7817 | DICAPS_BUTTONS = 0x00000004, | |
7818 | ||
7819 | DICAPS_ALL = 0x00000007 | |
7820 | } DFBInputDeviceCapabilities; | |
7821 | ||
7822 | ||
7823 | ||
7824 | ||
7825 | typedef enum { | |
7826 | DIBI_LEFT = 0x00000000, | |
7827 | DIBI_RIGHT = 0x00000001, | |
7828 | DIBI_MIDDLE = 0x00000002, | |
7829 | ||
7830 | DIBI_FIRST = DIBI_LEFT, | |
7831 | ||
7832 | DIBI_LAST = 0x0000001F | |
7833 | } DFBInputDeviceButtonIdentifier; | |
7834 | # 766 "/usr/include/directfb/directfb.h" | |
7835 | typedef enum { | |
7836 | DIAI_X = 0x00000000, | |
7837 | DIAI_Y = 0x00000001, | |
7838 | DIAI_Z = 0x00000002, | |
7839 | ||
7840 | DIAI_FIRST = DIAI_X, | |
7841 | ||
7842 | DIAI_LAST = 0x0000001F | |
7843 | } DFBInputDeviceAxisIdentifier; | |
7844 | ||
7845 | ||
7846 | ||
7847 | ||
7848 | typedef enum { | |
7849 | DWDESC_CAPS = 0x00000001, | |
7850 | DWDESC_WIDTH = 0x00000002, | |
7851 | DWDESC_HEIGHT = 0x00000004, | |
7852 | DWDESC_PIXELFORMAT = 0x00000008, | |
7853 | DWDESC_POSX = 0x00000010, | |
7854 | DWDESC_POSY = 0x00000020, | |
7855 | DWDESC_SURFACE_CAPS = 0x00000040 | |
7856 | ||
7857 | } DFBWindowDescriptionFlags; | |
7858 | ||
7859 | ||
7860 | ||
7861 | ||
7862 | typedef enum { | |
7863 | DBDESC_FILE = 0x00000001, | |
7864 | ||
7865 | DBDESC_MEMORY = 0x00000002 | |
7866 | ||
7867 | } DFBDataBufferDescriptionFlags; | |
7868 | ||
7869 | ||
7870 | ||
7871 | ||
7872 | typedef enum { | |
7873 | DWCAPS_NONE = 0x00000000, | |
7874 | DWCAPS_ALPHACHANNEL = 0x00000001, | |
7875 | ||
7876 | DWCAPS_DOUBLEBUFFER = 0x00000002, | |
7877 | ||
7878 | ||
7879 | ||
7880 | ||
7881 | ||
7882 | ||
7883 | ||
7884 | DWCAPS_INPUTONLY = 0x00000004, | |
7885 | ||
7886 | ||
7887 | DWCAPS_NODECORATION = 0x00000008, | |
7888 | DWCAPS_ALL = 0x0000000F | |
7889 | } DFBWindowCapabilities; | |
7890 | # 832 "/usr/include/directfb/directfb.h" | |
7891 | typedef enum { | |
7892 | DFFA_NONE = 0x00000000, | |
7893 | DFFA_NOKERNING = 0x00000001, | |
7894 | DFFA_NOHINTING = 0x00000002, | |
7895 | DFFA_MONOCHROME = 0x00000004, | |
7896 | DFFA_NOCHARMAP = 0x00000008 | |
7897 | ||
7898 | } DFBFontAttributes; | |
7899 | ||
7900 | ||
7901 | ||
7902 | ||
7903 | typedef enum { | |
7904 | DFDESC_ATTRIBUTES = 0x00000001, | |
7905 | DFDESC_HEIGHT = 0x00000002, | |
7906 | DFDESC_WIDTH = 0x00000004, | |
7907 | DFDESC_INDEX = 0x00000008, | |
7908 | DFDESC_FIXEDADVANCE = 0x00000010, | |
7909 | ||
7910 | ||
7911 | DFDESC_FRACT_HEIGHT = 0x00000020, | |
7912 | DFDESC_FRACT_WIDTH = 0x00000040, | |
7913 | } DFBFontDescriptionFlags; | |
7914 | # 872 "/usr/include/directfb/directfb.h" | |
7915 | typedef struct { | |
7916 | DFBFontDescriptionFlags flags; | |
7917 | ||
7918 | DFBFontAttributes attributes; | |
7919 | int height; | |
7920 | int width; | |
7921 | unsigned int index; | |
7922 | int fixed_advance; | |
7923 | ||
7924 | int fract_height; | |
7925 | int fract_width; | |
7926 | } DFBFontDescription; | |
7927 | # 904 "/usr/include/directfb/directfb.h" | |
7928 | #define DFB_SURFACE_PIXELFORMAT(index,color_bits,alpha_bits,has_alpha,row_bits,row_bytes,align,mul_f,mul_d,has_lut,inv_alpha) ( (((index ) & 0x7F) ) | (((color_bits) & 0x1F) << 7) | (((alpha_bits) & 0x0F) << 12) | (((has_alpha ) ? 1 :0) << 16) | (((row_bits ) & 0x07) << 17) | (((row_bytes ) & 0x07) << 20) | (((align ) & 0x07) << 23) | (((mul_f ) & 0x03) << 26) | (((mul_d ) & 0x03) << 28) | (((has_lut ) ? 1 :0) << 30) | (((inv_alpha ) ? 1 :0) << 31) ) | |
7929 | # 922 "/usr/include/directfb/directfb.h" | |
7930 | typedef enum { | |
7931 | DSPF_UNKNOWN = 0x00000000, | |
7932 | ||
7933 | ||
7934 | DSPF_ARGB1555 = ( (((0 ) & 0x7F) ) | (((15) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7935 | ||
7936 | ||
7937 | DSPF_RGB16 = ( (((1 ) & 0x7F) ) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7938 | ||
7939 | ||
7940 | DSPF_RGB24 = ( (((2 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((3 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7941 | ||
7942 | ||
7943 | DSPF_RGB32 = ( (((3 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7944 | ||
7945 | ||
7946 | DSPF_ARGB = ( (((4 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7947 | ||
7948 | ||
7949 | DSPF_A8 = ( (((5 ) & 0x7F) ) | (((0) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7950 | ||
7951 | ||
7952 | DSPF_YUY2 = ( (((6 ) & 0x7F) ) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7953 | ||
7954 | ||
7955 | DSPF_RGB332 = ( (((7 ) & 0x7F) ) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7956 | ||
7957 | ||
7958 | DSPF_UYVY = ( (((8 ) & 0x7F) ) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7959 | ||
7960 | ||
7961 | DSPF_I420 = ( (((9 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7962 | ||
7963 | ||
7964 | DSPF_YV12 = ( (((10 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7965 | ||
7966 | ||
7967 | DSPF_LUT8 = ( (((11 ) & 0x7F) ) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((1 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7968 | ||
7969 | ||
7970 | DSPF_ALUT44 = ( (((12 ) & 0x7F) ) | (((4) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((1 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7971 | ||
7972 | ||
7973 | DSPF_AiRGB = ( (((13 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((1 ) ? 1 :0) << 31) ), | |
7974 | ||
7975 | ||
7976 | DSPF_A1 = ( (((14 ) & 0x7F) ) | (((0) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((1 ) & 0x07) << 17) | (((0 ) & 0x07) << 20) | (((7 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7977 | ||
7978 | ||
7979 | DSPF_NV12 = ( (((15 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7980 | ||
7981 | ||
7982 | DSPF_NV16 = ( (((16 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((1 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7983 | ||
7984 | ||
7985 | DSPF_ARGB2554 = ( (((17 ) & 0x7F) ) | (((14) & 0x1F) << 7) | (((2) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7986 | ||
7987 | ||
7988 | DSPF_ARGB4444 = ( (((18 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((2 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7989 | ||
7990 | ||
7991 | DSPF_NV21 = ( (((19 ) & 0x7F) ) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((1 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((2 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ), | |
7992 | ||
7993 | ||
7994 | DSPF_AYUV = ( (((20 ) & 0x7F) ) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1 ) ? 1 :0) << 16) | (((0 ) & 0x07) << 17) | (((4 ) & 0x07) << 20) | (((0 ) & 0x07) << 23) | (((0 ) & 0x03) << 26) | (((0 ) & 0x03) << 28) | (((0 ) ? 1 :0) << 30) | (((0 ) ? 1 :0) << 31) ) | |
7995 | } DFBSurfacePixelFormat; | |
7996 | ||
7997 | ||
7998 | #define DFB_NUM_PIXELFORMATS 21 | |
7999 | ||
8000 | ||
8001 | #define DFB_PIXELFORMAT_INDEX(fmt) (((fmt) & 0x0000007F) ) | |
8002 | ||
8003 | #define DFB_COLOR_BITS_PER_PIXEL(fmt) (((fmt) & 0x00000F80) >> 7) | |
8004 | ||
8005 | #define DFB_ALPHA_BITS_PER_PIXEL(fmt) (((fmt) & 0x0000F000) >> 12) | |
8006 | ||
8007 | #define DFB_PIXELFORMAT_HAS_ALPHA(fmt) (((fmt) & 0x00010000) >> 16) | |
8008 | ||
8009 | #define DFB_BITS_PER_PIXEL(fmt) (((fmt) & 0x007E0000) >> 17) | |
8010 | ||
8011 | #define DFB_BYTES_PER_PIXEL(fmt) (((fmt) & 0x00700000) >> 20) | |
8012 | ||
8013 | #define DFB_BYTES_PER_LINE(fmt,width) (((((fmt) & 0x007E0000) >> 17) * (width) + 7) >> 3) | |
8014 | ||
8015 | #define DFB_PIXELFORMAT_ALIGNMENT(fmt) (((fmt) & 0x03800000) >> 23) | |
8016 | ||
8017 | #define DFB_PLANE_MULTIPLY(fmt,height) ((((((fmt) & 0x3C000000) >> 26) + 4) * (height)) >> 2) | |
8018 | ||
8019 | #define DFB_PIXELFORMAT_IS_INDEXED(fmt) (((fmt) & 0x40000000) >> 30) | |
8020 | ||
8021 | #define DFB_PLANAR_PIXELFORMAT(fmt) (((fmt) & 0x3C000000) ? 1 : 0) | |
8022 | ||
8023 | #define DFB_PIXELFORMAT_INV_ALPHA(fmt) (((fmt) & 0x80000000) >> 31) | |
8024 | ||
8025 | ||
8026 | ||
8027 | ||
8028 | ||
8029 | typedef struct { | |
8030 | DFBSurfaceDescriptionFlags flags; | |
8031 | ||
8032 | DFBSurfaceCapabilities caps; | |
8033 | int width; | |
8034 | int height; | |
8035 | DFBSurfacePixelFormat pixelformat; | |
8036 | ||
8037 | struct { | |
8038 | void *data; | |
8039 | int pitch; | |
8040 | } preallocated[2]; | |
8041 | ||
8042 | struct { | |
8043 | DFBColor *entries; | |
8044 | unsigned int size; | |
8045 | } palette; | |
8046 | } DFBSurfaceDescription; | |
8047 | ||
8048 | ||
8049 | ||
8050 | ||
8051 | typedef struct { | |
8052 | DFBPaletteDescriptionFlags flags; | |
8053 | ||
8054 | DFBPaletteCapabilities caps; | |
8055 | unsigned int size; | |
8056 | const DFBColor *entries; | |
8057 | ||
8058 | } DFBPaletteDescription; | |
8059 | ||
8060 | ||
8061 | #define DFB_DISPLAY_LAYER_DESC_NAME_LENGTH 32 | |
8062 | ||
8063 | ||
8064 | ||
8065 | ||
8066 | typedef struct { | |
8067 | DFBDisplayLayerTypeFlags type; | |
8068 | ||
8069 | DFBDisplayLayerCapabilities caps; | |
8070 | ||
8071 | ||
8072 | char name[32]; | |
8073 | ||
8074 | int level; | |
8075 | int regions; | |
8076 | ||
8077 | ||
8078 | ||
8079 | int sources; | |
8080 | } DFBDisplayLayerDescription; | |
8081 | ||
8082 | ||
8083 | #define DFB_DISPLAY_LAYER_SOURCE_DESC_NAME_LENGTH 24 | |
8084 | ||
8085 | ||
8086 | ||
8087 | ||
8088 | typedef struct { | |
8089 | DFBDisplayLayerSourceID source_id; | |
8090 | ||
8091 | char name[24]; | |
8092 | } DFBDisplayLayerSourceDescription; | |
8093 | ||
8094 | ||
8095 | #define DFB_SCREEN_DESC_NAME_LENGTH 32 | |
8096 | ||
8097 | ||
8098 | ||
8099 | ||
8100 | typedef struct { | |
8101 | DFBScreenCapabilities caps; | |
8102 | ||
8103 | ||
8104 | char name[32]; | |
8105 | ||
8106 | int mixers; | |
8107 | ||
8108 | int encoders; | |
8109 | ||
8110 | int outputs; | |
8111 | ||
8112 | } DFBScreenDescription; | |
8113 | ||
8114 | ||
8115 | #define DFB_INPUT_DEVICE_DESC_NAME_LENGTH 32 | |
8116 | #define DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH 40 | |
8117 | ||
8118 | ||
8119 | ||
8120 | ||
8121 | typedef struct { | |
8122 | DFBInputDeviceTypeFlags type; | |
8123 | ||
8124 | DFBInputDeviceCapabilities caps; | |
8125 | ||
8126 | ||
8127 | ||
8128 | int min_keycode; | |
8129 | ||
8130 | ||
8131 | ||
8132 | ||
8133 | int max_keycode; | |
8134 | ||
8135 | ||
8136 | ||
8137 | ||
8138 | DFBInputDeviceAxisIdentifier max_axis; | |
8139 | ||
8140 | DFBInputDeviceButtonIdentifier max_button; | |
8141 | ||
8142 | ||
8143 | char name[32]; | |
8144 | ||
8145 | char vendor[40]; | |
8146 | } DFBInputDeviceDescription; | |
8147 | ||
8148 | ||
8149 | #define DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH 40 | |
8150 | #define DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH 60 | |
8151 | ||
8152 | typedef struct { | |
8153 | int major; | |
8154 | int minor; | |
8155 | ||
8156 | char name[40]; | |
8157 | char vendor[60]; | |
8158 | } DFBGraphicsDriverInfo; | |
8159 | ||
8160 | #define DFB_GRAPHICS_DEVICE_DESC_NAME_LENGTH 48 | |
8161 | #define DFB_GRAPHICS_DEVICE_DESC_VENDOR_LENGTH 64 | |
8162 | ||
8163 | ||
8164 | ||
8165 | ||
8166 | typedef struct { | |
8167 | DFBAccelerationMask acceleration_mask; | |
8168 | ||
8169 | DFBSurfaceBlittingFlags blitting_flags; | |
8170 | DFBSurfaceDrawingFlags drawing_flags; | |
8171 | ||
8172 | unsigned int video_memory; | |
8173 | ||
8174 | char name[48]; | |
8175 | char vendor[64]; | |
8176 | ||
8177 | DFBGraphicsDriverInfo driver; | |
8178 | } DFBGraphicsDeviceDescription; | |
8179 | ||
8180 | ||
8181 | ||
8182 | ||
8183 | typedef struct { | |
8184 | DFBWindowDescriptionFlags flags; | |
8185 | ||
8186 | DFBWindowCapabilities caps; | |
8187 | int width; | |
8188 | int height; | |
8189 | DFBSurfacePixelFormat pixelformat; | |
8190 | int posx; | |
8191 | int posy; | |
8192 | DFBSurfaceCapabilities surface_caps; | |
8193 | } DFBWindowDescription; | |
8194 | ||
8195 | ||
8196 | ||
8197 | ||
8198 | typedef struct { | |
8199 | DFBDataBufferDescriptionFlags flags; | |
8200 | ||
8201 | const char *file; | |
8202 | ||
8203 | struct { | |
8204 | const void *data; | |
8205 | unsigned int length; | |
8206 | } memory; | |
8207 | } DFBDataBufferDescription; | |
8208 | ||
8209 | ||
8210 | ||
8211 | ||
8212 | typedef enum { | |
8213 | DFENUM_OK = 0x00000000, | |
8214 | DFENUM_CANCEL = 0x00000001 | |
8215 | } DFBEnumerationResult; | |
8216 | ||
8217 | ||
8218 | ||
8219 | ||
8220 | typedef DFBEnumerationResult (*DFBVideoModeCallback) ( | |
8221 | int width, | |
8222 | int height, | |
8223 | int bpp, | |
8224 | void *callbackdata | |
8225 | ); | |
8226 | ||
8227 | ||
8228 | ||
8229 | ||
8230 | ||
8231 | typedef DFBEnumerationResult (*DFBScreenCallback) ( | |
8232 | DFBScreenID screen_id, | |
8233 | DFBScreenDescription desc, | |
8234 | void *callbackdata | |
8235 | ); | |
8236 | ||
8237 | ||
8238 | ||
8239 | ||
8240 | ||
8241 | typedef DFBEnumerationResult (*DFBDisplayLayerCallback) ( | |
8242 | DFBDisplayLayerID layer_id, | |
8243 | DFBDisplayLayerDescription desc, | |
8244 | void *callbackdata | |
8245 | ); | |
8246 | ||
8247 | ||
8248 | ||
8249 | ||
8250 | ||
8251 | typedef DFBEnumerationResult (*DFBInputDeviceCallback) ( | |
8252 | DFBInputDeviceID device_id, | |
8253 | DFBInputDeviceDescription desc, | |
8254 | void *callbackdata | |
8255 | ); | |
8256 | ||
8257 | ||
8258 | ||
8259 | ||
8260 | ||
8261 | ||
8262 | ||
8263 | typedef int (*DFBGetDataCallback) ( | |
8264 | void *buffer, | |
8265 | unsigned int length, | |
8266 | void *callbackdata | |
8267 | ); | |
8268 | ||
8269 | ||
8270 | ||
8271 | ||
8272 | typedef enum { | |
8273 | DVCAPS_BASIC = 0x00000000, | |
8274 | DVCAPS_SEEK = 0x00000001, | |
8275 | DVCAPS_SCALE = 0x00000002, | |
8276 | DVCAPS_INTERLACED = 0x00000004, | |
8277 | DVCAPS_BRIGHTNESS = 0x00000010, | |
8278 | DVCAPS_CONTRAST = 0x00000020, | |
8279 | DVCAPS_HUE = 0x00000040, | |
8280 | DVCAPS_SATURATION = 0x00000080, | |
8281 | DVCAPS_INTERACTIVE = 0x00000100 | |
8282 | } DFBVideoProviderCapabilities; | |
8283 | ||
8284 | ||
8285 | ||
8286 | ||
8287 | typedef enum { | |
8288 | DVSTATE_UNKNOWN = 0x00000000, | |
8289 | DVSTATE_PLAY = 0x00000001, | |
8290 | DVSTATE_STOP = 0x00000002, | |
8291 | DVSTATE_FINISHED = 0x00000003 | |
8292 | } DFBVideoProviderStatus; | |
8293 | ||
8294 | ||
8295 | ||
8296 | ||
8297 | typedef enum { | |
8298 | DCAF_NONE = 0x00000000, | |
8299 | DCAF_BRIGHTNESS = 0x00000001, | |
8300 | DCAF_CONTRAST = 0x00000002, | |
8301 | DCAF_HUE = 0x00000004, | |
8302 | DCAF_SATURATION = 0x00000008, | |
8303 | DCAF_ALL = 0x0000000F | |
8304 | } DFBColorAdjustmentFlags; | |
8305 | ||
8306 | ||
8307 | ||
8308 | ||
8309 | ||
8310 | ||
8311 | ||
8312 | typedef struct { | |
8313 | DFBColorAdjustmentFlags flags; | |
8314 | ||
8315 | u_int16_t brightness; | |
8316 | u_int16_t contrast; | |
8317 | u_int16_t hue; | |
8318 | u_int16_t saturation; | |
8319 | } DFBColorAdjustment; | |
8320 | # 1372 "/usr/include/directfb/directfb.h" | |
8321 | struct _IDirectFB { void *priv; int magic; DFBResult (*AddRef)( IDirectFB *thiz ); DFBResult (*Release)( IDirectFB *thiz ); DFBResult (*SetCooperativeLevel) ( IDirectFB *thiz, DFBCooperativeLevel level ); DFBResult (*SetVideoMode) ( IDirectFB *thiz, int width, int height, int bpp ); DFBResult (*GetDeviceDescription) ( IDirectFB *thiz, DFBGraphicsDeviceDescription *ret_desc ); DFBResult (*EnumVideoModes) ( IDirectFB *thiz, DFBVideoModeCallback callback, void *callbackdata ); DFBResult (*CreateSurface) ( IDirectFB *thiz, const DFBSurfaceDescription *desc, IDirectFBSurface **ret_interface ); DFBResult (*CreatePalette) ( IDirectFB *thiz, const DFBPaletteDescription *desc, IDirectFBPalette **ret_interface ); DFBResult (*EnumScreens) ( IDirectFB *thiz, DFBScreenCallback callback, void *callbackdata ); DFBResult (*GetScreen) ( IDirectFB *thiz, DFBScreenID screen_id, IDirectFBScreen **ret_interface ); DFBResult (*EnumDisplayLayers) ( IDirectFB *thiz, DFBDisplayLayerCallback callback, void *callbackdata ); DFBResult (*GetDisplayLayer) ( IDirectFB *thiz, DFBDisplayLayerID layer_id, IDirectFBDisplayLayer **ret_interface ); DFBResult (*EnumInputDevices) ( IDirectFB *thiz, DFBInputDeviceCallback callback, void *callbackdata ); DFBResult (*GetInputDevice) ( IDirectFB *thiz, DFBInputDeviceID device_id, IDirectFBInputDevice **ret_interface ); DFBResult (*CreateEventBuffer) ( IDirectFB *thiz, IDirectFBEventBuffer **ret_buffer ); DFBResult (*CreateInputEventBuffer) ( IDirectFB *thiz, DFBInputDeviceCapabilities caps, DFBBoolean global, IDirectFBEventBuffer **ret_buffer ); DFBResult (*CreateImageProvider) ( IDirectFB *thiz, const char *filename, IDirectFBImageProvider **ret_interface ); DFBResult (*CreateVideoProvider) ( IDirectFB *thiz, const char *filename, IDirectFBVideoProvider **ret_interface ); DFBResult (*CreateFont) ( IDirectFB *thiz, const char *filename, const DFBFontDescription *desc, IDirectFBFont **ret_interface ); DFBResult (*CreateDataBuffer) ( IDirectFB *thiz, const DFBDataBufferDescription *desc, IDirectFBDataBuffer **ret_interface ); DFBResult (*SetClipboardData) ( IDirectFB *thiz, const char *mime_type, const void *data, unsigned int size, struct timeval *ret_timestamp ); DFBResult (*GetClipboardData) ( IDirectFB *thiz, char **ret_mimetype, void **ret_data, unsigned int *ret_size ); DFBResult (*GetClipboardTimeStamp) ( IDirectFB *thiz, struct timeval *ret_timestamp ); DFBResult (*Suspend) ( IDirectFB *thiz ); DFBResult (*Resume) ( IDirectFB *thiz ); DFBResult (*WaitIdle) ( IDirectFB *thiz ); DFBResult (*WaitForSync) ( IDirectFB *thiz ); DFBResult (*GetInterface) ( IDirectFB *thiz, const char *type, const char *implementation, void *arg, void **ret_interface ); }; | |
8322 | # 1714 "/usr/include/directfb/directfb.h" | |
8323 | #define DLID_PRIMARY 0x0000 | |
8324 | ||
8325 | ||
8326 | #define DLSID_SURFACE 0x0000 | |
8327 | ||
8328 | ||
8329 | #define DSCID_PRIMARY 0x0000 | |
8330 | ||
8331 | ||
8332 | #define DIDID_KEYBOARD 0x0000 | |
8333 | #define DIDID_MOUSE 0x0001 | |
8334 | #define DIDID_JOYSTICK 0x0002 | |
8335 | #define DIDID_REMOTE 0x0003 | |
8336 | #define DIDID_ANY 0x0010 | |
8337 | ||
8338 | ||
8339 | ||
8340 | ||
8341 | ||
8342 | typedef enum { | |
8343 | DLSCL_SHARED = 0, | |
8344 | DLSCL_EXCLUSIVE, | |
8345 | ||
8346 | DLSCL_ADMINISTRATIVE | |
8347 | ||
8348 | } DFBDisplayLayerCooperativeLevel; | |
8349 | ||
8350 | ||
8351 | ||
8352 | ||
8353 | ||
8354 | typedef enum { | |
8355 | DLBM_DONTCARE = 0, | |
8356 | ||
8357 | DLBM_COLOR, | |
8358 | ||
8359 | DLBM_IMAGE, | |
8360 | DLBM_TILE | |
8361 | } DFBDisplayLayerBackgroundMode; | |
8362 | ||
8363 | ||
8364 | ||
8365 | ||
8366 | typedef enum { | |
8367 | DLCONF_NONE = 0x00000000, | |
8368 | ||
8369 | DLCONF_WIDTH = 0x00000001, | |
8370 | DLCONF_HEIGHT = 0x00000002, | |
8371 | DLCONF_PIXELFORMAT = 0x00000004, | |
8372 | DLCONF_BUFFERMODE = 0x00000008, | |
8373 | DLCONF_OPTIONS = 0x00000010, | |
8374 | DLCONF_SOURCE = 0x00000020, | |
8375 | DLCONF_SURFACE_CAPS = 0x00000040, | |
8376 | ||
8377 | DLCONF_ALL = 0x0000007F | |
8378 | } DFBDisplayLayerConfigFlags; | |
8379 | ||
8380 | ||
8381 | ||
8382 | ||
8383 | typedef struct { | |
8384 | DFBDisplayLayerConfigFlags flags; | |
8385 | ||
8386 | int width; | |
8387 | int height; | |
8388 | DFBSurfacePixelFormat pixelformat; | |
8389 | DFBDisplayLayerBufferMode buffermode; | |
8390 | DFBDisplayLayerOptions options; | |
8391 | DFBDisplayLayerSourceID source; | |
8392 | ||
8393 | DFBSurfaceCapabilities surface_caps; | |
8394 | ||
8395 | } DFBDisplayLayerConfig; | |
8396 | ||
8397 | ||
8398 | ||
8399 | ||
8400 | typedef enum { | |
8401 | DSPM_ON = 0, | |
8402 | DSPM_STANDBY, | |
8403 | DSPM_SUSPEND, | |
8404 | DSPM_OFF | |
8405 | } DFBScreenPowerMode; | |
8406 | ||
8407 | ||
8408 | ||
8409 | ||
8410 | ||
8411 | typedef enum { | |
8412 | DSMCAPS_NONE = 0x00000000, | |
8413 | ||
8414 | DSMCAPS_FULL = 0x00000001, | |
8415 | DSMCAPS_SUB_LEVEL = 0x00000002, | |
8416 | ||
8417 | DSMCAPS_SUB_LAYERS = 0x00000004, | |
8418 | ||
8419 | DSMCAPS_BACKGROUND = 0x00000008 | |
8420 | } DFBScreenMixerCapabilities; | |
8421 | ||
8422 | ||
8423 | #define DFB_SCREEN_MIXER_DESC_NAME_LENGTH 24 | |
8424 | ||
8425 | ||
8426 | ||
8427 | ||
8428 | typedef struct { | |
8429 | DFBScreenMixerCapabilities caps; | |
8430 | ||
8431 | DFBDisplayLayerIDs layers; | |
8432 | ||
8433 | ||
8434 | int sub_num; | |
8435 | ||
8436 | DFBDisplayLayerIDs sub_layers; | |
8437 | ||
8438 | ||
8439 | char name[24]; | |
8440 | } DFBScreenMixerDescription; | |
8441 | ||
8442 | ||
8443 | ||
8444 | ||
8445 | typedef enum { | |
8446 | DSMCONF_NONE = 0x00000000, | |
8447 | ||
8448 | DSMCONF_TREE = 0x00000001, | |
8449 | DSMCONF_LEVEL = 0x00000002, | |
8450 | DSMCONF_LAYERS = 0x00000004, | |
8451 | ||
8452 | DSMCONF_BACKGROUND = 0x00000010, | |
8453 | ||
8454 | DSMCONF_ALL = 0x00000017 | |
8455 | } DFBScreenMixerConfigFlags; | |
8456 | ||
8457 | ||
8458 | ||
8459 | ||
8460 | typedef enum { | |
8461 | DSMT_UNKNOWN = 0x00000000, | |
8462 | ||
8463 | DSMT_FULL = 0x00000001, | |
8464 | DSMT_SUB_LEVEL = 0x00000002, | |
8465 | DSMT_SUB_LAYERS = 0x00000003 | |
8466 | } DFBScreenMixerTree; | |
8467 | ||
8468 | ||
8469 | ||
8470 | ||
8471 | typedef struct { | |
8472 | DFBScreenMixerConfigFlags flags; | |
8473 | ||
8474 | DFBScreenMixerTree tree; | |
8475 | ||
8476 | int level; | |
8477 | DFBDisplayLayerIDs layers; | |
8478 | ||
8479 | DFBColor background; | |
8480 | } DFBScreenMixerConfig; | |
8481 | ||
8482 | ||
8483 | ||
8484 | ||
8485 | ||
8486 | typedef enum { | |
8487 | DSOCAPS_NONE = 0x00000000, | |
8488 | ||
8489 | DSOCAPS_CONNECTORS = 0x00000001, | |
8490 | ||
8491 | DSOCAPS_ENCODER_SEL = 0x00000010, | |
8492 | DSOCAPS_SIGNAL_SEL = 0x00000020, | |
8493 | DSOCAPS_CONNECTOR_SEL = 0x00000040, | |
8494 | ||
8495 | DSOCAPS_ALL = 0x00000071 | |
8496 | } DFBScreenOutputCapabilities; | |
8497 | ||
8498 | ||
8499 | ||
8500 | ||
8501 | typedef enum { | |
8502 | DSOC_UNKNOWN = 0x00000000, | |
8503 | ||
8504 | DSOC_VGA = 0x00000001, | |
8505 | DSOC_SCART = 0x00000002, | |
8506 | DSOC_YC = 0x00000004, | |
8507 | DSOC_CVBS = 0x00000008 | |
8508 | } DFBScreenOutputConnectors; | |
8509 | ||
8510 | ||
8511 | ||
8512 | ||
8513 | typedef enum { | |
8514 | DSOS_NONE = 0x00000000, | |
8515 | ||
8516 | DSOS_VGA = 0x00000001, | |
8517 | DSOS_YC = 0x00000002, | |
8518 | DSOS_CVBS = 0x00000004, | |
8519 | DSOS_RGB = 0x00000008, | |
8520 | DSOS_YCBCR = 0x00000010 | |
8521 | } DFBScreenOutputSignals; | |
8522 | ||
8523 | ||
8524 | #define DFB_SCREEN_OUTPUT_DESC_NAME_LENGTH 24 | |
8525 | ||
8526 | ||
8527 | ||
8528 | ||
8529 | typedef struct { | |
8530 | DFBScreenOutputCapabilities caps; | |
8531 | ||
8532 | DFBScreenOutputConnectors all_connectors; | |
8533 | DFBScreenOutputSignals all_signals; | |
8534 | ||
8535 | char name[24]; | |
8536 | } DFBScreenOutputDescription; | |
8537 | ||
8538 | ||
8539 | ||
8540 | ||
8541 | typedef enum { | |
8542 | DSOCONF_NONE = 0x00000000, | |
8543 | ||
8544 | DSOCONF_ENCODER = 0x00000001, | |
8545 | DSOCONF_SIGNALS = 0x00000002, | |
8546 | DSOCONF_CONNECTORS = 0x00000004, | |
8547 | ||
8548 | DSOCONF_ALL = 0x00000007 | |
8549 | } DFBScreenOutputConfigFlags; | |
8550 | ||
8551 | ||
8552 | ||
8553 | ||
8554 | typedef struct { | |
8555 | DFBScreenOutputConfigFlags flags; | |
8556 | ||
8557 | int encoder; | |
8558 | DFBScreenOutputSignals out_signals; | |
8559 | DFBScreenOutputConnectors out_connectors; | |
8560 | } DFBScreenOutputConfig; | |
8561 | ||
8562 | ||
8563 | ||
8564 | ||
8565 | ||
8566 | typedef enum { | |
8567 | DSECAPS_NONE = 0x00000000, | |
8568 | ||
8569 | DSECAPS_TV_STANDARDS = 0x00000001, | |
8570 | DSECAPS_TEST_PICTURE = 0x00000002, | |
8571 | DSECAPS_MIXER_SEL = 0x00000004, | |
8572 | DSECAPS_OUT_SIGNALS = 0x00000008, | |
8573 | DSECAPS_SCANMODE = 0x00000010, | |
8574 | ||
8575 | DSECAPS_BRIGHTNESS = 0x00000100, | |
8576 | DSECAPS_CONTRAST = 0x00000200, | |
8577 | DSECAPS_HUE = 0x00000400, | |
8578 | DSECAPS_SATURATION = 0x00000800, | |
8579 | ||
8580 | DSECAPS_ALL = 0x00000f1f | |
8581 | } DFBScreenEncoderCapabilities; | |
8582 | ||
8583 | ||
8584 | ||
8585 | ||
8586 | typedef enum { | |
8587 | DSET_UNKNOWN = 0x00000000, | |
8588 | ||
8589 | DSET_CRTC = 0x00000001, | |
8590 | DSET_TV = 0x00000002 | |
8591 | } DFBScreenEncoderType; | |
8592 | ||
8593 | ||
8594 | ||
8595 | ||
8596 | typedef enum { | |
8597 | DSETV_UNKNOWN = 0x00000000, | |
8598 | ||
8599 | DSETV_PAL = 0x00000001, | |
8600 | DSETV_NTSC = 0x00000002, | |
8601 | DSETV_SECAM = 0x00000004 | |
8602 | } DFBScreenEncoderTVStandards; | |
8603 | ||
8604 | ||
8605 | ||
8606 | ||
8607 | typedef enum { | |
8608 | DSESM_UNKNOWN = 0x00000000, | |
8609 | ||
8610 | DSESM_INTERLACED = 0x00000001, | |
8611 | DSESM_PROGRESSIVE = 0x00000002 | |
8612 | } DFBScreenEncoderScanMode; | |
8613 | ||
8614 | ||
8615 | #define DFB_SCREEN_ENCODER_DESC_NAME_LENGTH 24 | |
8616 | ||
8617 | ||
8618 | ||
8619 | ||
8620 | typedef struct { | |
8621 | DFBScreenEncoderCapabilities caps; | |
8622 | DFBScreenEncoderType type; | |
8623 | ||
8624 | DFBScreenEncoderTVStandards tv_standards; | |
8625 | DFBScreenOutputSignals out_signals; | |
8626 | ||
8627 | char name[24]; | |
8628 | } DFBScreenEncoderDescription; | |
8629 | ||
8630 | ||
8631 | ||
8632 | ||
8633 | typedef enum { | |
8634 | DSECONF_NONE = 0x00000000, | |
8635 | ||
8636 | DSECONF_TV_STANDARD = 0x00000001, | |
8637 | DSECONF_TEST_PICTURE = 0x00000002, | |
8638 | DSECONF_MIXER = 0x00000004, | |
8639 | DSECONF_OUT_SIGNALS = 0x00000008, | |
8640 | DSECONF_SCANMODE = 0x00000010, | |
8641 | DSECONF_TEST_COLOR = 0x00000020, | |
8642 | DSECONF_ADJUSTMENT = 0x00000040, | |
8643 | ||
8644 | DSECONF_ALL = 0x0000007F | |
8645 | } DFBScreenEncoderConfigFlags; | |
8646 | ||
8647 | ||
8648 | ||
8649 | ||
8650 | typedef enum { | |
8651 | DSETP_OFF = 0x00000000, | |
8652 | ||
8653 | DSETP_MULTI = 0x00000001, | |
8654 | DSETP_SINGLE = 0x00000002, | |
8655 | ||
8656 | DSETP_WHITE = 0x00000010, | |
8657 | DSETP_YELLOW = 0x00000020, | |
8658 | DSETP_CYAN = 0x00000030, | |
8659 | DSETP_GREEN = 0x00000040, | |
8660 | DSETP_MAGENTA = 0x00000050, | |
8661 | DSETP_RED = 0x00000060, | |
8662 | DSETP_BLUE = 0x00000070, | |
8663 | DSETP_BLACK = 0x00000080 | |
8664 | } DFBScreenEncoderTestPicture; | |
8665 | ||
8666 | ||
8667 | ||
8668 | ||
8669 | typedef struct { | |
8670 | DFBScreenEncoderConfigFlags flags; | |
8671 | ||
8672 | DFBScreenEncoderTVStandards tv_standard; | |
8673 | DFBScreenEncoderTestPicture test_picture; | |
8674 | int mixer; | |
8675 | DFBScreenOutputSignals out_signals; | |
8676 | DFBScreenEncoderScanMode scanmode; | |
8677 | ||
8678 | DFBColor test_color; | |
8679 | ||
8680 | DFBColorAdjustment adjustment; | |
8681 | } DFBScreenEncoderConfig; | |
8682 | # 2082 "/usr/include/directfb/directfb.h" | |
8683 | struct _IDirectFBScreen { void *priv; int magic; DFBResult (*AddRef)( IDirectFBScreen *thiz ); DFBResult (*Release)( IDirectFBScreen *thiz ); DFBResult (*GetID) ( IDirectFBScreen *thiz, DFBScreenID *ret_screen_id ); DFBResult (*GetDescription) ( IDirectFBScreen *thiz, DFBScreenDescription *ret_desc ); DFBResult (*EnumDisplayLayers) ( IDirectFBScreen *thiz, DFBDisplayLayerCallback callback, void *callbackdata ); DFBResult (*SetPowerMode) ( IDirectFBScreen *thiz, DFBScreenPowerMode mode ); DFBResult (*WaitForSync) ( IDirectFBScreen *thiz ); DFBResult (*GetMixerDescriptions) ( IDirectFBScreen *thiz, DFBScreenMixerDescription *ret_descriptions ); DFBResult (*GetMixerConfiguration) ( IDirectFBScreen *thiz, int mixer, DFBScreenMixerConfig *ret_config ); DFBResult (*TestMixerConfiguration) ( IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config, DFBScreenMixerConfigFlags *ret_failed ); DFBResult (*SetMixerConfiguration) ( IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config ); DFBResult (*GetEncoderDescriptions) ( IDirectFBScreen *thiz, DFBScreenEncoderDescription *ret_descriptions ); DFBResult (*GetEncoderConfiguration) ( IDirectFBScreen *thiz, int encoder, DFBScreenEncoderConfig *ret_config ); DFBResult (*TestEncoderConfiguration) ( IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config, DFBScreenEncoderConfigFlags *ret_failed ); DFBResult (*SetEncoderConfiguration) ( IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config ); DFBResult (*GetOutputDescriptions) ( IDirectFBScreen *thiz, DFBScreenOutputDescription *ret_descriptions ); DFBResult (*GetOutputConfiguration) ( IDirectFBScreen *thiz, int output, DFBScreenOutputConfig *ret_config ); DFBResult (*TestOutputConfiguration) ( IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config, DFBScreenOutputConfigFlags *ret_failed ); DFBResult (*SetOutputConfiguration) ( IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config ); }; | |
8684 | # 2288 "/usr/include/directfb/directfb.h" | |
8685 | struct _IDirectFBDisplayLayer { void *priv; int magic; DFBResult (*AddRef)( IDirectFBDisplayLayer *thiz ); DFBResult (*Release)( IDirectFBDisplayLayer *thiz ); DFBResult (*GetID) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerID *ret_layer_id ); DFBResult (*GetDescription) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerDescription *ret_desc ); DFBResult (*GetSourceDescriptions) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerSourceDescription *ret_descriptions ); DFBResult (*GetCurrentOutputField) ( IDirectFBDisplayLayer *thiz, int *ret_field ); DFBResult (*GetSurface) ( IDirectFBDisplayLayer *thiz, IDirectFBSurface **ret_interface ); DFBResult (*GetScreen) ( IDirectFBDisplayLayer *thiz, IDirectFBScreen **ret_interface ); DFBResult (*SetCooperativeLevel) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerCooperativeLevel level ); DFBResult (*GetConfiguration) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerConfig *ret_config ); DFBResult (*TestConfiguration) ( IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config, DFBDisplayLayerConfigFlags *ret_failed ); DFBResult (*SetConfiguration) ( IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config ); DFBResult (*SetScreenLocation) ( IDirectFBDisplayLayer *thiz, float x, float y, float width, float height ); DFBResult (*SetScreenPosition) ( IDirectFBDisplayLayer *thiz, int x, int y ); DFBResult (*SetScreenRectangle) ( IDirectFBDisplayLayer *thiz, int x, int y, int width, int height ); DFBResult (*SetOpacity) ( IDirectFBDisplayLayer *thiz, u_int8_t opacity ); DFBResult (*SetSourceRectangle) ( IDirectFBDisplayLayer *thiz, int x, int y, int width, int height ); DFBResult (*SetFieldParity) ( IDirectFBDisplayLayer *thiz, int field ); DFBResult (*SetSrcColorKey) ( IDirectFBDisplayLayer *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetDstColorKey) ( IDirectFBDisplayLayer *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*GetLevel) ( IDirectFBDisplayLayer *thiz, int *ret_level ); DFBResult (*SetLevel) ( IDirectFBDisplayLayer *thiz, int level ); DFBResult (*SetBackgroundMode) ( IDirectFBDisplayLayer *thiz, DFBDisplayLayerBackgroundMode mode ); DFBResult (*SetBackgroundImage) ( IDirectFBDisplayLayer *thiz, IDirectFBSurface *surface ); DFBResult (*SetBackgroundColor) ( IDirectFBDisplayLayer *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a ); DFBResult (*GetColorAdjustment) ( IDirectFBDisplayLayer *thiz, DFBColorAdjustment *ret_adj ); DFBResult (*SetColorAdjustment) ( IDirectFBDisplayLayer *thiz, const DFBColorAdjustment *adj ); DFBResult (*CreateWindow) ( IDirectFBDisplayLayer *thiz, const DFBWindowDescription *desc, IDirectFBWindow **ret_interface ); DFBResult (*GetWindow) ( IDirectFBDisplayLayer *thiz, DFBWindowID window_id, IDirectFBWindow **ret_interface ); DFBResult (*EnableCursor) ( IDirectFBDisplayLayer *thiz, int enable ); DFBResult (*GetCursorPosition) ( IDirectFBDisplayLayer *thiz, int *ret_x, int *ret_y ); DFBResult (*WarpCursor) ( IDirectFBDisplayLayer *thiz, int x, int y ); DFBResult (*SetCursorAcceleration) ( IDirectFBDisplayLayer *thiz, int numerator, int denominator, int threshold ); DFBResult (*SetCursorShape) ( IDirectFBDisplayLayer *thiz, IDirectFBSurface *shape, int hot_x, int hot_y ); DFBResult (*SetCursorOpacity) ( IDirectFBDisplayLayer *thiz, u_int8_t opacity ); DFBResult (*WaitForSync) ( IDirectFBDisplayLayer *thiz ); }; | |
8686 | # 2701 "/usr/include/directfb/directfb.h" | |
8687 | typedef enum { | |
8688 | DSFLIP_NONE = 0x00000000, | |
8689 | ||
8690 | DSFLIP_WAIT = 0x00000001, | |
8691 | ||
8692 | DSFLIP_BLIT = 0x00000002, | |
8693 | ||
8694 | ||
8695 | ||
8696 | DSFLIP_ONSYNC = 0x00000004, | |
8697 | ||
8698 | ||
8699 | ||
8700 | DSFLIP_PIPELINE = 0x00000008, | |
8701 | ||
8702 | DSFLIP_WAITFORSYNC = DSFLIP_WAIT | DSFLIP_ONSYNC | |
8703 | } DFBSurfaceFlipFlags; | |
8704 | ||
8705 | ||
8706 | ||
8707 | ||
8708 | typedef enum { | |
8709 | DSTF_LEFT = 0x00000000, | |
8710 | DSTF_CENTER = 0x00000001, | |
8711 | DSTF_RIGHT = 0x00000002, | |
8712 | ||
8713 | DSTF_TOP = 0x00000004, | |
8714 | ||
8715 | DSTF_BOTTOM = 0x00000008, | |
8716 | ||
8717 | ||
8718 | DSTF_TOPLEFT = DSTF_TOP | DSTF_LEFT, | |
8719 | DSTF_TOPCENTER = DSTF_TOP | DSTF_CENTER, | |
8720 | DSTF_TOPRIGHT = DSTF_TOP | DSTF_RIGHT, | |
8721 | ||
8722 | DSTF_BOTTOMLEFT = DSTF_BOTTOM | DSTF_LEFT, | |
8723 | DSTF_BOTTOMCENTER = DSTF_BOTTOM | DSTF_CENTER, | |
8724 | DSTF_BOTTOMRIGHT = DSTF_BOTTOM | DSTF_RIGHT | |
8725 | } DFBSurfaceTextFlags; | |
8726 | ||
8727 | ||
8728 | ||
8729 | ||
8730 | ||
8731 | typedef enum { | |
8732 | DSLF_READ = 0x00000001, | |
8733 | ||
8734 | DSLF_WRITE = 0x00000002 | |
8735 | } DFBSurfaceLockFlags; | |
8736 | ||
8737 | ||
8738 | ||
8739 | ||
8740 | typedef enum { | |
8741 | ||
8742 | ||
8743 | ||
8744 | DSPD_NONE = 0, | |
8745 | DSPD_CLEAR = 1, | |
8746 | DSPD_SRC = 2, | |
8747 | DSPD_SRC_OVER = 3, | |
8748 | DSPD_DST_OVER = 4, | |
8749 | DSPD_SRC_IN = 5, | |
8750 | DSPD_DST_IN = 6, | |
8751 | DSPD_SRC_OUT = 7, | |
8752 | DSPD_DST_OUT = 8 | |
8753 | } DFBSurfacePorterDuffRule; | |
8754 | ||
8755 | ||
8756 | ||
8757 | ||
8758 | typedef enum { | |
8759 | DSBF_ZERO = 1, | |
8760 | DSBF_ONE = 2, | |
8761 | DSBF_SRCCOLOR = 3, | |
8762 | DSBF_INVSRCCOLOR = 4, | |
8763 | DSBF_SRCALPHA = 5, | |
8764 | DSBF_INVSRCALPHA = 6, | |
8765 | DSBF_DESTALPHA = 7, | |
8766 | DSBF_INVDESTALPHA = 8, | |
8767 | DSBF_DESTCOLOR = 9, | |
8768 | DSBF_INVDESTCOLOR = 10, | |
8769 | DSBF_SRCALPHASAT = 11 | |
8770 | } DFBSurfaceBlendFunction; | |
8771 | ||
8772 | ||
8773 | ||
8774 | ||
8775 | typedef struct { | |
8776 | float x; | |
8777 | float y; | |
8778 | float z; | |
8779 | float w; | |
8780 | ||
8781 | float s; | |
8782 | float t; | |
8783 | } DFBVertex; | |
8784 | ||
8785 | ||
8786 | ||
8787 | ||
8788 | typedef enum { | |
8789 | DTTF_LIST, | |
8790 | DTTF_STRIP, | |
8791 | DTTF_FAN | |
8792 | } DFBTriangleFormation; | |
8793 | # 2815 "/usr/include/directfb/directfb.h" | |
8794 | struct _IDirectFBSurface { void *priv; int magic; DFBResult (*AddRef)( IDirectFBSurface *thiz ); DFBResult (*Release)( IDirectFBSurface *thiz ); DFBResult (*GetCapabilities) ( IDirectFBSurface *thiz, DFBSurfaceCapabilities *ret_caps ); DFBResult (*GetSize) ( IDirectFBSurface *thiz, int *ret_width, int *ret_height ); DFBResult (*GetVisibleRectangle) ( IDirectFBSurface *thiz, DFBRectangle *ret_rect ); DFBResult (*GetPixelFormat) ( IDirectFBSurface *thiz, DFBSurfacePixelFormat *ret_format ); DFBResult (*GetAccelerationMask) ( IDirectFBSurface *thiz, IDirectFBSurface *source, DFBAccelerationMask *ret_mask ); DFBResult (*GetPalette) ( IDirectFBSurface *thiz, IDirectFBPalette **ret_interface ); DFBResult (*SetPalette) ( IDirectFBSurface *thiz, IDirectFBPalette *palette ); DFBResult (*SetAlphaRamp) ( IDirectFBSurface *thiz, u_int8_t a0, u_int8_t a1, u_int8_t a2, u_int8_t a3 ); DFBResult (*Lock) ( IDirectFBSurface *thiz, DFBSurfaceLockFlags flags, void **ret_ptr, int *ret_pitch ); DFBResult (*Unlock) ( IDirectFBSurface *thiz ); DFBResult (*Flip) ( IDirectFBSurface *thiz, const DFBRegion *region, DFBSurfaceFlipFlags flags ); DFBResult (*SetField) ( IDirectFBSurface *thiz, int field ); DFBResult (*Clear) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a ); DFBResult (*SetClip) ( IDirectFBSurface *thiz, const DFBRegion *clip ); DFBResult (*SetColor) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a ); DFBResult (*SetColorIndex) ( IDirectFBSurface *thiz, unsigned int index ); DFBResult (*SetSrcBlendFunction) ( IDirectFBSurface *thiz, DFBSurfaceBlendFunction function ); DFBResult (*SetDstBlendFunction) ( IDirectFBSurface *thiz, DFBSurfaceBlendFunction function ); DFBResult (*SetPorterDuff) ( IDirectFBSurface *thiz, DFBSurfacePorterDuffRule rule ); DFBResult (*SetSrcColorKey) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetSrcColorKeyIndex) ( IDirectFBSurface *thiz, unsigned int index ); DFBResult (*SetDstColorKey) ( IDirectFBSurface *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetDstColorKeyIndex) ( IDirectFBSurface *thiz, unsigned int index ); DFBResult (*SetBlittingFlags) ( IDirectFBSurface *thiz, DFBSurfaceBlittingFlags flags ); DFBResult (*Blit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y ); DFBResult (*TileBlit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y ); DFBResult (*BatchBlit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rects, const DFBPoint *dest_points, int num ); DFBResult (*StretchBlit) ( IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, const DFBRectangle *destination_rect ); DFBResult (*TextureTriangles) ( IDirectFBSurface *thiz, IDirectFBSurface *texture, const DFBVertex *vertices, const int *indices, int num, DFBTriangleFormation formation ); DFBResult (*SetDrawingFlags) ( IDirectFBSurface *thiz, DFBSurfaceDrawingFlags flags ); DFBResult (*FillRectangle) ( IDirectFBSurface *thiz, int x, int y, int w, int h ); DFBResult (*DrawRectangle) ( IDirectFBSurface *thiz, int x, int y, int w, int h ); DFBResult (*DrawLine) ( IDirectFBSurface *thiz, int x1, int y1, int x2, int y2 ); DFBResult (*DrawLines) ( IDirectFBSurface *thiz, const DFBRegion *lines, unsigned int num_lines ); DFBResult (*FillTriangle) ( IDirectFBSurface *thiz, int x1, int y1, int x2, int y2, int x3, int y3 ); DFBResult (*FillRectangles) ( IDirectFBSurface *thiz, const DFBRectangle *rects, unsigned int num ); DFBResult (*FillSpans) ( IDirectFBSurface *thiz, int y, const DFBSpan *spans, unsigned int num ); DFBResult (*SetFont) ( IDirectFBSurface *thiz, IDirectFBFont *font ); DFBResult (*GetFont) ( IDirectFBSurface *thiz, IDirectFBFont **ret_font ); DFBResult (*DrawString) ( IDirectFBSurface *thiz, const char *text, int bytes, int x, int y, DFBSurfaceTextFlags flags ); DFBResult (*DrawGlyph) ( IDirectFBSurface *thiz, unsigned int index, int x, int y, DFBSurfaceTextFlags flags ); DFBResult (*GetSubSurface) ( IDirectFBSurface *thiz, const DFBRectangle *rect, IDirectFBSurface **ret_interface ); DFBResult (*GetGL) ( IDirectFBSurface *thiz, IDirectFBGL **ret_interface ); DFBResult (*Dump) ( IDirectFBSurface *thiz, const char *directory, const char *prefix ); DFBResult (*DisableAcceleration) ( IDirectFBSurface *thiz, DFBAccelerationMask mask ); DFBResult (*GetClip) ( IDirectFBSurface *thiz, DFBRegion *ret_clip ); }; | |
8795 | # 3429 "/usr/include/directfb/directfb.h" | |
8796 | struct _IDirectFBPalette { void *priv; int magic; DFBResult (*AddRef)( IDirectFBPalette *thiz ); DFBResult (*Release)( IDirectFBPalette *thiz ); DFBResult (*GetCapabilities) ( IDirectFBPalette *thiz, DFBPaletteCapabilities *ret_caps ); DFBResult (*GetSize) ( IDirectFBPalette *thiz, unsigned int *ret_size ); DFBResult (*SetEntries) ( IDirectFBPalette *thiz, const DFBColor *entries, unsigned int num_entries, unsigned int offset ); DFBResult (*GetEntries) ( IDirectFBPalette *thiz, DFBColor *ret_entries, unsigned int num_entries, unsigned int offset ); DFBResult (*FindBestMatch) ( IDirectFBPalette *thiz, u_int8_t r, u_int8_t g, u_int8_t b, u_int8_t a, unsigned int *ret_index ); DFBResult (*CreateCopy) ( IDirectFBPalette *thiz, IDirectFBPalette **ret_interface ); }; | |
8797 | # 3508 "/usr/include/directfb/directfb.h" | |
8798 | typedef enum { | |
8799 | DIKS_UP = 0x00000000, | |
8800 | DIKS_DOWN = 0x00000001 | |
8801 | } DFBInputDeviceKeyState; | |
8802 | ||
8803 | ||
8804 | ||
8805 | ||
8806 | typedef enum { | |
8807 | DIBS_UP = 0x00000000, | |
8808 | DIBS_DOWN = 0x00000001 | |
8809 | } DFBInputDeviceButtonState; | |
8810 | ||
8811 | ||
8812 | ||
8813 | ||
8814 | typedef enum { | |
8815 | DIBM_LEFT = 0x00000001, | |
8816 | DIBM_RIGHT = 0x00000002, | |
8817 | DIBM_MIDDLE = 0x00000004 | |
8818 | } DFBInputDeviceButtonMask; | |
8819 | ||
8820 | ||
8821 | ||
8822 | ||
8823 | typedef enum { | |
8824 | DIMM_SHIFT = (1 << DIMKI_SHIFT), | |
8825 | DIMM_CONTROL = (1 << DIMKI_CONTROL), | |
8826 | DIMM_ALT = (1 << DIMKI_ALT), | |
8827 | DIMM_ALTGR = (1 << DIMKI_ALTGR), | |
8828 | DIMM_META = (1 << DIMKI_META), | |
8829 | DIMM_SUPER = (1 << DIMKI_SUPER), | |
8830 | DIMM_HYPER = (1 << DIMKI_HYPER) | |
8831 | } DFBInputDeviceModifierMask; | |
8832 | # 3551 "/usr/include/directfb/directfb.h" | |
8833 | struct _IDirectFBInputDevice { void *priv; int magic; DFBResult (*AddRef)( IDirectFBInputDevice *thiz ); DFBResult (*Release)( IDirectFBInputDevice *thiz ); DFBResult (*GetID) ( IDirectFBInputDevice *thiz, DFBInputDeviceID *ret_device_id ); DFBResult (*GetDescription) ( IDirectFBInputDevice *thiz, DFBInputDeviceDescription *ret_desc ); DFBResult (*GetKeymapEntry) ( IDirectFBInputDevice *thiz, int keycode, DFBInputDeviceKeymapEntry *ret_entry ); DFBResult (*CreateEventBuffer) ( IDirectFBInputDevice *thiz, IDirectFBEventBuffer **ret_buffer ); DFBResult (*AttachEventBuffer) ( IDirectFBInputDevice *thiz, IDirectFBEventBuffer *buffer ); DFBResult (*GetKeyState) ( IDirectFBInputDevice *thiz, DFBInputDeviceKeyIdentifier key_id, DFBInputDeviceKeyState *ret_state ); DFBResult (*GetModifiers) ( IDirectFBInputDevice *thiz, DFBInputDeviceModifierMask *ret_modifiers ); DFBResult (*GetLockState) ( IDirectFBInputDevice *thiz, DFBInputDeviceLockState *ret_locks ); DFBResult (*GetButtons) ( IDirectFBInputDevice *thiz, DFBInputDeviceButtonMask *ret_buttons ); DFBResult (*GetButtonState) ( IDirectFBInputDevice *thiz, DFBInputDeviceButtonIdentifier button, DFBInputDeviceButtonState *ret_state ); DFBResult (*GetAxis) ( IDirectFBInputDevice *thiz, DFBInputDeviceAxisIdentifier axis, int *ret_pos ); DFBResult (*GetXY) ( IDirectFBInputDevice *thiz, int *ret_x, int *ret_y ); }; | |
8834 | # 3680 "/usr/include/directfb/directfb.h" | |
8835 | typedef enum { | |
8836 | DFEC_NONE = 0x00, | |
8837 | DFEC_INPUT = 0x01, | |
8838 | DFEC_WINDOW = 0x02, | |
8839 | DFEC_USER = 0x03, | |
8840 | DFEC_UNIVERSAL = 0x04 | |
8841 | } DFBEventClass; | |
8842 | ||
8843 | ||
8844 | ||
8845 | ||
8846 | typedef enum { | |
8847 | DIET_UNKNOWN = 0, | |
8848 | DIET_KEYPRESS, | |
8849 | DIET_KEYRELEASE, | |
8850 | DIET_BUTTONPRESS, | |
8851 | DIET_BUTTONRELEASE, | |
8852 | DIET_AXISMOTION | |
8853 | } DFBInputEventType; | |
8854 | ||
8855 | ||
8856 | ||
8857 | ||
8858 | typedef enum { | |
8859 | DIEF_NONE = 0x000, | |
8860 | DIEF_TIMESTAMP = 0x001, | |
8861 | DIEF_AXISABS = 0x002, | |
8862 | DIEF_AXISREL = 0x004, | |
8863 | ||
8864 | DIEF_KEYCODE = 0x008, | |
8865 | ||
8866 | DIEF_KEYID = 0x010, | |
8867 | ||
8868 | DIEF_KEYSYMBOL = 0x020, | |
8869 | ||
8870 | DIEF_MODIFIERS = 0x040, | |
8871 | ||
8872 | DIEF_LOCKS = 0x080, | |
8873 | ||
8874 | DIEF_BUTTONS = 0x100, | |
8875 | ||
8876 | DIEF_GLOBAL = 0x200, | |
8877 | ||
8878 | ||
8879 | ||
8880 | ||
8881 | ||
8882 | DIEF_REPEAT = 0x400 | |
8883 | } DFBInputEventFlags; | |
8884 | ||
8885 | ||
8886 | ||
8887 | ||
8888 | typedef struct { | |
8889 | DFBEventClass clazz; | |
8890 | ||
8891 | DFBInputEventType type; | |
8892 | DFBInputDeviceID device_id; | |
8893 | DFBInputEventFlags flags; | |
8894 | ||
8895 | ||
8896 | ||
8897 | struct timeval timestamp; | |
8898 | ||
8899 | ||
8900 | int key_code; | |
8901 | ||
8902 | ||
8903 | ||
8904 | DFBInputDeviceKeyIdentifier key_id; | |
8905 | ||
8906 | DFBInputDeviceKeySymbol key_symbol; | |
8907 | ||
8908 | ||
8909 | ||
8910 | DFBInputDeviceModifierMask modifiers; | |
8911 | ||
8912 | DFBInputDeviceLockState locks; | |
8913 | ||
8914 | ||
8915 | ||
8916 | DFBInputDeviceButtonIdentifier button; | |
8917 | ||
8918 | DFBInputDeviceButtonMask buttons; | |
8919 | ||
8920 | ||
8921 | ||
8922 | DFBInputDeviceAxisIdentifier axis; | |
8923 | ||
8924 | ||
8925 | int axisabs; | |
8926 | ||
8927 | int axisrel; | |
8928 | ||
8929 | } DFBInputEvent; | |
8930 | ||
8931 | ||
8932 | ||
8933 | ||
8934 | typedef enum { | |
8935 | DWET_NONE = 0x00000000, | |
8936 | ||
8937 | DWET_POSITION = 0x00000001, | |
8938 | ||
8939 | ||
8940 | DWET_SIZE = 0x00000002, | |
8941 | ||
8942 | ||
8943 | DWET_CLOSE = 0x00000004, | |
8944 | ||
8945 | DWET_DESTROYED = 0x00000008, | |
8946 | ||
8947 | ||
8948 | DWET_GOTFOCUS = 0x00000010, | |
8949 | DWET_LOSTFOCUS = 0x00000020, | |
8950 | ||
8951 | DWET_KEYDOWN = 0x00000100, | |
8952 | ||
8953 | DWET_KEYUP = 0x00000200, | |
8954 | ||
8955 | ||
8956 | DWET_BUTTONDOWN = 0x00010000, | |
8957 | ||
8958 | DWET_BUTTONUP = 0x00020000, | |
8959 | ||
8960 | DWET_MOTION = 0x00040000, | |
8961 | ||
8962 | DWET_ENTER = 0x00080000, | |
8963 | ||
8964 | DWET_LEAVE = 0x00100000, | |
8965 | ||
8966 | DWET_WHEEL = 0x00200000, | |
8967 | ||
8968 | ||
8969 | DWET_POSITION_SIZE = DWET_POSITION | DWET_SIZE, | |
8970 | ||
8971 | ||
8972 | ||
8973 | DWET_ALL = 0x003F033F | |
8974 | } DFBWindowEventType; | |
8975 | ||
8976 | ||
8977 | ||
8978 | ||
8979 | typedef struct { | |
8980 | DFBEventClass clazz; | |
8981 | ||
8982 | DFBWindowEventType type; | |
8983 | DFBWindowID window_id; | |
8984 | ||
8985 | ||
8986 | ||
8987 | int x; | |
8988 | ||
8989 | ||
8990 | int y; | |
8991 | ||
8992 | ||
8993 | ||
8994 | ||
8995 | ||
8996 | int cx; | |
8997 | int cy; | |
8998 | ||
8999 | ||
9000 | int step; | |
9001 | ||
9002 | ||
9003 | int w; | |
9004 | int h; | |
9005 | ||
9006 | ||
9007 | int key_code; | |
9008 | ||
9009 | ||
9010 | ||
9011 | DFBInputDeviceKeyIdentifier key_id; | |
9012 | ||
9013 | DFBInputDeviceKeySymbol key_symbol; | |
9014 | ||
9015 | ||
9016 | DFBInputDeviceModifierMask modifiers; | |
9017 | DFBInputDeviceLockState locks; | |
9018 | ||
9019 | ||
9020 | DFBInputDeviceButtonIdentifier button; | |
9021 | ||
9022 | ||
9023 | DFBInputDeviceButtonMask buttons; | |
9024 | ||
9025 | ||
9026 | struct timeval timestamp; | |
9027 | } DFBWindowEvent; | |
9028 | ||
9029 | ||
9030 | ||
9031 | ||
9032 | typedef struct { | |
9033 | DFBEventClass clazz; | |
9034 | ||
9035 | unsigned int type; | |
9036 | void *data; | |
9037 | } DFBUserEvent; | |
9038 | ||
9039 | ||
9040 | ||
9041 | ||
9042 | typedef struct { | |
9043 | DFBEventClass clazz; | |
9044 | unsigned int size; | |
9045 | ||
9046 | ||
9047 | ||
9048 | ||
9049 | } DFBUniversalEvent; | |
9050 | ||
9051 | ||
9052 | ||
9053 | ||
9054 | typedef union { | |
9055 | DFBEventClass clazz; | |
9056 | DFBInputEvent input; | |
9057 | DFBWindowEvent window; | |
9058 | DFBUserEvent user; | |
9059 | DFBUniversalEvent universal; | |
9060 | } DFBEvent; | |
9061 | ||
9062 | #define DFB_EVENT(e) ((DFBEvent *) (e)) | |
9063 | ||
9064 | ||
9065 | ||
9066 | ||
9067 | typedef struct { | |
9068 | unsigned int num_events; | |
9069 | ||
9070 | unsigned int DFEC_INPUT; | |
9071 | unsigned int DFEC_WINDOW; | |
9072 | unsigned int DFEC_USER; | |
9073 | unsigned int DFEC_UNIVERSAL; | |
9074 | ||
9075 | unsigned int DIET_KEYPRESS; | |
9076 | unsigned int DIET_KEYRELEASE; | |
9077 | unsigned int DIET_BUTTONPRESS; | |
9078 | unsigned int DIET_BUTTONRELEASE; | |
9079 | unsigned int DIET_AXISMOTION; | |
9080 | ||
9081 | unsigned int DWET_POSITION; | |
9082 | unsigned int DWET_SIZE; | |
9083 | unsigned int DWET_CLOSE; | |
9084 | unsigned int DWET_DESTROYED; | |
9085 | unsigned int DWET_GOTFOCUS; | |
9086 | unsigned int DWET_LOSTFOCUS; | |
9087 | unsigned int DWET_KEYDOWN; | |
9088 | unsigned int DWET_KEYUP; | |
9089 | unsigned int DWET_BUTTONDOWN; | |
9090 | unsigned int DWET_BUTTONUP; | |
9091 | unsigned int DWET_MOTION; | |
9092 | unsigned int DWET_ENTER; | |
9093 | unsigned int DWET_LEAVE; | |
9094 | unsigned int DWET_WHEEL; | |
9095 | unsigned int DWET_POSITION_SIZE; | |
9096 | } DFBEventBufferStats; | |
9097 | # 3951 "/usr/include/directfb/directfb.h" | |
9098 | struct _IDirectFBEventBuffer { void *priv; int magic; DFBResult (*AddRef)( IDirectFBEventBuffer *thiz ); DFBResult (*Release)( IDirectFBEventBuffer *thiz ); DFBResult (*Reset) ( IDirectFBEventBuffer *thiz ); DFBResult (*WaitForEvent) ( IDirectFBEventBuffer *thiz ); DFBResult (*WaitForEventWithTimeout) ( IDirectFBEventBuffer *thiz, unsigned int seconds, unsigned int milli_seconds ); DFBResult (*GetEvent) ( IDirectFBEventBuffer *thiz, DFBEvent *ret_event ); DFBResult (*PeekEvent) ( IDirectFBEventBuffer *thiz, DFBEvent *ret_event ); DFBResult (*HasEvent) ( IDirectFBEventBuffer *thiz ); DFBResult (*PostEvent) ( IDirectFBEventBuffer *thiz, const DFBEvent *event ); DFBResult (*WakeUp) ( IDirectFBEventBuffer *thiz ); DFBResult (*CreateFileDescriptor) ( IDirectFBEventBuffer *thiz, int *ret_fd ); DFBResult (*EnableStatistics) ( IDirectFBEventBuffer *thiz, DFBBoolean enable ); DFBResult (*GetStatistics) ( IDirectFBEventBuffer *thiz, DFBEventBufferStats *ret_stats ); }; | |
9099 | # 4082 "/usr/include/directfb/directfb.h" | |
9100 | typedef enum { | |
9101 | DWOP_NONE = 0x00000000, | |
9102 | DWOP_COLORKEYING = 0x00000001, | |
9103 | DWOP_ALPHACHANNEL = 0x00000002, | |
9104 | ||
9105 | DWOP_OPAQUE_REGION = 0x00000004, | |
9106 | ||
9107 | DWOP_SHAPED = 0x00000008, | |
9108 | ||
9109 | ||
9110 | DWOP_KEEP_POSITION = 0x00000010, | |
9111 | ||
9112 | DWOP_KEEP_SIZE = 0x00000020, | |
9113 | ||
9114 | DWOP_KEEP_STACKING = 0x00000040, | |
9115 | ||
9116 | DWOP_GHOST = 0x00001000, | |
9117 | ||
9118 | ||
9119 | DWOP_INDESTRUCTIBLE = 0x00002000, | |
9120 | ||
9121 | DWOP_ALL = 0x0000307F | |
9122 | } DFBWindowOptions; | |
9123 | ||
9124 | ||
9125 | ||
9126 | ||
9127 | typedef enum { | |
9128 | DWSC_MIDDLE = 0x00000000, | |
9129 | ||
9130 | DWSC_UPPER = 0x00000001, | |
9131 | ||
9132 | ||
9133 | ||
9134 | ||
9135 | DWSC_LOWER = 0x00000002 | |
9136 | ||
9137 | ||
9138 | ||
9139 | ||
9140 | } DFBWindowStackingClass; | |
9141 | # 4131 "/usr/include/directfb/directfb.h" | |
9142 | struct _IDirectFBWindow { void *priv; int magic; DFBResult (*AddRef)( IDirectFBWindow *thiz ); DFBResult (*Release)( IDirectFBWindow *thiz ); DFBResult (*GetID) ( IDirectFBWindow *thiz, DFBWindowID *ret_window_id ); DFBResult (*GetPosition) ( IDirectFBWindow *thiz, int *ret_x, int *ret_y ); DFBResult (*GetSize) ( IDirectFBWindow *thiz, int *ret_width, int *ret_height ); DFBResult (*CreateEventBuffer) ( IDirectFBWindow *thiz, IDirectFBEventBuffer **ret_buffer ); DFBResult (*AttachEventBuffer) ( IDirectFBWindow *thiz, IDirectFBEventBuffer *buffer ); DFBResult (*EnableEvents) ( IDirectFBWindow *thiz, DFBWindowEventType mask ); DFBResult (*DisableEvents) ( IDirectFBWindow *thiz, DFBWindowEventType mask ); DFBResult (*GetSurface) ( IDirectFBWindow *thiz, IDirectFBSurface **ret_surface ); DFBResult (*SetOptions) ( IDirectFBWindow *thiz, DFBWindowOptions options ); DFBResult (*GetOptions) ( IDirectFBWindow *thiz, DFBWindowOptions *ret_options ); DFBResult (*SetColorKey) ( IDirectFBWindow *thiz, u_int8_t r, u_int8_t g, u_int8_t b ); DFBResult (*SetColorKeyIndex) ( IDirectFBWindow *thiz, unsigned int index ); DFBResult (*SetOpacity) ( IDirectFBWindow *thiz, u_int8_t opacity ); DFBResult (*SetOpaqueRegion) ( IDirectFBWindow *thiz, int x1, int y1, int x2, int y2 ); DFBResult (*GetOpacity) ( IDirectFBWindow *thiz, u_int8_t *ret_opacity ); DFBResult (*SetCursorShape) ( IDirectFBWindow *thiz, IDirectFBSurface *shape, int hot_x, int hot_y ); DFBResult (*RequestFocus) ( IDirectFBWindow *thiz ); DFBResult (*GrabKeyboard) ( IDirectFBWindow *thiz ); DFBResult (*UngrabKeyboard) ( IDirectFBWindow *thiz ); DFBResult (*GrabPointer) ( IDirectFBWindow *thiz ); DFBResult (*UngrabPointer) ( IDirectFBWindow *thiz ); DFBResult (*GrabKey) ( IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers ); DFBResult (*UngrabKey) ( IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers ); DFBResult (*Move) ( IDirectFBWindow *thiz, int dx, int dy ); DFBResult (*MoveTo) ( IDirectFBWindow *thiz, int x, int y ); DFBResult (*Resize) ( IDirectFBWindow *thiz, int width, int height ); DFBResult (*SetStackingClass) ( IDirectFBWindow *thiz, DFBWindowStackingClass stacking_class ); DFBResult (*Raise) ( IDirectFBWindow *thiz ); DFBResult (*Lower) ( IDirectFBWindow *thiz ); DFBResult (*RaiseToTop) ( IDirectFBWindow *thiz ); DFBResult (*LowerToBottom) ( IDirectFBWindow *thiz ); DFBResult (*PutAtop) ( IDirectFBWindow *thiz, IDirectFBWindow *lower ); DFBResult (*PutBelow) ( IDirectFBWindow *thiz, IDirectFBWindow *upper ); DFBResult (*Close) ( IDirectFBWindow *thiz ); DFBResult (*Destroy) ( IDirectFBWindow *thiz ); }; | |
9143 | # 4499 "/usr/include/directfb/directfb.h" | |
9144 | struct _IDirectFBFont { void *priv; int magic; DFBResult (*AddRef)( IDirectFBFont *thiz ); DFBResult (*Release)( IDirectFBFont *thiz ); DFBResult (*GetAscender) ( IDirectFBFont *thiz, int *ret_ascender ); DFBResult (*GetDescender) ( IDirectFBFont *thiz, int *ret_descender ); DFBResult (*GetHeight) ( IDirectFBFont *thiz, int *ret_height ); DFBResult (*GetMaxAdvance) ( IDirectFBFont *thiz, int *ret_maxadvance ); DFBResult (*GetKerning) ( IDirectFBFont *thiz, unsigned int prev_index, unsigned int current_index, int *ret_kern_x, int *ret_kern_y ); DFBResult (*GetStringWidth) ( IDirectFBFont *thiz, const char *text, int bytes, int *ret_width ); DFBResult (*GetStringExtents) ( IDirectFBFont *thiz, const char *text, int bytes, DFBRectangle *ret_logical_rect, DFBRectangle *ret_ink_rect ); DFBResult (*GetGlyphExtents) ( IDirectFBFont *thiz, unsigned int index, DFBRectangle *ret_rect, int *ret_advance ); }; | |
9145 | # 4635 "/usr/include/directfb/directfb.h" | |
9146 | typedef enum { | |
9147 | DICAPS_NONE = 0x00000000, | |
9148 | DICAPS_ALPHACHANNEL = 0x00000001, | |
9149 | ||
9150 | DICAPS_COLORKEY = 0x00000002 | |
9151 | ||
9152 | ||
9153 | } DFBImageCapabilities; | |
9154 | ||
9155 | ||
9156 | ||
9157 | ||
9158 | ||
9159 | typedef struct { | |
9160 | DFBImageCapabilities caps; | |
9161 | ||
9162 | u_int8_t colorkey_r; | |
9163 | u_int8_t colorkey_g; | |
9164 | u_int8_t colorkey_b; | |
9165 | } DFBImageDescription; | |
9166 | ||
9167 | ||
9168 | ||
9169 | ||
9170 | ||
9171 | typedef void (*DIRenderCallback)(DFBRectangle *rect, void *ctx); | |
9172 | # 4669 "/usr/include/directfb/directfb.h" | |
9173 | struct _IDirectFBImageProvider { void *priv; int magic; DFBResult (*AddRef)( IDirectFBImageProvider *thiz ); DFBResult (*Release)( IDirectFBImageProvider *thiz ); DFBResult (*GetSurfaceDescription) ( IDirectFBImageProvider *thiz, DFBSurfaceDescription *ret_dsc ); DFBResult (*GetImageDescription) ( IDirectFBImageProvider *thiz, DFBImageDescription *ret_dsc ); DFBResult (*RenderTo) ( IDirectFBImageProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect ); DFBResult (*SetRenderCallback) ( IDirectFBImageProvider *thiz, DIRenderCallback callback, void *callback_data ); }; | |
9174 | # 4735 "/usr/include/directfb/directfb.h" | |
9175 | typedef enum { | |
9176 | DVSCAPS_NONE = 0x00000000, | |
9177 | DVSCAPS_VIDEO = 0x00000001, | |
9178 | DVSCAPS_AUDIO = 0x00000002 | |
9179 | ||
9180 | } DFBStreamCapabilities; | |
9181 | ||
9182 | #define DFB_STREAM_DESC_ENCODING_LENGTH 30 | |
9183 | #define DFB_STREAM_DESC_TITLE_LENGTH 255 | |
9184 | #define DFB_STREAM_DESC_AUTHOR_LENGTH 255 | |
9185 | #define DFB_STREAM_DESC_ALBUM_LENGTH 255 | |
9186 | #define DFB_STREAM_DESC_GENRE_LENGTH 32 | |
9187 | #define DFB_STREAM_DESC_COMMENT_LENGTH 255 | |
9188 | ||
9189 | ||
9190 | ||
9191 | ||
9192 | typedef struct { | |
9193 | DFBStreamCapabilities caps; | |
9194 | ||
9195 | struct { | |
9196 | char encoding[30]; | |
9197 | ||
9198 | double framerate; | |
9199 | double aspect; | |
9200 | int bitrate; | |
9201 | } video; | |
9202 | ||
9203 | struct { | |
9204 | char encoding[30]; | |
9205 | ||
9206 | int samplerate; | |
9207 | int channels; | |
9208 | int bitrate; | |
9209 | } audio; | |
9210 | ||
9211 | char title[255]; | |
9212 | char author[255]; | |
9213 | char album[255]; | |
9214 | short year; | |
9215 | char genre[32]; | |
9216 | char comment[255]; | |
9217 | } DFBStreamDescription; | |
9218 | ||
9219 | ||
9220 | ||
9221 | ||
9222 | typedef int (*DVFrameCallback)(void *ctx); | |
9223 | # 4792 "/usr/include/directfb/directfb.h" | |
9224 | struct _IDirectFBVideoProvider { void *priv; int magic; DFBResult (*AddRef)( IDirectFBVideoProvider *thiz ); DFBResult (*Release)( IDirectFBVideoProvider *thiz ); DFBResult (*GetCapabilities) ( IDirectFBVideoProvider *thiz, DFBVideoProviderCapabilities *ret_caps ); DFBResult (*GetSurfaceDescription) ( IDirectFBVideoProvider *thiz, DFBSurfaceDescription *ret_dsc ); DFBResult (*GetStreamDescription) ( IDirectFBVideoProvider *thiz, DFBStreamDescription *ret_dsc ); DFBResult (*PlayTo) ( IDirectFBVideoProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect, DVFrameCallback callback, void *ctx ); DFBResult (*Stop) ( IDirectFBVideoProvider *thiz ); DFBResult (*GetStatus) ( IDirectFBVideoProvider *thiz, DFBVideoProviderStatus *ret_status ); DFBResult (*SeekTo) ( IDirectFBVideoProvider *thiz, double seconds ); DFBResult (*GetPos) ( IDirectFBVideoProvider *thiz, double *ret_seconds ); DFBResult (*GetLength) ( IDirectFBVideoProvider *thiz, double *ret_seconds ); DFBResult (*GetColorAdjustment) ( IDirectFBVideoProvider *thiz, DFBColorAdjustment *ret_adj ); DFBResult (*SetColorAdjustment) ( IDirectFBVideoProvider *thiz, const DFBColorAdjustment *adj ); DFBResult (*SendEvent) ( IDirectFBVideoProvider *thiz, const DFBEvent *event ); }; | |
9225 | # 4928 "/usr/include/directfb/directfb.h" | |
9226 | struct _IDirectFBDataBuffer { void *priv; int magic; DFBResult (*AddRef)( IDirectFBDataBuffer *thiz ); DFBResult (*Release)( IDirectFBDataBuffer *thiz ); DFBResult (*Flush) ( IDirectFBDataBuffer *thiz ); DFBResult (*Finish) ( IDirectFBDataBuffer *thiz ); DFBResult (*SeekTo) ( IDirectFBDataBuffer *thiz, unsigned int offset ); DFBResult (*GetPosition) ( IDirectFBDataBuffer *thiz, unsigned int *ret_offset ); DFBResult (*GetLength) ( IDirectFBDataBuffer *thiz, unsigned int *ret_length ); DFBResult (*WaitForData) ( IDirectFBDataBuffer *thiz, unsigned int length ); DFBResult (*WaitForDataWithTimeout) ( IDirectFBDataBuffer *thiz, unsigned int length, unsigned int seconds, unsigned int milli_seconds ); DFBResult (*GetData) ( IDirectFBDataBuffer *thiz, unsigned int length, void *ret_data, unsigned int *ret_read ); DFBResult (*PeekData) ( IDirectFBDataBuffer *thiz, unsigned int length, int offset, void *ret_data, unsigned int *ret_read ); DFBResult (*HasData) ( IDirectFBDataBuffer *thiz ); DFBResult (*PutData) ( IDirectFBDataBuffer *thiz, const void *data, unsigned int length ); DFBResult (*CreateImageProvider) ( IDirectFBDataBuffer *thiz, IDirectFBImageProvider **interface ); DFBResult (*CreateVideoProvider) ( IDirectFBDataBuffer *thiz, IDirectFBVideoProvider **interface ); }; | |
9227 | # 29 "video_out_dfb.c" 2 | |
9228 | # 1 "/usr/include/directfb/directfb_version.h" 1 | |
9229 | # 28 "/usr/include/directfb/directfb_version.h" | |
9230 | #define __DIRECTFB_VERSION_H__ | |
9231 | ||
9232 | #define DIRECTFB_MAJOR_VERSION (0) | |
9233 | #define DIRECTFB_MINOR_VERSION (9) | |
9234 | #define DIRECTFB_MICRO_VERSION (25) | |
9235 | #define DIRECTFB_BINARY_AGE (0) | |
9236 | #define DIRECTFB_INTERFACE_AGE (0) | |
9237 | # 30 "video_out_dfb.c" 2 | |
9238 | # 1 "/usr/include/directfb/directfb_strings.h" 1 | |
9239 | ||
9240 | #define __DIRECTFB_STRINGS_H__ | |
9241 | ||
9242 | #define DirectFBPixelFormatNames(Identifier) struct DFBPixelFormatName { DFBSurfacePixelFormat format; const char *name; } Identifier[] = { { DSPF_ARGB1555, "ARGB1555" }, { DSPF_RGB16, "RGB16" }, { DSPF_RGB24, "RGB24" }, { DSPF_RGB32, "RGB32" }, { DSPF_ARGB, "ARGB" }, { DSPF_A8, "A8" }, { DSPF_YUY2, "YUY2" }, { DSPF_RGB332, "RGB332" }, { DSPF_UYVY, "UYVY" }, { DSPF_I420, "I420" }, { DSPF_YV12, "YV12" }, { DSPF_LUT8, "LUT8" }, { DSPF_ALUT44, "ALUT44" }, { DSPF_AiRGB, "AiRGB" }, { DSPF_A1, "A1" }, { DSPF_NV12, "NV12" }, { DSPF_NV16, "NV16" }, { DSPF_ARGB2554, "ARGB2554" }, { DSPF_ARGB4444, "ARGB4444" }, { DSPF_NV21, "NV21" }, { DSPF_AYUV, "AYUV" }, { DSPF_UNKNOWN, "UNKNOWN" } }; | |
9243 | # 32 "/usr/include/directfb/directfb_strings.h" | |
9244 | #define DirectFBInputDeviceTypeFlagsNames(Identifier) struct DFBInputDeviceTypeFlagsName { DFBInputDeviceTypeFlags type; const char *name; } Identifier[] = { { DIDTF_KEYBOARD, "KEYBOARD" }, { DIDTF_MOUSE, "MOUSE" }, { DIDTF_JOYSTICK, "JOYSTICK" }, { DIDTF_REMOTE, "REMOTE" }, { DIDTF_VIRTUAL, "VIRTUAL" }, { DIDTF_NONE, "NONE" } }; | |
9245 | # 44 "/usr/include/directfb/directfb_strings.h" | |
9246 | #define DirectFBSurfaceDrawingFlagsNames(Identifier) struct DFBSurfaceDrawingFlagsName { DFBSurfaceDrawingFlags flag; const char *name; } Identifier[] = { { DSDRAW_BLEND, "BLEND" }, { DSDRAW_DST_COLORKEY, "DST_COLORKEY" }, { DSDRAW_SRC_PREMULTIPLY, "SRC_PREMULTIPLY" }, { DSDRAW_DST_PREMULTIPLY, "DST_PREMULTIPLY" }, { DSDRAW_DEMULTIPLY, "DEMULTIPLY" }, { DSDRAW_XOR, "XOR" }, { DSDRAW_NOFX, "NOFX" } }; | |
9247 | # 57 "/usr/include/directfb/directfb_strings.h" | |
9248 | #define DirectFBSurfaceBlittingFlagsNames(Identifier) struct DFBSurfaceBlittingFlagsName { DFBSurfaceBlittingFlags flag; const char *name; } Identifier[] = { { DSBLIT_BLEND_ALPHACHANNEL, "BLEND_ALPHACHANNEL" }, { DSBLIT_BLEND_COLORALPHA, "BLEND_COLORALPHA" }, { DSBLIT_COLORIZE, "COLORIZE" }, { DSBLIT_SRC_COLORKEY, "SRC_COLORKEY" }, { DSBLIT_DST_COLORKEY, "DST_COLORKEY" }, { DSBLIT_SRC_PREMULTIPLY, "SRC_PREMULTIPLY" }, { DSBLIT_DST_PREMULTIPLY, "DST_PREMULTIPLY" }, { DSBLIT_DEMULTIPLY, "DEMULTIPLY" }, { DSBLIT_DEINTERLACE, "DEINTERLACE" }, { DSBLIT_SRC_PREMULTCOLOR, "SRC_PREMULTCOLOR" }, { DSBLIT_XOR, "XOR" }, { DSBLIT_NOFX, "NOFX" } }; | |
9249 | # 75 "/usr/include/directfb/directfb_strings.h" | |
9250 | #define DirectFBInputDeviceCapabilitiesNames(Identifier) struct DFBInputDeviceCapabilitiesName { DFBInputDeviceCapabilities capability; const char *name; } Identifier[] = { { DICAPS_KEYS, "KEYS" }, { DICAPS_AXES, "AXES" }, { DICAPS_BUTTONS, "BUTTONS" }, { DICAPS_NONE, "NONE" } }; | |
9251 | # 85 "/usr/include/directfb/directfb_strings.h" | |
9252 | #define DirectFBDisplayLayerTypeFlagsNames(Identifier) struct DFBDisplayLayerTypeFlagsName { DFBDisplayLayerTypeFlags type; const char *name; } Identifier[] = { { DLTF_GRAPHICS, "GRAPHICS" }, { DLTF_VIDEO, "VIDEO" }, { DLTF_STILL_PICTURE, "STILL_PICTURE" }, { DLTF_BACKGROUND, "BACKGROUND" }, { DLTF_NONE, "NONE" } }; | |
9253 | # 96 "/usr/include/directfb/directfb_strings.h" | |
9254 | #define DirectFBDisplayLayerCapabilitiesNames(Identifier) struct DFBDisplayLayerCapabilitiesName { DFBDisplayLayerCapabilities capability; const char *name; } Identifier[] = { { DLCAPS_SURFACE, "SURFACE" }, { DLCAPS_OPACITY, "OPACITY" }, { DLCAPS_ALPHACHANNEL, "ALPHACHANNEL" }, { DLCAPS_SCREEN_LOCATION, "SCREEN_LOCATION" }, { DLCAPS_FLICKER_FILTERING, "FLICKER_FILTERING" }, { DLCAPS_DEINTERLACING, "DEINTERLACING" }, { DLCAPS_SRC_COLORKEY, "SRC_COLORKEY" }, { DLCAPS_DST_COLORKEY, "DST_COLORKEY" }, { DLCAPS_BRIGHTNESS, "BRIGHTNESS" }, { DLCAPS_CONTRAST, "CONTRAST" }, { DLCAPS_HUE, "HUE" }, { DLCAPS_SATURATION, "SATURATION" }, { DLCAPS_LEVELS, "LEVELS" }, { DLCAPS_FIELD_PARITY, "FIELD_PARITY" }, { DLCAPS_WINDOWS, "WINDOWS" }, { DLCAPS_SOURCES, "SOURCES" }, { DLCAPS_ALPHA_RAMP, "ALPHA_RAMP" }, { DLCAPS_PREMULTIPLIED, "PREMULTIPLIED" }, { DLCAPS_SCREEN_POSITION, "SCREEN_POSITION" }, { DLCAPS_SCREEN_SIZE, "SCREEN_SIZE" }, { DLCAPS_NONE, "NONE" } }; | |
9255 | # 123 "/usr/include/directfb/directfb_strings.h" | |
9256 | #define DirectFBDisplayLayerBufferModeNames(Identifier) struct DFBDisplayLayerBufferModeName { DFBDisplayLayerBufferMode mode; const char *name; } Identifier[] = { { DLBM_FRONTONLY, "FRONTONLY" }, { DLBM_BACKVIDEO, "BACKVIDEO" }, { DLBM_BACKSYSTEM, "BACKSYSTEM" }, { DLBM_TRIPLE, "TRIPLE" }, { DLBM_WINDOWS, "WINDOWS" }, { DLBM_UNKNOWN, "UNKNOWN" } }; | |
9257 | # 135 "/usr/include/directfb/directfb_strings.h" | |
9258 | #define DirectFBScreenCapabilitiesNames(Identifier) struct DFBScreenCapabilitiesName { DFBScreenCapabilities capability; const char *name; } Identifier[] = { { DSCCAPS_VSYNC, "VSYNC" }, { DSCCAPS_POWER_MANAGEMENT, "POWER_MANAGEMENT" }, { DSCCAPS_MIXERS, "MIXERS" }, { DSCCAPS_ENCODERS, "ENCODERS" }, { DSCCAPS_OUTPUTS, "OUTPUTS" }, { DSCCAPS_NONE, "NONE" } }; | |
9259 | # 147 "/usr/include/directfb/directfb_strings.h" | |
9260 | #define DirectFBScreenEncoderCapabilitiesNames(Identifier) struct DFBScreenEncoderCapabilitiesName { DFBScreenEncoderCapabilities capability; const char *name; } Identifier[] = { { DSECAPS_TV_STANDARDS, "TV_STANDARDS" }, { DSECAPS_TEST_PICTURE, "TEST_PICTURE" }, { DSECAPS_MIXER_SEL, "MIXER_SEL" }, { DSECAPS_OUT_SIGNALS, "OUT_SIGNALS" }, { DSECAPS_SCANMODE, "SCANMODE" }, { DSECAPS_BRIGHTNESS, "BRIGHTNESS" }, { DSECAPS_CONTRAST, "CONTRAST" }, { DSECAPS_HUE, "HUE" }, { DSECAPS_SATURATION, "SATURATION" }, { DSECAPS_NONE, "NONE" } }; | |
9261 | # 163 "/usr/include/directfb/directfb_strings.h" | |
9262 | #define DirectFBScreenEncoderTypeNames(Identifier) struct DFBScreenEncoderTypeName { DFBScreenEncoderType type; const char *name; } Identifier[] = { { DSET_CRTC, "CRTC" }, { DSET_TV, "TV" }, { DSET_UNKNOWN, "UNKNOWN" } }; | |
9263 | # 172 "/usr/include/directfb/directfb_strings.h" | |
9264 | #define DirectFBScreenEncoderTVStandardsNames(Identifier) struct DFBScreenEncoderTVStandardsName { DFBScreenEncoderTVStandards standard; const char *name; } Identifier[] = { { DSETV_PAL, "PAL" }, { DSETV_NTSC, "NTSC" }, { DSETV_SECAM, "SECAM" }, { DSETV_UNKNOWN, "UNKNOWN" } }; | |
9265 | # 182 "/usr/include/directfb/directfb_strings.h" | |
9266 | #define DirectFBScreenOutputCapabilitiesNames(Identifier) struct DFBScreenOutputCapabilitiesName { DFBScreenOutputCapabilities capability; const char *name; } Identifier[] = { { DSOCAPS_CONNECTORS, "CONNECTORS" }, { DSOCAPS_ENCODER_SEL, "ENCODER_SEL" }, { DSOCAPS_SIGNAL_SEL, "SIGNAL_SEL" }, { DSOCAPS_CONNECTOR_SEL, "CONNECTOR_SEL" }, { DSOCAPS_NONE, "NONE" } }; | |
9267 | # 193 "/usr/include/directfb/directfb_strings.h" | |
9268 | #define DirectFBScreenOutputConnectorsNames(Identifier) struct DFBScreenOutputConnectorsName { DFBScreenOutputConnectors connector; const char *name; } Identifier[] = { { DSOC_VGA, "VGA" }, { DSOC_SCART, "SCART" }, { DSOC_YC, "YC" }, { DSOC_CVBS, "CVBS" }, { DSOC_UNKNOWN, "UNKNOWN" } }; | |
9269 | # 204 "/usr/include/directfb/directfb_strings.h" | |
9270 | #define DirectFBScreenOutputSignalsNames(Identifier) struct DFBScreenOutputSignalsName { DFBScreenOutputSignals signal; const char *name; } Identifier[] = { { DSOS_VGA, "VGA" }, { DSOS_YC, "YC" }, { DSOS_CVBS, "CVBS" }, { DSOS_RGB, "RGB" }, { DSOS_YCBCR, "YCBCR" }, { DSOS_NONE, "NONE" } }; | |
9271 | # 216 "/usr/include/directfb/directfb_strings.h" | |
9272 | #define DirectFBScreenMixerCapabilitiesNames(Identifier) struct DFBScreenMixerCapabilitiesName { DFBScreenMixerCapabilities capability; const char *name; } Identifier[] = { { DSMCAPS_FULL, "FULL" }, { DSMCAPS_SUB_LEVEL, "SUB_LEVEL" }, { DSMCAPS_SUB_LAYERS, "SUB_LAYERS" }, { DSMCAPS_BACKGROUND, "BACKGROUND" }, { DSMCAPS_NONE, "NONE" } }; | |
9273 | # 227 "/usr/include/directfb/directfb_strings.h" | |
9274 | #define DirectFBScreenMixerTreeNames(Identifier) struct DFBScreenMixerTreeName { DFBScreenMixerTree tree; const char *name; } Identifier[] = { { DSMT_FULL, "FULL" }, { DSMT_SUB_LEVEL, "SUB_LEVEL" }, { DSMT_SUB_LAYERS, "SUB_LAYERS" }, { DSMT_UNKNOWN, "UNKNOWN" } }; | |
9275 | # 237 "/usr/include/directfb/directfb_strings.h" | |
9276 | #define DirectFBScreenEncoderTestPictureNames(Identifier) struct DFBScreenEncoderTestPictureName { DFBScreenEncoderTestPicture test_picture; const char *name; } Identifier[] = { { DSETP_MULTI, "MULTI" }, { DSETP_SINGLE, "SINGLE" }, { DSETP_WHITE, "WHITE" }, { DSETP_YELLOW, "YELLOW" }, { DSETP_CYAN, "CYAN" }, { DSETP_GREEN, "GREEN" }, { DSETP_MAGENTA, "MAGENTA" }, { DSETP_RED, "RED" }, { DSETP_BLUE, "BLUE" }, { DSETP_BLACK, "BLACK" }, { DSETP_OFF, "OFF" } }; | |
9277 | # 254 "/usr/include/directfb/directfb_strings.h" | |
9278 | #define DirectFBScreenEncoderScanModeNames(Identifier) struct DFBScreenEncoderScanModeName { DFBScreenEncoderScanMode scan_mode; const char *name; } Identifier[] = { { DSESM_INTERLACED, "INTERLACED" }, { DSESM_PROGRESSIVE, "PROGRESSIVE" }, { DSESM_UNKNOWN, "UNKNOWN" } }; | |
9279 | # 263 "/usr/include/directfb/directfb_strings.h" | |
9280 | #define DirectFBAccelerationMaskNames(Identifier) struct DFBAccelerationMaskName { DFBAccelerationMask mask; const char *name; } Identifier[] = { { DFXL_FILLRECTANGLE, "FILLRECTANGLE" }, { DFXL_DRAWRECTANGLE, "DRAWRECTANGLE" }, { DFXL_DRAWLINE, "DRAWLINE" }, { DFXL_FILLTRIANGLE, "FILLTRIANGLE" }, { DFXL_BLIT, "BLIT" }, { DFXL_STRETCHBLIT, "STRETCHBLIT" }, { DFXL_TEXTRIANGLES, "TEXTRIANGLES" }, { DFXL_DRAWSTRING, "DRAWSTRING" }, { DFXL_NONE, "NONE" } }; | |
9281 | # 31 "video_out_dfb.c" 2 | |
9282 | ||
9283 | # 1 "/usr/include/directfb-internal/core/coredefs.h" 1 | |
9284 | # 29 "/usr/include/directfb-internal/core/coredefs.h" | |
9285 | #define __COREDEFS_H__ | |
9286 | ||
9287 | ||
9288 | ||
9289 | #define DFB_DYNAMIC_LINKING | |
9290 | ||
9291 | ||
9292 | #define MAX_INPUTDEVICES 32 | |
9293 | #define MAX_LAYERS 24 | |
9294 | #define MAX_SCREENS 16 | |
9295 | ||
9296 | #define MAX_INPUT_GLOBALS 8 | |
9297 | # 33 "video_out_dfb.c" 2 | |
9298 | # 1 "/usr/include/directfb-internal/core/coretypes.h" 1 | |
9299 | # 29 "/usr/include/directfb-internal/core/coretypes.h" | |
9300 | #define __CORETYPES_H__ | |
9301 | ||
9302 | ||
9303 | ||
9304 | typedef struct __DFB_CoreDFB CoreDFB; | |
9305 | typedef struct __DFB_CoreDFBShared CoreDFBShared; | |
9306 | ||
9307 | typedef struct _CoreCleanup CoreCleanup; | |
9308 | ||
9309 | typedef struct _CoreFont CoreFont; | |
9310 | typedef struct _CorePalette CorePalette; | |
9311 | typedef struct _CoreSurface CoreSurface; | |
9312 | ||
9313 | typedef struct _SurfaceBuffer SurfaceBuffer; | |
9314 | typedef struct _SurfaceManager SurfaceManager; | |
9315 | ||
9316 | typedef struct _CardState CardState; | |
9317 | ||
9318 | typedef struct _Chunk Chunk; | |
9319 | ||
9320 | ||
9321 | typedef struct _GraphicsDevice GraphicsDevice; | |
9322 | typedef struct _GraphicsDevice CoreGraphicsDevice; | |
9323 | ||
9324 | ||
9325 | typedef struct __DFB_CoreGraphicsSerial CoreGraphicsSerial; | |
9326 | ||
9327 | typedef struct __DFB_CoreScreen CoreScreen; | |
9328 | ||
9329 | typedef struct __DFB_CoreInputDevice CoreInputDevice; | |
9330 | ||
9331 | typedef struct __DFB_CoreLayer CoreLayer; | |
9332 | typedef struct __DFB_CoreLayerContext CoreLayerContext; | |
9333 | typedef struct __DFB_CoreLayerRegion CoreLayerRegion; | |
9334 | typedef struct __DFB_CoreLayerRegionConfig CoreLayerRegionConfig; | |
9335 | ||
9336 | typedef struct __DFB_CoreWindow CoreWindow; | |
9337 | typedef struct __DFB_CoreWindowConfig CoreWindowConfig; | |
9338 | typedef struct __DFB_CoreWindowStack CoreWindowStack; | |
9339 | # 34 "video_out_dfb.c" 2 | |
9340 | # 1 "/usr/include/directfb-internal/core/state.h" 1 | |
9341 | # 29 "/usr/include/directfb-internal/core/state.h" | |
9342 | #define __CORE__STATE_H__ | |
9343 | ||
9344 | # 1 "/usr/include/pthread.h" 1 3 4 | |
9345 | # 32 "/usr/include/directfb-internal/core/state.h" 2 | |
9346 | ||
9347 | ||
9348 | ||
9349 | # 1 "/usr/include/directfb/direct/serial.h" 1 | |
9350 | # 29 "/usr/include/directfb/direct/serial.h" | |
9351 | #define __DIRECT__SERIAL_H__ | |
9352 | ||
9353 | # 1 "/usr/include/directfb/direct/types.h" 1 | |
9354 | # 29 "/usr/include/directfb/direct/types.h" | |
9355 | #define __DIRECT__TYPES_H__ | |
9356 | ||
9357 | ||
9358 | ||
9359 | ||
9360 | ||
9361 | typedef DFBResult DirectResult; | |
9362 | # 46 "/usr/include/directfb/direct/types.h" | |
9363 | #define false (0) | |
9364 | ||
9365 | ||
9366 | #define true (!false) | |
9367 | ||
9368 | typedef u_int8_t bool; | |
9369 | ||
9370 | ||
9371 | typedef u_int32_t unichar; | |
9372 | ||
9373 | typedef struct __D_DirectConfig DirectConfig; | |
9374 | typedef struct __D_DirectHash DirectHash; | |
9375 | typedef struct __D_DirectLink DirectLink; | |
9376 | typedef struct __D_DirectLog DirectLog; | |
9377 | typedef struct __D_DirectModuleDir DirectModuleDir; | |
9378 | typedef struct __D_DirectModuleEntry DirectModuleEntry; | |
9379 | typedef struct __D_DirectSerial DirectSerial; | |
9380 | typedef struct __D_DirectSignalHandler DirectSignalHandler; | |
9381 | typedef struct __D_DirectStream DirectStream; | |
9382 | typedef struct __D_DirectTraceBuffer DirectTraceBuffer; | |
9383 | typedef struct __D_DirectTree DirectTree; | |
9384 | typedef struct __D_DirectThread DirectThread; | |
9385 | typedef struct __D_DirectThreadInitHandler DirectThreadInitHandler; | |
9386 | # 32 "/usr/include/directfb/direct/serial.h" 2 | |
9387 | # 1 "/usr/include/directfb/direct/debug.h" 1 | |
9388 | # 29 "/usr/include/directfb/direct/debug.h" | |
9389 | #define __DIRECT__DEBUG_H__ | |
9390 | ||
9391 | # 1 "/usr/include/directfb/direct/build.h" 1 | |
9392 | # 29 "/usr/include/directfb/direct/build.h" | |
9393 | #define __DIRECT__BUILD_H__ | |
9394 | ||
9395 | #define DIRECT_BUILD_DEBUG (0) | |
9396 | #define DIRECT_BUILD_DEBUGS (1) | |
9397 | #define DIRECT_BUILD_TRACE (0) | |
9398 | #define DIRECT_BUILD_TEXT (1) | |
9399 | #define DIRECT_BUILD_GETTID (1) | |
9400 | # 32 "/usr/include/directfb/direct/debug.h" 2 | |
9401 | ||
9402 | # 1 "/usr/include/stdio.h" 1 3 4 | |
9403 | # 34 "/usr/include/directfb/direct/debug.h" 2 | |
9404 | # 1 "/usr/include/errno.h" 1 3 4 | |
9405 | ||
9406 | ||
9407 | ||
9408 | ||
9409 | ||
9410 | ||
9411 | ||
9412 | # 1 "/usr/include/gentoo-multilib/amd64/errno.h" 1 3 4 | |
9413 | # 28 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 | |
9414 | #define _ERRNO_H 1 | |
9415 | # 1 "/usr/include/features.h" 1 3 4 | |
9416 | # 30 "/usr/include/gentoo-multilib/amd64/errno.h" 2 3 4 | |
9417 | ||
9418 | ||
9419 | ||
9420 | ||
9421 | ||
9422 | ||
9423 | # 1 "/usr/include/bits/errno.h" 1 3 4 | |
9424 | ||
9425 | ||
9426 | ||
9427 | ||
9428 | ||
9429 | ||
9430 | ||
9431 | # 1 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 1 3 4 | |
9432 | # 22 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 3 4 | |
9433 | #undef EDOM | |
9434 | #undef EILSEQ | |
9435 | #undef ERANGE | |
9436 | # 1 "/usr/include/linux/errno.h" 1 3 4 | |
9437 | ||
9438 | #define _LINUX_ERRNO_H | |
9439 | ||
9440 | # 1 "/usr/include/asm/errno.h" 1 3 4 | |
9441 | ||
9442 | ||
9443 | #define __ASM_STUB_ERRNO_H | |
9444 | ||
9445 | # 1 "/usr/include/asm-x86_64/errno.h" 1 3 4 | |
9446 | ||
9447 | #define _X8664_ERRNO_H | |
9448 | ||
9449 | # 1 "/usr/include/asm-generic/errno.h" 1 3 4 | |
9450 | ||
9451 | #define _ASM_GENERIC_ERRNO_H | |
9452 | ||
9453 | # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 | |
9454 | ||
9455 | #define _ASM_GENERIC_ERRNO_BASE_H | |
9456 | ||
9457 | #define EPERM 1 | |
9458 | #define ENOENT 2 | |
9459 | #define ESRCH 3 | |
9460 | #define EINTR 4 | |
9461 | #define EIO 5 | |
9462 | #define ENXIO 6 | |
9463 | #define E2BIG 7 | |
9464 | #define ENOEXEC 8 | |
9465 | #define EBADF 9 | |
9466 | #define ECHILD 10 | |
9467 | #define EAGAIN 11 | |
9468 | #define ENOMEM 12 | |
9469 | #define EACCES 13 | |
9470 | #define EFAULT 14 | |
9471 | #define ENOTBLK 15 | |
9472 | #define EBUSY 16 | |
9473 | #define EEXIST 17 | |
9474 | #define EXDEV 18 | |
9475 | #define ENODEV 19 | |
9476 | #define ENOTDIR 20 | |
9477 | #define EISDIR 21 | |
9478 | #define EINVAL 22 | |
9479 | #define ENFILE 23 | |
9480 | #define EMFILE 24 | |
9481 | #define ENOTTY 25 | |
9482 | #define ETXTBSY 26 | |
9483 | #define EFBIG 27 | |
9484 | #define ENOSPC 28 | |
9485 | #define ESPIPE 29 | |
9486 | #define EROFS 30 | |
9487 | #define EMLINK 31 | |
9488 | #define EPIPE 32 | |
9489 | #define EDOM 33 | |
9490 | #define ERANGE 34 | |
9491 | # 5 "/usr/include/asm-generic/errno.h" 2 3 4 | |
9492 | ||
9493 | #define EDEADLK 35 | |
9494 | #define ENAMETOOLONG 36 | |
9495 | #define ENOLCK 37 | |
9496 | #define ENOSYS 38 | |
9497 | #define ENOTEMPTY 39 | |
9498 | #define ELOOP 40 | |
9499 | #define EWOULDBLOCK EAGAIN | |
9500 | #define ENOMSG 42 | |
9501 | #define EIDRM 43 | |
9502 | #define ECHRNG 44 | |
9503 | #define EL2NSYNC 45 | |
9504 | #define EL3HLT 46 | |
9505 | #define EL3RST 47 | |
9506 | #define ELNRNG 48 | |
9507 | #define EUNATCH 49 | |
9508 | #define ENOCSI 50 | |
9509 | #define EL2HLT 51 | |
9510 | #define EBADE 52 | |
9511 | #define EBADR 53 | |
9512 | #define EXFULL 54 | |
9513 | #define ENOANO 55 | |
9514 | #define EBADRQC 56 | |
9515 | #define EBADSLT 57 | |
9516 | ||
9517 | #define EDEADLOCK EDEADLK | |
9518 | ||
9519 | #define EBFONT 59 | |
9520 | #define ENOSTR 60 | |
9521 | #define ENODATA 61 | |
9522 | #define ETIME 62 | |
9523 | #define ENOSR 63 | |
9524 | #define ENONET 64 | |
9525 | #define ENOPKG 65 | |
9526 | #define EREMOTE 66 | |
9527 | #define ENOLINK 67 | |
9528 | #define EADV 68 | |
9529 | #define ESRMNT 69 | |
9530 | #define ECOMM 70 | |
9531 | #define EPROTO 71 | |
9532 | #define EMULTIHOP 72 | |
9533 | #define EDOTDOT 73 | |
9534 | #define EBADMSG 74 | |
9535 | #define EOVERFLOW 75 | |
9536 | #define ENOTUNIQ 76 | |
9537 | #define EBADFD 77 | |
9538 | #define EREMCHG 78 | |
9539 | #define ELIBACC 79 | |
9540 | #define ELIBBAD 80 | |
9541 | #define ELIBSCN 81 | |
9542 | #define ELIBMAX 82 | |
9543 | #define ELIBEXEC 83 | |
9544 | #define EILSEQ 84 | |
9545 | #define ERESTART 85 | |
9546 | #define ESTRPIPE 86 | |
9547 | #define EUSERS 87 | |
9548 | #define ENOTSOCK 88 | |
9549 | #define EDESTADDRREQ 89 | |
9550 | #define EMSGSIZE 90 | |
9551 | #define EPROTOTYPE 91 | |
9552 | #define ENOPROTOOPT 92 | |
9553 | #define EPROTONOSUPPORT 93 | |
9554 | #define ESOCKTNOSUPPORT 94 | |
9555 | #define EOPNOTSUPP 95 | |
9556 | #define EPFNOSUPPORT 96 | |
9557 | #define EAFNOSUPPORT 97 | |
9558 | #define EADDRINUSE 98 | |
9559 | #define EADDRNOTAVAIL 99 | |
9560 | #define ENETDOWN 100 | |
9561 | #define ENETUNREACH 101 | |
9562 | #define ENETRESET 102 | |
9563 | #define ECONNABORTED 103 | |
9564 | #define ECONNRESET 104 | |
9565 | #define ENOBUFS 105 | |
9566 | #define EISCONN 106 | |
9567 | #define ENOTCONN 107 | |
9568 | #define ESHUTDOWN 108 | |
9569 | #define ETOOMANYREFS 109 | |
9570 | #define ETIMEDOUT 110 | |
9571 | #define ECONNREFUSED 111 | |
9572 | #define EHOSTDOWN 112 | |
9573 | #define EHOSTUNREACH 113 | |
9574 | #define EALREADY 114 | |
9575 | #define EINPROGRESS 115 | |
9576 | #define ESTALE 116 | |
9577 | #define EUCLEAN 117 | |
9578 | #define ENOTNAM 118 | |
9579 | #define ENAVAIL 119 | |
9580 | #define EISNAM 120 | |
9581 | #define EREMOTEIO 121 | |
9582 | #define EDQUOT 122 | |
9583 | ||
9584 | #define ENOMEDIUM 123 | |
9585 | #define EMEDIUMTYPE 124 | |
9586 | #define ECANCELED 125 | |
9587 | #define ENOKEY 126 | |
9588 | #define EKEYEXPIRED 127 | |
9589 | #define EKEYREVOKED 128 | |
9590 | #define EKEYREJECTED 129 | |
9591 | ||
9592 | ||
9593 | #define EOWNERDEAD 130 | |
9594 | #define ENOTRECOVERABLE 131 | |
9595 | # 5 "/usr/include/asm-x86_64/errno.h" 2 3 4 | |
9596 | # 6 "/usr/include/asm/errno.h" 2 3 4 | |
9597 | # 5 "/usr/include/linux/errno.h" 2 3 4 | |
9598 | # 26 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 2 3 4 | |
9599 | ||
9600 | ||
9601 | #define ENOTSUP EOPNOTSUPP | |
9602 | # 43 "/usr/include/gentoo-multilib/amd64/bits/errno.h" 3 4 | |
9603 | extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
9604 | ||
9605 | ||
9606 | ||
9607 | #define errno (*__errno_location ()) | |
9608 | # 9 "/usr/include/bits/errno.h" 2 3 4 | |
9609 | # 37 "/usr/include/gentoo-multilib/amd64/errno.h" 2 3 4 | |
9610 | #undef __need_Emath | |
9611 | # 55 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 | |
9612 | extern char *program_invocation_name, *program_invocation_short_name; | |
9613 | ||
9614 | ||
9615 | ||
9616 | ||
9617 | # 69 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 | |
9618 | typedef int error_t; | |
9619 | #define __error_t_defined 1 | |
9620 | ||
9621 | #undef __need_error_t | |
9622 | # 9 "/usr/include/errno.h" 2 3 4 | |
9623 | # 35 "/usr/include/directfb/direct/debug.h" 2 | |
9624 | ||
9625 | # 1 "/usr/include/directfb/direct/conf.h" 1 | |
9626 | # 29 "/usr/include/directfb/direct/conf.h" | |
9627 | #define __DIRECT__CONF_H__ | |
9628 | ||
9629 | ||
9630 | ||
9631 | ||
9632 | ||
9633 | # 1 "/usr/include/sys/signal.h" 1 3 4 | |
9634 | ||
9635 | ||
9636 | ||
9637 | ||
9638 | ||
9639 | ||
9640 | ||
9641 | # 1 "/usr/include/gentoo-multilib/amd64/sys/signal.h" 1 3 4 | |
9642 | # 1 "/usr/include/signal.h" 1 3 4 | |
9643 | ||
9644 | ||
9645 | ||
9646 | ||
9647 | ||
9648 | ||
9649 | ||
9650 | # 1 "/usr/include/gentoo-multilib/amd64/signal.h" 1 3 4 | |
9651 | # 26 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
9652 | #define _SIGNAL_H | |
9653 | ||
9654 | ||
9655 | # 1 "/usr/include/features.h" 1 3 4 | |
9656 | # 30 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
9657 | ||
9658 | ||
9659 | ||
9660 | # 1 "/usr/include/bits/sigset.h" 1 3 4 | |
9661 | ||
9662 | ||
9663 | ||
9664 | ||
9665 | ||
9666 | ||
9667 | ||
9668 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4 | |
9669 | # 43 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 | |
9670 | #define _SIGSET_H_fns 1 | |
9671 | ||
9672 | ||
9673 | #define _EXTERN_INLINE extern __inline | |
9674 | ||
9675 | ||
9676 | ||
9677 | #define __sigmask(sig) (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int)))) | |
9678 | ||
9679 | ||
9680 | ||
9681 | #define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int))) | |
9682 | ||
9683 | ||
9684 | #define __sigemptyset(set) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__set = (set); while (--__cnt >= 0) __set->__val[__cnt] = 0; 0; })) | |
9685 | ||
9686 | ||
9687 | ||
9688 | ||
9689 | #define __sigfillset(set) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__set = (set); while (--__cnt >= 0) __set->__val[__cnt] = ~0UL; 0; })) | |
9690 | # 72 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 | |
9691 | #define __sigisemptyset(set) (__extension__ ({ int __cnt = _SIGSET_NWORDS; const sigset_t *__set = (set); int __ret = __set->__val[--__cnt]; while (!__ret && --__cnt >= 0) __ret = __set->__val[__cnt]; __ret == 0; })) | |
9692 | ||
9693 | ||
9694 | ||
9695 | ||
9696 | ||
9697 | ||
9698 | #define __sigandset(dest,left,right) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__dest = (dest); const sigset_t *__left = (left); const sigset_t *__right = (right); while (--__cnt >= 0) __dest->__val[__cnt] = (__left->__val[__cnt] & __right->__val[__cnt]); 0; })) | |
9699 | # 88 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 | |
9700 | #define __sigorset(dest,left,right) (__extension__ ({ int __cnt = _SIGSET_NWORDS; sigset_t *__dest = (dest); const sigset_t *__left = (left); const sigset_t *__right = (right); while (--__cnt >= 0) __dest->__val[__cnt] = (__left->__val[__cnt] | __right->__val[__cnt]); 0; })) | |
9701 | # 103 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 | |
9702 | extern int __sigismember (__const __sigset_t *, int); | |
9703 | extern int __sigaddset (__sigset_t *, int); | |
9704 | extern int __sigdelset (__sigset_t *, int); | |
9705 | ||
9706 | ||
9707 | #define __SIGSETFN(NAME,BODY,CONST) _EXTERN_INLINE int NAME (CONST __sigset_t *__set, int __sig) { unsigned long int __mask = __sigmask (__sig); unsigned long int __word = __sigword (__sig); return BODY; } | |
9708 | # 117 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4 | |
9709 | extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } | |
9710 | extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } | |
9711 | extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } | |
9712 | ||
9713 | #undef __SIGSETFN | |
9714 | # 9 "/usr/include/bits/sigset.h" 2 3 4 | |
9715 | # 34 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
9716 | ||
9717 | ||
9718 | ||
9719 | ||
9720 | ||
9721 | #define __sig_atomic_t_defined | |
9722 | ||
9723 | typedef __sig_atomic_t sig_atomic_t; | |
9724 | ||
9725 | ||
9726 | #undef __need_sig_atomic_t | |
9727 | ||
9728 | ||
9729 | ||
9730 | ||
9731 | ||
9732 | ||
9733 | ||
9734 | #undef __need_sigset_t | |
9735 | ||
9736 | ||
9737 | ||
9738 | ||
9739 | # 1 "/usr/include/bits/types.h" 1 3 4 | |
9740 | # 58 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
9741 | # 1 "/usr/include/bits/signum.h" 1 3 4 | |
9742 | ||
9743 | ||
9744 | ||
9745 | ||
9746 | ||
9747 | ||
9748 | ||
9749 | # 1 "/usr/include/gentoo-multilib/amd64/bits/signum.h" 1 3 4 | |
9750 | # 23 "/usr/include/gentoo-multilib/amd64/bits/signum.h" 3 4 | |
9751 | #define SIG_ERR ((__sighandler_t) -1) | |
9752 | #define SIG_DFL ((__sighandler_t) 0) | |
9753 | #define SIG_IGN ((__sighandler_t) 1) | |
9754 | ||
9755 | ||
9756 | #define SIG_HOLD ((__sighandler_t) 2) | |
9757 | ||
9758 | ||
9759 | ||
9760 | ||
9761 | #define SIGHUP 1 | |
9762 | #define SIGINT 2 | |
9763 | #define SIGQUIT 3 | |
9764 | #define SIGILL 4 | |
9765 | #define SIGTRAP 5 | |
9766 | #define SIGABRT 6 | |
9767 | #define SIGIOT 6 | |
9768 | #define SIGBUS 7 | |
9769 | #define SIGFPE 8 | |
9770 | #define SIGKILL 9 | |
9771 | #define SIGUSR1 10 | |
9772 | #define SIGSEGV 11 | |
9773 | #define SIGUSR2 12 | |
9774 | #define SIGPIPE 13 | |
9775 | #define SIGALRM 14 | |
9776 | #define SIGTERM 15 | |
9777 | #define SIGSTKFLT 16 | |
9778 | #define SIGCLD SIGCHLD | |
9779 | #define SIGCHLD 17 | |
9780 | #define SIGCONT 18 | |
9781 | #define SIGSTOP 19 | |
9782 | #define SIGTSTP 20 | |
9783 | #define SIGTTIN 21 | |
9784 | #define SIGTTOU 22 | |
9785 | #define SIGURG 23 | |
9786 | #define SIGXCPU 24 | |
9787 | #define SIGXFSZ 25 | |
9788 | #define SIGVTALRM 26 | |
9789 | #define SIGPROF 27 | |
9790 | #define SIGWINCH 28 | |
9791 | #define SIGPOLL SIGIO | |
9792 | #define SIGIO 29 | |
9793 | #define SIGPWR 30 | |
9794 | #define SIGSYS 31 | |
9795 | #define SIGUNUSED 31 | |
9796 | ||
9797 | #define _NSIG 65 | |
9798 | ||
9799 | ||
9800 | #define SIGRTMIN (__libc_current_sigrtmin ()) | |
9801 | #define SIGRTMAX (__libc_current_sigrtmax ()) | |
9802 | ||
9803 | ||
9804 | ||
9805 | #define __SIGRTMIN 32 | |
9806 | #define __SIGRTMAX (_NSIG - 1) | |
9807 | # 9 "/usr/include/bits/signum.h" 2 3 4 | |
9808 | # 59 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
9809 | # 75 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
9810 | typedef void (*__sighandler_t) (int); | |
9811 | ||
9812 | ||
9813 | ||
9814 | ||
9815 | extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) | |
9816 | __attribute__ ((__nothrow__)); | |
9817 | ||
9818 | extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) | |
9819 | __attribute__ ((__nothrow__)); | |
9820 | ||
9821 | ||
9822 | ||
9823 | ||
9824 | ||
9825 | ||
9826 | ||
9827 | extern __sighandler_t signal (int __sig, __sighandler_t __handler) | |
9828 | __attribute__ ((__nothrow__)); | |
9829 | # 104 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
9830 | ||
9831 | ||
9832 | ||
9833 | ||
9834 | ||
9835 | extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) | |
9836 | __attribute__ ((__nothrow__)); | |
9837 | ||
9838 | ||
9839 | ||
9840 | ||
9841 | ||
9842 | ||
9843 | extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__)); | |
9844 | ||
9845 | ||
9846 | ||
9847 | ||
9848 | ||
9849 | ||
9850 | extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__)); | |
9851 | ||
9852 | ||
9853 | ||
9854 | ||
9855 | extern int raise (int __sig) __attribute__ ((__nothrow__)); | |
9856 | ||
9857 | ||
9858 | ||
9859 | ||
9860 | extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) | |
9861 | __attribute__ ((__nothrow__)); | |
9862 | extern int gsignal (int __sig) __attribute__ ((__nothrow__)); | |
9863 | ||
9864 | ||
9865 | ||
9866 | ||
9867 | extern void psignal (int __sig, __const char *__s); | |
9868 | # 153 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
9869 | extern int __sigpause (int __sig_or_mask, int __is_sig); | |
9870 | # 162 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
9871 | extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); | |
9872 | # 178 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
9873 | #define sigmask(sig) __sigmask(sig) | |
9874 | ||
9875 | ||
9876 | extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); | |
9877 | ||
9878 | ||
9879 | extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); | |
9880 | ||
9881 | ||
9882 | extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); | |
9883 | ||
9884 | ||
9885 | ||
9886 | ||
9887 | #define NSIG _NSIG | |
9888 | ||
9889 | ||
9890 | ||
9891 | typedef __sighandler_t sighandler_t; | |
9892 | ||
9893 | ||
9894 | ||
9895 | ||
9896 | typedef __sighandler_t sig_t; | |
9897 | ||
9898 | ||
9899 | ||
9900 | ||
9901 | ||
9902 | ||
9903 | #define __need_timespec | |
9904 | # 1 "/usr/include/time.h" 1 3 4 | |
9905 | # 210 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
9906 | ||
9907 | ||
9908 | # 1 "/usr/include/bits/siginfo.h" 1 3 4 | |
9909 | ||
9910 | ||
9911 | ||
9912 | ||
9913 | ||
9914 | ||
9915 | ||
9916 | # 1 "/usr/include/gentoo-multilib/amd64/bits/siginfo.h" 1 3 4 | |
9917 | # 25 "/usr/include/gentoo-multilib/amd64/bits/siginfo.h" 3 4 | |
9918 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
9919 | ||
9920 | ||
9921 | ||
9922 | ||
9923 | ||
9924 | ||
9925 | ||
9926 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
9927 | ||
9928 | ||
9929 | ||
9930 | #define __WORDSIZE 64 | |
9931 | #define __WORDSIZE_COMPAT32 1 | |
9932 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
9933 | # 26 "/usr/include/gentoo-multilib/amd64/bits/siginfo.h" 2 3 4 | |
9934 | ||
9935 | ||
9936 | ||
9937 | ||
9938 | #define __have_sigval_t 1 | |
9939 | ||
9940 | ||
9941 | typedef union sigval | |
9942 | { | |
9943 | int sival_int; | |
9944 | void *sival_ptr; | |
9945 | } sigval_t; | |
9946 | ||
9947 | ||
9948 | ||
9949 | ||
9950 | #define __have_siginfo_t 1 | |
9951 | ||
9952 | #define __SI_MAX_SIZE 128 | |
9953 | ||
9954 | #define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) | |
9955 | ||
9956 | ||
9957 | ||
9958 | ||
9959 | typedef struct siginfo | |
9960 | { | |
9961 | int si_signo; | |
9962 | int si_errno; | |
9963 | ||
9964 | int si_code; | |
9965 | ||
9966 | union | |
9967 | { | |
9968 | int _pad[((128 / sizeof (int)) - 4)]; | |
9969 | ||
9970 | ||
9971 | struct | |
9972 | { | |
9973 | __pid_t si_pid; | |
9974 | __uid_t si_uid; | |
9975 | } _kill; | |
9976 | ||
9977 | ||
9978 | struct | |
9979 | { | |
9980 | int si_tid; | |
9981 | int si_overrun; | |
9982 | sigval_t si_sigval; | |
9983 | } _timer; | |
9984 | ||
9985 | ||
9986 | struct | |
9987 | { | |
9988 | __pid_t si_pid; | |
9989 | __uid_t si_uid; | |
9990 | sigval_t si_sigval; | |
9991 | } _rt; | |
9992 | ||
9993 | ||
9994 | struct | |
9995 | { | |
9996 | __pid_t si_pid; | |
9997 | __uid_t si_uid; | |
9998 | int si_status; | |
9999 | __clock_t si_utime; | |
10000 | __clock_t si_stime; | |
10001 | } _sigchld; | |
10002 | ||
10003 | ||
10004 | struct | |
10005 | { | |
10006 | void *si_addr; | |
10007 | } _sigfault; | |
10008 | ||
10009 | ||
10010 | struct | |
10011 | { | |
10012 | long int si_band; | |
10013 | int si_fd; | |
10014 | } _sigpoll; | |
10015 | } _sifields; | |
10016 | } siginfo_t; | |
10017 | ||
10018 | ||
10019 | ||
10020 | #define si_pid _sifields._kill.si_pid | |
10021 | #define si_uid _sifields._kill.si_uid | |
10022 | #define si_timerid _sifields._timer.si_tid | |
10023 | #define si_overrun _sifields._timer.si_overrun | |
10024 | #define si_status _sifields._sigchld.si_status | |
10025 | #define si_utime _sifields._sigchld.si_utime | |
10026 | #define si_stime _sifields._sigchld.si_stime | |
10027 | #define si_value _sifields._rt.si_sigval | |
10028 | #define si_int _sifields._rt.si_sigval.sival_int | |
10029 | #define si_ptr _sifields._rt.si_sigval.sival_ptr | |
10030 | #define si_addr _sifields._sigfault.si_addr | |
10031 | #define si_band _sifields._sigpoll.si_band | |
10032 | #define si_fd _sifields._sigpoll.si_fd | |
10033 | ||
10034 | ||
10035 | ||
10036 | ||
10037 | enum | |
10038 | { | |
10039 | SI_ASYNCNL = -60, | |
10040 | #define SI_ASYNCNL SI_ASYNCNL | |
10041 | SI_TKILL = -6, | |
10042 | #define SI_TKILL SI_TKILL | |
10043 | SI_SIGIO, | |
10044 | #define SI_SIGIO SI_SIGIO | |
10045 | SI_ASYNCIO, | |
10046 | #define SI_ASYNCIO SI_ASYNCIO | |
10047 | SI_MESGQ, | |
10048 | #define SI_MESGQ SI_MESGQ | |
10049 | SI_TIMER, | |
10050 | #define SI_TIMER SI_TIMER | |
10051 | SI_QUEUE, | |
10052 | #define SI_QUEUE SI_QUEUE | |
10053 | SI_USER, | |
10054 | #define SI_USER SI_USER | |
10055 | SI_KERNEL = 0x80 | |
10056 | #define SI_KERNEL SI_KERNEL | |
10057 | }; | |
10058 | ||
10059 | ||
10060 | ||
10061 | enum | |
10062 | { | |
10063 | ILL_ILLOPC = 1, | |
10064 | #define ILL_ILLOPC ILL_ILLOPC | |
10065 | ILL_ILLOPN, | |
10066 | #define ILL_ILLOPN ILL_ILLOPN | |
10067 | ILL_ILLADR, | |
10068 | #define ILL_ILLADR ILL_ILLADR | |
10069 | ILL_ILLTRP, | |
10070 | #define ILL_ILLTRP ILL_ILLTRP | |
10071 | ILL_PRVOPC, | |
10072 | #define ILL_PRVOPC ILL_PRVOPC | |
10073 | ILL_PRVREG, | |
10074 | #define ILL_PRVREG ILL_PRVREG | |
10075 | ILL_COPROC, | |
10076 | #define ILL_COPROC ILL_COPROC | |
10077 | ILL_BADSTK | |
10078 | #define ILL_BADSTK ILL_BADSTK | |
10079 | }; | |
10080 | ||
10081 | ||
10082 | enum | |
10083 | { | |
10084 | FPE_INTDIV = 1, | |
10085 | #define FPE_INTDIV FPE_INTDIV | |
10086 | FPE_INTOVF, | |
10087 | #define FPE_INTOVF FPE_INTOVF | |
10088 | FPE_FLTDIV, | |
10089 | #define FPE_FLTDIV FPE_FLTDIV | |
10090 | FPE_FLTOVF, | |
10091 | #define FPE_FLTOVF FPE_FLTOVF | |
10092 | FPE_FLTUND, | |
10093 | #define FPE_FLTUND FPE_FLTUND | |
10094 | FPE_FLTRES, | |
10095 | #define FPE_FLTRES FPE_FLTRES | |
10096 | FPE_FLTINV, | |
10097 | #define FPE_FLTINV FPE_FLTINV | |
10098 | FPE_FLTSUB | |
10099 | #define FPE_FLTSUB FPE_FLTSUB | |
10100 | }; | |
10101 | ||
10102 | ||
10103 | enum | |
10104 | { | |
10105 | SEGV_MAPERR = 1, | |
10106 | #define SEGV_MAPERR SEGV_MAPERR | |
10107 | SEGV_ACCERR | |
10108 | #define SEGV_ACCERR SEGV_ACCERR | |
10109 | }; | |
10110 | ||
10111 | ||
10112 | enum | |
10113 | { | |
10114 | BUS_ADRALN = 1, | |
10115 | #define BUS_ADRALN BUS_ADRALN | |
10116 | BUS_ADRERR, | |
10117 | #define BUS_ADRERR BUS_ADRERR | |
10118 | BUS_OBJERR | |
10119 | #define BUS_OBJERR BUS_OBJERR | |
10120 | }; | |
10121 | ||
10122 | ||
10123 | enum | |
10124 | { | |
10125 | TRAP_BRKPT = 1, | |
10126 | #define TRAP_BRKPT TRAP_BRKPT | |
10127 | TRAP_TRACE | |
10128 | #define TRAP_TRACE TRAP_TRACE | |
10129 | }; | |
10130 | ||
10131 | ||
10132 | enum | |
10133 | { | |
10134 | CLD_EXITED = 1, | |
10135 | #define CLD_EXITED CLD_EXITED | |
10136 | CLD_KILLED, | |
10137 | #define CLD_KILLED CLD_KILLED | |
10138 | CLD_DUMPED, | |
10139 | #define CLD_DUMPED CLD_DUMPED | |
10140 | CLD_TRAPPED, | |
10141 | #define CLD_TRAPPED CLD_TRAPPED | |
10142 | CLD_STOPPED, | |
10143 | #define CLD_STOPPED CLD_STOPPED | |
10144 | CLD_CONTINUED | |
10145 | #define CLD_CONTINUED CLD_CONTINUED | |
10146 | }; | |
10147 | ||
10148 | ||
10149 | enum | |
10150 | { | |
10151 | POLL_IN = 1, | |
10152 | #define POLL_IN POLL_IN | |
10153 | POLL_OUT, | |
10154 | #define POLL_OUT POLL_OUT | |
10155 | POLL_MSG, | |
10156 | #define POLL_MSG POLL_MSG | |
10157 | POLL_ERR, | |
10158 | #define POLL_ERR POLL_ERR | |
10159 | POLL_PRI, | |
10160 | #define POLL_PRI POLL_PRI | |
10161 | POLL_HUP | |
10162 | #define POLL_HUP POLL_HUP | |
10163 | }; | |
10164 | ||
10165 | #undef __need_siginfo_t | |
10166 | ||
10167 | ||
10168 | ||
10169 | ||
10170 | ||
10171 | #define __have_sigevent_t 1 | |
10172 | ||
10173 | ||
10174 | #define __SIGEV_MAX_SIZE 64 | |
10175 | ||
10176 | #define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) | |
10177 | ||
10178 | ||
10179 | ||
10180 | ||
10181 | typedef struct sigevent | |
10182 | { | |
10183 | sigval_t sigev_value; | |
10184 | int sigev_signo; | |
10185 | int sigev_notify; | |
10186 | ||
10187 | union | |
10188 | { | |
10189 | int _pad[((64 / sizeof (int)) - 4)]; | |
10190 | ||
10191 | ||
10192 | ||
10193 | __pid_t _tid; | |
10194 | ||
10195 | struct | |
10196 | { | |
10197 | void (*_function) (sigval_t); | |
10198 | void *_attribute; | |
10199 | } _sigev_thread; | |
10200 | } _sigev_un; | |
10201 | } sigevent_t; | |
10202 | ||
10203 | ||
10204 | #define sigev_notify_function _sigev_un._sigev_thread._function | |
10205 | #define sigev_notify_attributes _sigev_un._sigev_thread._attribute | |
10206 | ||
10207 | ||
10208 | enum | |
10209 | { | |
10210 | SIGEV_SIGNAL = 0, | |
10211 | #define SIGEV_SIGNAL SIGEV_SIGNAL | |
10212 | SIGEV_NONE, | |
10213 | #define SIGEV_NONE SIGEV_NONE | |
10214 | SIGEV_THREAD, | |
10215 | #define SIGEV_THREAD SIGEV_THREAD | |
10216 | ||
10217 | SIGEV_THREAD_ID = 4 | |
10218 | #define SIGEV_THREAD_ID SIGEV_THREAD_ID | |
10219 | }; | |
10220 | # 9 "/usr/include/bits/siginfo.h" 2 3 4 | |
10221 | # 213 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
10222 | ||
10223 | ||
10224 | ||
10225 | extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
10226 | ||
10227 | ||
10228 | extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
10229 | ||
10230 | ||
10231 | extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
10232 | ||
10233 | ||
10234 | extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
10235 | ||
10236 | ||
10237 | extern int sigismember (__const sigset_t *__set, int __signo) | |
10238 | __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
10239 | ||
10240 | ||
10241 | ||
10242 | extern int sigisemptyset (__const sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
10243 | ||
10244 | ||
10245 | extern int sigandset (sigset_t *__set, __const sigset_t *__left, | |
10246 | __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); | |
10247 | ||
10248 | ||
10249 | extern int sigorset (sigset_t *__set, __const sigset_t *__left, | |
10250 | __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); | |
10251 | ||
10252 | ||
10253 | ||
10254 | ||
10255 | # 1 "/usr/include/bits/sigaction.h" 1 3 4 | |
10256 | ||
10257 | ||
10258 | ||
10259 | ||
10260 | ||
10261 | ||
10262 | ||
10263 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sigaction.h" 1 3 4 | |
10264 | # 25 "/usr/include/gentoo-multilib/amd64/bits/sigaction.h" 3 4 | |
10265 | struct sigaction | |
10266 | { | |
10267 | ||
10268 | ||
10269 | union | |
10270 | { | |
10271 | ||
10272 | __sighandler_t sa_handler; | |
10273 | ||
10274 | void (*sa_sigaction) (int, siginfo_t *, void *); | |
10275 | } | |
10276 | __sigaction_handler; | |
10277 | #define sa_handler __sigaction_handler.sa_handler | |
10278 | #define sa_sigaction __sigaction_handler.sa_sigaction | |
10279 | ||
10280 | ||
10281 | ||
10282 | ||
10283 | ||
10284 | __sigset_t sa_mask; | |
10285 | ||
10286 | ||
10287 | int sa_flags; | |
10288 | ||
10289 | ||
10290 | void (*sa_restorer) (void); | |
10291 | }; | |
10292 | ||
10293 | ||
10294 | #define SA_NOCLDSTOP 1 | |
10295 | #define SA_NOCLDWAIT 2 | |
10296 | #define SA_SIGINFO 4 | |
10297 | ||
10298 | ||
10299 | #define SA_ONSTACK 0x08000000 | |
10300 | #define SA_RESTART 0x10000000 | |
10301 | #define SA_NODEFER 0x40000000 | |
10302 | ||
10303 | #define SA_RESETHAND 0x80000000 | |
10304 | ||
10305 | ||
10306 | #define SA_INTERRUPT 0x20000000 | |
10307 | ||
10308 | ||
10309 | #define SA_NOMASK SA_NODEFER | |
10310 | #define SA_ONESHOT SA_RESETHAND | |
10311 | #define SA_STACK SA_ONSTACK | |
10312 | ||
10313 | ||
10314 | ||
10315 | #define SIG_BLOCK 0 | |
10316 | #define SIG_UNBLOCK 1 | |
10317 | #define SIG_SETMASK 2 | |
10318 | # 9 "/usr/include/bits/sigaction.h" 2 3 4 | |
10319 | # 247 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
10320 | ||
10321 | ||
10322 | extern int sigprocmask (int __how, __const sigset_t *__restrict __set, | |
10323 | sigset_t *__restrict __oset) __attribute__ ((__nothrow__)); | |
10324 | ||
10325 | ||
10326 | ||
10327 | ||
10328 | ||
10329 | ||
10330 | extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1))); | |
10331 | ||
10332 | ||
10333 | extern int sigaction (int __sig, __const struct sigaction *__restrict __act, | |
10334 | struct sigaction *__restrict __oact) __attribute__ ((__nothrow__)); | |
10335 | ||
10336 | ||
10337 | extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); | |
10338 | ||
10339 | ||
10340 | ||
10341 | ||
10342 | ||
10343 | ||
10344 | extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) | |
10345 | __attribute__ ((__nonnull__ (1, 2))); | |
10346 | ||
10347 | ||
10348 | ||
10349 | ||
10350 | ||
10351 | ||
10352 | extern int sigwaitinfo (__const sigset_t *__restrict __set, | |
10353 | siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); | |
10354 | ||
10355 | ||
10356 | ||
10357 | ||
10358 | ||
10359 | ||
10360 | extern int sigtimedwait (__const sigset_t *__restrict __set, | |
10361 | siginfo_t *__restrict __info, | |
10362 | __const struct timespec *__restrict __timeout) | |
10363 | __attribute__ ((__nonnull__ (1))); | |
10364 | ||
10365 | ||
10366 | ||
10367 | extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) | |
10368 | __attribute__ ((__nothrow__)); | |
10369 | # 304 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
10370 | extern __const char *__const _sys_siglist[65]; | |
10371 | extern __const char *__const sys_siglist[65]; | |
10372 | ||
10373 | ||
10374 | struct sigvec | |
10375 | { | |
10376 | __sighandler_t sv_handler; | |
10377 | int sv_mask; | |
10378 | ||
10379 | int sv_flags; | |
10380 | #define sv_onstack sv_flags | |
10381 | }; | |
10382 | ||
10383 | ||
10384 | #define SV_ONSTACK (1 << 0) | |
10385 | #define SV_INTERRUPT (1 << 1) | |
10386 | #define SV_RESETHAND (1 << 2) | |
10387 | ||
10388 | ||
10389 | ||
10390 | ||
10391 | ||
10392 | ||
10393 | ||
10394 | extern int sigvec (int __sig, __const struct sigvec *__vec, | |
10395 | struct sigvec *__ovec) __attribute__ ((__nothrow__)); | |
10396 | ||
10397 | ||
10398 | ||
10399 | # 1 "/usr/include/bits/sigcontext.h" 1 3 4 | |
10400 | ||
10401 | ||
10402 | ||
10403 | ||
10404 | ||
10405 | ||
10406 | ||
10407 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 1 3 4 | |
10408 | # 20 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 3 4 | |
10409 | #define _BITS_SIGCONTEXT_H 1 | |
10410 | ||
10411 | ||
10412 | ||
10413 | ||
10414 | ||
10415 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
10416 | ||
10417 | ||
10418 | ||
10419 | ||
10420 | ||
10421 | ||
10422 | ||
10423 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
10424 | ||
10425 | ||
10426 | ||
10427 | #define __WORDSIZE 64 | |
10428 | #define __WORDSIZE_COMPAT32 1 | |
10429 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
10430 | # 27 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 2 3 4 | |
10431 | ||
10432 | struct _fpreg | |
10433 | { | |
10434 | unsigned short significand[4]; | |
10435 | unsigned short exponent; | |
10436 | }; | |
10437 | ||
10438 | struct _fpxreg | |
10439 | { | |
10440 | unsigned short significand[4]; | |
10441 | unsigned short exponent; | |
10442 | unsigned short padding[3]; | |
10443 | }; | |
10444 | ||
10445 | struct _xmmreg | |
10446 | { | |
10447 | __uint32_t element[4]; | |
10448 | }; | |
10449 | # 109 "/usr/include/gentoo-multilib/amd64/bits/sigcontext.h" 3 4 | |
10450 | struct _fpstate | |
10451 | { | |
10452 | ||
10453 | __uint16_t cwd; | |
10454 | __uint16_t swd; | |
10455 | __uint16_t ftw; | |
10456 | __uint16_t fop; | |
10457 | __uint64_t rip; | |
10458 | __uint64_t rdp; | |
10459 | __uint32_t mxcsr; | |
10460 | __uint32_t mxcr_mask; | |
10461 | struct _fpxreg _st[8]; | |
10462 | struct _xmmreg _xmm[16]; | |
10463 | __uint32_t padding[24]; | |
10464 | }; | |
10465 | ||
10466 | struct sigcontext | |
10467 | { | |
10468 | unsigned long r8; | |
10469 | unsigned long r9; | |
10470 | unsigned long r10; | |
10471 | unsigned long r11; | |
10472 | unsigned long r12; | |
10473 | unsigned long r13; | |
10474 | unsigned long r14; | |
10475 | unsigned long r15; | |
10476 | unsigned long rdi; | |
10477 | unsigned long rsi; | |
10478 | unsigned long rbp; | |
10479 | unsigned long rbx; | |
10480 | unsigned long rdx; | |
10481 | unsigned long rax; | |
10482 | unsigned long rcx; | |
10483 | unsigned long rsp; | |
10484 | unsigned long rip; | |
10485 | unsigned long eflags; | |
10486 | unsigned short cs; | |
10487 | unsigned short gs; | |
10488 | unsigned short fs; | |
10489 | unsigned short __pad0; | |
10490 | unsigned long err; | |
10491 | unsigned long trapno; | |
10492 | unsigned long oldmask; | |
10493 | unsigned long cr2; | |
10494 | struct _fpstate * fpstate; | |
10495 | unsigned long __reserved1 [8]; | |
10496 | }; | |
10497 | # 9 "/usr/include/bits/sigcontext.h" 2 3 4 | |
10498 | # 334 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
10499 | ||
10500 | ||
10501 | extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__)); | |
10502 | # 346 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4 | |
10503 | extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__)); | |
10504 | ||
10505 | # 1 "/usr/include/bits/sigstack.h" 1 3 4 | |
10506 | ||
10507 | ||
10508 | ||
10509 | ||
10510 | ||
10511 | ||
10512 | ||
10513 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sigstack.h" 1 3 4 | |
10514 | # 26 "/usr/include/gentoo-multilib/amd64/bits/sigstack.h" 3 4 | |
10515 | struct sigstack | |
10516 | { | |
10517 | void *ss_sp; | |
10518 | int ss_onstack; | |
10519 | }; | |
10520 | ||
10521 | ||
10522 | ||
10523 | enum | |
10524 | { | |
10525 | SS_ONSTACK = 1, | |
10526 | #define SS_ONSTACK SS_ONSTACK | |
10527 | SS_DISABLE | |
10528 | #define SS_DISABLE SS_DISABLE | |
10529 | }; | |
10530 | ||
10531 | ||
10532 | #define MINSIGSTKSZ 2048 | |
10533 | ||
10534 | ||
10535 | #define SIGSTKSZ 8192 | |
10536 | ||
10537 | ||
10538 | ||
10539 | typedef struct sigaltstack | |
10540 | { | |
10541 | void *ss_sp; | |
10542 | int ss_flags; | |
10543 | size_t ss_size; | |
10544 | } stack_t; | |
10545 | # 9 "/usr/include/bits/sigstack.h" 2 3 4 | |
10546 | # 349 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
10547 | ||
10548 | ||
10549 | # 1 "/usr/include/sys/ucontext.h" 1 3 4 | |
10550 | ||
10551 | ||
10552 | ||
10553 | ||
10554 | ||
10555 | ||
10556 | ||
10557 | # 1 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 1 3 4 | |
10558 | # 20 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 3 4 | |
10559 | #define _SYS_UCONTEXT_H 1 | |
10560 | ||
10561 | # 1 "/usr/include/features.h" 1 3 4 | |
10562 | # 23 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 | |
10563 | # 1 "/usr/include/signal.h" 1 3 4 | |
10564 | # 24 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 | |
10565 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
10566 | ||
10567 | ||
10568 | ||
10569 | ||
10570 | ||
10571 | ||
10572 | ||
10573 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
10574 | ||
10575 | ||
10576 | ||
10577 | #define __WORDSIZE 64 | |
10578 | #define __WORDSIZE_COMPAT32 1 | |
10579 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
10580 | # 25 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 | |
10581 | ||
10582 | ||
10583 | ||
10584 | # 1 "/usr/include/bits/sigcontext.h" 1 3 4 | |
10585 | # 29 "/usr/include/gentoo-multilib/amd64/sys/ucontext.h" 2 3 4 | |
10586 | ||
10587 | ||
10588 | ||
10589 | ||
10590 | typedef long int greg_t; | |
10591 | ||
10592 | ||
10593 | #define NGREG 23 | |
10594 | ||
10595 | ||
10596 | typedef greg_t gregset_t[23]; | |
10597 | ||
10598 | ||
10599 | ||
10600 | enum | |
10601 | { | |
10602 | REG_R8 = 0, | |
10603 | #define REG_R8 REG_R8 | |
10604 | REG_R9, | |
10605 | #define REG_R9 REG_R9 | |
10606 | REG_R10, | |
10607 | #define REG_R10 REG_R10 | |
10608 | REG_R11, | |
10609 | #define REG_R11 REG_R11 | |
10610 | REG_R12, | |
10611 | #define REG_R12 REG_R12 | |
10612 | REG_R13, | |
10613 | #define REG_R13 REG_R13 | |
10614 | REG_R14, | |
10615 | #define REG_R14 REG_R14 | |
10616 | REG_R15, | |
10617 | #define REG_R15 REG_R15 | |
10618 | REG_RDI, | |
10619 | #define REG_RDI REG_RDI | |
10620 | REG_RSI, | |
10621 | #define REG_RSI REG_RSI | |
10622 | REG_RBP, | |
10623 | #define REG_RBP REG_RBP | |
10624 | REG_RBX, | |
10625 | #define REG_RBX REG_RBX | |
10626 | REG_RDX, | |
10627 | #define REG_RDX REG_RDX | |
10628 | REG_RAX, | |
10629 | #define REG_RAX REG_RAX | |
10630 | REG_RCX, | |
10631 | #define REG_RCX REG_RCX | |
10632 | REG_RSP, | |
10633 | #define REG_RSP REG_RSP | |
10634 | REG_RIP, | |
10635 | #define REG_RIP REG_RIP | |
10636 | REG_EFL, | |
10637 | #define REG_EFL REG_EFL | |
10638 | REG_CSGSFS, | |
10639 | #define REG_CSGSFS REG_CSGSFS | |
10640 | REG_ERR, | |
10641 | #define REG_ERR REG_ERR | |
10642 | REG_TRAPNO, | |
10643 | #define REG_TRAPNO REG_TRAPNO | |
10644 | REG_OLDMASK, | |
10645 | #define REG_OLDMASK REG_OLDMASK | |
10646 | REG_CR2 | |
10647 | #define REG_CR2 REG_CR2 | |
10648 | }; | |
10649 | ||
10650 | ||
10651 | struct _libc_fpxreg | |
10652 | { | |
10653 | unsigned short int significand[4]; | |
10654 | unsigned short int exponent; | |
10655 | unsigned short int padding[3]; | |
10656 | }; | |
10657 | ||
10658 | struct _libc_xmmreg | |
10659 | { | |
10660 | __uint32_t element[4]; | |
10661 | }; | |
10662 | ||
10663 | struct _libc_fpstate | |
10664 | { | |
10665 | ||
10666 | __uint16_t cwd; | |
10667 | __uint16_t swd; | |
10668 | __uint16_t ftw; | |
10669 | __uint16_t fop; | |
10670 | __uint64_t rip; | |
10671 | __uint64_t rdp; | |
10672 | __uint32_t mxcsr; | |
10673 | __uint32_t mxcr_mask; | |
10674 | struct _libc_fpxreg _st[8]; | |
10675 | struct _libc_xmmreg _xmm[16]; | |
10676 | __uint32_t padding[24]; | |
10677 | }; | |
10678 | ||
10679 | ||
10680 | typedef struct _libc_fpstate *fpregset_t; | |
10681 | ||
10682 | ||
10683 | typedef struct | |
10684 | { | |
10685 | gregset_t gregs; | |
10686 | ||
10687 | fpregset_t fpregs; | |
10688 | unsigned long __reserved1 [8]; | |
10689 | } mcontext_t; | |
10690 | ||
10691 | ||
10692 | typedef struct ucontext | |
10693 | { | |
10694 | unsigned long int uc_flags; | |
10695 | struct ucontext *uc_link; | |
10696 | stack_t uc_stack; | |
10697 | mcontext_t uc_mcontext; | |
10698 | __sigset_t uc_sigmask; | |
10699 | struct _libc_fpstate __fpregs_mem; | |
10700 | } ucontext_t; | |
10701 | # 9 "/usr/include/sys/ucontext.h" 2 3 4 | |
10702 | # 352 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
10703 | ||
10704 | ||
10705 | ||
10706 | ||
10707 | ||
10708 | extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) | |
10709 | __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); | |
10710 | ||
10711 | ||
10712 | ||
10713 | extern int sigaltstack (__const struct sigaltstack *__restrict __ss, | |
10714 | struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__)); | |
10715 | ||
10716 | ||
10717 | ||
10718 | ||
10719 | ||
10720 | ||
10721 | ||
10722 | extern int sighold (int __sig) __attribute__ ((__nothrow__)); | |
10723 | ||
10724 | ||
10725 | extern int sigrelse (int __sig) __attribute__ ((__nothrow__)); | |
10726 | ||
10727 | ||
10728 | extern int sigignore (int __sig) __attribute__ ((__nothrow__)); | |
10729 | ||
10730 | ||
10731 | extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__)); | |
10732 | ||
10733 | ||
10734 | ||
10735 | ||
10736 | ||
10737 | # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 | |
10738 | # 387 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
10739 | # 1 "/usr/include/bits/sigthread.h" 1 3 4 | |
10740 | ||
10741 | ||
10742 | ||
10743 | ||
10744 | ||
10745 | ||
10746 | ||
10747 | # 1 "/usr/include/gentoo-multilib/amd64/bits/sigthread.h" 1 3 4 | |
10748 | # 21 "/usr/include/gentoo-multilib/amd64/bits/sigthread.h" 3 4 | |
10749 | #define _BITS_SIGTHREAD_H 1 | |
10750 | # 31 "/usr/include/gentoo-multilib/amd64/bits/sigthread.h" 3 4 | |
10751 | extern int pthread_sigmask (int __how, | |
10752 | __const __sigset_t *__restrict __newmask, | |
10753 | __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__)); | |
10754 | ||
10755 | ||
10756 | extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__)); | |
10757 | # 9 "/usr/include/bits/sigthread.h" 2 3 4 | |
10758 | # 388 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4 | |
10759 | ||
10760 | ||
10761 | ||
10762 | ||
10763 | ||
10764 | ||
10765 | extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__)); | |
10766 | ||
10767 | extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__)); | |
10768 | ||
10769 | ||
10770 | ||
10771 | ||
10772 | # 9 "/usr/include/signal.h" 2 3 4 | |
10773 | # 1 "/usr/include/gentoo-multilib/amd64/sys/signal.h" 2 3 4 | |
10774 | # 9 "/usr/include/sys/signal.h" 2 3 4 | |
10775 | # 36 "/usr/include/directfb/direct/conf.h" 2 | |
10776 | ||
10777 | ||
10778 | typedef enum { | |
10779 | DCFL_NONE, | |
10780 | DCFL_ASSERT, | |
10781 | DCFL_ASSUME | |
10782 | } DirectConfigFatalLevel; | |
10783 | ||
10784 | struct __D_DirectConfig { | |
10785 | bool quiet; | |
10786 | bool debug; | |
10787 | bool trace; | |
10788 | ||
10789 | char *memcpy; | |
10790 | ||
10791 | ||
10792 | char **disable_module; | |
10793 | ||
10794 | bool sighandler; | |
10795 | sigset_t dont_catch; | |
10796 | ||
10797 | DirectLog *log; | |
10798 | ||
10799 | DirectConfigFatalLevel fatal; | |
10800 | }; | |
10801 | ||
10802 | extern DirectConfig *direct_config; | |
10803 | # 37 "/usr/include/directfb/direct/debug.h" 2 | |
10804 | # 1 "/usr/include/directfb/direct/log.h" 1 | |
10805 | # 29 "/usr/include/directfb/direct/log.h" | |
10806 | #define __DIRECT__LOG_H__ | |
10807 | ||
10808 | ||
10809 | # 1 "/usr/include/directfb/direct/messages.h" 1 | |
10810 | # 29 "/usr/include/directfb/direct/messages.h" | |
10811 | #define __DIRECT__MESSAGES_H__ | |
10812 | ||
10813 | ||
10814 | ||
10815 | ||
10816 | ||
10817 | #define D_FORMAT_PRINTF(n) __attribute__((__format__ (__printf__, n, n+1))) | |
10818 | ||
10819 | ||
10820 | ||
10821 | ||
10822 | ||
10823 | ||
10824 | ||
10825 | # 1 "/usr/include/errno.h" 1 3 4 | |
10826 | ||
10827 | ||
10828 | ||
10829 | ||
10830 | ||
10831 | ||
10832 | ||
10833 | # 1 "/usr/include/gentoo-multilib/amd64/errno.h" 1 3 4 | |
10834 | # 72 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 | |
10835 | #undef __need_error_t | |
10836 | # 9 "/usr/include/errno.h" 2 3 4 | |
10837 | # 44 "/usr/include/directfb/direct/messages.h" 2 | |
10838 | ||
10839 | ||
10840 | ||
10841 | ||
10842 | void direct_messages_info ( const char *format, ... ) __attribute__((__format__ (__printf__, 1, 1 +1))); | |
10843 | ||
10844 | void direct_messages_error ( const char *format, ... ) __attribute__((__format__ (__printf__, 1, 1 +1))); | |
10845 | ||
10846 | void direct_messages_derror ( DirectResult result, | |
10847 | const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); | |
10848 | ||
10849 | void direct_messages_perror ( int erno, | |
10850 | const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); | |
10851 | ||
10852 | void direct_messages_dlerror ( const char *dlerr, | |
10853 | const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); | |
10854 | ||
10855 | void direct_messages_once ( const char *func, | |
10856 | const char *file, | |
10857 | int line, | |
10858 | const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); | |
10859 | ||
10860 | void direct_messages_unimplemented( const char *func, | |
10861 | const char *file, | |
10862 | int line ); | |
10863 | ||
10864 | void direct_messages_bug ( const char *func, | |
10865 | const char *file, | |
10866 | int line, | |
10867 | const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); | |
10868 | ||
10869 | void direct_messages_warn ( const char *func, | |
10870 | const char *file, | |
10871 | int line, | |
10872 | const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); | |
10873 | ||
10874 | ||
10875 | #define D_INFO(x...) do { if (!direct_config->quiet) direct_messages_info( x ); } while (0) | |
10876 | ||
10877 | ||
10878 | ||
10879 | ||
10880 | #define D_ERROR(x...) do { if (!direct_config->quiet) direct_messages_error( x ); } while (0) | |
10881 | ||
10882 | ||
10883 | ||
10884 | ||
10885 | #define D_DERROR(r,x...) do { if (!direct_config->quiet) direct_messages_derror( r, x ); } while (0) | |
10886 | ||
10887 | ||
10888 | ||
10889 | ||
10890 | #define D_PERROR(x...) do { if (!direct_config->quiet) direct_messages_perror( errno, x ); } while (0) | |
10891 | ||
10892 | ||
10893 | ||
10894 | ||
10895 | #define D_DLERROR(x...) do { if (!direct_config->quiet) direct_messages_dlerror( dlerror(), x ); } while (0) | |
10896 | ||
10897 | ||
10898 | ||
10899 | ||
10900 | ||
10901 | #define D_ONCE(x...) do { if (!direct_config->quiet) { static bool first = true; if (first) { direct_messages_once( __FUNCTION__, __FILE__, __LINE__, x ); first = false; } } } while (0) | |
10902 | # 118 "/usr/include/directfb/direct/messages.h" | |
10903 | #define D_UNIMPLEMENTED() do { if (!direct_config->quiet) { static bool first = true; if (first) { direct_messages_unimplemented( __FUNCTION__, __FILE__, __LINE__ ); first = false; } } } while (0) | |
10904 | # 129 "/usr/include/directfb/direct/messages.h" | |
10905 | #define D_BUG(x...) do { if (!direct_config->quiet) direct_messages_bug( __FUNCTION__, __FILE__, __LINE__, x ); } while (0) | |
10906 | ||
10907 | ||
10908 | ||
10909 | ||
10910 | #define D_WARN(x...) do { if (!direct_config->quiet) direct_messages_warn( __FUNCTION__, __FILE__, __LINE__, x ); } while (0) | |
10911 | ||
10912 | ||
10913 | ||
10914 | ||
10915 | #define D_OOM() (direct_messages_warn( __FUNCTION__, __FILE__, __LINE__, "out of memory" ), DFB_NOSYSTEMMEMORY) | |
10916 | # 33 "/usr/include/directfb/direct/log.h" 2 | |
10917 | ||
10918 | ||
10919 | typedef enum { | |
10920 | DLT_STDERR, | |
10921 | DLT_FILE, | |
10922 | DLT_UDP | |
10923 | } DirectLogType; | |
10924 | # 50 "/usr/include/directfb/direct/log.h" | |
10925 | DirectResult direct_log_create ( DirectLogType type, | |
10926 | const char *param, | |
10927 | DirectLog **ret_log ); | |
10928 | ||
10929 | ||
10930 | ||
10931 | ||
10932 | DirectResult direct_log_destroy ( DirectLog *log ); | |
10933 | ||
10934 | ||
10935 | ||
10936 | ||
10937 | ||
10938 | ||
10939 | ||
10940 | DirectResult direct_log_printf ( DirectLog *log, | |
10941 | const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); | |
10942 | ||
10943 | ||
10944 | ||
10945 | ||
10946 | DirectResult direct_log_set_default( DirectLog *log ); | |
10947 | # 38 "/usr/include/directfb/direct/debug.h" 2 | |
10948 | ||
10949 | # 1 "/usr/include/directfb/direct/system.h" 1 | |
10950 | # 29 "/usr/include/directfb/direct/system.h" | |
10951 | #define __DIRECT__SYSTEM_H__ | |
10952 | ||
10953 | # 1 "/usr/include/sys/types.h" 1 3 4 | |
10954 | # 32 "/usr/include/directfb/direct/system.h" 2 | |
10955 | ||
10956 | pid_t direct_gettid(); | |
10957 | long direct_pagesize(); | |
10958 | # 40 "/usr/include/directfb/direct/debug.h" 2 | |
10959 | ||
10960 | # 1 "/usr/include/directfb/direct/util.h" 1 | |
10961 | # 29 "/usr/include/directfb/direct/util.h" | |
10962 | #define __DIRECT__UTIL_H__ | |
10963 | ||
10964 | ||
10965 | ||
10966 | ||
10967 | # 1 "/usr/include/pthread.h" 1 3 4 | |
10968 | # 35 "/usr/include/directfb/direct/util.h" 2 | |
10969 | ||
10970 | ||
10971 | #define MIN(a,b) ((a) < (b) ? (a) : (b)) | |
10972 | ||
10973 | ||
10974 | #define MAX(a,b) ((a) > (b) ? (a) : (b)) | |
10975 | ||
10976 | ||
10977 | ||
10978 | #define SIGN(x) (((x) < 0) ? -1 : (((x) > 0) ? 1 : 0)) | |
10979 | ||
10980 | ||
10981 | ||
10982 | #define ABS(x) ((x) > 0 ? (x) : -(x)) | |
10983 | ||
10984 | ||
10985 | ||
10986 | #define CLAMP(x,min,max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x)) | |
10987 | ||
10988 | ||
10989 | ||
10990 | #define D_FLAGS_SET(flags,f) do { (flags) |= (f); } while (0) | |
10991 | #define D_FLAGS_CLEAR(flags,f) do { (flags) &= ~(f); } while (0) | |
10992 | #define D_FLAGS_IS_SET(flags,f) (((flags) & (f)) != 0) | |
10993 | #define D_FLAGS_ARE_SET(flags,f) (((flags) & (f)) == (f)) | |
10994 | #define D_FLAGS_ARE_IN(flags,f) (((flags) & ~(f)) == 0) | |
10995 | #define D_FLAGS_INVALID(flags,f) (((flags) & ~(f)) != 0) | |
10996 | ||
10997 | #define D_FLAGS_ASSERT(flags,f) D_ASSERT( D_FLAGS_ARE_IN(flags,f) ) | |
10998 | ||
10999 | #define D_ARRAY_SIZE(array) ((int)(sizeof(array) / sizeof((array)[0]))) | |
11000 | ||
11001 | ||
11002 | ||
11003 | #define D_CONST_FUNC __attribute__((const)) | |
11004 | # 78 "/usr/include/directfb/direct/util.h" | |
11005 | DirectResult errno2result( int erno ); | |
11006 | ||
11007 | const char *DirectResultString( DirectResult result ); | |
11008 | ||
11009 | int direct_try_open( const char *name1, const char *name2, int flags, bool error_msg ); | |
11010 | ||
11011 | void direct_trim( char **s ); | |
11012 | ||
11013 | ||
11014 | ||
11015 | ||
11016 | static inline int | |
11017 | direct_util_count_bits( unsigned int mask ) | |
11018 | { | |
11019 | register int ret = 0; | |
11020 | ||
11021 | while (mask) { | |
11022 | ret += mask & 1; | |
11023 | mask >>= 1; | |
11024 | } | |
11025 | ||
11026 | return ret; | |
11027 | } | |
11028 | ||
11029 | ||
11030 | ||
11031 | ||
11032 | static inline int | |
11033 | direct_util_align( int value, | |
11034 | int alignment ) | |
11035 | { | |
11036 | if (alignment > 1) { | |
11037 | int tail = value % alignment; | |
11038 | ||
11039 | if (tail) | |
11040 | value += alignment - tail; | |
11041 | } | |
11042 | ||
11043 | return value; | |
11044 | } | |
11045 | ||
11046 | ||
11047 | ||
11048 | ||
11049 | int direct_util_recursive_pthread_mutex_init( pthread_mutex_t *mutex ); | |
11050 | # 135 "/usr/include/directfb/direct/util.h" | |
11051 | static inline int D_IFLOOR(float f) | |
11052 | { | |
11053 | int ai, bi; | |
11054 | double af, bf; | |
11055 | ||
11056 | af = (3 << 22) + 0.5 + (double)f; | |
11057 | bf = (3 << 22) + 0.5 - (double)f; | |
11058 | # 150 "/usr/include/directfb/direct/util.h" | |
11059 | { | |
11060 | union { int i; float f; } u; | |
11061 | u.f = af; ai = u.i; | |
11062 | u.f = bf; bi = u.i; | |
11063 | } | |
11064 | ||
11065 | ||
11066 | return (ai - bi) >> 1; | |
11067 | } | |
11068 | # 169 "/usr/include/directfb/direct/util.h" | |
11069 | static inline int D_ICEIL(float f) | |
11070 | { | |
11071 | int ai, bi; | |
11072 | double af, bf; | |
11073 | ||
11074 | af = (3 << 22) + 0.5 + (double)f; | |
11075 | bf = (3 << 22) + 0.5 - (double)f; | |
11076 | # 184 "/usr/include/directfb/direct/util.h" | |
11077 | { | |
11078 | union { int i; float f; } u; | |
11079 | u.f = af; ai = u.i; | |
11080 | u.f = bf; bi = u.i; | |
11081 | } | |
11082 | ||
11083 | ||
11084 | return (ai - bi + 1) >> 1; | |
11085 | } | |
11086 | ||
11087 | static inline int direct_log2( int val ) | |
11088 | { | |
11089 | register int ret = 0; | |
11090 | ||
11091 | while (val >> ++ret); | |
11092 | ||
11093 | if ((1 << --ret) < val) | |
11094 | ret++; | |
11095 | ||
11096 | return ret; | |
11097 | } | |
11098 | # 42 "/usr/include/directfb/direct/debug.h" 2 | |
11099 | ||
11100 | ||
11101 | typedef struct { | |
11102 | unsigned int age; | |
11103 | bool enabled; | |
11104 | bool registered; | |
11105 | ||
11106 | const char *name; | |
11107 | const char *description; | |
11108 | } DirectDebugDomain; | |
11109 | ||
11110 | void direct_debug_config_domain( const char *name, bool enable ); | |
11111 | ||
11112 | ||
11113 | ||
11114 | ||
11115 | void direct_debug( const char *format, ... ) __attribute__((__format__ (__printf__, 1, 1 +1))); | |
11116 | ||
11117 | void direct_debug_at( DirectDebugDomain *domain, | |
11118 | const char *format, ... ) __attribute__((__format__ (__printf__, 2, 2 +1))); | |
11119 | ||
11120 | void direct_debug_enter( DirectDebugDomain *domain, | |
11121 | const char *func, | |
11122 | const char *file, | |
11123 | int line, | |
11124 | const char *format, ... ) __attribute__((__format__ (__printf__, 5, 5 +1))); | |
11125 | ||
11126 | void direct_debug_exit( DirectDebugDomain *domain, | |
11127 | const char *func, | |
11128 | const char *file, | |
11129 | int line, | |
11130 | const char *format, ... ) __attribute__((__format__ (__printf__, 5, 5 +1))); | |
11131 | ||
11132 | void direct_break( const char *func, | |
11133 | const char *file, | |
11134 | int line, | |
11135 | const char *format, ... ) __attribute__((__format__ (__printf__, 4, 4 +1))); | |
11136 | ||
11137 | void direct_assertion( const char *exp, | |
11138 | const char *func, | |
11139 | const char *file, | |
11140 | int line ); | |
11141 | ||
11142 | void direct_assumption( const char *exp, | |
11143 | const char *func, | |
11144 | const char *file, | |
11145 | int line ); | |
11146 | # 159 "/usr/include/directfb/direct/debug.h" | |
11147 | #define D_DEBUG_ENABLED (0) | |
11148 | ||
11149 | #define D_HEAVYDEBUG(x...) do {} while (0) | |
11150 | #define D_DEBUG_DOMAIN(i,n,d) | |
11151 | #define D_DEBUG(x...) do {} while (0) | |
11152 | #define D_DEBUG_AT(d,x...) do {} while (0) | |
11153 | #define D_DEBUG_ENTER(d,x...) do {} while (0) | |
11154 | #define D_DEBUG_EXIT(d,x...) do {} while (0) | |
11155 | #define D_ASSERT(exp) do {} while (0) | |
11156 | #define D_ASSUME(exp) do {} while (0) | |
11157 | #define D_BREAK(x...) do {} while (0) | |
11158 | ||
11159 | ||
11160 | ||
11161 | ||
11162 | #define D_MAGIC(spell) ( (((spell)[sizeof(spell)*8/9] << 24) | ((spell)[sizeof(spell)*7/9] << 16) | ((spell)[sizeof(spell)*6/9] << 8) | ((spell)[sizeof(spell)*5/9] )) ^ (((spell)[sizeof(spell)*4/9] << 24) | ((spell)[sizeof(spell)*3/9] << 16) | ((spell)[sizeof(spell)*2/9] << 8) | ((spell)[sizeof(spell)*1/9] )) ) | |
11163 | # 184 "/usr/include/directfb/direct/debug.h" | |
11164 | #define D_MAGIC_SET(o,m) do { D_ASSERT( (o) != NULL ); D_ASSUME( (o)->magic != D_MAGIC(#m) ); (o)->magic = D_MAGIC(#m); } while (0) | |
11165 | ||
11166 | ||
11167 | ||
11168 | ||
11169 | ||
11170 | ||
11171 | #define D_MAGIC_SET_ONLY(o,m) do { D_ASSERT( (o) != NULL ); (o)->magic = D_MAGIC(#m); } while (0) | |
11172 | ||
11173 | ||
11174 | ||
11175 | ||
11176 | ||
11177 | #define D_MAGIC_ASSERT(o,m) do { D_ASSERT( (o) != NULL ); D_ASSERT( (o)->magic == D_MAGIC(#m) ); } while (0) | |
11178 | ||
11179 | ||
11180 | ||
11181 | ||
11182 | #define D_MAGIC_ASSUME(o,m) do { D_ASSUME( (o) != NULL ); if (o) D_ASSUME( (o)->magic == D_MAGIC(#m) ); } while (0) | |
11183 | ||
11184 | ||
11185 | ||
11186 | ||
11187 | ||
11188 | #define D_MAGIC_ASSERT_IF(o,m) do { if (o) D_ASSERT( (o)->magic == D_MAGIC(#m) ); } while (0) | |
11189 | ||
11190 | ||
11191 | ||
11192 | ||
11193 | #define D_MAGIC_CLEAR(o) do { D_ASSERT( (o) != NULL ); D_ASSUME( (o)->magic != 0 ); (o)->magic = 0; } while (0) | |
11194 | # 33 "/usr/include/directfb/direct/serial.h" 2 | |
11195 | ||
11196 | struct __D_DirectSerial { | |
11197 | int magic; | |
11198 | ||
11199 | u_int32_t value; | |
11200 | u_int32_t overflow; | |
11201 | }; | |
11202 | ||
11203 | static inline void | |
11204 | direct_serial_init( DirectSerial *serial ) | |
11205 | { | |
11206 | do {} while (0); | |
11207 | ||
11208 | serial->value = 0; | |
11209 | serial->overflow = 0; | |
11210 | ||
11211 | do { do {} while (0); do {} while (0); (serial)->magic = ( ((("DirectSerial")[sizeof("DirectSerial")*8/9] << 24) | (("DirectSerial")[sizeof("DirectSerial")*7/9] << 16) | (("DirectSerial")[sizeof("DirectSerial")*6/9] << 8) | (("DirectSerial")[sizeof("DirectSerial")*5/9] )) ^ ((("DirectSerial")[sizeof("DirectSerial")*4/9] << 24) | (("DirectSerial")[sizeof("DirectSerial")*3/9] << 16) | (("DirectSerial")[sizeof("DirectSerial")*2/9] << 8) | (("DirectSerial")[sizeof("DirectSerial")*1/9] )) ); } while (0); | |
11212 | } | |
11213 | ||
11214 | static inline void | |
11215 | direct_serial_deinit( DirectSerial *serial ) | |
11216 | { | |
11217 | do { do {} while (0); do {} while (0); (serial)->magic = 0; } while (0); | |
11218 | } | |
11219 | ||
11220 | static inline void | |
11221 | direct_serial_increase( DirectSerial *serial ) | |
11222 | { | |
11223 | do { do {} while (0); do {} while (0); } while (0); | |
11224 | ||
11225 | ++serial->value || serial->overflow++; | |
11226 | } | |
11227 | ||
11228 | static inline void | |
11229 | direct_serial_copy( DirectSerial *serial, const DirectSerial *source ) | |
11230 | { | |
11231 | do { do {} while (0); do {} while (0); } while (0); | |
11232 | do { do {} while (0); do {} while (0); } while (0); | |
11233 | ||
11234 | serial->value = source->value; | |
11235 | serial->overflow = source->overflow; | |
11236 | } | |
11237 | ||
11238 | static inline bool | |
11239 | direct_serial_update( DirectSerial *serial, const DirectSerial *source ) | |
11240 | { | |
11241 | do { do {} while (0); do {} while (0); } while (0); | |
11242 | do { do {} while (0); do {} while (0); } while (0); | |
11243 | ||
11244 | if (serial->overflow < source->overflow) { | |
11245 | serial->overflow = source->overflow; | |
11246 | serial->value = source->value; | |
11247 | ||
11248 | return (!(0)); | |
11249 | } | |
11250 | else if (serial->overflow == source->overflow && serial->value < source->value) { | |
11251 | serial->value = source->value; | |
11252 | ||
11253 | return (!(0)); | |
11254 | } | |
11255 | ||
11256 | do {} while (0); | |
11257 | ||
11258 | return (0); | |
11259 | } | |
11260 | # 36 "/usr/include/directfb-internal/core/state.h" 2 | |
11261 | ||
11262 | # 1 "/usr/include/directfb/fusion/reactor.h" 1 | |
11263 | # 29 "/usr/include/directfb/fusion/reactor.h" | |
11264 | #define __FUSION__REACTOR_H__ | |
11265 | ||
11266 | # 1 "/usr/include/directfb/direct/list.h" 1 | |
11267 | # 29 "/usr/include/directfb/direct/list.h" | |
11268 | #define __DIRECT__LIST_H__ | |
11269 | ||
11270 | ||
11271 | ||
11272 | ||
11273 | ||
11274 | struct __D_DirectLink { | |
11275 | int magic; | |
11276 | ||
11277 | DirectLink *next; | |
11278 | DirectLink *prev; | |
11279 | ||
11280 | }; | |
11281 | ||
11282 | static inline void | |
11283 | direct_list_prepend( DirectLink **list, DirectLink *link ) | |
11284 | { | |
11285 | DirectLink *first = *list; | |
11286 | ||
11287 | link->next = first; | |
11288 | ||
11289 | if (first) { | |
11290 | do { do {} while (0); do {} while (0); } while (0); | |
11291 | ||
11292 | link->prev = first->prev; | |
11293 | ||
11294 | first->prev = link; | |
11295 | } | |
11296 | else | |
11297 | link->prev = link; | |
11298 | ||
11299 | *list = link; | |
11300 | ||
11301 | do { do {} while (0); do {} while (0); (link)->magic = ( ((("DirectLink")[sizeof("DirectLink")*8/9] << 24) | (("DirectLink")[sizeof("DirectLink")*7/9] << 16) | (("DirectLink")[sizeof("DirectLink")*6/9] << 8) | (("DirectLink")[sizeof("DirectLink")*5/9] )) ^ ((("DirectLink")[sizeof("DirectLink")*4/9] << 24) | (("DirectLink")[sizeof("DirectLink")*3/9] << 16) | (("DirectLink")[sizeof("DirectLink")*2/9] << 8) | (("DirectLink")[sizeof("DirectLink")*1/9] )) ); } while (0); | |
11302 | } | |
11303 | ||
11304 | static inline void | |
11305 | direct_list_append( DirectLink **list, DirectLink *link ) | |
11306 | { | |
11307 | DirectLink *first = *list; | |
11308 | ||
11309 | link->next = ((void *)0); | |
11310 | ||
11311 | if (first) { | |
11312 | DirectLink *last = first->prev; | |
11313 | ||
11314 | do { do {} while (0); do {} while (0); } while (0); | |
11315 | do { do {} while (0); do {} while (0); } while (0); | |
11316 | ||
11317 | link->prev = last; | |
11318 | ||
11319 | last->next = first->prev = link; | |
11320 | } | |
11321 | else | |
11322 | *list = link->prev = link; | |
11323 | ||
11324 | do { do {} while (0); do {} while (0); (link)->magic = ( ((("DirectLink")[sizeof("DirectLink")*8/9] << 24) | (("DirectLink")[sizeof("DirectLink")*7/9] << 16) | (("DirectLink")[sizeof("DirectLink")*6/9] << 8) | (("DirectLink")[sizeof("DirectLink")*5/9] )) ^ ((("DirectLink")[sizeof("DirectLink")*4/9] << 24) | (("DirectLink")[sizeof("DirectLink")*3/9] << 16) | (("DirectLink")[sizeof("DirectLink")*2/9] << 8) | (("DirectLink")[sizeof("DirectLink")*1/9] )) ); } while (0); | |
11325 | } | |
11326 | ||
11327 | static inline bool | |
11328 | direct_list_contains_element_EXPENSIVE( DirectLink *list, DirectLink *link ) | |
11329 | { | |
11330 | do { if (list) do {} while (0); } while (0); | |
11331 | ||
11332 | if (!link->prev && !link->next) | |
11333 | return (0); | |
11334 | ||
11335 | ||
11336 | ||
11337 | while (list) { | |
11338 | if (list == link) | |
11339 | return (!(0)); | |
11340 | ||
11341 | list = list->next; | |
11342 | } | |
11343 | ||
11344 | return (0); | |
11345 | } | |
11346 | ||
11347 | static inline int | |
11348 | direct_list_count_elements_EXPENSIVE( DirectLink *list ) | |
11349 | { | |
11350 | int count = 0; | |
11351 | ||
11352 | while (list) { | |
11353 | do { do {} while (0); do {} while (0); } while (0); | |
11354 | ||
11355 | count++; | |
11356 | ||
11357 | list = list->next; | |
11358 | } | |
11359 | ||
11360 | return count; | |
11361 | } | |
11362 | ||
11363 | static inline void | |
11364 | direct_list_remove( DirectLink **list, DirectLink *link ) | |
11365 | { | |
11366 | DirectLink *next; | |
11367 | DirectLink *prev; | |
11368 | ||
11369 | do {} while (0); | |
11370 | ||
11371 | do { do {} while (0); do {} while (0); } while (0); | |
11372 | do { do {} while (0); do {} while (0); } while (0); | |
11373 | ||
11374 | next = link->next; | |
11375 | prev = link->prev; | |
11376 | ||
11377 | if (next) { | |
11378 | do { do {} while (0); do {} while (0); } while (0); | |
11379 | ||
11380 | next->prev = prev; | |
11381 | } | |
11382 | else | |
11383 | (*list)->prev = prev; | |
11384 | ||
11385 | if (link == *list) | |
11386 | *list = next; | |
11387 | else { | |
11388 | do { do {} while (0); do {} while (0); } while (0); | |
11389 | ||
11390 | prev->next = next; | |
11391 | } | |
11392 | ||
11393 | link->next = link->prev = ((void *)0); | |
11394 | ||
11395 | do { do {} while (0); do {} while (0); (link)->magic = 0; } while (0); | |
11396 | } | |
11397 | ||
11398 | static inline bool | |
11399 | direct_list_check_link( const DirectLink *link ) | |
11400 | { | |
11401 | do { if (link) do {} while (0); } while (0); | |
11402 | ||
11403 | return link != ((void *)0); | |
11404 | } | |
11405 | ||
11406 | ||
11407 | #define direct_list_foreach(elem,list) for (elem = (typeof(elem))(list); direct_list_check_link( (DirectLink*)(elem) ); elem = (typeof(elem))(((DirectLink*)(elem))->next)) | |
11408 | ||
11409 | ||
11410 | ||
11411 | ||
11412 | #define direct_list_foreach_safe(elem,temp,list) for (elem = (typeof(elem))(list), temp = ((typeof(temp))(elem) ? (typeof(temp))(((DirectLink*)(elem))->next) : NULL); direct_list_check_link( (DirectLink*)(elem) ); elem = (typeof(elem))(temp), temp = ((typeof(temp))(elem) ? (typeof(temp))(((DirectLink*)(elem))->next) : NULL)) | |
11413 | # 32 "/usr/include/directfb/fusion/reactor.h" 2 | |
11414 | ||
11415 | # 1 "/usr/include/directfb/fusion/types.h" 1 | |
11416 | # 29 "/usr/include/directfb/fusion/types.h" | |
11417 | #define __FUSION__TYPES_H__ | |
11418 | ||
11419 | # 1 "/usr/include/directfb/fusion/build.h" 1 | |
11420 | # 29 "/usr/include/directfb/fusion/build.h" | |
11421 | #define __FUSION__BUILD_H__ | |
11422 | ||
11423 | #define FUSION_BUILD_MULTI (0) | |
11424 | # 32 "/usr/include/directfb/fusion/types.h" 2 | |
11425 | # 46 "/usr/include/directfb/fusion/types.h" | |
11426 | typedef unsigned long FusionID; | |
11427 | ||
11428 | typedef enum { | |
11429 | FCEF_NONE = 0x00000000, | |
11430 | FCEF_ONEWAY = 0x00000001, | |
11431 | FCEF_ALL = 0x00000001 | |
11432 | } FusionCallExecFlags; | |
11433 | ||
11434 | ||
11435 | ||
11436 | ||
11437 | ||
11438 | ||
11439 | ||
11440 | typedef struct __Fusion_FusionConfig FusionConfig; | |
11441 | ||
11442 | typedef struct __Fusion_FusionArena FusionArena; | |
11443 | typedef struct __Fusion_FusionReactor FusionReactor; | |
11444 | typedef struct __Fusion_FusionWorld FusionWorld; | |
11445 | typedef struct __Fusion_FusionWorldShared FusionWorldShared; | |
11446 | ||
11447 | typedef struct __Fusion_FusionObject FusionObject; | |
11448 | typedef struct __Fusion_FusionObjectPool FusionObjectPool; | |
11449 | ||
11450 | typedef struct __Fusion_FusionSHM FusionSHM; | |
11451 | typedef struct __Fusion_FusionSHMShared FusionSHMShared; | |
11452 | ||
11453 | typedef struct __Fusion_FusionSHMPool FusionSHMPool; | |
11454 | typedef struct __Fusion_FusionSHMPoolShared FusionSHMPoolShared; | |
11455 | # 34 "/usr/include/directfb/fusion/reactor.h" 2 | |
11456 | # 1 "/usr/include/directfb/fusion/lock.h" 1 | |
11457 | # 29 "/usr/include/directfb/fusion/lock.h" | |
11458 | #define __FUSION__LOCK_H__ | |
11459 | ||
11460 | # 1 "/usr/include/pthread.h" 1 3 4 | |
11461 | # 32 "/usr/include/directfb/fusion/lock.h" 2 | |
11462 | ||
11463 | ||
11464 | ||
11465 | ||
11466 | ||
11467 | ||
11468 | typedef union { | |
11469 | ||
11470 | struct { | |
11471 | int id; | |
11472 | const FusionWorldShared *shared; | |
11473 | } multi; | |
11474 | ||
11475 | ||
11476 | struct { | |
11477 | pthread_mutex_t lock; | |
11478 | } single; | |
11479 | } FusionSkirmish; | |
11480 | ||
11481 | ||
11482 | ||
11483 | ||
11484 | DirectResult fusion_skirmish_init ( FusionSkirmish *skirmish, | |
11485 | const char *name, | |
11486 | const FusionWorld *world ); | |
11487 | ||
11488 | ||
11489 | ||
11490 | ||
11491 | DirectResult fusion_skirmish_prevail( FusionSkirmish *skirmish ); | |
11492 | ||
11493 | ||
11494 | ||
11495 | ||
11496 | DirectResult fusion_skirmish_swoop ( FusionSkirmish *skirmish ); | |
11497 | ||
11498 | ||
11499 | ||
11500 | ||
11501 | DirectResult fusion_skirmish_dismiss( FusionSkirmish *skirmish ); | |
11502 | ||
11503 | ||
11504 | ||
11505 | ||
11506 | DirectResult fusion_skirmish_destroy( FusionSkirmish *skirmish ); | |
11507 | # 35 "/usr/include/directfb/fusion/reactor.h" 2 | |
11508 | ||
11509 | typedef enum { | |
11510 | RS_OK, | |
11511 | RS_REMOVE, | |
11512 | RS_DROP | |
11513 | } ReactionResult; | |
11514 | ||
11515 | typedef ReactionResult (*ReactionFunc)( const void *msg_data, | |
11516 | void *ctx ); | |
11517 | ||
11518 | typedef struct { | |
11519 | DirectLink link; | |
11520 | ReactionFunc func; | |
11521 | void *ctx; | |
11522 | bool attached; | |
11523 | } Reaction; | |
11524 | ||
11525 | typedef struct { | |
11526 | DirectLink link; | |
11527 | int index; | |
11528 | void *ctx; | |
11529 | bool attached; | |
11530 | } GlobalReaction; | |
11531 | ||
11532 | ||
11533 | ||
11534 | ||
11535 | ||
11536 | FusionReactor *fusion_reactor_new ( int msg_size, | |
11537 | const char *name, | |
11538 | const FusionWorld *world ); | |
11539 | ||
11540 | ||
11541 | ||
11542 | ||
11543 | DirectResult fusion_reactor_free ( FusionReactor *reactor ); | |
11544 | # 82 "/usr/include/directfb/fusion/reactor.h" | |
11545 | DirectResult fusion_reactor_set_lock ( FusionReactor *reactor, | |
11546 | FusionSkirmish *skirmish ); | |
11547 | ||
11548 | ||
11549 | ||
11550 | ||
11551 | DirectResult fusion_reactor_attach ( FusionReactor *reactor, | |
11552 | ReactionFunc func, | |
11553 | void *ctx, | |
11554 | Reaction *reaction ); | |
11555 | ||
11556 | ||
11557 | ||
11558 | ||
11559 | DirectResult fusion_reactor_detach ( FusionReactor *reactor, | |
11560 | Reaction *reaction ); | |
11561 | # 111 "/usr/include/directfb/fusion/reactor.h" | |
11562 | DirectResult fusion_reactor_attach_global( FusionReactor *reactor, | |
11563 | int index, | |
11564 | void *ctx, | |
11565 | GlobalReaction *reaction ); | |
11566 | ||
11567 | ||
11568 | ||
11569 | ||
11570 | DirectResult fusion_reactor_detach_global( FusionReactor *reactor, | |
11571 | GlobalReaction *reaction ); | |
11572 | ||
11573 | ||
11574 | ||
11575 | ||
11576 | ||
11577 | ||
11578 | DirectResult fusion_reactor_dispatch ( FusionReactor *reactor, | |
11579 | const void *msg_data, | |
11580 | bool self, | |
11581 | const ReactionFunc *globals ); | |
11582 | # 139 "/usr/include/directfb/fusion/reactor.h" | |
11583 | DirectResult fusion_reactor_sized_dispatch( FusionReactor *reactor, | |
11584 | const void *msg_data, | |
11585 | int msg_size, | |
11586 | bool self, | |
11587 | const ReactionFunc *globals ); | |
11588 | # 38 "/usr/include/directfb-internal/core/state.h" 2 | |
11589 | ||
11590 | ||
11591 | ||
11592 | # 1 "/usr/include/directfb-internal/core/gfxcard.h" 1 | |
11593 | # 29 "/usr/include/directfb-internal/core/gfxcard.h" | |
11594 | #define __GFXCARD_H__ | |
11595 | ||
11596 | # 1 "/usr/include/pthread.h" 1 3 4 | |
11597 | # 32 "/usr/include/directfb-internal/core/gfxcard.h" 2 | |
11598 | ||
11599 | # 1 "/usr/include/directfb/direct/modules.h" 1 | |
11600 | # 29 "/usr/include/directfb/direct/modules.h" | |
11601 | #define __DIRECT__MODULES_H__ | |
11602 | ||
11603 | # 1 "/usr/include/pthread.h" 1 3 4 | |
11604 | # 32 "/usr/include/directfb/direct/modules.h" 2 | |
11605 | ||
11606 | ||
11607 | ||
11608 | ||
11609 | ||
11610 | ||
11611 | struct __D_DirectModuleEntry { | |
11612 | DirectLink link; | |
11613 | ||
11614 | int magic; | |
11615 | ||
11616 | DirectModuleDir *directory; | |
11617 | ||
11618 | bool loaded; | |
11619 | bool dynamic; | |
11620 | bool disabled; | |
11621 | ||
11622 | char *name; | |
11623 | const void *funcs; | |
11624 | ||
11625 | int refs; | |
11626 | char *file; | |
11627 | void *handle; | |
11628 | }; | |
11629 | ||
11630 | struct __D_DirectModuleDir { | |
11631 | pthread_mutex_t lock; | |
11632 | ||
11633 | const char *path; | |
11634 | unsigned int abi_version; | |
11635 | ||
11636 | DirectLink *entries; | |
11637 | ||
11638 | DirectModuleEntry *loading; | |
11639 | }; | |
11640 | ||
11641 | #define DECLARE_MODULE_DIRECTORY(d) extern DirectModuleDir d | |
11642 | ||
11643 | ||
11644 | #define DEFINE_MODULE_DIRECTORY(d,p,n) DirectModuleDir d = { lock: PTHREAD_MUTEX_INITIALIZER, path: MODULEDIR"/"p, abi_version: n, entries: NULL, loading: NULL } | |
11645 | # 80 "/usr/include/directfb/direct/modules.h" | |
11646 | int direct_modules_explore_directory( DirectModuleDir *directory ); | |
11647 | ||
11648 | void direct_modules_register( DirectModuleDir *directory, | |
11649 | unsigned int abi_version, | |
11650 | const char *name, | |
11651 | const void *funcs ); | |
11652 | ||
11653 | const void *direct_module_ref ( DirectModuleEntry *module ); | |
11654 | void direct_module_unref( DirectModuleEntry *module ); | |
11655 | # 34 "/usr/include/directfb-internal/core/gfxcard.h" 2 | |
11656 | ||
11657 | ||
11658 | ||
11659 | ||
11660 | ||
11661 | ||
11662 | typedef enum { | |
11663 | CCF_CLIPPING = 0x00000001, | |
11664 | CCF_NOTRIEMU = 0x00000002, | |
11665 | CCF_READSYSMEM = 0x00000004, | |
11666 | ||
11667 | CCF_AUXMEMORY = 0x00000010 | |
11668 | } CardCapabilitiesFlags; | |
11669 | ||
11670 | struct __DFB_CoreGraphicsSerial { | |
11671 | unsigned int serial; | |
11672 | unsigned int generation; | |
11673 | }; | |
11674 | ||
11675 | typedef struct { | |
11676 | CardCapabilitiesFlags flags; | |
11677 | ||
11678 | DFBAccelerationMask accel; | |
11679 | DFBSurfaceBlittingFlags blitting; | |
11680 | DFBSurfaceDrawingFlags drawing; | |
11681 | } CardCapabilities; | |
11682 | ||
11683 | typedef struct { | |
11684 | unsigned int surface_byteoffset_alignment; | |
11685 | unsigned int surface_pixelpitch_alignment; | |
11686 | unsigned int surface_bytepitch_alignment; | |
11687 | ||
11688 | unsigned int surface_max_power_of_two_pixelpitch; | |
11689 | unsigned int surface_max_power_of_two_bytepitch; | |
11690 | unsigned int surface_max_power_of_two_height; | |
11691 | } CardLimitations; | |
11692 | ||
11693 | extern DirectModuleDir dfb_graphics_drivers; | |
11694 | ||
11695 | ||
11696 | ||
11697 | ||
11698 | #define DFB_GRAPHICS_DRIVER_ABI_VERSION 32 | |
11699 | ||
11700 | #define DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH 40 | |
11701 | #define DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH 60 | |
11702 | #define DFB_GRAPHICS_DRIVER_INFO_URL_LENGTH 100 | |
11703 | #define DFB_GRAPHICS_DRIVER_INFO_LICENSE_LENGTH 40 | |
11704 | ||
11705 | #define DFB_GRAPHICS_DEVICE_INFO_NAME_LENGTH 48 | |
11706 | #define DFB_GRAPHICS_DEVICE_INFO_VENDOR_LENGTH 64 | |
11707 | ||
11708 | ||
11709 | typedef struct { | |
11710 | int major; | |
11711 | int minor; | |
11712 | } GraphicsDriverVersion; | |
11713 | ||
11714 | typedef struct { | |
11715 | GraphicsDriverVersion version; | |
11716 | ||
11717 | char name[40]; | |
11718 | ||
11719 | ||
11720 | char vendor[60]; | |
11721 | ||
11722 | ||
11723 | ||
11724 | char url[100]; | |
11725 | ||
11726 | ||
11727 | ||
11728 | char license[40]; | |
11729 | ||
11730 | ||
11731 | unsigned int driver_data_size; | |
11732 | unsigned int device_data_size; | |
11733 | } GraphicsDriverInfo; | |
11734 | ||
11735 | typedef struct { | |
11736 | char name[48]; | |
11737 | ||
11738 | ||
11739 | char vendor[64]; | |
11740 | ||
11741 | ||
11742 | ||
11743 | ||
11744 | CardCapabilities caps; | |
11745 | ||
11746 | ||
11747 | CardLimitations limits; | |
11748 | } GraphicsDeviceInfo; | |
11749 | ||
11750 | typedef struct _GraphicsDeviceFuncs { | |
11751 | ||
11752 | ||
11753 | ||
11754 | ||
11755 | ||
11756 | void (*AfterSetVar)( void *driver_data, void *device_data ); | |
11757 | # 144 "/usr/include/directfb-internal/core/gfxcard.h" | |
11758 | void (*EngineReset)( void *driver_data, void *device_data ); | |
11759 | # 155 "/usr/include/directfb-internal/core/gfxcard.h" | |
11760 | void (*EngineSync)( void *driver_data, void *device_data ); | |
11761 | ||
11762 | ||
11763 | ||
11764 | ||
11765 | ||
11766 | void (*FlushTextureCache)( void *driver_data, void *device_data ); | |
11767 | ||
11768 | ||
11769 | ||
11770 | ||
11771 | ||
11772 | void (*FlushReadCache)( void *driver_data, void *device_data ); | |
11773 | ||
11774 | ||
11775 | ||
11776 | ||
11777 | void (*SurfaceEnter)( void *driver_data, void *device_data, | |
11778 | SurfaceBuffer *buffer, DFBSurfaceLockFlags flags ); | |
11779 | ||
11780 | ||
11781 | ||
11782 | ||
11783 | void (*SurfaceLeave)( void *driver_data, void *device_data, SurfaceBuffer *buffer ); | |
11784 | ||
11785 | ||
11786 | ||
11787 | ||
11788 | ||
11789 | ||
11790 | ||
11791 | void (*GetSerial)( void *driver_data, void *device_data, CoreGraphicsSerial *serial ); | |
11792 | ||
11793 | ||
11794 | ||
11795 | ||
11796 | void (*WaitSerial)( void *driver_data, void *device_data, const CoreGraphicsSerial *serial ); | |
11797 | ||
11798 | ||
11799 | ||
11800 | ||
11801 | void (*EmitCommands) ( void *driver_data, void *device_data ); | |
11802 | ||
11803 | ||
11804 | ||
11805 | ||
11806 | ||
11807 | ||
11808 | void (*CheckState)( void *driver_data, void *device_data, | |
11809 | CardState *state, DFBAccelerationMask accel ); | |
11810 | # 213 "/usr/include/directfb-internal/core/gfxcard.h" | |
11811 | void (*SetState) ( void *driver_data, void *device_data, | |
11812 | struct _GraphicsDeviceFuncs *funcs, | |
11813 | CardState *state, DFBAccelerationMask accel ); | |
11814 | ||
11815 | ||
11816 | ||
11817 | ||
11818 | bool (*FillRectangle) ( void *driver_data, void *device_data, | |
11819 | DFBRectangle *rect ); | |
11820 | ||
11821 | bool (*DrawRectangle) ( void *driver_data, void *device_data, | |
11822 | DFBRectangle *rect ); | |
11823 | ||
11824 | bool (*DrawLine) ( void *driver_data, void *device_data, | |
11825 | DFBRegion *line ); | |
11826 | ||
11827 | bool (*FillTriangle) ( void *driver_data, void *device_data, | |
11828 | DFBTriangle *tri ); | |
11829 | ||
11830 | ||
11831 | ||
11832 | ||
11833 | bool (*Blit) ( void *driver_data, void *device_data, | |
11834 | DFBRectangle *rect, int dx, int dy ); | |
11835 | ||
11836 | bool (*StretchBlit) ( void *driver_data, void *device_data, | |
11837 | DFBRectangle *srect, DFBRectangle *drect ); | |
11838 | ||
11839 | bool (*TextureTriangles)( void *driver_data, void *device_data, | |
11840 | DFBVertex *vertices, int num, | |
11841 | DFBTriangleFormation formation ); | |
11842 | } GraphicsDeviceFuncs; | |
11843 | ||
11844 | typedef struct { | |
11845 | int (*Probe) (GraphicsDevice *device); | |
11846 | void (*GetDriverInfo) (GraphicsDevice *device, | |
11847 | GraphicsDriverInfo *driver_info); | |
11848 | ||
11849 | DFBResult (*InitDriver) (GraphicsDevice *device, | |
11850 | GraphicsDeviceFuncs *funcs, | |
11851 | void *driver_data, | |
11852 | void *device_data, | |
11853 | CoreDFB *core); | |
11854 | ||
11855 | DFBResult (*InitDevice) (GraphicsDevice *device, | |
11856 | GraphicsDeviceInfo *device_info, | |
11857 | void *driver_data, | |
11858 | void *device_data); | |
11859 | ||
11860 | void (*CloseDevice) (GraphicsDevice *device, | |
11861 | void *driver_data, | |
11862 | void *device_data); | |
11863 | void (*CloseDriver) (GraphicsDevice *device, | |
11864 | void *driver_data); | |
11865 | } GraphicsDriverFuncs; | |
11866 | ||
11867 | typedef enum { | |
11868 | GDLF_NONE = 0x00000000, | |
11869 | ||
11870 | GDLF_WAIT = 0x00000001, | |
11871 | GDLF_SYNC = 0x00000002, | |
11872 | GDLF_INVALIDATE = 0x00000004, | |
11873 | GDLF_RESET = 0x00000008 | |
11874 | } GraphicsDeviceLockFlags; | |
11875 | ||
11876 | DFBResult dfb_gfxcard_lock( GraphicsDeviceLockFlags flags ); | |
11877 | void dfb_gfxcard_unlock(); | |
11878 | void dfb_gfxcard_holdup(); | |
11879 | ||
11880 | bool dfb_gfxcard_state_check( CardState *state, DFBAccelerationMask accel ); | |
11881 | ||
11882 | ||
11883 | ||
11884 | ||
11885 | ||
11886 | ||
11887 | ||
11888 | void dfb_gfxcard_fillrectangles( const DFBRectangle *rects, int num, CardState *state ); | |
11889 | ||
11890 | void dfb_gfxcard_drawrectangle( DFBRectangle *rect, CardState *state ); | |
11891 | ||
11892 | void dfb_gfxcard_drawlines( DFBRegion *lines, int num_lines, CardState *state ); | |
11893 | ||
11894 | void dfb_gfxcard_fillspans( int y, DFBSpan *spans, int num_spans, CardState *state ); | |
11895 | ||
11896 | void dfb_gfxcard_filltriangle( DFBTriangle *tri, CardState *state ); | |
11897 | ||
11898 | void dfb_gfxcard_blit( DFBRectangle *rect, int dx, int dy, CardState *state ); | |
11899 | ||
11900 | void dfb_gfxcard_batchblit( DFBRectangle *rects, DFBPoint *points, | |
11901 | int num, CardState *state ); | |
11902 | ||
11903 | void dfb_gfxcard_tileblit( DFBRectangle *rect, int dx1, int dy1, int dx2, int dy2, | |
11904 | CardState *state ); | |
11905 | ||
11906 | void dfb_gfxcard_stretchblit( DFBRectangle *srect, DFBRectangle *drect, | |
11907 | CardState *state ); | |
11908 | ||
11909 | void dfb_gfxcard_texture_triangles( DFBVertex *vertices, int num, | |
11910 | DFBTriangleFormation formation, | |
11911 | CardState *state ); | |
11912 | ||
11913 | void dfb_gfxcard_drawstring( const u_int8_t *text, int bytes, int x, int y, | |
11914 | CoreFont *font, CardState *state ); | |
11915 | void dfb_gfxcard_drawstring_check_state( CoreFont *font, CardState *state ); | |
11916 | void dfb_gfxcard_drawglyph( unichar index, int x, int y, | |
11917 | CoreFont *font, CardState *state ); | |
11918 | ||
11919 | void dfb_gfxcard_sync(); | |
11920 | void dfb_gfxcard_invalidate_state(); | |
11921 | void dfb_gfxcard_wait_serial( const CoreGraphicsSerial *serial ); | |
11922 | void dfb_gfxcard_flush_texture_cache(); | |
11923 | void dfb_gfxcard_flush_read_cache(); | |
11924 | void dfb_gfxcard_after_set_var(); | |
11925 | void dfb_gfxcard_surface_enter( SurfaceBuffer *buffer, DFBSurfaceLockFlags flags ); | |
11926 | void dfb_gfxcard_surface_leave( SurfaceBuffer *buffer ); | |
11927 | ||
11928 | DFBResult dfb_gfxcard_adjust_heap_offset( int offset ); | |
11929 | ||
11930 | SurfaceManager *dfb_gfxcard_surface_manager (); | |
11931 | void dfb_gfxcard_get_capabilities ( CardCapabilities *ret_caps ); | |
11932 | void dfb_gfxcard_get_device_info ( GraphicsDeviceInfo *ret_info ); | |
11933 | void dfb_gfxcard_get_driver_info ( GraphicsDriverInfo *ret_info ); | |
11934 | ||
11935 | int dfb_gfxcard_reserve_memory ( GraphicsDevice *device, | |
11936 | unsigned int size ); | |
11937 | int dfb_gfxcard_reserve_auxmemory ( GraphicsDevice *device, | |
11938 | unsigned int size ); | |
11939 | ||
11940 | unsigned int dfb_gfxcard_memory_length (); | |
11941 | unsigned int dfb_gfxcard_auxmemory_length (); | |
11942 | # 354 "/usr/include/directfb-internal/core/gfxcard.h" | |
11943 | volatile void *dfb_gfxcard_map_mmio( GraphicsDevice *device, | |
11944 | unsigned int offset, | |
11945 | int length ); | |
11946 | ||
11947 | ||
11948 | ||
11949 | ||
11950 | ||
11951 | ||
11952 | ||
11953 | void dfb_gfxcard_unmap_mmio( GraphicsDevice *device, | |
11954 | volatile void *addr, | |
11955 | int length ); | |
11956 | ||
11957 | int dfb_gfxcard_get_accelerator( GraphicsDevice *device ); | |
11958 | ||
11959 | unsigned long dfb_gfxcard_memory_physical( GraphicsDevice *device, | |
11960 | unsigned int offset ); | |
11961 | void *dfb_gfxcard_memory_virtual ( GraphicsDevice *device, | |
11962 | unsigned int offset ); | |
11963 | ||
11964 | unsigned long dfb_gfxcard_auxmemory_physical( GraphicsDevice *device, | |
11965 | unsigned int offset ); | |
11966 | void *dfb_gfxcard_auxmemory_virtual ( GraphicsDevice *device, | |
11967 | unsigned int offset ); | |
11968 | # 42 "/usr/include/directfb-internal/core/state.h" 2 | |
11969 | ||
11970 | # 1 "/usr/include/directfb-internal/gfx/generic/generic.h" 1 | |
11971 | # 30 "/usr/include/directfb-internal/gfx/generic/generic.h" | |
11972 | #define __GENERIC_H__ | |
11973 | # 40 "/usr/include/directfb-internal/gfx/generic/generic.h" | |
11974 | typedef union { | |
11975 | struct { | |
11976 | u_int16_t b; | |
11977 | u_int16_t g; | |
11978 | u_int16_t r; | |
11979 | u_int16_t a; | |
11980 | } RGB; | |
11981 | struct { | |
11982 | u_int16_t u; | |
11983 | u_int16_t v; | |
11984 | u_int16_t y; | |
11985 | u_int16_t a; | |
11986 | } YUV; | |
11987 | } GenefxAccumulator; | |
11988 | ||
11989 | ||
11990 | typedef struct _GenefxState GenefxState; | |
11991 | ||
11992 | typedef void (*GenefxFunc)(GenefxState *gfxs); | |
11993 | ||
11994 | ||
11995 | ||
11996 | ||
11997 | struct _GenefxState { | |
11998 | GenefxFunc funcs[32]; | |
11999 | ||
12000 | int length; | |
12001 | int Slen; | |
12002 | int Dlen; | |
12003 | ||
12004 | ||
12005 | ||
12006 | ||
12007 | void *dst_org[3]; | |
12008 | void *src_org[3]; | |
12009 | int dst_pitch; | |
12010 | int src_pitch; | |
12011 | ||
12012 | int dst_bpp; | |
12013 | int src_bpp; | |
12014 | ||
12015 | DFBSurfaceCapabilities dst_caps; | |
12016 | DFBSurfaceCapabilities src_caps; | |
12017 | ||
12018 | DFBSurfacePixelFormat src_format; | |
12019 | DFBSurfacePixelFormat dst_format; | |
12020 | ||
12021 | int dst_height; | |
12022 | int src_height; | |
12023 | ||
12024 | int dst_field_offset; | |
12025 | int src_field_offset; | |
12026 | ||
12027 | DFBColor color; | |
12028 | ||
12029 | ||
12030 | ||
12031 | ||
12032 | void *Aop[3]; | |
12033 | void *Bop[3]; | |
12034 | u_int32_t Cop; | |
12035 | ||
12036 | u_int8_t YCop; | |
12037 | u_int8_t CbCop; | |
12038 | u_int8_t CrCop; | |
12039 | ||
12040 | int Aop_field; | |
12041 | int Bop_field; | |
12042 | ||
12043 | int AopY; | |
12044 | int BopY; | |
12045 | ||
12046 | ||
12047 | ||
12048 | ||
12049 | u_int32_t Dkey; | |
12050 | u_int32_t Skey; | |
12051 | ||
12052 | ||
12053 | ||
12054 | ||
12055 | CorePalette *Alut; | |
12056 | CorePalette *Blut; | |
12057 | ||
12058 | ||
12059 | ||
12060 | ||
12061 | void *ABstart; | |
12062 | int ABsize; | |
12063 | GenefxAccumulator *Aacc; | |
12064 | GenefxAccumulator *Bacc; | |
12065 | GenefxAccumulator Cacc; | |
12066 | GenefxAccumulator SCacc; | |
12067 | ||
12068 | ||
12069 | ||
12070 | ||
12071 | GenefxAccumulator *Xacc; | |
12072 | GenefxAccumulator *Dacc; | |
12073 | GenefxAccumulator *Sacc; | |
12074 | ||
12075 | void **Sop; | |
12076 | CorePalette *Slut; | |
12077 | ||
12078 | int Ostep; | |
12079 | ||
12080 | int SperD; | |
12081 | }; | |
12082 | ||
12083 | ||
12084 | void gGetDriverInfo( GraphicsDriverInfo *info ); | |
12085 | void gGetDeviceInfo( GraphicsDeviceInfo *info ); | |
12086 | ||
12087 | bool gAcquire ( CardState *state, DFBAccelerationMask accel ); | |
12088 | void gRelease ( CardState *state ); | |
12089 | ||
12090 | void gFillRectangle ( CardState *state, DFBRectangle *rect ); | |
12091 | void gDrawLine ( CardState *state, DFBRegion *line ); | |
12092 | ||
12093 | void gBlit ( CardState *state, DFBRectangle *rect, int dx, int dy ); | |
12094 | void gStretchBlit ( CardState *state, DFBRectangle *srect, DFBRectangle *drect ); | |
12095 | # 44 "/usr/include/directfb-internal/core/state.h" 2 | |
12096 | ||
12097 | # 1 "/usr/include/directfb-internal/misc/util.h" 1 | |
12098 | # 29 "/usr/include/directfb-internal/misc/util.h" | |
12099 | #define __MISC__UTIL_H__ | |
12100 | ||
12101 | # 1 "/usr/include/directfb/directfb_util.h" 1 | |
12102 | # 29 "/usr/include/directfb/directfb_util.h" | |
12103 | #define __DIRECTFB_UTIL_H__ | |
12104 | ||
12105 | # 1 "/usr/include/errno.h" 1 3 4 | |
12106 | ||
12107 | ||
12108 | ||
12109 | ||
12110 | ||
12111 | ||
12112 | ||
12113 | # 1 "/usr/include/gentoo-multilib/amd64/errno.h" 1 3 4 | |
12114 | # 72 "/usr/include/gentoo-multilib/amd64/errno.h" 3 4 | |
12115 | #undef __need_error_t | |
12116 | # 9 "/usr/include/errno.h" 2 3 4 | |
12117 | # 32 "/usr/include/directfb/directfb_util.h" 2 | |
12118 | ||
12119 | ||
12120 | ||
12121 | ||
12122 | ||
12123 | ||
12124 | bool dfb_region_intersect( DFBRegion *region, | |
12125 | int x1, int y1, int x2, int y2 ); | |
12126 | ||
12127 | bool dfb_region_region_intersect( DFBRegion *region, | |
12128 | const DFBRegion *clip ); | |
12129 | ||
12130 | bool dfb_region_rectangle_intersect( DFBRegion *region, | |
12131 | const DFBRectangle *rect ); | |
12132 | ||
12133 | bool dfb_unsafe_region_intersect( DFBRegion *region, | |
12134 | int x1, int y1, int x2, int y2 ); | |
12135 | ||
12136 | bool dfb_unsafe_region_rectangle_intersect( DFBRegion *region, | |
12137 | const DFBRectangle *rect ); | |
12138 | ||
12139 | bool dfb_rectangle_intersect_by_unsafe_region( DFBRectangle *rectangle, | |
12140 | DFBRegion *region ); | |
12141 | ||
12142 | bool dfb_rectangle_intersect_by_region( DFBRectangle *rectangle, | |
12143 | const DFBRegion *region ); | |
12144 | ||
12145 | bool dfb_rectangle_intersect( DFBRectangle *rectangle, | |
12146 | const DFBRectangle *clip ); | |
12147 | ||
12148 | ||
12149 | void dfb_rectangle_union ( DFBRectangle *rect1, | |
12150 | const DFBRectangle *rect2 ); | |
12151 | ||
12152 | ||
12153 | #define DFB_RECTANGLE_ASSERT(r) do { D_ASSERT( (r) != NULL ); D_ASSERT( (r)->w >= 0 ); D_ASSERT( (r)->h >= 0 ); } while (0) | |
12154 | ||
12155 | ||
12156 | ||
12157 | ||
12158 | ||
12159 | ||
12160 | #define DFB_RECTANGLE_ASSERT_IF(r) do { if ((r) != NULL) { D_ASSERT( (r)->w >= 0 ); D_ASSERT( (r)->h >= 0 ); } } while (0) | |
12161 | ||
12162 | ||
12163 | ||
12164 | ||
12165 | ||
12166 | ||
12167 | ||
12168 | #define DFB_RECTANGLE_VALS(r) (r)->x, (r)->y, (r)->w, (r)->h | |
12169 | #define DFB_RECTANGLE_VALS_FROM_REGION(r) (r)->x1, (r)->y1, (r)->x2-(r)->x1+1, (r)->y2-(r)->y1+1 | |
12170 | #define DFB_RECTANGLE_INIT_FROM_REGION(r) (DFBRectangle){ DFB_RECTANGLE_VALS_FROM_REGION(r) } | |
12171 | ||
12172 | ||
12173 | #define DFB_REGION_ASSERT(r) do { D_ASSERT( (r) != NULL ); D_ASSERT( (r)->x1 <= (r)->x2 ); D_ASSERT( (r)->y1 <= (r)->y2 ); } while (0) | |
12174 | ||
12175 | ||
12176 | ||
12177 | ||
12178 | ||
12179 | ||
12180 | #define DFB_REGION_ASSERT_IF(r) do { if ((r) != NULL) { D_ASSERT( (r)->x1 <= (r)->x2 ); D_ASSERT( (r)->y1 <= (r)->y2 ); } } while (0) | |
12181 | # 103 "/usr/include/directfb/directfb_util.h" | |
12182 | #define DFB_REGION_VALS(r) (r)->x1, (r)->y1, (r)->x2, (r)->y2 | |
12183 | ||
12184 | #define DFB_REGION_VALS_FROM_RECTANGLE(r) (r)->x, (r)->y, (r)->x+(r)->w-1, (r)->y+(r)->h-1 | |
12185 | #define DFB_REGION_INIT_FROM_RECTANGLE(r) (DFBRegion){ DFB_REGION_VALS_FROM_RECTANGLE(r) } | |
12186 | ||
12187 | #define DFB_REGION_VALS_FROM_RECTANGLE_VALS(x,y,w,h) (x), (y), (x)+(w)-1, (y)+(h)-1 | |
12188 | #define DFB_REGION_INIT_FROM_RECTANGLE_VALS(x,y,w,h) (DFBRegion){ DFB_REGION_VALS_FROM_RECTANGLE_VALS(x,y,w,h) } | |
12189 | ||
12190 | #define DFB_REGION_VALS_TRANSLATED(r,x,y) (r)->x1 + x, (r)->y1 + y, (r)->x2 + x, (r)->y2 + y | |
12191 | #define DFB_REGION_INIT_TRANSLATED(r,x,y) (DFBRegion){ DFB_REGION_VALS_TRANSLATED(r,x,y) } | |
12192 | ||
12193 | #define DFB_REGION_VALS_INTERSECTED(r,X1,Y1,X2,Y2) (r)->x1 > (X1) ? (r)->x1 : (X1), (r)->y1 > (Y1) ? (r)->y1 : (Y1), (r)->x2 < (X2) ? (r)->x2 : (X2), (r)->y2 < (Y2) ? (r)->y2 : (Y2) | |
12194 | ||
12195 | ||
12196 | ||
12197 | #define DFB_REGION_INIT_INTERSECTED(r,X1,Y1,X2,Y2) (DFBRegion){ DFB_REGION_VALS_INTERSECTED(r,X1,Y1,X2,Y2) } | |
12198 | ||
12199 | ||
12200 | static inline void dfb_rectangle_from_region( DFBRectangle *rect, | |
12201 | const DFBRegion *region ) | |
12202 | { | |
12203 | do {} while (0); | |
12204 | ||
12205 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12206 | ||
12207 | rect->x = region->x1; | |
12208 | rect->y = region->y1; | |
12209 | rect->w = region->x2 - region->x1 + 1; | |
12210 | rect->h = region->y2 - region->y1 + 1; | |
12211 | } | |
12212 | ||
12213 | ||
12214 | static inline void dfb_rectangle_from_rectangle_plus_insets( DFBRectangle *rect, | |
12215 | const DFBRectangle *inner, | |
12216 | const DFBInsets *insets ) | |
12217 | { | |
12218 | do {} while (0); | |
12219 | do {} while (0); | |
12220 | ||
12221 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12222 | ||
12223 | rect->x = inner->x - insets->l; | |
12224 | rect->y = inner->y - insets->t; | |
12225 | rect->w = inner->w + insets->l + insets->r; | |
12226 | rect->h = inner->h + insets->t + insets->b; | |
12227 | } | |
12228 | ||
12229 | ||
12230 | static inline void dfb_region_from_rectangle( DFBRegion *region, | |
12231 | const DFBRectangle *rect ) | |
12232 | { | |
12233 | do {} while (0); | |
12234 | ||
12235 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12236 | ||
12237 | do {} while (0); | |
12238 | do {} while (0); | |
12239 | ||
12240 | region->x1 = rect->x; | |
12241 | region->y1 = rect->y; | |
12242 | region->x2 = rect->x + rect->w - 1; | |
12243 | region->y2 = rect->y + rect->h - 1; | |
12244 | } | |
12245 | ||
12246 | ||
12247 | static inline void dfb_rectangle_translate( DFBRectangle *rect, | |
12248 | int dx, | |
12249 | int dy ) | |
12250 | { | |
12251 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12252 | ||
12253 | rect->x += dx; | |
12254 | rect->y += dy; | |
12255 | } | |
12256 | ||
12257 | static inline void dfb_region_translate( DFBRegion *region, | |
12258 | int dx, | |
12259 | int dy ) | |
12260 | { | |
12261 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12262 | ||
12263 | region->x1 += dx; | |
12264 | region->y1 += dy; | |
12265 | region->x2 += dx; | |
12266 | region->y2 += dy; | |
12267 | } | |
12268 | ||
12269 | static inline void dfb_rectangle_resize( DFBRectangle *rect, | |
12270 | int width, | |
12271 | int height ) | |
12272 | { | |
12273 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12274 | ||
12275 | do {} while (0); | |
12276 | do {} while (0); | |
12277 | ||
12278 | rect->w = width; | |
12279 | rect->h = height; | |
12280 | } | |
12281 | ||
12282 | static inline void dfb_region_resize( DFBRegion *region, | |
12283 | int width, | |
12284 | int height ) | |
12285 | { | |
12286 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12287 | ||
12288 | do {} while (0); | |
12289 | do {} while (0); | |
12290 | ||
12291 | region->x2 = region->x1 + width - 1; | |
12292 | region->y2 = region->y1 + height - 1; | |
12293 | } | |
12294 | ||
12295 | static inline bool dfb_region_intersects( const DFBRegion *region, | |
12296 | int x1, | |
12297 | int y1, | |
12298 | int x2, | |
12299 | int y2 ) | |
12300 | { | |
12301 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12302 | ||
12303 | do {} while (0); | |
12304 | do {} while (0); | |
12305 | ||
12306 | return (region->x1 <= x2 && | |
12307 | region->y1 <= y2 && | |
12308 | region->x2 >= x1 && | |
12309 | region->y2 >= y1); | |
12310 | } | |
12311 | ||
12312 | static inline bool dfb_region_region_intersects( const DFBRegion *region, | |
12313 | const DFBRegion *other ) | |
12314 | { | |
12315 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12316 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12317 | ||
12318 | return (region->x1 <= other->x2 && | |
12319 | region->y1 <= other->y2 && | |
12320 | region->x2 >= other->x1 && | |
12321 | region->y2 >= other->y1); | |
12322 | } | |
12323 | ||
12324 | static inline void dfb_region_region_union( DFBRegion *region, | |
12325 | const DFBRegion *other ) | |
12326 | { | |
12327 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12328 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12329 | ||
12330 | if (region->x1 > other->x1) | |
12331 | region->x1 = other->x1; | |
12332 | ||
12333 | if (region->y1 > other->y1) | |
12334 | region->y1 = other->y1; | |
12335 | ||
12336 | if (region->x2 < other->x2) | |
12337 | region->x2 = other->x2; | |
12338 | ||
12339 | if (region->y2 < other->y2) | |
12340 | region->y2 = other->y2; | |
12341 | } | |
12342 | ||
12343 | static inline bool dfb_rectangle_region_intersects( const DFBRectangle *rect, | |
12344 | const DFBRegion *region ) | |
12345 | { | |
12346 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12347 | ||
12348 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12349 | ||
12350 | return (rect->x <= region->x2 && | |
12351 | rect->y <= region->y2 && | |
12352 | rect->x + rect->w > region->x1 && | |
12353 | rect->y + rect->h > region->y1); | |
12354 | } | |
12355 | ||
12356 | static inline void dfb_region_clip( DFBRegion *region, | |
12357 | int x1, | |
12358 | int y1, | |
12359 | int x2, | |
12360 | int y2 ) | |
12361 | { | |
12362 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12363 | ||
12364 | do {} while (0); | |
12365 | ||
12366 | if (region->x1 < x1) | |
12367 | region->x1 = x1; | |
12368 | ||
12369 | if (region->y1 < y1) | |
12370 | region->y1 = y1; | |
12371 | ||
12372 | if (region->x2 > x2) | |
12373 | region->x2 = x2; | |
12374 | ||
12375 | if (region->y2 > y2) | |
12376 | region->y2 = y2; | |
12377 | } | |
12378 | # 32 "/usr/include/directfb-internal/misc/util.h" 2 | |
12379 | # 46 "/usr/include/directfb-internal/core/state.h" 2 | |
12380 | ||
12381 | ||
12382 | typedef enum { | |
12383 | SMF_DRAWING_FLAGS = 0x00000001, | |
12384 | SMF_BLITTING_FLAGS = 0x00000002, | |
12385 | SMF_CLIP = 0x00000004, | |
12386 | SMF_COLOR = 0x00000008, | |
12387 | SMF_SRC_BLEND = 0x00000010, | |
12388 | SMF_DST_BLEND = 0x00000020, | |
12389 | SMF_SRC_COLORKEY = 0x00000040, | |
12390 | SMF_DST_COLORKEY = 0x00000080, | |
12391 | ||
12392 | SMF_DESTINATION = 0x00000100, | |
12393 | SMF_SOURCE = 0x00000200, | |
12394 | ||
12395 | SMF_ALL = 0x000003FF | |
12396 | } StateModificationFlags; | |
12397 | ||
12398 | typedef enum { | |
12399 | CSF_NONE = 0x00000000, | |
12400 | ||
12401 | CSF_DESTINATION = 0x00000001, | |
12402 | CSF_SOURCE = 0x00000002, | |
12403 | ||
12404 | CSF_SOURCE_LOCKED = 0x00000010, | |
12405 | ||
12406 | CSF_ALL = 0x00000013 | |
12407 | } CardStateFlags; | |
12408 | ||
12409 | struct _CardState { | |
12410 | int magic; | |
12411 | ||
12412 | CoreDFB *core; | |
12413 | FusionID fusion_id; | |
12414 | ||
12415 | pthread_mutex_t lock; | |
12416 | ||
12417 | CardStateFlags flags; | |
12418 | ||
12419 | StateModificationFlags modified; | |
12420 | ||
12421 | ||
12422 | ||
12423 | ||
12424 | ||
12425 | DFBSurfaceDrawingFlags drawingflags; | |
12426 | DFBSurfaceBlittingFlags blittingflags; | |
12427 | ||
12428 | DFBRegion clip; | |
12429 | DFBColor color; | |
12430 | unsigned int color_index; | |
12431 | DFBSurfaceBlendFunction src_blend; | |
12432 | DFBSurfaceBlendFunction dst_blend; | |
12433 | u_int32_t src_colorkey; | |
12434 | u_int32_t dst_colorkey; | |
12435 | ||
12436 | CoreSurface *destination; | |
12437 | CoreSurface *source; | |
12438 | ||
12439 | DirectSerial dst_serial; | |
12440 | DirectSerial src_serial; | |
12441 | ||
12442 | ||
12443 | ||
12444 | ||
12445 | DFBAccelerationMask accel; | |
12446 | DFBAccelerationMask checked; | |
12447 | DFBAccelerationMask set; | |
12448 | DFBAccelerationMask disabled; | |
12449 | ||
12450 | CoreGraphicsSerial serial; | |
12451 | ||
12452 | ||
12453 | ||
12454 | GenefxState *gfxs; | |
12455 | }; | |
12456 | ||
12457 | int dfb_state_init( CardState *state, CoreDFB *core ); | |
12458 | void dfb_state_destroy( CardState *state ); | |
12459 | ||
12460 | void dfb_state_set_destination( CardState *state, CoreSurface *destination ); | |
12461 | void dfb_state_set_source( CardState *state, CoreSurface *source ); | |
12462 | ||
12463 | void dfb_state_update( CardState *state, bool update_source ); | |
12464 | ||
12465 | static inline void | |
12466 | dfb_state_get_serial( const CardState *state, CoreGraphicsSerial *ret_serial ) | |
12467 | { | |
12468 | do {} while (0); | |
12469 | do {} while (0); | |
12470 | ||
12471 | *ret_serial = state->serial; | |
12472 | } | |
12473 | ||
12474 | static inline void | |
12475 | dfb_state_lock( CardState *state ) | |
12476 | { | |
12477 | do { do {} while (0); do {} while (0); } while (0); | |
12478 | ||
12479 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12480 | ||
12481 | pthread_mutex_lock( &state->lock ); | |
12482 | } | |
12483 | ||
12484 | static inline void | |
12485 | dfb_state_unlock( CardState *state ) | |
12486 | { | |
12487 | do { do {} while (0); do {} while (0); } while (0); | |
12488 | ||
12489 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12490 | ||
12491 | pthread_mutex_unlock( &state->lock ); | |
12492 | } | |
12493 | ||
12494 | ||
12495 | #define _dfb_state_set_checked(member,flag,state,value) do { D_MAGIC_ASSERT( state, CardState ); if ((value) != (state)->member) { (state)->member = (value); (state)->modified |= SMF_ ##flag; } } while (0) | |
12496 | # 172 "/usr/include/directfb-internal/core/state.h" | |
12497 | #define dfb_state_set_blitting_flags(state,flags) _dfb_state_set_checked( blittingflags, BLITTING_FLAGS, state, flags ) | |
12498 | ||
12499 | ||
12500 | ||
12501 | #define dfb_state_set_drawing_flags(state,flags) _dfb_state_set_checked( drawingflags, DRAWING_FLAGS, state, flags ) | |
12502 | ||
12503 | ||
12504 | ||
12505 | #define dfb_state_set_color_index(state,index) _dfb_state_set_checked( color_index, COLOR, state, index ) | |
12506 | ||
12507 | ||
12508 | ||
12509 | #define dfb_state_set_src_blend(state,blend) _dfb_state_set_checked( src_blend, SRC_BLEND, state, blend ) | |
12510 | ||
12511 | ||
12512 | ||
12513 | #define dfb_state_set_dst_blend(state,blend) _dfb_state_set_checked( dst_blend, DST_BLEND, state, blend ) | |
12514 | ||
12515 | ||
12516 | ||
12517 | #define dfb_state_set_src_colorkey(state,key) _dfb_state_set_checked( src_colorkey, SRC_COLORKEY, state, key ) | |
12518 | ||
12519 | ||
12520 | ||
12521 | #define dfb_state_set_dst_colorkey(state,key) _dfb_state_set_checked( dst_colorkey, DST_COLORKEY, state, key ) | |
12522 | ||
12523 | ||
12524 | ||
12525 | static inline void dfb_state_set_clip( CardState *state, const DFBRegion *clip ) | |
12526 | { | |
12527 | do { do {} while (0); do {} while (0); } while (0); | |
12528 | do { do {} while (0); do {} while (0); do {} while (0); } while (0); | |
12529 | ||
12530 | if (! ((state->clip).x1 == (*clip).x1 && (state->clip).y1 == (*clip).y1 && (state->clip).x2 == (*clip).x2 && (state->clip).y2 == (*clip).y2)) { | |
12531 | state->clip = *clip; | |
12532 | state->modified = (StateModificationFlags)( state->modified | SMF_CLIP ); | |
12533 | } | |
12534 | } | |
12535 | ||
12536 | static inline void dfb_state_set_color( CardState *state, const DFBColor *color ) | |
12537 | { | |
12538 | do { do {} while (0); do {} while (0); } while (0); | |
12539 | do {} while (0); | |
12540 | ||
12541 | if (! ((state->color).a == (*color).a && (state->color).r == (*color).r && (state->color).g == (*color).g && (state->color).b == (*color).b)) { | |
12542 | state->color = *color; | |
12543 | state->modified = (StateModificationFlags)( state->modified | SMF_COLOR ); | |
12544 | } | |
12545 | } | |
12546 | # 35 "video_out_dfb.c" 2 | |
12547 | ||
12548 | # 1 "/usr/include/directfb-internal/core/surfaces.h" 1 | |
12549 | # 29 "/usr/include/directfb-internal/core/surfaces.h" | |
12550 | #define __SURFACES_H__ | |
12551 | ||
12552 | ||
12553 | ||
12554 | ||
12555 | ||
12556 | ||
12557 | # 1 "/usr/include/directfb/fusion/object.h" 1 | |
12558 | # 29 "/usr/include/directfb/fusion/object.h" | |
12559 | #define __FUSION__OBJECT_H__ | |
12560 | ||
12561 | ||
12562 | ||
12563 | ||
12564 | ||
12565 | # 1 "/usr/include/directfb/fusion/ref.h" 1 | |
12566 | # 29 "/usr/include/directfb/fusion/ref.h" | |
12567 | #define __FUSION__REF_H__ | |
12568 | ||
12569 | # 1 "/usr/include/pthread.h" 1 3 4 | |
12570 | # 32 "/usr/include/directfb/fusion/ref.h" 2 | |
12571 | ||
12572 | ||
12573 | # 1 "/usr/include/directfb/fusion/call.h" 1 | |
12574 | # 29 "/usr/include/directfb/fusion/call.h" | |
12575 | #define __FUSION__CALL_H__ | |
12576 | ||
12577 | ||
12578 | ||
12579 | typedef int (*FusionCallHandler) (int caller, | |
12580 | int call_arg, | |
12581 | void *call_ptr, | |
12582 | void *ctx | |
12583 | ); | |
12584 | ||
12585 | typedef struct { | |
12586 | FusionWorldShared *shared; | |
12587 | int call_id; | |
12588 | int fusion_id; | |
12589 | FusionCallHandler handler; | |
12590 | void *ctx; | |
12591 | } FusionCall; | |
12592 | ||
12593 | ||
12594 | DirectResult fusion_call_init (FusionCall *call, | |
12595 | FusionCallHandler handler, | |
12596 | void *ctx, | |
12597 | const FusionWorld *world); | |
12598 | ||
12599 | DirectResult fusion_call_execute (FusionCall *call, | |
12600 | FusionCallExecFlags flags, | |
12601 | int call_arg, | |
12602 | void *call_ptr, | |
12603 | int *ret_val); | |
12604 | ||
12605 | DirectResult fusion_call_destroy (FusionCall *call); | |
12606 | # 35 "/usr/include/directfb/fusion/ref.h" 2 | |
12607 | ||
12608 | typedef union { | |
12609 | ||
12610 | struct { | |
12611 | int id; | |
12612 | const FusionWorldShared *shared; | |
12613 | } multi; | |
12614 | ||
12615 | ||
12616 | struct { | |
12617 | int refs; | |
12618 | pthread_cond_t cond; | |
12619 | pthread_mutex_t lock; | |
12620 | bool destroyed; | |
12621 | int waiting; | |
12622 | ||
12623 | FusionCall *call; | |
12624 | int call_arg; | |
12625 | } single; | |
12626 | } FusionRef; | |
12627 | ||
12628 | ||
12629 | ||
12630 | ||
12631 | DirectResult fusion_ref_init (FusionRef *ref, | |
12632 | const FusionWorld *world); | |
12633 | ||
12634 | ||
12635 | ||
12636 | ||
12637 | DirectResult fusion_ref_up (FusionRef *ref, bool global); | |
12638 | ||
12639 | ||
12640 | ||
12641 | ||
12642 | DirectResult fusion_ref_down (FusionRef *ref, bool global); | |
12643 | ||
12644 | ||
12645 | ||
12646 | ||
12647 | ||
12648 | ||
12649 | DirectResult fusion_ref_stat (FusionRef *ref, int *refs); | |
12650 | ||
12651 | ||
12652 | ||
12653 | ||
12654 | DirectResult fusion_ref_zero_lock (FusionRef *ref); | |
12655 | ||
12656 | ||
12657 | ||
12658 | ||
12659 | DirectResult fusion_ref_zero_trylock (FusionRef *ref); | |
12660 | ||
12661 | ||
12662 | ||
12663 | ||
12664 | ||
12665 | DirectResult fusion_ref_unlock (FusionRef *ref); | |
12666 | ||
12667 | ||
12668 | ||
12669 | ||
12670 | DirectResult fusion_ref_watch (FusionRef *ref, | |
12671 | FusionCall *call, | |
12672 | int call_arg); | |
12673 | ||
12674 | ||
12675 | ||
12676 | ||
12677 | ||
12678 | ||
12679 | DirectResult fusion_ref_inherit (FusionRef *ref, | |
12680 | FusionRef *from); | |
12681 | ||
12682 | ||
12683 | ||
12684 | ||
12685 | ||
12686 | ||
12687 | DirectResult fusion_ref_destroy (FusionRef *ref); | |
12688 | # 36 "/usr/include/directfb/fusion/object.h" 2 | |
12689 | ||
12690 | ||
12691 | ||
12692 | ||
12693 | typedef void (*FusionObjectDestructor)( FusionObject *object, bool zombie ); | |
12694 | ||
12695 | ||
12696 | typedef unsigned long FusionObjectID; | |
12697 | ||
12698 | ||
12699 | typedef enum { | |
12700 | FOS_INIT, | |
12701 | FOS_ACTIVE, | |
12702 | FOS_DEINIT | |
12703 | } FusionObjectState; | |
12704 | ||
12705 | struct __Fusion_FusionObject { | |
12706 | DirectLink link; | |
12707 | FusionObjectPool *pool; | |
12708 | ||
12709 | int magic; | |
12710 | ||
12711 | FusionObjectID id; | |
12712 | ||
12713 | FusionObjectState state; | |
12714 | ||
12715 | FusionRef ref; | |
12716 | FusionReactor *reactor; | |
12717 | ||
12718 | FusionWorldShared *shared; | |
12719 | }; | |
12720 | ||
12721 | ||
12722 | typedef bool (*FusionObjectCallback)( FusionObjectPool *pool, | |
12723 | FusionObject *object, | |
12724 | void *ctx ); | |
12725 | ||
12726 | ||
12727 | FusionObjectPool *fusion_object_pool_create ( const char *name, | |
12728 | int object_size, | |
12729 | int message_size, | |
12730 | FusionObjectDestructor destructor, | |
12731 | const FusionWorld *world ); | |
12732 | ||
12733 | DirectResult fusion_object_pool_destroy( FusionObjectPool *pool, | |
12734 | const FusionWorld *world ); | |
12735 | ||
12736 | ||
12737 | DirectResult fusion_object_pool_enum ( FusionObjectPool *pool, | |
12738 | FusionObjectCallback callback, | |
12739 | void *ctx ); | |
12740 | ||
12741 | ||
12742 | FusionObject *fusion_object_create ( FusionObjectPool *pool, | |
12743 | const FusionWorld *world ); | |
12744 | ||
12745 | DirectResult fusion_object_get ( FusionObjectPool *pool, | |
12746 | FusionObjectID object_id, | |
12747 | FusionObject **ret_object ); | |
12748 | ||
12749 | DirectResult fusion_object_set_lock( FusionObject *object, | |
12750 | FusionSkirmish *lock ); | |
12751 | ||
12752 | DirectResult fusion_object_activate( FusionObject *object ); | |
12753 | ||
12754 | DirectResult fusion_object_destroy ( FusionObject *object ); | |
12755 | ||
12756 | ||
12757 | #define FUSION_OBJECT_METHODS(type,prefix) static inline DirectResult prefix ##_attach( type *object, ReactionFunc func, void *ctx, Reaction *ret_reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_attach( ((FusionObject*)object)->reactor, func, ctx, ret_reaction ); } static inline DirectResult prefix ##_detach( type *object, Reaction *reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_detach( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult prefix ##_attach_global( type *object, int index, void *ctx, GlobalReaction *reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_attach_global( ((FusionObject*)object)->reactor, index, ctx, reaction ); } static inline DirectResult prefix ##_detach_global( type *object, GlobalReaction *reaction ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_detach_global( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult prefix ##_dispatch( type *object, void *message, const ReactionFunc *globals ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_reactor_dispatch( ((FusionObject*)object)->reactor, message, true, globals ); } static inline DirectResult prefix ##_ref( type *object ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_ref_up( &((FusionObject*)object)->ref, false ); } static inline DirectResult prefix ##_unref( type *object ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); return fusion_ref_down( &((FusionObject*)object)->ref, false ); } static inline DirectResult prefix ##_link( type **link, type *object ) { DirectResult ret; D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); ret = fusion_ref_up( &((FusionObject*)object)->ref, true ); if (ret) return ret; *link = object; return DFB_OK; } static inline DirectResult prefix ##_unlink( type **link ) { type *object = *link; D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); *link = NULL; return fusion_ref_down( &((FusionObject*)object)->ref, true ); } static inline DirectResult prefix ##_inherit( type *object, void *from ) { D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); D_MAGIC_ASSERT( (FusionObject*) from, FusionObject ); return fusion_ref_inherit( &((FusionObject*)object)->ref, &((FusionObject*)from)->ref ); } static inline DirectResult prefix ##_globalize( type *object ) { DirectResult ret; D_MAGIC_ASSERT( (FusionObject*) object, FusionObject ); ret = fusion_ref_up( &((FusionObject*)object)->ref, true ); if (ret) return ret; ret = fusion_ref_down( &((FusionObject*)object)->ref, false ); if (ret) fusion_ref_down( &((FusionObject*)object)->ref, true ); return ret; } | |
12758 | # 228 "/usr/include/directfb/fusion/object.h" | |
12759 | static inline DirectResult fusion_object_attach( void *object, ReactionFunc func, void *ctx, Reaction *ret_reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach( ((FusionObject*)object)->reactor, func, ctx, ret_reaction ); } static inline DirectResult fusion_object_detach( void *object, Reaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult fusion_object_attach_global( void *object, int index, void *ctx, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach_global( ((FusionObject*)object)->reactor, index, ctx, reaction ); } static inline DirectResult fusion_object_detach_global( void *object, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach_global( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult fusion_object_dispatch( void *object, void *message, const ReactionFunc *globals ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_dispatch( ((FusionObject*)object)->reactor, message, (!(0)), globals ); } static inline DirectResult fusion_object_ref( void *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_up( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult fusion_object_unref( void *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_down( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult fusion_object_link( void **link, void *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; *link = object; return DFB_OK; } static inline DirectResult fusion_object_unlink( void **link ) { void *object = *link; do { do {} while (0); do {} while (0); } while (0); *link = ((void *)0); return fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); } static inline DirectResult fusion_object_inherit( void *object, void *from ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); return fusion_ref_inherit( &((FusionObject*)object)->ref, &((FusionObject*)from)->ref ); } static inline DirectResult fusion_object_globalize( void *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; ret = fusion_ref_down( &((FusionObject*)object)->ref, (0) ); if (ret) fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); return ret; }; | |
12760 | # 37 "/usr/include/directfb-internal/core/surfaces.h" 2 | |
12761 | # 46 "/usr/include/directfb-internal/core/surfaces.h" | |
12762 | struct _Chunk; | |
12763 | ||
12764 | typedef enum { | |
12765 | CSNF_SIZEFORMAT = 0x00000001, | |
12766 | CSNF_SYSTEM = 0x00000002, | |
12767 | CSNF_VIDEO = 0x00000004, | |
12768 | CSNF_DESTROY = 0x00000008, | |
12769 | CSNF_FLIP = 0x00000010, | |
12770 | CSNF_FIELD = 0x00000020, | |
12771 | CSNF_PALETTE_CHANGE = 0x00000040, | |
12772 | CSNF_PALETTE_UPDATE = 0x00000080, | |
12773 | CSNF_ALPHA_RAMP = 0x00000100 | |
12774 | } CoreSurfaceNotificationFlags; | |
12775 | ||
12776 | typedef struct { | |
12777 | CoreSurfaceNotificationFlags flags; | |
12778 | CoreSurface *surface; | |
12779 | } CoreSurfaceNotification; | |
12780 | ||
12781 | typedef enum { | |
12782 | CSH_INVALID = 0x00000000, | |
12783 | CSH_STORED = 0x00000001, | |
12784 | ||
12785 | CSH_RESTORE = 0x00000002 | |
12786 | ||
12787 | } CoreSurfaceHealth; | |
12788 | ||
12789 | typedef enum { | |
12790 | CSP_SYSTEMONLY = 0x00000000, | |
12791 | ||
12792 | CSP_VIDEOLOW = 0x00000001, | |
12793 | ||
12794 | CSP_VIDEOHIGH = 0x00000002, | |
12795 | ||
12796 | CSP_VIDEOONLY = 0x00000003 | |
12797 | ||
12798 | } CoreSurfacePolicy; | |
12799 | ||
12800 | typedef enum { | |
12801 | CSS_SYSTEM = 0x00000000, | |
12802 | ||
12803 | CSS_VIDEO = 0x00000001, | |
12804 | ||
12805 | CSS_AUXILIARY = 0x00000002, | |
12806 | ||
12807 | } CoreSurfaceStorage; | |
12808 | ||
12809 | typedef enum { | |
12810 | SBF_NONE = 0x00000000, | |
12811 | SBF_FOREIGN_SYSTEM = 0x00000001, | |
12812 | ||
12813 | SBF_WRITTEN = 0x00000002 | |
12814 | ||
12815 | } SurfaceBufferFlags; | |
12816 | ||
12817 | typedef enum { | |
12818 | VAF_NONE = 0x00000000, | |
12819 | ||
12820 | VAF_SOFTWARE_WRITE = 0x00000001, | |
12821 | VAF_HARDWARE_WRITE = 0x00000002, | |
12822 | VAF_SOFTWARE_READ = 0x00000004, | |
12823 | VAF_HARDWARE_READ = 0x00000008, | |
12824 | VAF_SOFTWARE_LOCK = 0x00000010 | |
12825 | } VideoAccessFlags; | |
12826 | ||
12827 | ||
12828 | struct _SurfaceBuffer | |
12829 | { | |
12830 | SurfaceBufferFlags flags; | |
12831 | CoreSurfacePolicy policy; | |
12832 | CoreSurfaceStorage storage; | |
12833 | ||
12834 | DFBSurfacePixelFormat format; | |
12835 | ||
12836 | struct { | |
12837 | CoreSurfaceHealth health; | |
12838 | int locked; | |
12839 | ||
12840 | ||
12841 | int pitch; | |
12842 | void *addr; | |
12843 | } system; | |
12844 | ||
12845 | struct { | |
12846 | CoreSurfaceHealth health; | |
12847 | int locked; | |
12848 | ||
12849 | ||
12850 | VideoAccessFlags access; | |
12851 | ||
12852 | CoreGraphicsSerial serial; | |
12853 | ||
12854 | int pitch; | |
12855 | int offset; | |
12856 | ||
12857 | struct _Chunk *chunk; | |
12858 | } video; | |
12859 | ||
12860 | CoreSurface *surface; | |
12861 | ||
12862 | ||
12863 | }; | |
12864 | ||
12865 | struct _CoreSurface | |
12866 | { | |
12867 | FusionObject object; | |
12868 | ||
12869 | DirectSerial serial; | |
12870 | ||
12871 | ||
12872 | int width; | |
12873 | int height; | |
12874 | DFBSurfacePixelFormat format; | |
12875 | DFBSurfaceCapabilities caps; | |
12876 | ||
12877 | int min_width; | |
12878 | int min_height; | |
12879 | ||
12880 | CorePalette *palette; | |
12881 | GlobalReaction palette_reaction; | |
12882 | ||
12883 | int field; | |
12884 | ||
12885 | u_int8_t alpha_ramp[4]; | |
12886 | ||
12887 | SurfaceBuffer *front_buffer; | |
12888 | ||
12889 | ||
12890 | SurfaceBuffer *back_buffer; | |
12891 | ||
12892 | ||
12893 | SurfaceBuffer *idle_buffer; | |
12894 | ||
12895 | SurfaceBuffer *depth_buffer; | |
12896 | ||
12897 | SurfaceManager *manager; | |
12898 | ||
12899 | FusionSHMPoolShared *shmpool; | |
12900 | FusionSHMPoolShared *shmpool_data; | |
12901 | }; | |
12902 | ||
12903 | static inline void * | |
12904 | dfb_surface_data_offset( const CoreSurface *surface, | |
12905 | void *data, | |
12906 | int pitch, | |
12907 | int x, | |
12908 | int y ) | |
12909 | { | |
12910 | do {} while (0); | |
12911 | do {} while (0); | |
12912 | do {} while (0); | |
12913 | do {} while (0); | |
12914 | do {} while (0); | |
12915 | do {} while (0); | |
12916 | do {} while (0); | |
12917 | ||
12918 | if (surface->caps & DSCAPS_SEPARATED) { | |
12919 | if (y & 1) | |
12920 | y += surface->height; | |
12921 | ||
12922 | y >>= 1; | |
12923 | } | |
12924 | ||
12925 | return data + pitch * y + (((((surface->format) & 0x007E0000) >> 17) * (x) + 7) >> 3); | |
12926 | } | |
12927 | ||
12928 | ||
12929 | ||
12930 | ||
12931 | FusionObjectPool *dfb_surface_pool_create( const FusionWorld *world ); | |
12932 | ||
12933 | ||
12934 | ||
12935 | ||
12936 | static inline DirectResult dfb_surface_attach( CoreSurface *object, ReactionFunc func, void *ctx, Reaction *ret_reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach( ((FusionObject*)object)->reactor, func, ctx, ret_reaction ); } static inline DirectResult dfb_surface_detach( CoreSurface *object, Reaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult dfb_surface_attach_global( CoreSurface *object, int index, void *ctx, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_attach_global( ((FusionObject*)object)->reactor, index, ctx, reaction ); } static inline DirectResult dfb_surface_detach_global( CoreSurface *object, GlobalReaction *reaction ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_detach_global( ((FusionObject*)object)->reactor, reaction ); } static inline DirectResult dfb_surface_dispatch( CoreSurface *object, void *message, const ReactionFunc *globals ) { do { do {} while (0); do {} while (0); } while (0); return fusion_reactor_dispatch( ((FusionObject*)object)->reactor, message, (!(0)), globals ); } static inline DirectResult dfb_surface_ref( CoreSurface *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_up( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult dfb_surface_unref( CoreSurface *object ) { do { do {} while (0); do {} while (0); } while (0); return fusion_ref_down( &((FusionObject*)object)->ref, (0) ); } static inline DirectResult dfb_surface_link( CoreSurface **link, CoreSurface *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; *link = object; return DFB_OK; } static inline DirectResult dfb_surface_unlink( CoreSurface **link ) { CoreSurface *object = *link; do { do {} while (0); do {} while (0); } while (0); *link = ((void *)0); return fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); } static inline DirectResult dfb_surface_inherit( CoreSurface *object, void *from ) { do { do {} while (0); do {} while (0); } while (0); do { do {} while (0); do {} while (0); } while (0); return fusion_ref_inherit( &((FusionObject*)object)->ref, &((FusionObject*)from)->ref ); } static inline DirectResult dfb_surface_globalize( CoreSurface *object ) { DirectResult ret; do { do {} while (0); do {} while (0); } while (0); ret = fusion_ref_up( &((FusionObject*)object)->ref, (!(0)) ); if (ret) return ret; ret = fusion_ref_down( &((FusionObject*)object)->ref, (0) ); if (ret) fusion_ref_down( &((FusionObject*)object)->ref, (!(0)) ); return ret; } | |
12937 | ||
12938 | ||
12939 | ||
12940 | ||
12941 | ||
12942 | ||
12943 | DFBResult dfb_surface_create( CoreDFB *core, | |
12944 | int width, | |
12945 | int height, | |
12946 | DFBSurfacePixelFormat format, | |
12947 | CoreSurfacePolicy policy, | |
12948 | DFBSurfaceCapabilities caps, | |
12949 | CorePalette *palette, | |
12950 | CoreSurface **surface ); | |
12951 | ||
12952 | ||
12953 | ||
12954 | ||
12955 | ||
12956 | DFBResult dfb_surface_create_preallocated( CoreDFB *core, | |
12957 | int width, | |
12958 | int height, | |
12959 | DFBSurfacePixelFormat format, | |
12960 | CoreSurfacePolicy policy, | |
12961 | DFBSurfaceCapabilities caps, | |
12962 | CorePalette *palette, | |
12963 | void *front_data, | |
12964 | void *back_data, | |
12965 | int front_pitch, | |
12966 | int back_pitch, | |
12967 | CoreSurface **surface ); | |
12968 | ||
12969 | ||
12970 | ||
12971 | ||
12972 | DFBResult dfb_surface_init ( CoreDFB *core, | |
12973 | CoreSurface *surface, | |
12974 | int width, | |
12975 | int height, | |
12976 | DFBSurfacePixelFormat format, | |
12977 | DFBSurfaceCapabilities caps, | |
12978 | CorePalette *palette ); | |
12979 | ||
12980 | ||
12981 | ||
12982 | ||
12983 | DFBResult dfb_surface_reformat( CoreDFB *core, | |
12984 | CoreSurface *surface, | |
12985 | int width, | |
12986 | int height, | |
12987 | DFBSurfacePixelFormat format ); | |
12988 | ||
12989 | ||
12990 | ||
12991 | ||
12992 | DFBResult dfb_surface_reconfig( CoreSurface *surface, | |
12993 | CoreSurfacePolicy front_policy, | |
12994 | CoreSurfacePolicy back_policy ); | |
12995 | ||
12996 | ||
12997 | ||
12998 | ||
12999 | DFBResult dfb_surface_allocate_depth( CoreSurface *surface ); | |
13000 | void dfb_surface_deallocate_depth( CoreSurface *surface ); | |
13001 | ||
13002 | ||
13003 | ||
13004 | ||
13005 | DFBResult dfb_surface_set_palette( CoreSurface *surface, | |
13006 | CorePalette *palette ); | |
13007 | ||
13008 | ||
13009 | ||
13010 | ||
13011 | DirectResult | |
13012 | dfb_surface_notify_listeners( CoreSurface *surface, | |
13013 | CoreSurfaceNotificationFlags flags); | |
13014 | ||
13015 | ||
13016 | ||
13017 | ||
13018 | ||
13019 | void dfb_surface_flip_buffers( CoreSurface *surface, bool write_front ); | |
13020 | ||
13021 | void dfb_surface_set_field( CoreSurface *surface, int field ); | |
13022 | ||
13023 | void dfb_surface_set_alpha_ramp( CoreSurface *surface, u_int8_t a0, u_int8_t a1, u_int8_t a2, u_int8_t a3 ); | |
13024 | ||
13025 | ||
13026 | ||
13027 | ||
13028 | ||
13029 | ||
13030 | DFBResult dfb_surface_soft_lock( CoreSurface *surface, | |
13031 | DFBSurfaceLockFlags flags, | |
13032 | void **data, | |
13033 | int *pitch, | |
13034 | bool front ); | |
13035 | ||
13036 | ||
13037 | ||
13038 | ||
13039 | ||
13040 | ||
13041 | void dfb_surface_unlock( CoreSurface *surface, int front ); | |
13042 | ||
13043 | ||
13044 | ||
13045 | ||
13046 | ||
13047 | ||
13048 | ||
13049 | DFBResult dfb_surface_dump( CoreSurface *surface, | |
13050 | const char *directory, | |
13051 | const char *prefix ); | |
13052 | ||
13053 | ||
13054 | ReactionResult _dfb_surface_palette_listener( const void *msg_data, | |
13055 | void *ctx ); | |
13056 | ||
13057 | typedef enum { | |
13058 | DFB_LAYER_REGION_SURFACE_LISTENER, | |
13059 | DFB_WINDOWSTACK_BACKGROUND_IMAGE_LISTENER, | |
13060 | DFB_WINDOW_SURFACE_LISTENER | |
13061 | } DFB_SURFACE_GLOBALS; | |
13062 | # 37 "video_out_dfb.c" 2 | |
13063 | ||
13064 | # 1 "/usr/include/directfb-internal/display/idirectfbsurface.h" 1 | |
13065 | # 29 "/usr/include/directfb-internal/display/idirectfbsurface.h" | |
13066 | #define __IDIRECTFBSURFACE_H__ | |
13067 | # 44 "/usr/include/directfb-internal/display/idirectfbsurface.h" | |
13068 | typedef struct { | |
13069 | int ref; | |
13070 | ||
13071 | DFBSurfaceCapabilities caps; | |
13072 | ||
13073 | struct { | |
13074 | DFBRectangle wanted; | |
13075 | DFBRectangle granted; | |
13076 | DFBRectangle current; | |
13077 | } area; | |
13078 | ||
13079 | bool clip_set; | |
13080 | ||
13081 | DFBRegion clip_wanted; | |
13082 | ||
13083 | ||
13084 | ||
13085 | int locked; | |
13086 | CoreSurface *surface; | |
13087 | IDirectFBFont *font; | |
13088 | CardState state; | |
13089 | ||
13090 | struct { | |
13091 | u_int8_t r; | |
13092 | u_int8_t g; | |
13093 | u_int8_t b; | |
13094 | u_int32_t value; | |
13095 | } src_key; | |
13096 | ||
13097 | ||
13098 | struct { | |
13099 | u_int8_t r; | |
13100 | u_int8_t g; | |
13101 | u_int8_t b; | |
13102 | u_int32_t value; | |
13103 | } dst_key; | |
13104 | ||
13105 | ||
13106 | Reaction reaction; | |
13107 | } IDirectFBSurface_data; | |
13108 | ||
13109 | ||
13110 | ||
13111 | ||
13112 | DFBResult IDirectFBSurface_Construct( IDirectFBSurface *thiz, | |
13113 | DFBRectangle *req_rect, | |
13114 | DFBRectangle *clip_rect, | |
13115 | CoreSurface *surface, | |
13116 | DFBSurfaceCapabilities caps ); | |
13117 | ||
13118 | ||
13119 | ||
13120 | ||
13121 | void IDirectFBSurface_Destruct( IDirectFBSurface *thiz ); | |
13122 | # 39 "video_out_dfb.c" 2 | |
13123 | ||
13124 | ||
13125 | ||
13126 | #define LOG_MODULE "video_out_dfb" | |
13127 | ||
13128 | # 1 "/usr/include/xine.h" 1 3 4 | |
13129 | # 42 "/usr/include/xine.h" 3 4 | |
13130 | #define HAVE_XINE_H | |
13131 | ||
13132 | ||
13133 | ||
13134 | ||
13135 | ||
13136 | # 1 "/usr/include/sys/types.h" 1 3 4 | |
13137 | # 49 "/usr/include/xine.h" 2 3 4 | |
13138 | # 1 "/usr/include/sys/time.h" 1 3 4 | |
13139 | # 50 "/usr/include/xine.h" 2 3 4 | |
13140 | # 1 "/usr/include/time.h" 1 3 4 | |
13141 | # 51 "/usr/include/xine.h" 2 3 4 | |
13142 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4 | |
13143 | # 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 | |
13144 | #define _STDARG_H | |
13145 | #define _ANSI_STDARG_H_ | |
13146 | ||
13147 | #undef __need___va_list | |
13148 | # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 | |
13149 | #define va_start(v,l) __builtin_va_start(v,l) | |
13150 | #define va_end(v) __builtin_va_end(v) | |
13151 | #define va_arg(v,l) __builtin_va_arg(v,l) | |
13152 | ||
13153 | #define va_copy(d,s) __builtin_va_copy(d,s) | |
13154 | ||
13155 | #define __va_copy(d,s) __builtin_va_copy(d,s) | |
13156 | # 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4 | |
13157 | #define _VA_LIST_ | |
13158 | ||
13159 | ||
13160 | #define _VA_LIST | |
13161 | ||
13162 | ||
13163 | ||
13164 | ||
13165 | ||
13166 | #define _VA_LIST_T_H | |
13167 | ||
13168 | ||
13169 | #define __va_list__ | |
13170 | # 52 "/usr/include/xine.h" 2 3 4 | |
13171 | # 62 "/usr/include/xine.h" 3 4 | |
13172 | # 1 "/usr/include/xine/os_types.h" 1 3 4 | |
13173 | # 30 "/usr/include/xine/os_types.h" 3 4 | |
13174 | #define XINE_OS_TYPES_H | |
13175 | # 107 "/usr/include/xine/os_types.h" 3 4 | |
13176 | # 1 "/usr/include/inttypes.h" 1 3 4 | |
13177 | ||
13178 | ||
13179 | ||
13180 | ||
13181 | ||
13182 | ||
13183 | ||
13184 | # 1 "/usr/include/gentoo-multilib/amd64/inttypes.h" 1 3 4 | |
13185 | # 24 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 | |
13186 | #define _INTTYPES_H 1 | |
13187 | ||
13188 | # 1 "/usr/include/features.h" 1 3 4 | |
13189 | # 27 "/usr/include/gentoo-multilib/amd64/inttypes.h" 2 3 4 | |
13190 | ||
13191 | # 1 "/usr/include/stdint.h" 1 3 4 | |
13192 | ||
13193 | ||
13194 | ||
13195 | ||
13196 | ||
13197 | ||
13198 | ||
13199 | # 1 "/usr/include/gentoo-multilib/amd64/stdint.h" 1 3 4 | |
13200 | # 24 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13201 | #define _STDINT_H 1 | |
13202 | ||
13203 | # 1 "/usr/include/features.h" 1 3 4 | |
13204 | # 27 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4 | |
13205 | # 1 "/usr/include/bits/wchar.h" 1 3 4 | |
13206 | # 28 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4 | |
13207 | # 1 "/usr/include/bits/wordsize.h" 1 3 4 | |
13208 | ||
13209 | ||
13210 | ||
13211 | ||
13212 | ||
13213 | ||
13214 | ||
13215 | # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4 | |
13216 | ||
13217 | ||
13218 | ||
13219 | #define __WORDSIZE 64 | |
13220 | #define __WORDSIZE_COMPAT32 1 | |
13221 | # 9 "/usr/include/bits/wordsize.h" 2 3 4 | |
13222 | # 29 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4 | |
13223 | # 49 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13224 | typedef unsigned char uint8_t; | |
13225 | typedef unsigned short int uint16_t; | |
13226 | ||
13227 | typedef unsigned int uint32_t; | |
13228 | #define __uint32_t_defined | |
13229 | ||
13230 | ||
13231 | typedef unsigned long int uint64_t; | |
13232 | # 66 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13233 | typedef signed char int_least8_t; | |
13234 | typedef short int int_least16_t; | |
13235 | typedef int int_least32_t; | |
13236 | ||
13237 | typedef long int int_least64_t; | |
13238 | ||
13239 | ||
13240 | ||
13241 | ||
13242 | ||
13243 | ||
13244 | typedef unsigned char uint_least8_t; | |
13245 | typedef unsigned short int uint_least16_t; | |
13246 | typedef unsigned int uint_least32_t; | |
13247 | ||
13248 | typedef unsigned long int uint_least64_t; | |
13249 | # 91 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13250 | typedef signed char int_fast8_t; | |
13251 | ||
13252 | typedef long int int_fast16_t; | |
13253 | typedef long int int_fast32_t; | |
13254 | typedef long int int_fast64_t; | |
13255 | # 104 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13256 | typedef unsigned char uint_fast8_t; | |
13257 | ||
13258 | typedef unsigned long int uint_fast16_t; | |
13259 | typedef unsigned long int uint_fast32_t; | |
13260 | typedef unsigned long int uint_fast64_t; | |
13261 | # 120 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13262 | typedef long int intptr_t; | |
13263 | #define __intptr_t_defined | |
13264 | ||
13265 | typedef unsigned long int uintptr_t; | |
13266 | # 135 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13267 | typedef long int intmax_t; | |
13268 | typedef unsigned long int uintmax_t; | |
13269 | # 150 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13270 | #define __INT64_C(c) c ## L | |
13271 | #define __UINT64_C(c) c ## UL | |
13272 | # 160 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13273 | #define INT8_MIN (-128) | |
13274 | #define INT16_MIN (-32767-1) | |
13275 | #define INT32_MIN (-2147483647-1) | |
13276 | #define INT64_MIN (-__INT64_C(9223372036854775807)-1) | |
13277 | ||
13278 | #define INT8_MAX (127) | |
13279 | #define INT16_MAX (32767) | |
13280 | #define INT32_MAX (2147483647) | |
13281 | #define INT64_MAX (__INT64_C(9223372036854775807)) | |
13282 | ||
13283 | ||
13284 | #define UINT8_MAX (255) | |
13285 | #define UINT16_MAX (65535) | |
13286 | #define UINT32_MAX (4294967295U) | |
13287 | #define UINT64_MAX (__UINT64_C(18446744073709551615)) | |
13288 | ||
13289 | ||
13290 | ||
13291 | #define INT_LEAST8_MIN (-128) | |
13292 | #define INT_LEAST16_MIN (-32767-1) | |
13293 | #define INT_LEAST32_MIN (-2147483647-1) | |
13294 | #define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1) | |
13295 | ||
13296 | #define INT_LEAST8_MAX (127) | |
13297 | #define INT_LEAST16_MAX (32767) | |
13298 | #define INT_LEAST32_MAX (2147483647) | |
13299 | #define INT_LEAST64_MAX (__INT64_C(9223372036854775807)) | |
13300 | ||
13301 | ||
13302 | #define UINT_LEAST8_MAX (255) | |
13303 | #define UINT_LEAST16_MAX (65535) | |
13304 | #define UINT_LEAST32_MAX (4294967295U) | |
13305 | #define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615)) | |
13306 | ||
13307 | ||
13308 | ||
13309 | #define INT_FAST8_MIN (-128) | |
13310 | ||
13311 | #define INT_FAST16_MIN (-9223372036854775807L-1) | |
13312 | #define INT_FAST32_MIN (-9223372036854775807L-1) | |
13313 | ||
13314 | ||
13315 | ||
13316 | ||
13317 | #define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1) | |
13318 | ||
13319 | #define INT_FAST8_MAX (127) | |
13320 | ||
13321 | #define INT_FAST16_MAX (9223372036854775807L) | |
13322 | #define INT_FAST32_MAX (9223372036854775807L) | |
13323 | ||
13324 | ||
13325 | ||
13326 | ||
13327 | #define INT_FAST64_MAX (__INT64_C(9223372036854775807)) | |
13328 | ||
13329 | ||
13330 | #define UINT_FAST8_MAX (255) | |
13331 | ||
13332 | #define UINT_FAST16_MAX (18446744073709551615UL) | |
13333 | #define UINT_FAST32_MAX (18446744073709551615UL) | |
13334 | ||
13335 | ||
13336 | ||
13337 | ||
13338 | #define UINT_FAST64_MAX (__UINT64_C(18446744073709551615)) | |
13339 | ||
13340 | ||
13341 | ||
13342 | ||
13343 | #define INTPTR_MIN (-9223372036854775807L-1) | |
13344 | #define INTPTR_MAX (9223372036854775807L) | |
13345 | #define UINTPTR_MAX (18446744073709551615UL) | |
13346 | # 241 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13347 | #define INTMAX_MIN (-__INT64_C(9223372036854775807)-1) | |
13348 | ||
13349 | #define INTMAX_MAX (__INT64_C(9223372036854775807)) | |
13350 | ||
13351 | ||
13352 | #define UINTMAX_MAX (__UINT64_C(18446744073709551615)) | |
13353 | ||
13354 | ||
13355 | ||
13356 | ||
13357 | ||
13358 | ||
13359 | #define PTRDIFF_MIN (-9223372036854775807L-1) | |
13360 | #define PTRDIFF_MAX (9223372036854775807L) | |
13361 | ||
13362 | ||
13363 | ||
13364 | ||
13365 | ||
13366 | ||
13367 | #define SIG_ATOMIC_MIN (-2147483647-1) | |
13368 | #define SIG_ATOMIC_MAX (2147483647) | |
13369 | ||
13370 | ||
13371 | ||
13372 | #define SIZE_MAX (18446744073709551615UL) | |
13373 | ||
13374 | ||
13375 | ||
13376 | ||
13377 | ||
13378 | ||
13379 | ||
13380 | #define WCHAR_MIN __WCHAR_MIN | |
13381 | #define WCHAR_MAX __WCHAR_MAX | |
13382 | ||
13383 | ||
13384 | ||
13385 | #define WINT_MIN (0u) | |
13386 | #define WINT_MAX (4294967295u) | |
13387 | # 290 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4 | |
13388 | #define INT8_C(c) c | |
13389 | #define INT16_C(c) c | |
13390 | #define INT32_C(c) c | |
13391 | ||
13392 | #define INT64_C(c) c ## L | |
13393 | ||
13394 | ||
13395 | ||
13396 | ||
13397 | ||
13398 | #define UINT8_C(c) c | |
13399 | #define UINT16_C(c) c | |
13400 | #define UINT32_C(c) c ## U | |
13401 | ||
13402 | #define UINT64_C(c) c ## UL | |
13403 | ||
13404 | ||
13405 | ||
13406 | ||
13407 | ||
13408 | ||
13409 | #define INTMAX_C(c) c ## L | |
13410 | #define UINTMAX_C(c) c ## UL | |
13411 | # 9 "/usr/include/stdint.h" 2 3 4 | |
13412 | # 29 "/usr/include/gentoo-multilib/amd64/inttypes.h" 2 3 4 | |
13413 | ||
13414 | ||
13415 | ||
13416 | ||
13417 | ||
13418 | ||
13419 | typedef int __gwchar_t; | |
13420 | ||
13421 | ||
13422 | ||
13423 | ||
13424 | ||
13425 | #define ____gwchar_t_defined 1 | |
13426 | # 50 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 | |
13427 | #define __PRI64_PREFIX "l" | |
13428 | #define __PRIPTR_PREFIX "l" | |
13429 | # 60 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 | |
13430 | #define PRId8 "d" | |
13431 | #define PRId16 "d" | |
13432 | #define PRId32 "d" | |
13433 | #define PRId64 __PRI64_PREFIX "d" | |
13434 | ||
13435 | #define PRIdLEAST8 "d" | |
13436 | #define PRIdLEAST16 "d" | |
13437 | #define PRIdLEAST32 "d" | |
13438 | #define PRIdLEAST64 __PRI64_PREFIX "d" | |
13439 | ||
13440 | #define PRIdFAST8 "d" | |
13441 | #define PRIdFAST16 __PRIPTR_PREFIX "d" | |
13442 | #define PRIdFAST32 __PRIPTR_PREFIX "d" | |
13443 | #define PRIdFAST64 __PRI64_PREFIX "d" | |
13444 | ||
13445 | ||
13446 | #define PRIi8 "i" | |
13447 | #define PRIi16 "i" | |
13448 | #define PRIi32 "i" | |
13449 | #define PRIi64 __PRI64_PREFIX "i" | |
13450 | ||
13451 | #define PRIiLEAST8 "i" | |
13452 | #define PRIiLEAST16 "i" | |
13453 | #define PRIiLEAST32 "i" | |
13454 | #define PRIiLEAST64 __PRI64_PREFIX "i" | |
13455 | ||
13456 | #define PRIiFAST8 "i" | |
13457 | #define PRIiFAST16 __PRIPTR_PREFIX "i" | |
13458 | #define PRIiFAST32 __PRIPTR_PREFIX "i" | |
13459 | #define PRIiFAST64 __PRI64_PREFIX "i" | |
13460 | ||
13461 | ||
13462 | #define PRIo8 "o" | |
13463 | #define PRIo16 "o" | |
13464 | #define PRIo32 "o" | |
13465 | #define PRIo64 __PRI64_PREFIX "o" | |
13466 | ||
13467 | #define PRIoLEAST8 "o" | |
13468 | #define PRIoLEAST16 "o" | |
13469 | #define PRIoLEAST32 "o" | |
13470 | #define PRIoLEAST64 __PRI64_PREFIX "o" | |
13471 | ||
13472 | #define PRIoFAST8 "o" | |
13473 | #define PRIoFAST16 __PRIPTR_PREFIX "o" | |
13474 | #define PRIoFAST32 __PRIPTR_PREFIX "o" | |
13475 | #define PRIoFAST64 __PRI64_PREFIX "o" | |
13476 | ||
13477 | ||
13478 | #define PRIu8 "u" | |
13479 | #define PRIu16 "u" | |
13480 | #define PRIu32 "u" | |
13481 | #define PRIu64 __PRI64_PREFIX "u" | |
13482 | ||
13483 | #define PRIuLEAST8 "u" | |
13484 | #define PRIuLEAST16 "u" | |
13485 | #define PRIuLEAST32 "u" | |
13486 | #define PRIuLEAST64 __PRI64_PREFIX "u" | |
13487 | ||
13488 | #define PRIuFAST8 "u" | |
13489 | #define PRIuFAST16 __PRIPTR_PREFIX "u" | |
13490 | #define PRIuFAST32 __PRIPTR_PREFIX "u" | |
13491 | #define PRIuFAST64 __PRI64_PREFIX "u" | |
13492 | ||
13493 | ||
13494 | #define PRIx8 "x" | |
13495 | #define PRIx16 "x" | |
13496 | #define PRIx32 "x" | |
13497 | #define PRIx64 __PRI64_PREFIX "x" | |
13498 | ||
13499 | #define PRIxLEAST8 "x" | |
13500 | #define PRIxLEAST16 "x" | |
13501 | #define PRIxLEAST32 "x" | |
13502 | #define PRIxLEAST64 __PRI64_PREFIX "x" | |
13503 | ||
13504 | #define PRIxFAST8 "x" | |
13505 | #define PRIxFAST16 __PRIPTR_PREFIX "x" | |
13506 | #define PRIxFAST32 __PRIPTR_PREFIX "x" | |
13507 | #define PRIxFAST64 __PRI64_PREFIX "x" | |
13508 | ||
13509 | ||
13510 | #define PRIX8 "X" | |
13511 | #define PRIX16 "X" | |
13512 | #define PRIX32 "X" | |
13513 | #define PRIX64 __PRI64_PREFIX "X" | |
13514 | ||
13515 | #define PRIXLEAST8 "X" | |
13516 | #define PRIXLEAST16 "X" | |
13517 | #define PRIXLEAST32 "X" | |
13518 | #define PRIXLEAST64 __PRI64_PREFIX "X" | |
13519 | ||
13520 | #define PRIXFAST8 "X" | |
13521 | #define PRIXFAST16 __PRIPTR_PREFIX "X" | |
13522 | #define PRIXFAST32 __PRIPTR_PREFIX "X" | |
13523 | #define PRIXFAST64 __PRI64_PREFIX "X" | |
13524 | ||
13525 | ||
13526 | ||
13527 | #define PRIdMAX __PRI64_PREFIX "d" | |
13528 | #define PRIiMAX __PRI64_PREFIX "i" | |
13529 | #define PRIoMAX __PRI64_PREFIX "o" | |
13530 | #define PRIuMAX __PRI64_PREFIX "u" | |
13531 | #define PRIxMAX __PRI64_PREFIX "x" | |
13532 | #define PRIXMAX __PRI64_PREFIX "X" | |
13533 | ||
13534 | ||
13535 | ||
13536 | #define PRIdPTR __PRIPTR_PREFIX "d" | |
13537 | #define PRIiPTR __PRIPTR_PREFIX "i" | |
13538 | #define PRIoPTR __PRIPTR_PREFIX "o" | |
13539 | #define PRIuPTR __PRIPTR_PREFIX "u" | |
13540 | #define PRIxPTR __PRIPTR_PREFIX "x" | |
13541 | #define PRIXPTR __PRIPTR_PREFIX "X" | |
13542 | ||
13543 | ||
13544 | ||
13545 | ||
13546 | ||
13547 | #define SCNd8 "hhd" | |
13548 | #define SCNd16 "hd" | |
13549 | #define SCNd32 "d" | |
13550 | #define SCNd64 __PRI64_PREFIX "d" | |
13551 | ||
13552 | #define SCNdLEAST8 "hhd" | |
13553 | #define SCNdLEAST16 "hd" | |
13554 | #define SCNdLEAST32 "d" | |
13555 | #define SCNdLEAST64 __PRI64_PREFIX "d" | |
13556 | ||
13557 | #define SCNdFAST8 "hhd" | |
13558 | #define SCNdFAST16 __PRIPTR_PREFIX "d" | |
13559 | #define SCNdFAST32 __PRIPTR_PREFIX "d" | |
13560 | #define SCNdFAST64 __PRI64_PREFIX "d" | |
13561 | ||
13562 | ||
13563 | #define SCNi8 "hhi" | |
13564 | #define SCNi16 "hi" | |
13565 | #define SCNi32 "i" | |
13566 | #define SCNi64 __PRI64_PREFIX "i" | |
13567 | ||
13568 | #define SCNiLEAST8 "hhi" | |
13569 | #define SCNiLEAST16 "hi" | |
13570 | #define SCNiLEAST32 "i" | |
13571 | #define SCNiLEAST64 __PRI64_PREFIX "i" | |
13572 | ||
13573 | #define SCNiFAST8 "hhi" | |
13574 | #define SCNiFAST16 __PRIPTR_PREFIX "i" | |
13575 | #define SCNiFAST32 __PRIPTR_PREFIX "i" | |
13576 | #define SCNiFAST64 __PRI64_PREFIX "i" | |
13577 | ||
13578 | ||
13579 | #define SCNu8 "hhu" | |
13580 | #define SCNu16 "hu" | |
13581 | #define SCNu32 "u" | |
13582 | #define SCNu64 __PRI64_PREFIX "u" | |
13583 | ||
13584 | #define SCNuLEAST8 "hhu" | |
13585 | #define SCNuLEAST16 "hu" | |
13586 | #define SCNuLEAST32 "u" | |
13587 | #define SCNuLEAST64 __PRI64_PREFIX "u" | |
13588 | ||
13589 | #define SCNuFAST8 "hhu" | |
13590 | #define SCNuFAST16 __PRIPTR_PREFIX "u" | |
13591 | #define SCNuFAST32 __PRIPTR_PREFIX "u" | |
13592 | #define SCNuFAST64 __PRI64_PREFIX "u" | |
13593 | ||
13594 | ||
13595 | #define SCNo8 "hho" | |
13596 | #define SCNo16 "ho" | |
13597 | #define SCNo32 "o" | |
13598 | #define SCNo64 __PRI64_PREFIX "o" | |
13599 | ||
13600 | #define SCNoLEAST8 "hho" | |
13601 | #define SCNoLEAST16 "ho" | |
13602 | #define SCNoLEAST32 "o" | |
13603 | #define SCNoLEAST64 __PRI64_PREFIX "o" | |
13604 | ||
13605 | #define SCNoFAST8 "hho" | |
13606 | #define SCNoFAST16 __PRIPTR_PREFIX "o" | |
13607 | #define SCNoFAST32 __PRIPTR_PREFIX "o" | |
13608 | #define SCNoFAST64 __PRI64_PREFIX "o" | |
13609 | ||
13610 | ||
13611 | #define SCNx8 "hhx" | |
13612 | #define SCNx16 "hx" | |
13613 | #define SCNx32 "x" | |
13614 | #define SCNx64 __PRI64_PREFIX "x" | |
13615 | ||
13616 | #define SCNxLEAST8 "hhx" | |
13617 | #define SCNxLEAST16 "hx" | |
13618 | #define SCNxLEAST32 "x" | |
13619 | #define SCNxLEAST64 __PRI64_PREFIX "x" | |
13620 | ||
13621 | #define SCNxFAST8 "hhx" | |
13622 | #define SCNxFAST16 __PRIPTR_PREFIX "x" | |
13623 | #define SCNxFAST32 __PRIPTR_PREFIX "x" | |
13624 | #define SCNxFAST64 __PRI64_PREFIX "x" | |
13625 | ||
13626 | ||
13627 | ||
13628 | #define SCNdMAX __PRI64_PREFIX "d" | |
13629 | #define SCNiMAX __PRI64_PREFIX "i" | |
13630 | #define SCNoMAX __PRI64_PREFIX "o" | |
13631 | #define SCNuMAX __PRI64_PREFIX "u" | |
13632 | #define SCNxMAX __PRI64_PREFIX "x" | |
13633 | ||
13634 | ||
13635 | #define SCNdPTR __PRIPTR_PREFIX "d" | |
13636 | #define SCNiPTR __PRIPTR_PREFIX "i" | |
13637 | #define SCNoPTR __PRIPTR_PREFIX "o" | |
13638 | #define SCNuPTR __PRIPTR_PREFIX "u" | |
13639 | #define SCNxPTR __PRIPTR_PREFIX "x" | |
13640 | ||
13641 | ||
13642 | ||
13643 | ||
13644 | ||
13645 | ||
13646 | ||
13647 | ||
13648 | ||
13649 | typedef struct | |
13650 | { | |
13651 | long int quot; | |
13652 | long int rem; | |
13653 | } imaxdiv_t; | |
13654 | # 298 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 | |
13655 | extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
13656 | ||
13657 | ||
13658 | extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) | |
13659 | __attribute__ ((__nothrow__)) __attribute__ ((__const__)); | |
13660 | ||
13661 | ||
13662 | extern intmax_t strtoimax (__const char *__restrict __nptr, | |
13663 | char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)); | |
13664 | ||
13665 | ||
13666 | extern uintmax_t strtoumax (__const char *__restrict __nptr, | |
13667 | char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__)); | |
13668 | ||
13669 | ||
13670 | extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, | |
13671 | __gwchar_t **__restrict __endptr, int __base) | |
13672 | __attribute__ ((__nothrow__)); | |
13673 | ||
13674 | ||
13675 | extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, | |
13676 | __gwchar_t ** __restrict __endptr, int __base) | |
13677 | __attribute__ ((__nothrow__)); | |
13678 | # 333 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 | |
13679 | extern __inline intmax_t | |
13680 | __attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base) | |
13681 | ||
13682 | { | |
13683 | return __strtol_internal (nptr, endptr, base, 0); | |
13684 | } | |
13685 | # 348 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 | |
13686 | extern __inline uintmax_t | |
13687 | __attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base) | |
13688 | ||
13689 | { | |
13690 | return __strtoul_internal (nptr, endptr, base, 0); | |
13691 | } | |
13692 | ||
13693 | ||
13694 | ||
13695 | extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr, | |
13696 | __gwchar_t **__restrict __endptr, | |
13697 | int __base, int __group) __attribute__ ((__nothrow__)); | |
13698 | #define __wcstol_internal_defined 1 | |
13699 | ||
13700 | extern __inline intmax_t | |
13701 | __attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) | |
13702 | ||
13703 | { | |
13704 | return __wcstol_internal (nptr, endptr, base, 0); | |
13705 | } | |
13706 | ||
13707 | ||
13708 | ||
13709 | ||
13710 | extern unsigned long int __wcstoul_internal (__const __gwchar_t * | |
13711 | __restrict __nptr, | |
13712 | __gwchar_t ** | |
13713 | __restrict __endptr, | |
13714 | int __base, int __group) __attribute__ ((__nothrow__)); | |
13715 | #define __wcstoul_internal_defined 1 | |
13716 | ||
13717 | extern __inline uintmax_t | |
13718 | __attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) | |
13719 | ||
13720 | { | |
13721 | return __wcstoul_internal (nptr, endptr, base, 0); | |
13722 | } | |
13723 | # 459 "/usr/include/gentoo-multilib/amd64/inttypes.h" 3 4 | |
13724 | ||
13725 | # 9 "/usr/include/inttypes.h" 2 3 4 | |
13726 | # 108 "/usr/include/xine/os_types.h" 2 3 4 | |
13727 | # 63 "/usr/include/xine.h" 2 3 4 | |
13728 | # 1 "/usr/include/xine/attributes.h" 1 3 4 | |
13729 | # 25 "/usr/include/xine/attributes.h" 3 4 | |
13730 | #define ATTRIBUTE_H_ | |
13731 | ||
13732 | ||
13733 | ||
13734 | ||
13735 | #define ATTR_ALIGN(align) | |
13736 | ||
13737 | ||
13738 | ||
13739 | ||
13740 | ||
13741 | #define ATTRIBUTE_PACKED 1 | |
13742 | # 53 "/usr/include/xine/attributes.h" 3 4 | |
13743 | #define XINE_PROTECTED | |
13744 | ||
13745 | ||
13746 | ||
13747 | ||
13748 | ||
13749 | #define XINE_SENTINEL | |
13750 | # 64 "/usr/include/xine.h" 2 3 4 | |
13751 | # 85 "/usr/include/xine.h" 3 4 | |
13752 | typedef struct xine_s xine_t; | |
13753 | typedef struct xine_stream_s xine_stream_t; | |
13754 | typedef struct xine_audio_port_s xine_audio_port_t; | |
13755 | typedef struct xine_video_port_s xine_video_port_t; | |
13756 | ||
13757 | ||
13758 | ||
13759 | typedef xine_audio_port_t xine_ao_driver_t; | |
13760 | typedef xine_video_port_t xine_vo_driver_t; | |
13761 | # 106 "/usr/include/xine.h" 3 4 | |
13762 | const char *xine_get_version_string (void) ; | |
13763 | void xine_get_version (int *major, int *minor, int *sub) ; | |
13764 | ||
13765 | ||
13766 | ||
13767 | int xine_check_version (int major, int minor, int sub) ; | |
13768 | ||
13769 | ||
13770 | #define XINE_MAJOR_VERSION 1 | |
13771 | #define XINE_MINOR_VERSION 1 | |
13772 | #define XINE_SUB_VERSION 4 | |
13773 | #define XINE_VERSION "1.1.4" | |
13774 | # 135 "/usr/include/xine.h" 3 4 | |
13775 | xine_t *xine_new (void) ; | |
13776 | ||
13777 | ||
13778 | ||
13779 | ||
13780 | void xine_init (xine_t *self) ; | |
13781 | # 157 "/usr/include/xine.h" 3 4 | |
13782 | xine_audio_port_t *xine_open_audio_driver (xine_t *self, const char *id, | |
13783 | void *data) ; | |
13784 | xine_video_port_t *xine_open_video_driver (xine_t *self, const char *id, | |
13785 | int visual, void *data) ; | |
13786 | ||
13787 | void xine_close_audio_driver (xine_t *self, xine_audio_port_t *driver) ; | |
13788 | void xine_close_video_driver (xine_t *self, xine_video_port_t *driver) ; | |
13789 | ||
13790 | ||
13791 | #define XINE_VISUAL_TYPE_NONE 0 | |
13792 | #define XINE_VISUAL_TYPE_X11 1 | |
13793 | #define XINE_VISUAL_TYPE_X11_2 10 | |
13794 | #define XINE_VISUAL_TYPE_AA 2 | |
13795 | #define XINE_VISUAL_TYPE_FB 3 | |
13796 | #define XINE_VISUAL_TYPE_GTK 4 | |
13797 | #define XINE_VISUAL_TYPE_DFB 5 | |
13798 | #define XINE_VISUAL_TYPE_PM 6 | |
13799 | #define XINE_VISUAL_TYPE_DIRECTX 7 | |
13800 | #define XINE_VISUAL_TYPE_CACA 8 | |
13801 | #define XINE_VISUAL_TYPE_MACOSX 9 | |
13802 | #define XINE_VISUAL_TYPE_XCB 11 | |
13803 | ||
13804 | ||
13805 | ||
13806 | ||
13807 | ||
13808 | void xine_exit (xine_t *self) ; | |
13809 | # 201 "/usr/include/xine.h" 3 4 | |
13810 | xine_stream_t *xine_stream_new (xine_t *self, | |
13811 | xine_audio_port_t *ao, xine_video_port_t *vo) ; | |
13812 | # 222 "/usr/include/xine.h" 3 4 | |
13813 | int xine_stream_master_slave(xine_stream_t *master, xine_stream_t *slave, | |
13814 | int affection) ; | |
13815 | ||
13816 | ||
13817 | ||
13818 | #define XINE_MASTER_SLAVE_PLAY (1<<0) | |
13819 | ||
13820 | #define XINE_MASTER_SLAVE_STOP (1<<1) | |
13821 | ||
13822 | #define XINE_MASTER_SLAVE_SPEED (1<<2) | |
13823 | # 241 "/usr/include/xine.h" 3 4 | |
13824 | int xine_open (xine_stream_t *stream, const char *mrl) ; | |
13825 | # 253 "/usr/include/xine.h" 3 4 | |
13826 | int xine_play (xine_stream_t *stream, int start_pos, int start_time) ; | |
13827 | # 262 "/usr/include/xine.h" 3 4 | |
13828 | int xine_trick_mode (xine_stream_t *stream, int mode, int value) ; | |
13829 | ||
13830 | ||
13831 | #define XINE_TRICK_MODE_OFF 0 | |
13832 | #define XINE_TRICK_MODE_SEEK_TO_POSITION 1 | |
13833 | #define XINE_TRICK_MODE_SEEK_TO_TIME 2 | |
13834 | #define XINE_TRICK_MODE_FAST_FORWARD 3 | |
13835 | #define XINE_TRICK_MODE_FAST_REWIND 4 | |
13836 | ||
13837 | ||
13838 | ||
13839 | ||
13840 | ||
13841 | void xine_stop (xine_stream_t *stream) ; | |
13842 | ||
13843 | ||
13844 | ||
13845 | ||
13846 | ||
13847 | void xine_close (xine_stream_t *stream) ; | |
13848 | ||
13849 | ||
13850 | ||
13851 | ||
13852 | ||
13853 | int xine_eject (xine_stream_t *stream) ; | |
13854 | ||
13855 | ||
13856 | ||
13857 | ||
13858 | ||
13859 | void xine_dispose (xine_stream_t *stream) ; | |
13860 | ||
13861 | ||
13862 | ||
13863 | ||
13864 | void xine_engine_set_param(xine_t *self, int param, int value) ; | |
13865 | int xine_engine_get_param(xine_t *self, int param) ; | |
13866 | ||
13867 | #define XINE_ENGINE_PARAM_VERBOSITY 1 | |
13868 | ||
13869 | ||
13870 | ||
13871 | ||
13872 | ||
13873 | void xine_set_param (xine_stream_t *stream, int param, int value) ; | |
13874 | int xine_get_param (xine_stream_t *stream, int param) ; | |
13875 | ||
13876 | ||
13877 | ||
13878 | ||
13879 | #define XINE_PARAM_SPEED 1 | |
13880 | #define XINE_PARAM_AV_OFFSET 2 | |
13881 | #define XINE_PARAM_AUDIO_CHANNEL_LOGICAL 3 | |
13882 | #define XINE_PARAM_SPU_CHANNEL 4 | |
13883 | #define XINE_PARAM_VIDEO_CHANNEL 5 | |
13884 | #define XINE_PARAM_AUDIO_VOLUME 6 | |
13885 | #define XINE_PARAM_AUDIO_MUTE 7 | |
13886 | #define XINE_PARAM_AUDIO_COMPR_LEVEL 8 | |
13887 | #define XINE_PARAM_AUDIO_AMP_LEVEL 9 | |
13888 | #define XINE_PARAM_AUDIO_REPORT_LEVEL 10 | |
13889 | #define XINE_PARAM_VERBOSITY 11 | |
13890 | #define XINE_PARAM_SPU_OFFSET 12 | |
13891 | #define XINE_PARAM_IGNORE_VIDEO 13 | |
13892 | #define XINE_PARAM_IGNORE_AUDIO 14 | |
13893 | #define XINE_PARAM_IGNORE_SPU 15 | |
13894 | #define XINE_PARAM_BROADCASTER_PORT 16 | |
13895 | #define XINE_PARAM_METRONOM_PREBUFFER 17 | |
13896 | #define XINE_PARAM_EQ_30HZ 18 | |
13897 | #define XINE_PARAM_EQ_60HZ 19 | |
13898 | #define XINE_PARAM_EQ_125HZ 20 | |
13899 | #define XINE_PARAM_EQ_250HZ 21 | |
13900 | #define XINE_PARAM_EQ_500HZ 22 | |
13901 | #define XINE_PARAM_EQ_1000HZ 23 | |
13902 | #define XINE_PARAM_EQ_2000HZ 24 | |
13903 | #define XINE_PARAM_EQ_4000HZ 25 | |
13904 | #define XINE_PARAM_EQ_8000HZ 26 | |
13905 | #define XINE_PARAM_EQ_16000HZ 27 | |
13906 | #define XINE_PARAM_AUDIO_CLOSE_DEVICE 28 | |
13907 | #define XINE_PARAM_AUDIO_AMP_MUTE 29 | |
13908 | #define XINE_PARAM_FINE_SPEED 30 | |
13909 | #define XINE_PARAM_EARLY_FINISHED_EVENT 31 | |
13910 | #define XINE_PARAM_GAPLESS_SWITCH 32 | |
13911 | #define XINE_PARAM_DELAY_FINISHED_EVENT 33 | |
13912 | # 354 "/usr/include/xine.h" 3 4 | |
13913 | #define XINE_SPEED_PAUSE 0 | |
13914 | #define XINE_SPEED_SLOW_4 1 | |
13915 | #define XINE_SPEED_SLOW_2 2 | |
13916 | #define XINE_SPEED_NORMAL 4 | |
13917 | #define XINE_SPEED_FAST_2 8 | |
13918 | #define XINE_SPEED_FAST_4 16 | |
13919 | ||
13920 | ||
13921 | #define XINE_FINE_SPEED_NORMAL 1000000 | |
13922 | ||
13923 | ||
13924 | #define XINE_PARAM_VO_DEINTERLACE 0x01000000 | |
13925 | #define XINE_PARAM_VO_ASPECT_RATIO 0x01000001 | |
13926 | #define XINE_PARAM_VO_HUE 0x01000002 | |
13927 | #define XINE_PARAM_VO_SATURATION 0x01000003 | |
13928 | #define XINE_PARAM_VO_CONTRAST 0x01000004 | |
13929 | #define XINE_PARAM_VO_BRIGHTNESS 0x01000005 | |
13930 | #define XINE_PARAM_VO_ZOOM_X 0x01000008 | |
13931 | #define XINE_PARAM_VO_ZOOM_Y 0x0100000d | |
13932 | #define XINE_PARAM_VO_PAN_SCAN 0x01000009 | |
13933 | #define XINE_PARAM_VO_TVMODE 0x0100000a | |
13934 | #define XINE_PARAM_VO_WINDOW_WIDTH 0x0100000f | |
13935 | #define XINE_PARAM_VO_WINDOW_HEIGHT 0x01000010 | |
13936 | #define XINE_PARAM_VO_CROP_LEFT 0x01000020 | |
13937 | #define XINE_PARAM_VO_CROP_RIGHT 0x01000021 | |
13938 | #define XINE_PARAM_VO_CROP_TOP 0x01000022 | |
13939 | #define XINE_PARAM_VO_CROP_BOTTOM 0x01000023 | |
13940 | ||
13941 | ||
13942 | #define XINE_VO_ZOOM_STEP 100 | |
13943 | #define XINE_VO_ZOOM_MAX 400 | |
13944 | #define XINE_VO_ZOOM_MIN -85 | |
13945 | ||
13946 | ||
13947 | #define XINE_VO_ASPECT_AUTO 0 | |
13948 | #define XINE_VO_ASPECT_SQUARE 1 | |
13949 | #define XINE_VO_ASPECT_4_3 2 | |
13950 | #define XINE_VO_ASPECT_ANAMORPHIC 3 | |
13951 | #define XINE_VO_ASPECT_DVB 4 | |
13952 | #define XINE_VO_ASPECT_NUM_RATIOS 5 | |
13953 | ||
13954 | #define XINE_VO_ASPECT_PAN_SCAN 41 | |
13955 | #define XINE_VO_ASPECT_DONT_TOUCH 42 | |
13956 | ||
13957 | ||
13958 | ||
13959 | ||
13960 | ||
13961 | #define XINE_DEMUX_DEFAULT_STRATEGY 0 | |
13962 | ||
13963 | #define XINE_DEMUX_REVERT_STRATEGY 1 | |
13964 | ||
13965 | #define XINE_DEMUX_CONTENT_STRATEGY 2 | |
13966 | ||
13967 | #define XINE_DEMUX_EXTENSION_STRATEGY 3 | |
13968 | ||
13969 | ||
13970 | #define XINE_VERBOSITY_NONE 0 | |
13971 | #define XINE_VERBOSITY_LOG 1 | |
13972 | #define XINE_VERBOSITY_DEBUG 2 | |
13973 | # 424 "/usr/include/xine.h" 3 4 | |
13974 | int xine_get_current_frame (xine_stream_t *stream, | |
13975 | int *width, int *height, | |
13976 | int *ratio_code, int *format, | |
13977 | uint8_t *img) ; | |
13978 | ||
13979 | ||
13980 | #define XINE_IMGFMT_YV12 (('2'<<24)|('1'<<16)|('V'<<8)|'Y') | |
13981 | #define XINE_IMGFMT_YUY2 (('2'<<24)|('Y'<<16)|('U'<<8)|'Y') | |
13982 | #define XINE_IMGFMT_XVMC (('C'<<24)|('M'<<16)|('v'<<8)|'X') | |
13983 | #define XINE_IMGFMT_XXMC (('C'<<24)|('M'<<16)|('x'<<8)|'X') | |
13984 | ||
13985 | ||
13986 | ||
13987 | ||
13988 | ||
13989 | int64_t xine_get_current_vpts(xine_stream_t *stream) ; | |
13990 | # 536 "/usr/include/xine.h" 3 4 | |
13991 | typedef struct xine_post_s xine_post_t; | |
13992 | ||
13993 | struct xine_post_s { | |
13994 | ||
13995 | ||
13996 | ||
13997 | ||
13998 | ||
13999 | xine_audio_port_t **audio_input; | |
14000 | ||
14001 | ||
14002 | ||
14003 | ||
14004 | ||
14005 | xine_video_port_t **video_input; | |
14006 | ||
14007 | ||
14008 | ||
14009 | ||
14010 | int type; | |
14011 | ||
14012 | }; | |
14013 | # 569 "/usr/include/xine.h" 3 4 | |
14014 | xine_post_t *xine_post_init(xine_t *xine, const char *name, | |
14015 | int inputs, | |
14016 | xine_audio_port_t **audio_target, | |
14017 | xine_video_port_t **video_target) ; | |
14018 | ||
14019 | ||
14020 | const char *const *xine_list_post_plugins(xine_t *xine) ; | |
14021 | ||
14022 | ||
14023 | const char *const *xine_list_post_plugins_typed(xine_t *xine, int type) ; | |
14024 | # 589 "/usr/include/xine.h" 3 4 | |
14025 | typedef struct xine_post_in_s xine_post_in_t; | |
14026 | typedef struct xine_post_out_s xine_post_out_t; | |
14027 | ||
14028 | struct xine_post_in_s { | |
14029 | ||
14030 | ||
14031 | const char *name; | |
14032 | ||
14033 | ||
14034 | int type; | |
14035 | ||
14036 | ||
14037 | ||
14038 | void *data; | |
14039 | ||
14040 | }; | |
14041 | ||
14042 | struct xine_post_out_s { | |
14043 | ||
14044 | ||
14045 | const char *name; | |
14046 | ||
14047 | ||
14048 | int type; | |
14049 | ||
14050 | ||
14051 | ||
14052 | void *data; | |
14053 | # 627 "/usr/include/xine.h" 3 4 | |
14054 | int (*rewire) (xine_post_out_t *self, void *data); | |
14055 | ||
14056 | }; | |
14057 | ||
14058 | ||
14059 | const char *const *xine_post_list_inputs(xine_post_t *self) ; | |
14060 | ||
14061 | ||
14062 | const char *const *xine_post_list_outputs(xine_post_t *self) ; | |
14063 | ||
14064 | ||
14065 | xine_post_in_t *xine_post_input(xine_post_t *self, const char *name) ; | |
14066 | ||
14067 | ||
14068 | xine_post_out_t *xine_post_output(xine_post_t *self, const char *name) ; | |
14069 | ||
14070 | ||
14071 | ||
14072 | ||
14073 | ||
14074 | int xine_post_wire(xine_post_out_t *source, xine_post_in_t *target) ; | |
14075 | # 658 "/usr/include/xine.h" 3 4 | |
14076 | int xine_post_wire_video_port(xine_post_out_t *source, xine_video_port_t *vo) ; | |
14077 | # 669 "/usr/include/xine.h" 3 4 | |
14078 | int xine_post_wire_audio_port(xine_post_out_t *source, xine_audio_port_t *ao) ; | |
14079 | ||
14080 | ||
14081 | ||
14082 | ||
14083 | xine_post_out_t * xine_get_video_source(xine_stream_t *stream) ; | |
14084 | xine_post_out_t * xine_get_audio_source(xine_stream_t *stream) ; | |
14085 | ||
14086 | ||
14087 | ||
14088 | ||
14089 | ||
14090 | ||
14091 | void xine_post_dispose(xine_t *xine, xine_post_t *self) ; | |
14092 | ||
14093 | ||
14094 | ||
14095 | #define XINE_POST_TYPE_VIDEO_FILTER 0x010000 | |
14096 | #define XINE_POST_TYPE_VIDEO_VISUALIZATION 0x010001 | |
14097 | #define XINE_POST_TYPE_VIDEO_COMPOSE 0x010002 | |
14098 | #define XINE_POST_TYPE_AUDIO_FILTER 0x020000 | |
14099 | #define XINE_POST_TYPE_AUDIO_VISUALIZATION 0x020001 | |
14100 | # 699 "/usr/include/xine.h" 3 4 | |
14101 | #define XINE_POST_DATA_VIDEO 0 | |
14102 | ||
14103 | ||
14104 | ||
14105 | ||
14106 | ||
14107 | #define XINE_POST_DATA_AUDIO 1 | |
14108 | ||
14109 | ||
14110 | ||
14111 | ||
14112 | ||
14113 | #define XINE_POST_DATA_INT 3 | |
14114 | ||
14115 | ||
14116 | ||
14117 | ||
14118 | ||
14119 | #define XINE_POST_DATA_DOUBLE 4 | |
14120 | ||
14121 | ||
14122 | ||
14123 | ||
14124 | #define XINE_POST_DATA_PARAMETERS 5 | |
14125 | ||
14126 | ||
14127 | typedef struct { | |
14128 | int type; | |
14129 | char *name; | |
14130 | int size; | |
14131 | int offset; | |
14132 | char **enum_values; | |
14133 | double range_min; | |
14134 | double range_max; | |
14135 | int readonly; | |
14136 | char *description; | |
14137 | } xine_post_api_parameter_t; | |
14138 | ||
14139 | ||
14140 | typedef struct { | |
14141 | int struct_size; | |
14142 | xine_post_api_parameter_t *parameter; | |
14143 | } xine_post_api_descr_t; | |
14144 | ||
14145 | typedef struct { | |
14146 | ||
14147 | ||
14148 | ||
14149 | ||
14150 | int (*set_parameters) (xine_post_t *self, void *params); | |
14151 | ||
14152 | ||
14153 | ||
14154 | ||
14155 | int (*get_parameters) (xine_post_t *self, void *params); | |
14156 | ||
14157 | ||
14158 | ||
14159 | ||
14160 | xine_post_api_descr_t * (*get_param_descr) (void); | |
14161 | ||
14162 | ||
14163 | ||
14164 | ||
14165 | ||
14166 | ||
14167 | char * (*get_help) (void); | |
14168 | } xine_post_api_t; | |
14169 | ||
14170 | ||
14171 | #define POST_PARAM_TYPE_LAST 0 | |
14172 | #define POST_PARAM_TYPE_INT 1 | |
14173 | #define POST_PARAM_TYPE_DOUBLE 2 | |
14174 | #define POST_PARAM_TYPE_CHAR 3 | |
14175 | #define POST_PARAM_TYPE_STRING 4 | |
14176 | #define POST_PARAM_TYPE_STRINGLIST 5 | |
14177 | #define POST_PARAM_TYPE_BOOL 6 | |
14178 | # 787 "/usr/include/xine.h" 3 4 | |
14179 | int xine_get_log_section_count(xine_t *self) ; | |
14180 | ||
14181 | ||
14182 | const char *const *xine_get_log_names(xine_t *self) ; | |
14183 | # 799 "/usr/include/xine.h" 3 4 | |
14184 | void xine_log (xine_t *self, int buf, | |
14185 | const char *format, ...) __attribute__ ((__format__(printf, 3, 4))) ; | |
14186 | void xine_vlog(xine_t *self, int buf, | |
14187 | const char *format, va_list args) __attribute__ ((__format__(printf, 3, 0))) ; | |
14188 | ||
14189 | ||
14190 | ||
14191 | const char *const *xine_get_log (xine_t *self, int buf) ; | |
14192 | ||
14193 | ||
14194 | typedef void (*xine_log_cb_t) (void *user_data, int section); | |
14195 | void xine_register_log_cb (xine_t *self, xine_log_cb_t cb, | |
14196 | void *user_data) ; | |
14197 | ||
14198 | ||
14199 | ||
14200 | ||
14201 | ||
14202 | ||
14203 | int xine_get_error (xine_stream_t *stream) ; | |
14204 | ||
14205 | ||
14206 | int xine_get_status (xine_stream_t *stream) ; | |
14207 | ||
14208 | ||
14209 | ||
14210 | ||
14211 | #define XINE_STATUS_IDLE 0 | |
14212 | #define XINE_STATUS_STOP 1 | |
14213 | #define XINE_STATUS_PLAY 2 | |
14214 | #define XINE_STATUS_QUIT 3 | |
14215 | ||
14216 | ||
14217 | ||
14218 | ||
14219 | #define XINE_ERROR_NONE 0 | |
14220 | #define XINE_ERROR_NO_INPUT_PLUGIN 1 | |
14221 | #define XINE_ERROR_NO_DEMUX_PLUGIN 2 | |
14222 | #define XINE_ERROR_DEMUX_FAILED 3 | |
14223 | #define XINE_ERROR_MALFORMED_MRL 4 | |
14224 | #define XINE_ERROR_INPUT_FAILED 5 | |
14225 | ||
14226 | ||
14227 | ||
14228 | ||
14229 | ||
14230 | ||
14231 | ||
14232 | int xine_get_audio_lang (xine_stream_t *stream, int channel, | |
14233 | char *lang) ; | |
14234 | int xine_get_spu_lang (xine_stream_t *stream, int channel, | |
14235 | char *lang) ; | |
14236 | #define XINE_LANG_MAX 32 | |
14237 | # 863 "/usr/include/xine.h" 3 4 | |
14238 | int xine_get_pos_length (xine_stream_t *stream, | |
14239 | int *pos_stream, | |
14240 | int *pos_time, | |
14241 | int *length_time) | |
14242 | ; | |
14243 | # 876 "/usr/include/xine.h" 3 4 | |
14244 | uint32_t xine_get_stream_info (xine_stream_t *stream, int info) ; | |
14245 | const char *xine_get_meta_info (xine_stream_t *stream, int info) ; | |
14246 | ||
14247 | ||
14248 | #define XINE_STREAM_INFO_BITRATE 0 | |
14249 | #define XINE_STREAM_INFO_SEEKABLE 1 | |
14250 | #define XINE_STREAM_INFO_VIDEO_WIDTH 2 | |
14251 | #define XINE_STREAM_INFO_VIDEO_HEIGHT 3 | |
14252 | #define XINE_STREAM_INFO_VIDEO_RATIO 4 | |
14253 | #define XINE_STREAM_INFO_VIDEO_CHANNELS 5 | |
14254 | #define XINE_STREAM_INFO_VIDEO_STREAMS 6 | |
14255 | #define XINE_STREAM_INFO_VIDEO_BITRATE 7 | |
14256 | #define XINE_STREAM_INFO_VIDEO_FOURCC 8 | |
14257 | #define XINE_STREAM_INFO_VIDEO_HANDLED 9 | |
14258 | #define XINE_STREAM_INFO_FRAME_DURATION 10 | |
14259 | #define XINE_STREAM_INFO_AUDIO_CHANNELS 11 | |
14260 | #define XINE_STREAM_INFO_AUDIO_BITS 12 | |
14261 | #define XINE_STREAM_INFO_AUDIO_SAMPLERATE 13 | |
14262 | #define XINE_STREAM_INFO_AUDIO_BITRATE 14 | |
14263 | #define XINE_STREAM_INFO_AUDIO_FOURCC 15 | |
14264 | #define XINE_STREAM_INFO_AUDIO_HANDLED 16 | |
14265 | #define XINE_STREAM_INFO_HAS_CHAPTERS 17 | |
14266 | #define XINE_STREAM_INFO_HAS_VIDEO 18 | |
14267 | #define XINE_STREAM_INFO_HAS_AUDIO 19 | |
14268 | #define XINE_STREAM_INFO_IGNORE_VIDEO 20 | |
14269 | #define XINE_STREAM_INFO_IGNORE_AUDIO 21 | |
14270 | #define XINE_STREAM_INFO_IGNORE_SPU 22 | |
14271 | #define XINE_STREAM_INFO_VIDEO_HAS_STILL 23 | |
14272 | #define XINE_STREAM_INFO_MAX_AUDIO_CHANNEL 24 | |
14273 | #define XINE_STREAM_INFO_MAX_SPU_CHANNEL 25 | |
14274 | #define XINE_STREAM_INFO_AUDIO_MODE 26 | |
14275 | #define XINE_STREAM_INFO_SKIPPED_FRAMES 27 | |
14276 | #define XINE_STREAM_INFO_DISCARDED_FRAMES 28 | |
14277 | #define XINE_STREAM_INFO_VIDEO_AFD 29 | |
14278 | #define XINE_STREAM_INFO_DVD_TITLE_NUMBER 30 | |
14279 | #define XINE_STREAM_INFO_DVD_TITLE_COUNT 31 | |
14280 | #define XINE_STREAM_INFO_DVD_CHAPTER_NUMBER 32 | |
14281 | #define XINE_STREAM_INFO_DVD_CHAPTER_COUNT 33 | |
14282 | #define XINE_STREAM_INFO_DVD_ANGLE_NUMBER 34 | |
14283 | #define XINE_STREAM_INFO_DVD_ANGLE_COUNT 35 | |
14284 | ||
14285 | ||
14286 | #define XINE_VIDEO_AFD_NOT_PRESENT -1 | |
14287 | #define XINE_VIDEO_AFD_RESERVED_0 0 | |
14288 | #define XINE_VIDEO_AFD_RESERVED_1 1 | |
14289 | #define XINE_VIDEO_AFD_BOX_16_9_TOP 2 | |
14290 | #define XINE_VIDEO_AFD_BOX_14_9_TOP 3 | |
14291 | #define XINE_VIDEO_AFD_BOX_GT_16_9_CENTRE 4 | |
14292 | #define XINE_VIDEO_AFD_RESERVED_5 5 | |
14293 | #define XINE_VIDEO_AFD_RESERVED_6 6 | |
14294 | #define XINE_VIDEO_AFD_RESERVED_7 7 | |
14295 | #define XINE_VIDEO_AFD_SAME_AS_FRAME 8 | |
14296 | #define XINE_VIDEO_AFD_4_3_CENTRE 9 | |
14297 | #define XINE_VIDEO_AFD_16_9_CENTRE 10 | |
14298 | #define XINE_VIDEO_AFD_14_9_CENTRE 11 | |
14299 | #define XINE_VIDEO_AFD_RESERVED_12 12 | |
14300 | #define XINE_VIDEO_AFD_4_3_PROTECT_14_9 13 | |
14301 | #define XINE_VIDEO_AFD_16_9_PROTECT_14_9 14 | |
14302 | #define XINE_VIDEO_AFD_16_9_PROTECT_4_3 15 | |
14303 | ||
14304 | ||
14305 | #define XINE_META_INFO_TITLE 0 | |
14306 | #define XINE_META_INFO_COMMENT 1 | |
14307 | #define XINE_META_INFO_ARTIST 2 | |
14308 | #define XINE_META_INFO_GENRE 3 | |
14309 | #define XINE_META_INFO_ALBUM 4 | |
14310 | #define XINE_META_INFO_YEAR 5 | |
14311 | #define XINE_META_INFO_VIDEOCODEC 6 | |
14312 | #define XINE_META_INFO_AUDIOCODEC 7 | |
14313 | #define XINE_META_INFO_SYSTEMLAYER 8 | |
14314 | #define XINE_META_INFO_INPUT_PLUGIN 9 | |
14315 | #define XINE_META_INFO_CDINDEX_DISCID 10 | |
14316 | #define XINE_META_INFO_TRACK_NUMBER 11 | |
14317 | # 963 "/usr/include/xine.h" 3 4 | |
14318 | typedef struct { | |
14319 | char *origin; | |
14320 | char *mrl; | |
14321 | char *link; | |
14322 | uint32_t type; | |
14323 | off_t size; | |
14324 | } xine_mrl_t; | |
14325 | ||
14326 | ||
14327 | #define XINE_MRL_TYPE_unknown (0 << 0) | |
14328 | #define XINE_MRL_TYPE_dvd (1 << 0) | |
14329 | #define XINE_MRL_TYPE_vcd (1 << 1) | |
14330 | #define XINE_MRL_TYPE_net (1 << 2) | |
14331 | #define XINE_MRL_TYPE_rtp (1 << 3) | |
14332 | #define XINE_MRL_TYPE_stdin (1 << 4) | |
14333 | #define XINE_MRL_TYPE_cda (1 << 5) | |
14334 | #define XINE_MRL_TYPE_file (1 << 6) | |
14335 | #define XINE_MRL_TYPE_file_fifo (1 << 7) | |
14336 | #define XINE_MRL_TYPE_file_chardev (1 << 8) | |
14337 | #define XINE_MRL_TYPE_file_directory (1 << 9) | |
14338 | #define XINE_MRL_TYPE_file_blockdev (1 << 10) | |
14339 | #define XINE_MRL_TYPE_file_normal (1 << 11) | |
14340 | #define XINE_MRL_TYPE_file_symlink (1 << 12) | |
14341 | #define XINE_MRL_TYPE_file_sock (1 << 13) | |
14342 | #define XINE_MRL_TYPE_file_exec (1 << 14) | |
14343 | #define XINE_MRL_TYPE_file_backup (1 << 15) | |
14344 | #define XINE_MRL_TYPE_file_hidden (1 << 16) | |
14345 | ||
14346 | ||
14347 | const char *const *xine_get_browsable_input_plugin_ids (xine_t *self) ; | |
14348 | # 1002 "/usr/include/xine.h" 3 4 | |
14349 | xine_mrl_t **xine_get_browse_mrls (xine_t *self, | |
14350 | const char *plugin_id, | |
14351 | const char *start_mrl, | |
14352 | int *num_mrls) ; | |
14353 | ||
14354 | ||
14355 | const char *const *xine_get_autoplay_input_plugin_ids (xine_t *self) ; | |
14356 | ||
14357 | ||
14358 | char **xine_get_autoplay_mrls (xine_t *self, | |
14359 | const char *plugin_id, | |
14360 | int *num_mrls) ; | |
14361 | ||
14362 | ||
14363 | ||
14364 | ||
14365 | ||
14366 | char *xine_get_file_extensions (xine_t *self) ; | |
14367 | ||
14368 | ||
14369 | ||
14370 | ||
14371 | char *xine_get_mime_types (xine_t *self) ; | |
14372 | ||
14373 | ||
14374 | ||
14375 | ||
14376 | ||
14377 | char *xine_get_demux_for_mime_type (xine_t *self, const char *mime_type) ; | |
14378 | ||
14379 | ||
14380 | const char *xine_get_input_plugin_description (xine_t *self, | |
14381 | const char *plugin_id) ; | |
14382 | const char *xine_get_demux_plugin_description (xine_t *self, | |
14383 | const char *plugin_id) ; | |
14384 | const char *xine_get_spu_plugin_description (xine_t *self, | |
14385 | const char *plugin_id) ; | |
14386 | const char *xine_get_audio_plugin_description (xine_t *self, | |
14387 | const char *plugin_id) ; | |
14388 | const char *xine_get_video_plugin_description (xine_t *self, | |
14389 | const char *plugin_id) ; | |
14390 | const char *xine_get_audio_driver_plugin_description (xine_t *self, | |
14391 | const char *plugin_id) ; | |
14392 | const char *xine_get_video_driver_plugin_description (xine_t *self, | |
14393 | const char *plugin_id) ; | |
14394 | const char *xine_get_post_plugin_description (xine_t *self, | |
14395 | const char *plugin_id) ; | |
14396 | ||
14397 | ||
14398 | const char *const *xine_list_audio_output_plugins (xine_t *self) ; | |
14399 | const char *const *xine_list_video_output_plugins (xine_t *self) ; | |
14400 | ||
14401 | ||
14402 | const char *const *xine_list_demuxer_plugins(xine_t *self) ; | |
14403 | ||
14404 | ||
14405 | const char *const *xine_list_input_plugins(xine_t *self) ; | |
14406 | ||
14407 | ||
14408 | const char *const *xine_list_spu_plugins(xine_t *self) ; | |
14409 | ||
14410 | ||
14411 | const char *const *xine_list_audio_decoder_plugins(xine_t *self) ; | |
14412 | const char *const *xine_list_video_decoder_plugins(xine_t *self) ; | |
14413 | ||
14414 | ||
14415 | void xine_plugins_garbage_collector(xine_t *self) ; | |
14416 | # 1077 "/usr/include/xine.h" 3 4 | |
14417 | int xine_gui_send_vo_data (xine_stream_t *self, | |
14418 | int type, void *data) ; | |
14419 | ||
14420 | ||
14421 | ||
14422 | int xine_port_send_gui_data (xine_video_port_t *vo, | |
14423 | int type, void *data) ; | |
14424 | ||
14425 | typedef struct { | |
14426 | ||
14427 | ||
14428 | int x,y,w,h; | |
14429 | ||
14430 | } x11_rectangle_t; | |
14431 | ||
14432 | ||
14433 | ||
14434 | ||
14435 | ||
14436 | ||
14437 | typedef struct { | |
14438 | ||
14439 | ||
14440 | void *display; | |
14441 | int screen; | |
14442 | ||
14443 | ||
14444 | unsigned long d; | |
14445 | ||
14446 | void *user_data; | |
14447 | # 1127 "/usr/include/xine.h" 3 4 | |
14448 | void (*dest_size_cb) (void *user_data, | |
14449 | int video_width, int video_height, | |
14450 | double video_pixel_aspect, | |
14451 | int *dest_width, int *dest_height, | |
14452 | double *dest_pixel_aspect); | |
14453 | # 1158 "/usr/include/xine.h" 3 4 | |
14454 | void (*frame_output_cb) (void *user_data, | |
14455 | int video_width, int video_height, | |
14456 | double video_pixel_aspect, | |
14457 | int *dest_x, int *dest_y, | |
14458 | int *dest_width, int *dest_height, | |
14459 | double *dest_pixel_aspect, | |
14460 | int *win_x, int *win_y); | |
14461 | # 1176 "/usr/include/xine.h" 3 4 | |
14462 | void (*lock_display) (void *user_data); | |
14463 | # 1188 "/usr/include/xine.h" 3 4 | |
14464 | void (*unlock_display) (void *user_data); | |
14465 | ||
14466 | } x11_visual_t; | |
14467 | ||
14468 | ||
14469 | ||
14470 | ||
14471 | ||
14472 | ||
14473 | typedef struct { | |
14474 | ||
14475 | ||
14476 | void *connection; | |
14477 | void *screen; | |
14478 | ||
14479 | ||
14480 | unsigned int window; | |
14481 | ||
14482 | void *user_data; | |
14483 | # 1227 "/usr/include/xine.h" 3 4 | |
14484 | void (*dest_size_cb) (void *user_data, | |
14485 | int video_width, int video_height, | |
14486 | double video_pixel_aspect, | |
14487 | int *dest_width, int *dest_height, | |
14488 | double *dest_pixel_aspect); | |
14489 | # 1258 "/usr/include/xine.h" 3 4 | |
14490 | void (*frame_output_cb) (void *user_data, | |
14491 | int video_width, int video_height, | |
14492 | double video_pixel_aspect, | |
14493 | int *dest_x, int *dest_y, | |
14494 | int *dest_width, int *dest_height, | |
14495 | double *dest_pixel_aspect, | |
14496 | int *win_x, int *win_y); | |
14497 | ||
14498 | } xcb_visual_t; | |
14499 | ||
14500 | ||
14501 | ||
14502 | ||
14503 | ||
14504 | ||
14505 | ||
14506 | typedef struct { | |
14507 | ||
14508 | void (*frame_output_cb) (void *user_data, | |
14509 | int video_width, int video_height, | |
14510 | double video_pixel_aspect, | |
14511 | int *dest_x, int *dest_y, | |
14512 | int *dest_width, int *dest_height, | |
14513 | double *dest_pixel_aspect, | |
14514 | int *win_x, int *win_y); | |
14515 | ||
14516 | void *user_data; | |
14517 | ||
14518 | } fb_visual_t; | |
14519 | # 1321 "/usr/include/xine.h" 3 4 | |
14520 | #define XINE_GUI_SEND_COMPLETION_EVENT 1 | |
14521 | ||
14522 | ||
14523 | ||
14524 | #define XINE_GUI_SEND_DRAWABLE_CHANGED 2 | |
14525 | ||
14526 | ||
14527 | #define XINE_GUI_SEND_EXPOSE_EVENT 3 | |
14528 | ||
14529 | ||
14530 | #define XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO 4 | |
14531 | ||
14532 | ||
14533 | #define XINE_GUI_SEND_VIDEOWIN_VISIBLE 5 | |
14534 | ||
14535 | ||
14536 | ||
14537 | ||
14538 | #define XINE_GUI_SEND_SELECT_VISUAL 8 | |
14539 | ||
14540 | ||
14541 | #define XINE_GUI_SEND_WILL_DESTROY_DRAWABLE 9 | |
14542 | ||
14543 | ||
14544 | ||
14545 | ||
14546 | ||
14547 | ||
14548 | #define XINE_HEALTH_CHECK_OK 0 | |
14549 | #define XINE_HEALTH_CHECK_FAIL 1 | |
14550 | #define XINE_HEALTH_CHECK_UNSUPPORTED 2 | |
14551 | #define XINE_HEALTH_CHECK_NO_SUCH_CHECK 3 | |
14552 | ||
14553 | #define CHECK_KERNEL 0 | |
14554 | #define CHECK_MTRR 1 | |
14555 | #define CHECK_CDROM 2 | |
14556 | #define CHECK_DVDROM 3 | |
14557 | #define CHECK_DMA 4 | |
14558 | #define CHECK_X 5 | |
14559 | #define CHECK_XV 6 | |
14560 | ||
14561 | struct xine_health_check_s { | |
14562 | int status; | |
14563 | const char* cdrom_dev; | |
14564 | const char* dvd_dev; | |
14565 | char* msg; | |
14566 | char* title; | |
14567 | char* explanation; | |
14568 | }; | |
14569 | ||
14570 | typedef struct xine_health_check_s xine_health_check_t; | |
14571 | xine_health_check_t* xine_health_check(xine_health_check_t*, int check_num) ; | |
14572 | # 1383 "/usr/include/xine.h" 3 4 | |
14573 | #define XINE_CONFIG_TYPE_UNKNOWN 0 | |
14574 | #define XINE_CONFIG_TYPE_RANGE 1 | |
14575 | #define XINE_CONFIG_TYPE_STRING 2 | |
14576 | #define XINE_CONFIG_TYPE_ENUM 3 | |
14577 | #define XINE_CONFIG_TYPE_NUM 4 | |
14578 | #define XINE_CONFIG_TYPE_BOOL 5 | |
14579 | ||
14580 | ||
14581 | #define XINE_CONFIG_STRING_IS_STRING 0 | |
14582 | #define XINE_CONFIG_STRING_IS_FILENAME 1 | |
14583 | #define XINE_CONFIG_STRING_IS_DEVICE_NAME 2 | |
14584 | #define XINE_CONFIG_STRING_IS_DIRECTORY_NAME 3 | |
14585 | ||
14586 | typedef struct xine_cfg_entry_s xine_cfg_entry_t; | |
14587 | ||
14588 | typedef void (*xine_config_cb_t) (void *user_data, | |
14589 | xine_cfg_entry_t *entry); | |
14590 | struct xine_cfg_entry_s { | |
14591 | const char *key; | |
14592 | ||
14593 | int type; | |
14594 | ||
14595 | ||
14596 | char *unknown_value; | |
14597 | ||
14598 | ||
14599 | char *str_value; | |
14600 | char *str_default; | |
14601 | ||
14602 | char *str_sticky; | |
14603 | # 1421 "/usr/include/xine.h" 3 4 | |
14604 | int num_value; | |
14605 | int num_default; | |
14606 | ||
14607 | ||
14608 | int range_min; | |
14609 | int range_max; | |
14610 | ||
14611 | ||
14612 | char **enum_values; | |
14613 | ||
14614 | ||
14615 | ||
14616 | ||
14617 | ||
14618 | const char *description; | |
14619 | const char *help; | |
14620 | ||
14621 | ||
14622 | int exp_level; | |
14623 | # 1449 "/usr/include/xine.h" 3 4 | |
14624 | xine_config_cb_t callback; | |
14625 | void *callback_data; | |
14626 | ||
14627 | }; | |
14628 | ||
14629 | const char *xine_config_register_string (xine_t *self, | |
14630 | const char *key, | |
14631 | const char *def_value, | |
14632 | const char *description, | |
14633 | const char *help, | |
14634 | int exp_level, | |
14635 | xine_config_cb_t changed_cb, | |
14636 | void *cb_data) ; | |
14637 | ||
14638 | const char *xine_config_register_filename (xine_t *self, | |
14639 | const char *key, | |
14640 | const char *def_value, | |
14641 | int req_type, | |
14642 | const char *description, | |
14643 | const char *help, | |
14644 | int exp_level, | |
14645 | xine_config_cb_t changed_cb, | |
14646 | void *cb_data) ; | |
14647 | ||
14648 | int xine_config_register_range (xine_t *self, | |
14649 | const char *key, | |
14650 | int def_value, | |
14651 | int min, int max, | |
14652 | const char *description, | |
14653 | const char *help, | |
14654 | int exp_level, | |
14655 | xine_config_cb_t changed_cb, | |
14656 | void *cb_data) ; | |
14657 | ||
14658 | int xine_config_register_enum (xine_t *self, | |
14659 | const char *key, | |
14660 | int def_value, | |
14661 | char **values, | |
14662 | const char *description, | |
14663 | const char *help, | |
14664 | int exp_level, | |
14665 | xine_config_cb_t changed_cb, | |
14666 | void *cb_data) ; | |
14667 | ||
14668 | int xine_config_register_num (xine_t *self, | |
14669 | const char *key, | |
14670 | int def_value, | |
14671 | const char *description, | |
14672 | const char *help, | |
14673 | int exp_level, | |
14674 | xine_config_cb_t changed_cb, | |
14675 | void *cb_data) ; | |
14676 | ||
14677 | int xine_config_register_bool (xine_t *self, | |
14678 | const char *key, | |
14679 | int def_value, | |
14680 | const char *description, | |
14681 | const char *help, | |
14682 | int exp_level, | |
14683 | xine_config_cb_t changed_cb, | |
14684 | void *cb_data) ; | |
14685 | # 1519 "/usr/include/xine.h" 3 4 | |
14686 | int xine_config_get_first_entry (xine_t *self, xine_cfg_entry_t *entry) ; | |
14687 | ||
14688 | ||
14689 | int xine_config_get_next_entry (xine_t *self, xine_cfg_entry_t *entry) ; | |
14690 | ||
14691 | ||
14692 | int xine_config_lookup_entry (xine_t *self, const char *key, | |
14693 | xine_cfg_entry_t *entry) ; | |
14694 | ||
14695 | ||
14696 | ||
14697 | ||
14698 | ||
14699 | ||
14700 | ||
14701 | void xine_config_update_entry (xine_t *self, | |
14702 | const xine_cfg_entry_t *entry) ; | |
14703 | ||
14704 | ||
14705 | ||
14706 | ||
14707 | void xine_config_load (xine_t *self, const char *cfg_filename) ; | |
14708 | void xine_config_save (xine_t *self, const char *cfg_filename) ; | |
14709 | void xine_config_reset (xine_t *self) ; | |
14710 | # 1567 "/usr/include/xine.h" 3 4 | |
14711 | #define XINE_EVENT_UI_PLAYBACK_FINISHED 1 | |
14712 | #define XINE_EVENT_UI_CHANNELS_CHANGED 2 | |
14713 | #define XINE_EVENT_UI_SET_TITLE 3 | |
14714 | #define XINE_EVENT_UI_MESSAGE 4 | |
14715 | #define XINE_EVENT_FRAME_FORMAT_CHANGE 5 | |
14716 | #define XINE_EVENT_AUDIO_LEVEL 6 | |
14717 | #define XINE_EVENT_QUIT 7 | |
14718 | #define XINE_EVENT_PROGRESS 8 | |
14719 | #define XINE_EVENT_MRL_REFERENCE 9 | |
14720 | #define XINE_EVENT_UI_NUM_BUTTONS 10 | |
14721 | #define XINE_EVENT_SPU_BUTTON 11 | |
14722 | #define XINE_EVENT_DROPPED_FRAMES 12 | |
14723 | #define XINE_EVENT_MRL_REFERENCE_EXT 13 | |
14724 | ||
14725 | ||
14726 | ||
14727 | #define XINE_EVENT_INPUT_MOUSE_BUTTON 101 | |
14728 | #define XINE_EVENT_INPUT_MOUSE_MOVE 102 | |
14729 | #define XINE_EVENT_INPUT_MENU1 103 | |
14730 | #define XINE_EVENT_INPUT_MENU2 104 | |
14731 | #define XINE_EVENT_INPUT_MENU3 105 | |
14732 | #define XINE_EVENT_INPUT_MENU4 106 | |
14733 | #define XINE_EVENT_INPUT_MENU5 107 | |
14734 | #define XINE_EVENT_INPUT_MENU6 108 | |
14735 | #define XINE_EVENT_INPUT_MENU7 109 | |
14736 | #define XINE_EVENT_INPUT_UP 110 | |
14737 | #define XINE_EVENT_INPUT_DOWN 111 | |
14738 | #define XINE_EVENT_INPUT_LEFT 112 | |
14739 | #define XINE_EVENT_INPUT_RIGHT 113 | |
14740 | #define XINE_EVENT_INPUT_SELECT 114 | |
14741 | #define XINE_EVENT_INPUT_NEXT 115 | |
14742 | #define XINE_EVENT_INPUT_PREVIOUS 116 | |
14743 | #define XINE_EVENT_INPUT_ANGLE_NEXT 117 | |
14744 | #define XINE_EVENT_INPUT_ANGLE_PREVIOUS 118 | |
14745 | #define XINE_EVENT_INPUT_BUTTON_FORCE 119 | |
14746 | #define XINE_EVENT_INPUT_NUMBER_0 120 | |
14747 | #define XINE_EVENT_INPUT_NUMBER_1 121 | |
14748 | #define XINE_EVENT_INPUT_NUMBER_2 122 | |
14749 | #define XINE_EVENT_INPUT_NUMBER_3 123 | |
14750 | #define XINE_EVENT_INPUT_NUMBER_4 124 | |
14751 | #define XINE_EVENT_INPUT_NUMBER_5 125 | |
14752 | #define XINE_EVENT_INPUT_NUMBER_6 126 | |
14753 | #define XINE_EVENT_INPUT_NUMBER_7 127 | |
14754 | #define XINE_EVENT_INPUT_NUMBER_8 128 | |
14755 | #define XINE_EVENT_INPUT_NUMBER_9 129 | |
14756 | #define XINE_EVENT_INPUT_NUMBER_10_ADD 130 | |
14757 | ||
14758 | ||
14759 | #define XINE_EVENT_SET_V4L2 200 | |
14760 | #define XINE_EVENT_PVR_SAVE 201 | |
14761 | #define XINE_EVENT_PVR_REPORT_NAME 202 | |
14762 | #define XINE_EVENT_PVR_REALTIME 203 | |
14763 | #define XINE_EVENT_PVR_PAUSE 204 | |
14764 | #define XINE_EVENT_SET_MPEG_DATA 205 | |
14765 | ||
14766 | ||
14767 | #define XINE_EVENT_VDR_RED 300 | |
14768 | #define XINE_EVENT_VDR_GREEN 301 | |
14769 | #define XINE_EVENT_VDR_YELLOW 302 | |
14770 | #define XINE_EVENT_VDR_BLUE 303 | |
14771 | #define XINE_EVENT_VDR_PLAY 304 | |
14772 | #define XINE_EVENT_VDR_PAUSE 305 | |
14773 | #define XINE_EVENT_VDR_STOP 306 | |
14774 | #define XINE_EVENT_VDR_RECORD 307 | |
14775 | #define XINE_EVENT_VDR_FASTFWD 308 | |
14776 | #define XINE_EVENT_VDR_FASTREW 309 | |
14777 | #define XINE_EVENT_VDR_POWER 310 | |
14778 | #define XINE_EVENT_VDR_CHANNELPLUS 311 | |
14779 | #define XINE_EVENT_VDR_CHANNELMINUS 312 | |
14780 | #define XINE_EVENT_VDR_SCHEDULE 313 | |
14781 | #define XINE_EVENT_VDR_CHANNELS 314 | |
14782 | #define XINE_EVENT_VDR_TIMERS 315 | |
14783 | #define XINE_EVENT_VDR_RECORDINGS 316 | |
14784 | #define XINE_EVENT_VDR_SETUP 317 | |
14785 | #define XINE_EVENT_VDR_COMMANDS 318 | |
14786 | #define XINE_EVENT_VDR_BACK 319 | |
14787 | #define XINE_EVENT_VDR_USER1 320 | |
14788 | #define XINE_EVENT_VDR_USER2 321 | |
14789 | #define XINE_EVENT_VDR_USER3 322 | |
14790 | #define XINE_EVENT_VDR_USER4 323 | |
14791 | #define XINE_EVENT_VDR_USER5 324 | |
14792 | #define XINE_EVENT_VDR_USER6 325 | |
14793 | #define XINE_EVENT_VDR_USER7 326 | |
14794 | #define XINE_EVENT_VDR_USER8 327 | |
14795 | #define XINE_EVENT_VDR_USER9 328 | |
14796 | #define XINE_EVENT_VDR_VOLPLUS 329 | |
14797 | #define XINE_EVENT_VDR_VOLMINUS 330 | |
14798 | #define XINE_EVENT_VDR_MUTE 331 | |
14799 | #define XINE_EVENT_VDR_AUDIO 332 | |
14800 | #define XINE_EVENT_VDR_INFO 333 | |
14801 | #define XINE_EVENT_VDR_CHANNELPREVIOUS 334 | |
14802 | ||
14803 | #define XINE_EVENT_VDR_SETVIDEOWINDOW 350 | |
14804 | #define XINE_EVENT_VDR_FRAMESIZECHANGED 351 | |
14805 | #define XINE_EVENT_VDR_SELECTAUDIO 352 | |
14806 | #define XINE_EVENT_VDR_TRICKSPEEDMODE 353 | |
14807 | #define XINE_EVENT_VDR_PLUGINSTARTED 354 | |
14808 | ||
14809 | ||
14810 | #define XINE_EVENT_POST_TVTIME_FILMMODE_CHANGE 400 | |
14811 | ||
14812 | ||
14813 | ||
14814 | ||
14815 | typedef struct { | |
14816 | int type; | |
14817 | xine_stream_t *stream; | |
14818 | ||
14819 | void *data; | |
14820 | int data_length; | |
14821 | ||
14822 | ||
14823 | struct timeval tv; | |
14824 | } xine_event_t; | |
14825 | ||
14826 | ||
14827 | ||
14828 | ||
14829 | typedef struct { | |
14830 | xine_event_t event; | |
14831 | uint8_t button; | |
14832 | uint16_t x,y; | |
14833 | } xine_input_data_t; | |
14834 | ||
14835 | ||
14836 | ||
14837 | ||
14838 | typedef struct { | |
14839 | int num_buttons; | |
14840 | int str_len; | |
14841 | char str[256]; | |
14842 | } xine_ui_data_t; | |
14843 | ||
14844 | ||
14845 | ||
14846 | ||
14847 | typedef struct { | |
14848 | ||
14849 | ||
14850 | ||
14851 | ||
14852 | xine_ui_data_t compatibility; | |
14853 | ||
14854 | ||
14855 | int type; | |
14856 | ||
14857 | ||
14858 | ||
14859 | ||
14860 | int explanation; | |
14861 | ||
14862 | ||
14863 | int num_parameters; | |
14864 | int parameters; | |
14865 | ||
14866 | ||
14867 | ||
14868 | ||
14869 | ||
14870 | ||
14871 | ||
14872 | char messages[1]; | |
14873 | } xine_ui_message_data_t; | |
14874 | ||
14875 | ||
14876 | ||
14877 | ||
14878 | ||
14879 | typedef struct { | |
14880 | int width; | |
14881 | int height; | |
14882 | ||
14883 | ||
14884 | int aspect; | |
14885 | int pan_scan; | |
14886 | } xine_format_change_data_t; | |
14887 | ||
14888 | ||
14889 | ||
14890 | ||
14891 | typedef struct { | |
14892 | int left; | |
14893 | int right; | |
14894 | int mute; | |
14895 | } xine_audio_level_data_t; | |
14896 | ||
14897 | ||
14898 | ||
14899 | ||
14900 | typedef struct { | |
14901 | const char *description; | |
14902 | int percent; | |
14903 | } xine_progress_data_t; | |
14904 | # 1789 "/usr/include/xine.h" 3 4 | |
14905 | typedef struct { | |
14906 | int alternative; | |
14907 | char mrl[1]; | |
14908 | } xine_mrl_reference_data_t; | |
14909 | ||
14910 | typedef struct { | |
14911 | int alternative; | |
14912 | uint32_t start_time, duration; | |
14913 | uint32_t spare[20]; | |
14914 | const char mrl[1]; | |
14915 | ||
14916 | } xine_mrl_reference_data_ext_t; | |
14917 | ||
14918 | ||
14919 | ||
14920 | ||
14921 | typedef struct { | |
14922 | ||
14923 | int input; | |
14924 | int channel; | |
14925 | int radio; | |
14926 | uint32_t frequency; | |
14927 | uint32_t transmission; | |
14928 | ||
14929 | ||
14930 | uint32_t framerate_numerator; | |
14931 | uint32_t framerate_denominator; | |
14932 | uint32_t framelines; | |
14933 | uint64_t standard_id; | |
14934 | uint32_t colorstandard; | |
14935 | uint32_t colorsubcarrier; | |
14936 | int frame_width; | |
14937 | int frame_height; | |
14938 | ||
14939 | ||
14940 | ||
14941 | ||
14942 | uint32_t spare[20]; | |
14943 | ||
14944 | ||
14945 | int32_t session_id; | |
14946 | ||
14947 | } xine_set_v4l2_data_t; | |
14948 | ||
14949 | ||
14950 | ||
14951 | ||
14952 | ||
14953 | typedef struct { | |
14954 | ||
14955 | ||
14956 | int bitrate_vbr; | |
14957 | int bitrate_mean; | |
14958 | int bitrate_peak; | |
14959 | int gop_size; | |
14960 | int gop_closure; | |
14961 | int b_frames; | |
14962 | int aspect_ratio; | |
14963 | ||
14964 | ||
14965 | ||
14966 | ||
14967 | uint32_t spare[20]; | |
14968 | ||
14969 | } xine_set_mpeg_data_t; | |
14970 | ||
14971 | typedef struct { | |
14972 | int direction; | |
14973 | int32_t button; | |
14974 | } xine_spu_button_t; | |
14975 | # 1900 "/usr/include/xine.h" 3 4 | |
14976 | typedef struct { | |
14977 | ||
14978 | ||
14979 | int skipped_frames; | |
14980 | int skipped_threshold; | |
14981 | int discarded_frames; | |
14982 | int discarded_threshold; | |
14983 | } xine_dropped_frames_t; | |
14984 | # 1921 "/usr/include/xine.h" 3 4 | |
14985 | #define XINE_MSG_NO_ERROR 0 | |
14986 | #define XINE_MSG_GENERAL_WARNING 1 | |
14987 | #define XINE_MSG_UNKNOWN_HOST 2 | |
14988 | #define XINE_MSG_UNKNOWN_DEVICE 3 | |
14989 | #define XINE_MSG_NETWORK_UNREACHABLE 4 | |
14990 | #define XINE_MSG_CONNECTION_REFUSED 5 | |
14991 | #define XINE_MSG_FILE_NOT_FOUND 6 | |
14992 | #define XINE_MSG_READ_ERROR 7 | |
14993 | #define XINE_MSG_LIBRARY_LOAD_ERROR 8 | |
14994 | #define XINE_MSG_ENCRYPTED_SOURCE 9 | |
14995 | #define XINE_MSG_SECURITY 10 | |
14996 | #define XINE_MSG_AUDIO_OUT_UNAVAILABLE 11 | |
14997 | #define XINE_MSG_PERMISSION_ERROR 12 | |
14998 | #define XINE_MSG_FILE_EMPTY 13 | |
14999 | ||
15000 | ||
15001 | typedef struct xine_event_queue_s xine_event_queue_t; | |
15002 | # 1946 "/usr/include/xine.h" 3 4 | |
15003 | xine_event_queue_t *xine_event_new_queue (xine_stream_t *stream) ; | |
15004 | void xine_event_dispose_queue (xine_event_queue_t *queue) ; | |
15005 | ||
15006 | ||
15007 | ||
15008 | ||
15009 | ||
15010 | ||
15011 | ||
15012 | xine_event_t *xine_event_get (xine_event_queue_t *queue) ; | |
15013 | xine_event_t *xine_event_wait (xine_event_queue_t *queue) ; | |
15014 | void xine_event_free (xine_event_t *event) ; | |
15015 | # 1967 "/usr/include/xine.h" 3 4 | |
15016 | typedef void (*xine_event_listener_cb_t) (void *user_data, | |
15017 | const xine_event_t *event); | |
15018 | void xine_event_create_listener_thread (xine_event_queue_t *queue, | |
15019 | xine_event_listener_cb_t callback, | |
15020 | void *user_data) ; | |
15021 | ||
15022 | ||
15023 | ||
15024 | ||
15025 | ||
15026 | ||
15027 | ||
15028 | void xine_event_send (xine_stream_t *stream, const xine_event_t *event) ; | |
15029 | ||
15030 | ||
15031 | ||
15032 | ||
15033 | ||
15034 | ||
15035 | #define XINE_TEXT_PALETTE_SIZE 11 | |
15036 | ||
15037 | #define XINE_OSD_TEXT1 (0 * XINE_TEXT_PALETTE_SIZE) | |
15038 | #define XINE_OSD_TEXT2 (1 * XINE_TEXT_PALETTE_SIZE) | |
15039 | #define XINE_OSD_TEXT3 (2 * XINE_TEXT_PALETTE_SIZE) | |
15040 | #define XINE_OSD_TEXT4 (3 * XINE_TEXT_PALETTE_SIZE) | |
15041 | #define XINE_OSD_TEXT5 (4 * XINE_TEXT_PALETTE_SIZE) | |
15042 | #define XINE_OSD_TEXT6 (5 * XINE_TEXT_PALETTE_SIZE) | |
15043 | #define XINE_OSD_TEXT7 (6 * XINE_TEXT_PALETTE_SIZE) | |
15044 | #define XINE_OSD_TEXT8 (7 * XINE_TEXT_PALETTE_SIZE) | |
15045 | #define XINE_OSD_TEXT9 (8 * XINE_TEXT_PALETTE_SIZE) | |
15046 | #define XINE_OSD_TEXT10 (9 * XINE_TEXT_PALETTE_SIZE) | |
15047 | ||
15048 | ||
15049 | #define XINE_TEXTPALETTE_WHITE_BLACK_TRANSPARENT 0 | |
15050 | ||
15051 | #define XINE_TEXTPALETTE_WHITE_NONE_TRANSPARENT 1 | |
15052 | ||
15053 | #define XINE_TEXTPALETTE_WHITE_NONE_TRANSLUCID 2 | |
15054 | ||
15055 | #define XINE_TEXTPALETTE_YELLOW_BLACK_TRANSPARENT 3 | |
15056 | ||
15057 | #define XINE_OSD_CAP_FREETYPE2 0x0001 | |
15058 | #define XINE_OSD_CAP_UNSCALED 0x0002 | |
15059 | ||
15060 | typedef struct xine_osd_s xine_osd_t; | |
15061 | ||
15062 | xine_osd_t *xine_osd_new (xine_stream_t *self, int x, int y, | |
15063 | int width, int height) ; | |
15064 | uint32_t xine_osd_get_capabilities (xine_osd_t *self) ; | |
15065 | void xine_osd_draw_point (xine_osd_t *self, int x, int y, int color) ; | |
15066 | ||
15067 | void xine_osd_draw_line (xine_osd_t *self, int x1, int y1, | |
15068 | int x2, int y2, int color) ; | |
15069 | void xine_osd_draw_rect (xine_osd_t *self, int x1, int y1, | |
15070 | int x2, int y2, | |
15071 | int color, int filled ) ; | |
15072 | ||
15073 | void xine_osd_draw_text (xine_osd_t *self, int x1, int y1, | |
15074 | const char *text, int color_base) ; | |
15075 | void xine_osd_draw_bitmap (xine_osd_t *self, uint8_t *bitmap, | |
15076 | int x1, int y1, int width, int height, | |
15077 | uint8_t *palette_map) ; | |
15078 | ||
15079 | ||
15080 | void xine_osd_get_text_size (xine_osd_t *self, const char *text, | |
15081 | int *width, int *height) ; | |
15082 | ||
15083 | ||
15084 | int xine_osd_set_font (xine_osd_t *self, const char *fontname, | |
15085 | int size) ; | |
15086 | ||
15087 | ||
15088 | ||
15089 | ||
15090 | ||
15091 | void xine_osd_set_encoding(xine_osd_t *self, const char *encoding) ; | |
15092 | ||
15093 | void xine_osd_set_position (xine_osd_t *self, int x, int y) ; | |
15094 | void xine_osd_show (xine_osd_t *self, int64_t vpts) ; | |
15095 | void xine_osd_show_unscaled (xine_osd_t *self, int64_t vpts) ; | |
15096 | void xine_osd_hide (xine_osd_t *self, int64_t vpts) ; | |
15097 | ||
15098 | void xine_osd_clear (xine_osd_t *self) ; | |
15099 | # 2065 "/usr/include/xine.h" 3 4 | |
15100 | void xine_osd_set_text_palette (xine_osd_t *self, | |
15101 | int palette_number, | |
15102 | int color_base ) ; | |
15103 | ||
15104 | void xine_osd_get_palette (xine_osd_t *self, uint32_t *color, | |
15105 | uint8_t *trans) ; | |
15106 | void xine_osd_set_palette (xine_osd_t *self, | |
15107 | const uint32_t *const color, | |
15108 | const uint8_t *const trans ) ; | |
15109 | ||
15110 | ||
15111 | ||
15112 | ||
15113 | ||
15114 | void xine_osd_free (xine_osd_t *self) ; | |
15115 | # 2091 "/usr/include/xine.h" 3 4 | |
15116 | typedef enum { | |
15117 | XINE_TVSYSTEM_PAL = 0, | |
15118 | XINE_TVSYSTEM_NTSC | |
15119 | } xine_tvsystem; | |
15120 | ||
15121 | ||
15122 | int xine_tvmode_init (xine_t *self) ; | |
15123 | ||
15124 | ||
15125 | int xine_tvmode_use(xine_t *self, int use_tvmode) ; | |
15126 | ||
15127 | ||
15128 | void xine_tvmode_set_tvsystem(xine_t *self, xine_tvsystem system) ; | |
15129 | # 2112 "/usr/include/xine.h" 3 4 | |
15130 | int xine_tvmode_switch (xine_t *self, int type, int width, int height, double fps) ; | |
15131 | ||
15132 | ||
15133 | ||
15134 | ||
15135 | void xine_tvmode_size (xine_t *self, int *width, int *height, | |
15136 | double *pixelratio, double *fps) ; | |
15137 | ||
15138 | ||
15139 | void xine_tvmode_exit (xine_t *self) ; | |
15140 | # 45 "video_out_dfb.c" 2 | |
15141 | # 1 "/usr/include/xine/xine_internal.h" 1 3 4 | |
15142 | # 25 "/usr/include/xine/xine_internal.h" 3 4 | |
15143 | #define HAVE_XINE_INTERNAL_H | |
15144 | # 56 "/usr/include/xine/xine_internal.h" 3 4 | |
15145 | # 1 "/usr/include/xine/refcounter.h" 1 3 4 | |
15146 | # 24 "/usr/include/xine/refcounter.h" 3 4 | |
15147 | #define HAVE_REFCOUNTER_H | |
15148 | ||
15149 | ||
15150 | # 1 "../../../config.h" 1 3 4 | |
15151 | # 14 "../../../config.h" 3 4 | |
15152 | #define DIRECTFB_VERSION "0.9.25" | |
15153 | ||
15154 | ||
15155 | #define HAVE_DLFCN_H 1 | |
15156 | ||
15157 | ||
15158 | ||
15159 | ||
15160 | ||
15161 | #define HAVE_INTTYPES_H 1 | |
15162 | ||
15163 | ||
15164 | #define HAVE_MEMORY_H 1 | |
15165 | ||
15166 | ||
15167 | #define HAVE_STDINT_H 1 | |
15168 | ||
15169 | ||
15170 | #define HAVE_STDLIB_H 1 | |
15171 | ||
15172 | ||
15173 | #define HAVE_STRINGS_H 1 | |
15174 | ||
15175 | ||
15176 | #define HAVE_STRING_H 1 | |
15177 | ||
15178 | ||
15179 | #define HAVE_SYS_STAT_H 1 | |
15180 | ||
15181 | ||
15182 | #define HAVE_SYS_TYPES_H 1 | |
15183 | ||
15184 | ||
15185 | #define HAVE_UNISTD_H 1 | |
15186 | ||
15187 | ||
15188 | #define PACKAGE_BUGREPORT "" | |
15189 | ||
15190 | ||
15191 | #define PACKAGE_NAME "" | |
15192 | ||
15193 | ||
15194 | #define PACKAGE_STRING "" | |
15195 | ||
15196 | ||
15197 | #define PACKAGE_TARNAME "" | |
15198 | ||
15199 | ||
15200 | #define PACKAGE_VERSION "" | |
15201 | ||
15202 | ||
15203 | #define STDC_HEADERS 1 | |
15204 | ||
15205 | ||
15206 | #define USE_MMX 1 | |
15207 | # 28 "/usr/include/xine/refcounter.h" 2 3 4 | |
15208 | ||
15209 | ||
15210 | # 1 "/usr/include/pthread.h" 1 3 4 | |
15211 | # 31 "/usr/include/xine/refcounter.h" 2 3 4 | |
15212 | ||
15213 | typedef struct { | |
15214 | pthread_mutex_t lock; | |
15215 | int count; | |
15216 | void* object; | |
15217 | void (*destructor)(void *); | |
15218 | } refcounter_t; | |
15219 | ||
15220 | typedef void (*refcounter_destructor)(void*); | |
15221 | ||
15222 | refcounter_t* _x_new_refcounter(void *object, refcounter_destructor destructor) ; | |
15223 | ||
15224 | int _x_refcounter_inc(refcounter_t *refcounter) ; | |
15225 | ||
15226 | int _x_refcounter_dec(refcounter_t *refcounter) ; | |
15227 | ||
15228 | void _x_refcounter_dispose(refcounter_t *refcounter) ; | |
15229 | # 57 "/usr/include/xine/xine_internal.h" 2 3 4 | |
15230 | # 1 "/usr/include/xine/input_plugin.h" 1 3 4 | |
15231 | # 24 "/usr/include/xine/input_plugin.h" 3 4 | |
15232 | #define HAVE_INPUT_PLUGIN_H | |
15233 | ||
15234 | # 1 "/usr/include/sys/types.h" 1 3 4 | |
15235 | # 27 "/usr/include/xine/input_plugin.h" 2 3 4 | |
15236 | # 35 "/usr/include/xine/input_plugin.h" 3 4 | |
15237 | # 1 "/usr/include/xine/xineutils.h" 1 3 4 | |
15238 | # 24 "/usr/include/xine/xineutils.h" 3 4 | |
15239 | #define XINEUTILS_H | |
15240 | ||
15241 | ||
15242 | ||
15243 | ||
15244 | ||
15245 | ||
15246 | # 1 "../../../config.h" 1 3 4 | |
15247 | # 14 "../../../config.h" 3 4 | |
15248 | #define DIRECTFB_VERSION "0.9.25" | |
15249 | ||
15250 | ||
15251 | #define HAVE_DLFCN_H 1 | |
15252 | ||
15253 | ||
15254 | ||
15255 | ||
15256 | ||
15257 | #define HAVE_INTTYPES_H 1 | |
15258 | ||
15259 | ||
15260 | #define HAVE_MEMORY_H 1 | |
15261 | ||
15262 | ||
15263 | #define HAVE_STDINT_H 1 | |
15264 | ||
15265 | ||
15266 | #define HAVE_STDLIB_H 1 | |
15267 | ||
15268 | ||
15269 | #define HAVE_STRINGS_H 1 | |
15270 | ||
15271 | ||
15272 | #define HAVE_STRING_H 1 | |
15273 | ||
15274 | ||
15275 | #define HAVE_SYS_STAT_H 1 | |
15276 | ||
15277 | ||
15278 | #define HAVE_SYS_TYPES_H 1 | |
15279 | ||
15280 | ||
15281 | #define HAVE_UNISTD_H 1 | |
15282 | ||
15283 | ||
15284 | #define PACKAGE_BUGREPORT "" | |
15285 | ||
15286 | ||
15287 | #define PACKAGE_NAME "" | |
15288 | ||
15289 | ||
15290 | #define PACKAGE_STRING "" | |
15291 | ||
15292 | ||
15293 | #define PACKAGE_TARNAME "" | |
15294 | ||
15295 | ||
15296 | #define PACKAGE_VERSION "" | |
15297 | ||
15298 | ||
15299 | #define STDC_HEADERS 1 | |
15300 | ||
15301 | ||
15302 | #define USE_MMX 1 | |
15303 | # 32 "/usr/include/xine/xineutils.h" 2 3 4 | |
15304 | ||
15305 | ||
15306 | # 1 "/usr/include/stdlib.h" 1 3 4 | |
15307 | # 35 "/usr/include/xine/xineutils.h" 2 3 4 | |
15308 | # 1 "/usr/include/string.h" 1 3 4 | |
15309 | # 36 "/usr/include/xine/xineutils.h" 2 3 4 | |
15310 | ||
15311 | # 1 "/usr/include/pthread.h" 1 3 4 | |
15312 | # 38 "/usr/include/xine/xineutils.h" 2 3 4 | |
15313 | # 53 "/usr/include/xine/xineutils.h" 3 4 | |
15314 | # 1 "/usr/include/sys/time.h" 1 3 4 | |
15315 | # 54 "/usr/include/xine/xineutils.h" 2 3 4 | |
15316 | ||
15317 | ||
15318 | ||
15319 | # 1 "/usr/include/xine/compat.h" 1 3 4 | |
15320 | # 25 "/usr/include/xine/compat.h" 3 4 | |
15321 | #define XINE_COMPAT_H | |
15322 | ||
15323 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4 | |
15324 | ||
15325 | ||
15326 | ||
15327 | ||
15328 | ||
15329 | ||
15330 | #define _GCC_LIMITS_H_ | |
15331 | ||
15332 | ||
15333 | ||
15334 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/syslimits.h" 1 3 4 | |
15335 | ||
15336 | ||
15337 | ||
15338 | ||
15339 | ||
15340 | #define _GCC_NEXT_LIMITS_H | |
15341 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4 | |
15342 | # 122 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 3 4 | |
15343 | # 1 "/usr/include/limits.h" 1 3 4 | |
15344 | ||
15345 | ||
15346 | ||
15347 | ||
15348 | ||
15349 | ||
15350 | ||
15351 | # 1 "/usr/include/gentoo-multilib/amd64/limits.h" 1 3 4 | |
15352 | # 25 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4 | |
15353 | #define _LIBC_LIMITS_H_ 1 | |
15354 | ||
15355 | # 1 "/usr/include/features.h" 1 3 4 | |
15356 | # 28 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 | |
15357 | ||
15358 | ||
15359 | ||
15360 | ||
15361 | ||
15362 | #define MB_LEN_MAX 16 | |
15363 | # 133 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4 | |
15364 | #define LLONG_MIN (-LLONG_MAX-1) | |
15365 | ||
15366 | ||
15367 | #define LLONG_MAX __LONG_LONG_MAX__ | |
15368 | ||
15369 | ||
15370 | #define ULLONG_MAX (LLONG_MAX * 2ULL + 1) | |
15371 | ||
15372 | ||
15373 | ||
15374 | ||
15375 | ||
15376 | # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 | |
15377 | ||
15378 | ||
15379 | ||
15380 | ||
15381 | ||
15382 | ||
15383 | ||
15384 | # 1 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 1 3 4 | |
15385 | # 26 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 3 4 | |
15386 | #define _BITS_POSIX1_LIM_H 1 | |
15387 | ||
15388 | ||
15389 | ||
15390 | ||
15391 | ||
15392 | #define _POSIX_AIO_LISTIO_MAX 2 | |
15393 | ||
15394 | ||
15395 | #define _POSIX_AIO_MAX 1 | |
15396 | ||
15397 | ||
15398 | #define _POSIX_ARG_MAX 4096 | |
15399 | ||
15400 | ||
15401 | ||
15402 | #define _POSIX_CHILD_MAX 25 | |
15403 | ||
15404 | ||
15405 | ||
15406 | ||
15407 | ||
15408 | #define _POSIX_DELAYTIMER_MAX 32 | |
15409 | ||
15410 | ||
15411 | ||
15412 | #define _POSIX_HOST_NAME_MAX 255 | |
15413 | ||
15414 | ||
15415 | #define _POSIX_LINK_MAX 8 | |
15416 | ||
15417 | ||
15418 | #define _POSIX_LOGIN_NAME_MAX 9 | |
15419 | ||
15420 | ||
15421 | #define _POSIX_MAX_CANON 255 | |
15422 | ||
15423 | ||
15424 | ||
15425 | #define _POSIX_MAX_INPUT 255 | |
15426 | ||
15427 | ||
15428 | #define _POSIX_MQ_OPEN_MAX 8 | |
15429 | ||
15430 | ||
15431 | #define _POSIX_MQ_PRIO_MAX 32 | |
15432 | ||
15433 | ||
15434 | #define _POSIX_NAME_MAX 14 | |
15435 | ||
15436 | ||
15437 | ||
15438 | #define _POSIX_NGROUPS_MAX 8 | |
15439 | ||
15440 | ||
15441 | ||
15442 | ||
15443 | ||
15444 | ||
15445 | #define _POSIX_OPEN_MAX 20 | |
15446 | ||
15447 | ||
15448 | ||
15449 | ||
15450 | ||
15451 | ||
15452 | #define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX | |
15453 | ||
15454 | ||
15455 | #define _POSIX_PATH_MAX 256 | |
15456 | ||
15457 | ||
15458 | #define _POSIX_PIPE_BUF 512 | |
15459 | ||
15460 | ||
15461 | ||
15462 | #define _POSIX_RE_DUP_MAX 255 | |
15463 | ||
15464 | ||
15465 | #define _POSIX_RTSIG_MAX 8 | |
15466 | ||
15467 | ||
15468 | #define _POSIX_SEM_NSEMS_MAX 256 | |
15469 | ||
15470 | ||
15471 | #define _POSIX_SEM_VALUE_MAX 32767 | |
15472 | ||
15473 | ||
15474 | #define _POSIX_SIGQUEUE_MAX 32 | |
15475 | ||
15476 | ||
15477 | #define _POSIX_SSIZE_MAX 32767 | |
15478 | ||
15479 | ||
15480 | #define _POSIX_STREAM_MAX 8 | |
15481 | ||
15482 | ||
15483 | #define _POSIX_SYMLINK_MAX 255 | |
15484 | ||
15485 | ||
15486 | ||
15487 | #define _POSIX_SYMLOOP_MAX 8 | |
15488 | ||
15489 | ||
15490 | #define _POSIX_TIMER_MAX 32 | |
15491 | ||
15492 | ||
15493 | #define _POSIX_TTY_NAME_MAX 9 | |
15494 | ||
15495 | ||
15496 | #define _POSIX_TZNAME_MAX 6 | |
15497 | ||
15498 | ||
15499 | #define _POSIX_QLIMIT 1 | |
15500 | ||
15501 | ||
15502 | ||
15503 | #define _POSIX_HIWAT _POSIX_PIPE_BUF | |
15504 | ||
15505 | ||
15506 | #define _POSIX_UIO_MAXIOV 16 | |
15507 | ||
15508 | ||
15509 | #define _POSIX_CLOCKRES_MIN 20000000 | |
15510 | ||
15511 | ||
15512 | ||
15513 | # 1 "/usr/include/bits/local_lim.h" 1 3 4 | |
15514 | ||
15515 | ||
15516 | ||
15517 | ||
15518 | ||
15519 | ||
15520 | ||
15521 | # 1 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 1 3 4 | |
15522 | # 26 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 3 4 | |
15523 | #define __undef_NR_OPEN | |
15524 | ||
15525 | ||
15526 | #define __undef_LINK_MAX | |
15527 | ||
15528 | ||
15529 | #define __undef_OPEN_MAX | |
15530 | ||
15531 | ||
15532 | ||
15533 | # 1 "/usr/include/linux/limits.h" 1 3 4 | |
15534 | ||
15535 | #define _LINUX_LIMITS_H | |
15536 | ||
15537 | #define NR_OPEN 1024 | |
15538 | ||
15539 | #define NGROUPS_MAX 65536 | |
15540 | #define ARG_MAX 131072 | |
15541 | #define CHILD_MAX 999 | |
15542 | #define OPEN_MAX 256 | |
15543 | #define LINK_MAX 127 | |
15544 | #define MAX_CANON 255 | |
15545 | #define MAX_INPUT 255 | |
15546 | #define NAME_MAX 255 | |
15547 | #define PATH_MAX 4096 | |
15548 | #define PIPE_BUF 4096 | |
15549 | #define XATTR_NAME_MAX 255 | |
15550 | #define XATTR_SIZE_MAX 65536 | |
15551 | #define XATTR_LIST_MAX 65536 | |
15552 | ||
15553 | #define RTSIG_MAX 32 | |
15554 | # 37 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 2 3 4 | |
15555 | ||
15556 | ||
15557 | ||
15558 | #undef NR_OPEN | |
15559 | #undef __undef_NR_OPEN | |
15560 | ||
15561 | ||
15562 | ||
15563 | #undef LINK_MAX | |
15564 | #undef __undef_LINK_MAX | |
15565 | ||
15566 | ||
15567 | ||
15568 | #undef OPEN_MAX | |
15569 | #undef __undef_OPEN_MAX | |
15570 | ||
15571 | ||
15572 | ||
15573 | #define _POSIX_THREAD_KEYS_MAX 128 | |
15574 | ||
15575 | #define PTHREAD_KEYS_MAX 1024 | |
15576 | ||
15577 | ||
15578 | #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 | |
15579 | ||
15580 | #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS | |
15581 | ||
15582 | ||
15583 | #define _POSIX_THREAD_THREADS_MAX 64 | |
15584 | ||
15585 | #undef PTHREAD_THREADS_MAX | |
15586 | ||
15587 | ||
15588 | ||
15589 | #define AIO_PRIO_DELTA_MAX 20 | |
15590 | ||
15591 | ||
15592 | #define PTHREAD_STACK_MIN 16384 | |
15593 | ||
15594 | ||
15595 | #define DELAYTIMER_MAX 2147483647 | |
15596 | ||
15597 | ||
15598 | #define TTY_NAME_MAX 32 | |
15599 | ||
15600 | ||
15601 | #define LOGIN_NAME_MAX 256 | |
15602 | ||
15603 | ||
15604 | #define HOST_NAME_MAX 64 | |
15605 | ||
15606 | ||
15607 | #define MQ_PRIO_MAX 32768 | |
15608 | # 9 "/usr/include/bits/local_lim.h" 2 3 4 | |
15609 | # 154 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 2 3 4 | |
15610 | ||
15611 | ||
15612 | ||
15613 | #define SSIZE_MAX LONG_MAX | |
15614 | # 9 "/usr/include/bits/posix1_lim.h" 2 3 4 | |
15615 | # 146 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 | |
15616 | ||
15617 | ||
15618 | ||
15619 | # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 | |
15620 | ||
15621 | ||
15622 | ||
15623 | ||
15624 | ||
15625 | ||
15626 | ||
15627 | # 1 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 1 3 4 | |
15628 | # 24 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 3 4 | |
15629 | #define _BITS_POSIX2_LIM_H 1 | |
15630 | ||
15631 | ||
15632 | ||
15633 | #define _POSIX2_BC_BASE_MAX 99 | |
15634 | ||
15635 | ||
15636 | #define _POSIX2_BC_DIM_MAX 2048 | |
15637 | ||
15638 | ||
15639 | #define _POSIX2_BC_SCALE_MAX 99 | |
15640 | ||
15641 | ||
15642 | #define _POSIX2_BC_STRING_MAX 1000 | |
15643 | ||
15644 | ||
15645 | ||
15646 | #define _POSIX2_COLL_WEIGHTS_MAX 2 | |
15647 | ||
15648 | ||
15649 | ||
15650 | #define _POSIX2_EXPR_NEST_MAX 32 | |
15651 | ||
15652 | ||
15653 | #define _POSIX2_LINE_MAX 2048 | |
15654 | ||
15655 | ||
15656 | ||
15657 | #define _POSIX2_RE_DUP_MAX 255 | |
15658 | ||
15659 | ||
15660 | ||
15661 | #define _POSIX2_CHARCLASS_NAME_MAX 14 | |
15662 | ||
15663 | ||
15664 | ||
15665 | ||
15666 | ||
15667 | ||
15668 | ||
15669 | #define BC_BASE_MAX _POSIX2_BC_BASE_MAX | |
15670 | ||
15671 | ||
15672 | #define BC_DIM_MAX _POSIX2_BC_DIM_MAX | |
15673 | ||
15674 | ||
15675 | #define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX | |
15676 | ||
15677 | ||
15678 | #define BC_STRING_MAX _POSIX2_BC_STRING_MAX | |
15679 | ||
15680 | ||
15681 | #define COLL_WEIGHTS_MAX 255 | |
15682 | ||
15683 | ||
15684 | #define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX | |
15685 | ||
15686 | ||
15687 | #define LINE_MAX _POSIX2_LINE_MAX | |
15688 | ||
15689 | ||
15690 | #define CHARCLASS_NAME_MAX 2048 | |
15691 | ||
15692 | ||
15693 | ||
15694 | #define RE_DUP_MAX (0x7fff) | |
15695 | # 9 "/usr/include/bits/posix2_lim.h" 2 3 4 | |
15696 | # 150 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 | |
15697 | ||
15698 | ||
15699 | ||
15700 | # 1 "/usr/include/bits/xopen_lim.h" 1 3 4 | |
15701 | ||
15702 | ||
15703 | ||
15704 | ||
15705 | ||
15706 | ||
15707 | ||
15708 | # 1 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 1 3 4 | |
15709 | # 31 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 | |
15710 | #define _XOPEN_LIM_H 1 | |
15711 | ||
15712 | #define __need_IOV_MAX | |
15713 | # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 | |
15714 | ||
15715 | ||
15716 | ||
15717 | ||
15718 | ||
15719 | ||
15720 | ||
15721 | # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4 | |
15722 | # 24 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4 | |
15723 | #define L_tmpnam 20 | |
15724 | #define TMP_MAX 238328 | |
15725 | #define FILENAME_MAX 4096 | |
15726 | ||
15727 | ||
15728 | #define L_ctermid 9 | |
15729 | #define L_cuserid 9 | |
15730 | ||
15731 | ||
15732 | ||
15733 | ||
15734 | #undef FOPEN_MAX | |
15735 | #define FOPEN_MAX 16 | |
15736 | ||
15737 | ||
15738 | ||
15739 | #define IOV_MAX 1024 | |
15740 | # 9 "/usr/include/bits/stdio_lim.h" 2 3 4 | |
15741 | # 35 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 2 3 4 | |
15742 | # 66 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 | |
15743 | #define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV | |
15744 | ||
15745 | ||
15746 | ||
15747 | ||
15748 | #define NL_ARGMAX _POSIX_ARG_MAX | |
15749 | ||
15750 | ||
15751 | #define NL_LANGMAX _POSIX2_LINE_MAX | |
15752 | ||
15753 | ||
15754 | #define NL_MSGMAX INT_MAX | |
15755 | ||
15756 | ||
15757 | ||
15758 | #define NL_NMAX INT_MAX | |
15759 | ||
15760 | ||
15761 | #define NL_SETMAX INT_MAX | |
15762 | ||
15763 | ||
15764 | #define NL_TEXTMAX INT_MAX | |
15765 | ||
15766 | ||
15767 | #define NZERO 20 | |
15768 | # 110 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 | |
15769 | #define WORD_BIT 32 | |
15770 | # 133 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4 | |
15771 | #define LONG_BIT 64 | |
15772 | # 9 "/usr/include/bits/xopen_lim.h" 2 3 4 | |
15773 | # 154 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4 | |
15774 | # 9 "/usr/include/limits.h" 2 3 4 | |
15775 | # 123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4 | |
15776 | # 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/syslimits.h" 2 3 4 | |
15777 | #undef _GCC_NEXT_LIMITS_H | |
15778 | # 12 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4 | |
15779 | ||
15780 | ||
15781 | #define _LIMITS_H___ | |
15782 | ||
15783 | ||
15784 | #undef CHAR_BIT | |
15785 | #define CHAR_BIT __CHAR_BIT__ | |
15786 | ||
15787 | ||
15788 | ||
15789 | ||
15790 | ||
15791 | ||
15792 | ||
15793 | #undef SCHAR_MIN | |
15794 | #define SCHAR_MIN (-SCHAR_MAX - 1) | |
15795 | #undef SCHAR_MAX | |
15796 | #define SCHAR_MAX __SCHAR_MAX__ | |
15797 | ||
15798 | ||
15799 | #undef UCHAR_MAX | |
15800 | ||
15801 | ||
15802 | ||
15803 | #define UCHAR_MAX (SCHAR_MAX * 2 + 1) | |
15804 | # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 3 4 | |
15805 | #undef CHAR_MIN | |
15806 | #define CHAR_MIN SCHAR_MIN | |
15807 | #undef CHAR_MAX | |
15808 | #define CHAR_MAX SCHAR_MAX | |
15809 | ||
15810 | ||
15811 | ||
15812 | #undef SHRT_MIN | |
15813 | #define SHRT_MIN (-SHRT_MAX - 1) | |
15814 | #undef SHRT_MAX | |
15815 | #define SHRT_MAX __SHRT_MAX__ | |
15816 | ||
15817 | ||
15818 | #undef USHRT_MAX | |
15819 | ||
15820 | ||
15821 | ||
15822 | #define USHRT_MAX (SHRT_MAX * 2 + 1) | |
15823 | ||
15824 | ||
15825 | ||
15826 | #undef INT_MIN | |
15827 | #define INT_MIN (-INT_MAX - 1) | |
15828 | #undef INT_MAX | |
15829 | #define INT_MAX __INT_MAX__ | |
15830 | ||
15831 | ||
15832 | #undef UINT_MAX | |
15833 | #define UINT_MAX (INT_MAX * 2U + 1U) | |
15834 | ||
15835 | ||
15836 | ||
15837 | #undef LONG_MIN | |
15838 | #define LONG_MIN (-LONG_MAX - 1L) | |
15839 | #undef LONG_MAX | |
15840 | #define LONG_MAX __LONG_MAX__ | |
15841 | ||
15842 | ||
15843 | #undef ULONG_MAX | |
15844 | #define ULONG_MAX (LONG_MAX * 2UL + 1UL) | |
15845 | # 105 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/limits.h" 3 4 | |
15846 | #undef LONG_LONG_MIN | |
15847 | #define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL) | |
15848 | #undef LONG_LONG_MAX | |
15849 | #define LONG_LONG_MAX __LONG_LONG_MAX__ | |
15850 | ||
15851 | ||
15852 | #undef ULONG_LONG_MAX | |
15853 | #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL) | |
15854 | # 28 "/usr/include/xine/compat.h" 2 3 4 | |
15855 | # 36 "/usr/include/xine/compat.h" 3 4 | |
15856 | #define __XINE_FUNCTION__ __FUNCTION__ | |
15857 | ||
15858 | ||
15859 | ||
15860 | ||
15861 | ||
15862 | ||
15863 | ||
15864 | #define XINE_NAME_MAX NAME_MAX | |
15865 | ||
15866 | ||
15867 | ||
15868 | ||
15869 | ||
15870 | #define XINE_PATH_MAX PATH_MAX | |
15871 | # 58 "/usr/include/xine/xineutils.h" 2 3 4 | |
15872 | # 1 "/usr/include/xine/xmlparser.h" 1 3 4 | |
15873 | # 24 "/usr/include/xine/xmlparser.h" 3 4 | |
15874 | #define XML_PARSER_H | |
15875 | ||
15876 | ||
15877 | #define XML_PARSER_CASE_INSENSITIVE 0 | |
15878 | #define XML_PARSER_CASE_SENSITIVE 1 | |
15879 | ||
15880 | ||
15881 | #define XML_PARSER_OK 0 | |
15882 | #define XML_PARSER_ERROR 1 | |
15883 | ||
15884 | ||
15885 | ||
15886 | typedef struct xml_property_s { | |
15887 | char *name; | |
15888 | char *value; | |
15889 | struct xml_property_s *next; | |
15890 | } xml_property_t; | |
15891 | ||
15892 | ||
15893 | typedef struct xml_node_s { | |
15894 | char *name; | |
15895 | char *data; | |
15896 | struct xml_property_s *props; | |
15897 | struct xml_node_s *child; | |
15898 | struct xml_node_s *next; | |
15899 | } xml_node_t; | |
15900 | ||
15901 | void xml_parser_init(const char * buf, int size, int mode) ; | |
15902 | ||
15903 | int xml_parser_build_tree(xml_node_t **root_node) ; | |
15904 | ||
15905 | void xml_parser_free_tree(xml_node_t *root_node) ; | |
15906 | ||
15907 | char *xml_parser_get_property (const xml_node_t *node, const char *name) ; | |
15908 | int xml_parser_get_property_int (const xml_node_t *node, const char *name, | |
15909 | int def_value) ; | |
15910 | int xml_parser_get_property_bool (const xml_node_t *node, const char *name, | |
15911 | int def_value) ; | |
15912 | ||
15913 | ||
15914 | ||
15915 | ||
15916 | ||
15917 | ||
15918 | typedef enum { | |
15919 | XML_ESCAPE_NO_QUOTE, | |
15920 | XML_ESCAPE_SINGLE_QUOTE, | |
15921 | XML_ESCAPE_DOUBLE_QUOTE | |
15922 | } xml_escape_quote_t; | |
15923 | char *xml_escape_string (const char *s, xml_escape_quote_t quote_type) ; | |
15924 | ||
15925 | ||
15926 | ||
15927 | ||
15928 | ||
15929 | void xml_parser_dump_tree (const xml_node_t *node) ; | |
15930 | # 59 "/usr/include/xine/xineutils.h" 2 3 4 | |
15931 | # 1 "/usr/include/xine/xine_buffer.h" 1 3 4 | |
15932 | # 53 "/usr/include/xine/xine_buffer.h" 3 4 | |
15933 | #define HAVE_XINE_BUFFER_H | |
15934 | # 67 "/usr/include/xine/xine_buffer.h" 3 4 | |
15935 | void *xine_buffer_init(int chunk_size) ; | |
15936 | ||
15937 | ||
15938 | ||
15939 | ||
15940 | ||
15941 | #define xine_buffer_free(buf) buf=_xine_buffer_free(buf) | |
15942 | void *_xine_buffer_free(void *buf) ; | |
15943 | ||
15944 | ||
15945 | ||
15946 | ||
15947 | void *xine_buffer_dup(const void *buf) ; | |
15948 | ||
15949 | ||
15950 | ||
15951 | ||
15952 | #define xine_buffer_copyin(buf,i,data,len) buf=_xine_buffer_copyin(buf,i,data,len) | |
15953 | ||
15954 | void *_xine_buffer_copyin(void *buf, int index, const void *data, int len) ; | |
15955 | ||
15956 | ||
15957 | ||
15958 | ||
15959 | ||
15960 | ||
15961 | void xine_buffer_copyout(const void *buf, int index, void *data, int len) ; | |
15962 | ||
15963 | ||
15964 | ||
15965 | ||
15966 | #define xine_buffer_set(buf,i,b,len) buf=_xine_buffer_set(buf,i,b,len) | |
15967 | ||
15968 | void *_xine_buffer_set(void *buf, int index, uint8_t b, int len) ; | |
15969 | ||
15970 | ||
15971 | ||
15972 | ||
15973 | ||
15974 | #define xine_buffer_strcat(buf,data) buf=_xine_buffer_strcat(buf,data) | |
15975 | ||
15976 | void *_xine_buffer_strcat(void *buf, const char *data) ; | |
15977 | ||
15978 | ||
15979 | ||
15980 | ||
15981 | #define xine_buffer_strcpy(buf,index,data) buf=_xine_buffer_strcpy(buf,index,data) | |
15982 | ||
15983 | void *_xine_buffer_strcpy(void *buf, int index, const char *data) ; | |
15984 | ||
15985 | ||
15986 | ||
15987 | ||
15988 | ||
15989 | ||
15990 | char *xine_buffer_strchr(const void *buf, int ch) ; | |
15991 | ||
15992 | ||
15993 | ||
15994 | ||
15995 | int xine_buffer_get_size(const void *buf) ; | |
15996 | ||
15997 | ||
15998 | ||
15999 | ||
16000 | ||
16001 | ||
16002 | #define xine_buffer_ensure_size(buf,data) buf=_xine_buffer_ensure_size(buf,data) | |
16003 | ||
16004 | void *_xine_buffer_ensure_size(void *buf, int size) ; | |
16005 | # 60 "/usr/include/xine/xineutils.h" 2 3 4 | |
16006 | # 1 "/usr/include/xine/configfile.h" 1 3 4 | |
16007 | # 27 "/usr/include/xine/configfile.h" 3 4 | |
16008 | #define HAVE_CONFIGFILE_H | |
16009 | ||
16010 | ||
16011 | ||
16012 | ||
16013 | ||
16014 | # 1 "/usr/include/pthread.h" 1 3 4 | |
16015 | # 34 "/usr/include/xine/configfile.h" 2 3 4 | |
16016 | ||
16017 | ||
16018 | ||
16019 | ||
16020 | ||
16021 | ||
16022 | ||
16023 | #define CONFIG_FILE_VERSION 2 | |
16024 | ||
16025 | ||
16026 | ||
16027 | ||
16028 | ||
16029 | #define XINE_CONFIG_SECURITY 30 | |
16030 | ||
16031 | ||
16032 | typedef struct cfg_entry_s cfg_entry_t; | |
16033 | typedef struct config_values_s config_values_t; | |
16034 | ||
16035 | struct cfg_entry_s { | |
16036 | cfg_entry_t *next; | |
16037 | config_values_t *config; | |
16038 | ||
16039 | char *key; | |
16040 | int type; | |
16041 | ||
16042 | ||
16043 | char *unknown_value; | |
16044 | ||
16045 | ||
16046 | char *str_value; | |
16047 | char *str_default; | |
16048 | ||
16049 | ||
16050 | ||
16051 | int num_value; | |
16052 | int num_default; | |
16053 | ||
16054 | ||
16055 | int range_min; | |
16056 | int range_max; | |
16057 | ||
16058 | ||
16059 | char **enum_values; | |
16060 | ||
16061 | ||
16062 | char *description; | |
16063 | char *help; | |
16064 | ||
16065 | ||
16066 | int exp_level; | |
16067 | ||
16068 | ||
16069 | xine_config_cb_t callback; | |
16070 | void *callback_data; | |
16071 | }; | |
16072 | ||
16073 | struct config_values_s { | |
16074 | # 102 "/usr/include/xine/configfile.h" 3 4 | |
16075 | char* (*register_string) (config_values_t *self, | |
16076 | const char *key, | |
16077 | const char *def_value, | |
16078 | const char *description, | |
16079 | const char *help, | |
16080 | int exp_level, | |
16081 | xine_config_cb_t changed_cb, | |
16082 | void *cb_data); | |
16083 | ||
16084 | char* (*register_filename) (config_values_t *self, | |
16085 | const char *key, | |
16086 | const char *def_value, | |
16087 | int req_type, | |
16088 | const char *description, | |
16089 | const char *help, | |
16090 | int exp_level, | |
16091 | xine_config_cb_t changed_cb, | |
16092 | void *cb_data); | |
16093 | ||
16094 | int (*register_range) (config_values_t *self, | |
16095 | const char *key, | |
16096 | int def_value, | |
16097 | int min, int max, | |
16098 | const char *description, | |
16099 | const char *help, | |
16100 | int exp_level, | |
16101 | xine_config_cb_t changed_cb, | |
16102 | void *cb_data); | |
16103 | ||
16104 | int (*register_enum) (config_values_t *self, | |
16105 | const char *key, | |
16106 | int def_value, | |
16107 | char **values, | |
16108 | const char *description, | |
16109 | const char *help, | |
16110 | int exp_level, | |
16111 | xine_config_cb_t changed_cb, | |
16112 | void *cb_data); | |
16113 | ||
16114 | int (*register_num) (config_values_t *self, | |
16115 | const char *key, | |
16116 | int def_value, | |
16117 | const char *description, | |
16118 | const char *help, | |
16119 | int exp_level, | |
16120 | xine_config_cb_t changed_cb, | |
16121 | void *cb_data); | |
16122 | ||
16123 | int (*register_bool) (config_values_t *self, | |
16124 | const char *key, | |
16125 | int def_value, | |
16126 | const char *description, | |
16127 | const char *help, | |
16128 | int exp_level, | |
16129 | xine_config_cb_t changed_cb, | |
16130 | void *cb_data); | |
16131 | ||
16132 | ||
16133 | void (*update_num) (config_values_t *self, const char *key, int value); | |
16134 | ||
16135 | ||
16136 | void (*update_string) (config_values_t *self, const char *key, const char *value); | |
16137 | ||
16138 | ||
16139 | int (*parse_enum) (const char *str, char **values); | |
16140 | # 175 "/usr/include/xine/configfile.h" 3 4 | |
16141 | cfg_entry_t* (*lookup_entry) (config_values_t *self, const char *key); | |
16142 | ||
16143 | ||
16144 | ||
16145 | ||
16146 | void (*unregister_callback) (config_values_t *self, const char *key); | |
16147 | ||
16148 | ||
16149 | ||
16150 | ||
16151 | void (*dispose) (config_values_t *self); | |
16152 | ||
16153 | ||
16154 | ||
16155 | ||
16156 | cfg_entry_t *first, *last, *cur; | |
16157 | ||
16158 | ||
16159 | ||
16160 | ||
16161 | pthread_mutex_t config_lock; | |
16162 | ||
16163 | ||
16164 | ||
16165 | ||
16166 | int current_version; | |
16167 | }; | |
16168 | ||
16169 | ||
16170 | ||
16171 | ||
16172 | config_values_t *_x_config_init (void) ; | |
16173 | ||
16174 | ||
16175 | ||
16176 | ||
16177 | ||
16178 | int _x_config_change_opt(config_values_t *config, const char *opt) ; | |
16179 | # 61 "/usr/include/xine/xineutils.h" 2 3 4 | |
16180 | # 1 "/usr/include/xine/list.h" 1 3 4 | |
16181 | # 44 "/usr/include/xine/list.h" 3 4 | |
16182 | #define XINE_LIST_H | |
16183 | ||
16184 | ||
16185 | typedef struct xine_list_s xine_list_t; | |
16186 | ||
16187 | ||
16188 | typedef void* xine_list_iterator_t; | |
16189 | ||
16190 | ||
16191 | xine_list_t *xine_list_new(void) ; | |
16192 | ||
16193 | ||
16194 | void xine_list_delete(xine_list_t *list) ; | |
16195 | ||
16196 | ||
16197 | unsigned int xine_list_size(xine_list_t *list) ; | |
16198 | ||
16199 | ||
16200 | unsigned int xine_list_empty(xine_list_t *list) ; | |
16201 | ||
16202 | ||
16203 | void xine_list_push_front(xine_list_t *list, void *value) ; | |
16204 | ||
16205 | ||
16206 | void xine_list_push_back(xine_list_t *list, void *value) ; | |
16207 | ||
16208 | ||
16209 | void xine_list_clear(xine_list_t *list) ; | |
16210 | ||
16211 | ||
16212 | ||
16213 | ||
16214 | ||
16215 | xine_list_iterator_t xine_list_insert(xine_list_t *list, | |
16216 | xine_list_iterator_t position, | |
16217 | void *value) ; | |
16218 | ||
16219 | ||
16220 | void xine_list_remove(xine_list_t *list, xine_list_iterator_t position) ; | |
16221 | ||
16222 | ||
16223 | xine_list_iterator_t xine_list_front(xine_list_t *list) ; | |
16224 | ||
16225 | ||
16226 | xine_list_iterator_t xine_list_back(xine_list_t *list) ; | |
16227 | ||
16228 | ||
16229 | ||
16230 | xine_list_iterator_t xine_list_find(xine_list_t *list, void *value) ; | |
16231 | ||
16232 | ||
16233 | ||
16234 | xine_list_iterator_t xine_list_next(xine_list_t *list, xine_list_iterator_t ite) ; | |
16235 | ||
16236 | ||
16237 | ||
16238 | xine_list_iterator_t xine_list_prev(xine_list_t *list, xine_list_iterator_t ite) ; | |
16239 | ||
16240 | ||
16241 | void *xine_list_get_value(xine_list_t *list, xine_list_iterator_t ite) ; | |
16242 | # 62 "/usr/include/xine/xineutils.h" 2 3 4 | |
16243 | # 1 "/usr/include/xine/array.h" 1 3 4 | |
16244 | # 26 "/usr/include/xine/array.h" 3 4 | |
16245 | #define XINE_ARRAY_H | |
16246 | ||
16247 | ||
16248 | typedef struct xine_array_s xine_array_t; | |
16249 | ||
16250 | ||
16251 | xine_array_t *xine_array_new(size_t initial_size) ; | |
16252 | ||
16253 | ||
16254 | void xine_array_delete(xine_array_t *array) ; | |
16255 | ||
16256 | ||
16257 | size_t xine_array_size(xine_array_t *array) ; | |
16258 | ||
16259 | ||
16260 | void xine_array_clear(xine_array_t *array) ; | |
16261 | ||
16262 | ||
16263 | void xine_array_add(xine_array_t *array, void *value) ; | |
16264 | ||
16265 | ||
16266 | void xine_array_insert(xine_array_t *array, unsigned int position, void *value) ; | |
16267 | ||
16268 | ||
16269 | void xine_array_remove(xine_array_t *array, unsigned int position) ; | |
16270 | ||
16271 | ||
16272 | void *xine_array_get(xine_array_t *array, unsigned int position) ; | |
16273 | ||
16274 | ||
16275 | void xine_array_set(xine_array_t *array, unsigned int position, void *value) ; | |
16276 | # 63 "/usr/include/xine/xineutils.h" 2 3 4 | |
16277 | # 1 "/usr/include/xine/sorted_array.h" 1 3 4 | |
16278 | # 58 "/usr/include/xine/sorted_array.h" 3 4 | |
16279 | #define XINE_SORTED_ARRAY_H | |
16280 | ||
16281 | # 1 "/usr/include/xine/array.h" 1 3 4 | |
16282 | # 61 "/usr/include/xine/sorted_array.h" 2 3 4 | |
16283 | ||
16284 | ||
16285 | typedef struct xine_sarray_s xine_sarray_t; | |
16286 | ||
16287 | ||
16288 | typedef int (*xine_sarray_comparator_t)(void*, void*); | |
16289 | ||
16290 | ||
16291 | xine_sarray_t *xine_sarray_new(size_t initial_size, xine_sarray_comparator_t comparator) ; | |
16292 | ||
16293 | ||
16294 | void xine_sarray_delete(xine_sarray_t *sarray) ; | |
16295 | ||
16296 | ||
16297 | size_t xine_sarray_size(const xine_sarray_t *sarray) ; | |
16298 | ||
16299 | ||
16300 | void xine_sarray_clear(xine_sarray_t *sarray) ; | |
16301 | ||
16302 | ||
16303 | ||
16304 | int xine_sarray_add(xine_sarray_t *sarray, void *value) ; | |
16305 | ||
16306 | ||
16307 | void xine_sarray_remove(xine_sarray_t *sarray, unsigned int position) ; | |
16308 | ||
16309 | ||
16310 | void *xine_sarray_get(xine_sarray_t *sarray, unsigned int position) ; | |
16311 | ||
16312 | ||
16313 | ||
16314 | ||
16315 | ||
16316 | int xine_sarray_binary_search(xine_sarray_t *sarray, void *key) ; | |
16317 | # 64 "/usr/include/xine/xineutils.h" 2 3 4 | |
16318 | ||
16319 | ||
16320 | # 1 "/usr/include/stdio.h" 1 3 4 | |
16321 | # 67 "/usr/include/xine/xineutils.h" 2 3 4 | |
16322 | # 1 "/usr/include/string.h" 1 3 4 | |
16323 | # 68 "/usr/include/xine/xineutils.h" 2 3 4 | |
16324 | # 82 "/usr/include/xine/xineutils.h" 3 4 | |
16325 | typedef struct { | |
16326 | pthread_mutex_t mutex; | |
16327 | char id[80]; | |
16328 | char *locked_by; | |
16329 | } xine_mutex_t; | |
16330 | ||
16331 | int xine_mutex_init (xine_mutex_t *mutex, const pthread_mutexattr_t *mutexattr, | |
16332 | const char *id) ; | |
16333 | ||
16334 | int xine_mutex_lock (xine_mutex_t *mutex, const char *who) ; | |
16335 | int xine_mutex_unlock (xine_mutex_t *mutex, const char *who) ; | |
16336 | int xine_mutex_destroy (xine_mutex_t *mutex) ; | |
16337 | # 106 "/usr/include/xine/xineutils.h" 3 4 | |
16338 | #define MM_ACCEL_MLIB 0x00000001 | |
16339 | ||
16340 | ||
16341 | #define MM_ACCEL_X86_MMX 0x80000000 | |
16342 | #define MM_ACCEL_X86_3DNOW 0x40000000 | |
16343 | #define MM_ACCEL_X86_MMXEXT 0x20000000 | |
16344 | #define MM_ACCEL_X86_SSE 0x10000000 | |
16345 | #define MM_ACCEL_X86_SSE2 0x08000000 | |
16346 | ||
16347 | ||
16348 | #define MM_ACCEL_PPC_ALTIVEC 0x04000000 | |
16349 | #define MM_ACCEL_PPC_CACHE32 0x02000000 | |
16350 | ||
16351 | ||
16352 | ||
16353 | #define MM_ACCEL_SPARC_VIS 0x01000000 | |
16354 | #define MM_ACCEL_SPARC_VIS2 0x00800000 | |
16355 | ||
16356 | ||
16357 | #define MM_MMX MM_ACCEL_X86_MMX | |
16358 | #define MM_3DNOW MM_ACCEL_X86_3DNOW | |
16359 | #define MM_MMXEXT MM_ACCEL_X86_MMXEXT | |
16360 | #define MM_SSE MM_ACCEL_X86_SSE | |
16361 | #define MM_SSE2 MM_ACCEL_X86_SSE2 | |
16362 | ||
16363 | uint32_t xine_mm_accel (void) ; | |
16364 | # 603 "/usr/include/xine/xineutils.h" 3 4 | |
16365 | extern void *(* xine_fast_memcpy)(void *to, const void *from, size_t len) ; | |
16366 | ||
16367 | ||
16368 | ||
16369 | void xine_probe_fast_memcpy(xine_t *xine) ; | |
16370 | # 617 "/usr/include/xine/xineutils.h" 3 4 | |
16371 | void xine_profiler_init (void) ; | |
16372 | int xine_profiler_allocate_slot (const char *label) ; | |
16373 | void xine_profiler_start_count (int id) ; | |
16374 | void xine_profiler_stop_count (int id) ; | |
16375 | void xine_profiler_print_results (void) ; | |
16376 | # 630 "/usr/include/xine/xineutils.h" 3 4 | |
16377 | void *xine_xmalloc(size_t size) __attribute__ ((__malloc__)) ; | |
16378 | ||
16379 | ||
16380 | ||
16381 | ||
16382 | ||
16383 | ||
16384 | ||
16385 | void *xine_xmalloc_aligned(size_t alignment, size_t size, void **base) ; | |
16386 | ||
16387 | ||
16388 | ||
16389 | ||
16390 | const char *xine_get_homedir(void) ; | |
16391 | # 658 "/usr/include/xine/xineutils.h" 3 4 | |
16392 | char *xine_chomp (char *str) ; | |
16393 | ||
16394 | ||
16395 | ||
16396 | ||
16397 | void xine_usec_sleep(unsigned usec) ; | |
16398 | ||
16399 | ||
16400 | ||
16401 | ||
16402 | ||
16403 | ||
16404 | ||
16405 | void xine_strdupa(char *dest, char *src) ; | |
16406 | #define xine_strdupa(d,s) do { (d) = NULL; if((s) != NULL) { (d) = (char *) alloca(strlen((s)) + 1); strcpy((d), (s)); } } while(0) | |
16407 | # 681 "/usr/include/xine/xineutils.h" 3 4 | |
16408 | #define xine_strpbrk(S,ACCEPT) strpbrk((S), (ACCEPT)) | |
16409 | #define xine_strsep(STRINGP,DELIM) strsep((STRINGP), (DELIM)) | |
16410 | #define xine_setenv(NAME,VAL,XX) setenv((NAME), (VAL), (XX)) | |
16411 | # 693 "/usr/include/xine/xineutils.h" 3 4 | |
16412 | typedef struct yuv_planes_s { | |
16413 | ||
16414 | unsigned char *y; | |
16415 | unsigned char *u; | |
16416 | unsigned char *v; | |
16417 | unsigned int row_width; | |
16418 | unsigned int row_count; | |
16419 | ||
16420 | } yuv_planes_t; | |
16421 | ||
16422 | void init_yuv_conversion(void) ; | |
16423 | void init_yuv_planes(yuv_planes_t *yuv_planes, int width, int height) ; | |
16424 | void free_yuv_planes(yuv_planes_t *yuv_planes) ; | |
16425 | ||
16426 | extern void (*yuv444_to_yuy2) | |
16427 | (const yuv_planes_t *yuv_planes, unsigned char *yuy2_map, int pitch) ; | |
16428 | extern void (*yuv9_to_yv12) | |
16429 | (const unsigned char *y_src, int y_src_pitch, unsigned char *y_dest, int y_dest_pitch, | |
16430 | const unsigned char *u_src, int u_src_pitch, unsigned char *u_dest, int u_dest_pitch, | |
16431 | const unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch, | |
16432 | int width, int height) ; | |
16433 | extern void (*yuv411_to_yv12) | |
16434 | (const unsigned char *y_src, int y_src_pitch, unsigned char *y_dest, int y_dest_pitch, | |
16435 | const unsigned char *u_src, int u_src_pitch, unsigned char *u_dest, int u_dest_pitch, | |
16436 | const unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch, | |
16437 | int width, int height) ; | |
16438 | extern void (*yv12_to_yuy2) | |
16439 | (const unsigned char *y_src, int y_src_pitch, | |
16440 | const unsigned char *u_src, int u_src_pitch, | |
16441 | const unsigned char *v_src, int v_src_pitch, | |
16442 | unsigned char *yuy2_map, int yuy2_pitch, | |
16443 | int width, int height, int progressive) ; | |
16444 | extern void (*yuy2_to_yv12) | |
16445 | (const unsigned char *yuy2_map, int yuy2_pitch, | |
16446 | unsigned char *y_dst, int y_dst_pitch, | |
16447 | unsigned char *u_dst, int u_dst_pitch, | |
16448 | unsigned char *v_dst, int v_dst_pitch, | |
16449 | int width, int height) ; | |
16450 | ||
16451 | #define SCALEFACTOR 65536 | |
16452 | #define CENTERSAMPLE 128 | |
16453 | ||
16454 | #define COMPUTE_Y(r,g,b) (unsigned char) ((y_r_table[r] + y_g_table[g] + y_b_table[b]) / SCALEFACTOR) | |
16455 | ||
16456 | ||
16457 | #define COMPUTE_U(r,g,b) (unsigned char) ((u_r_table[r] + u_g_table[g] + u_b_table[b]) / SCALEFACTOR + CENTERSAMPLE) | |
16458 | ||
16459 | ||
16460 | #define COMPUTE_V(r,g,b) (unsigned char) ((v_r_table[r] + v_g_table[g] + v_b_table[b]) / SCALEFACTOR + CENTERSAMPLE) | |
16461 | ||
16462 | ||
16463 | ||
16464 | #define UNPACK_BGR15(packed_pixel,r,g,b) b = (packed_pixel & 0x7C00) >> 7; g = (packed_pixel & 0x03E0) >> 2; r = (packed_pixel & 0x001F) << 3; | |
16465 | ||
16466 | ||
16467 | ||
16468 | ||
16469 | #define UNPACK_BGR16(packed_pixel,r,g,b) b = (packed_pixel & 0xF800) >> 8; g = (packed_pixel & 0x07E0) >> 3; r = (packed_pixel & 0x001F) << 3; | |
16470 | ||
16471 | ||
16472 | ||
16473 | ||
16474 | #define UNPACK_RGB15(packed_pixel,r,g,b) r = (packed_pixel & 0x7C00) >> 7; g = (packed_pixel & 0x03E0) >> 2; b = (packed_pixel & 0x001F) << 3; | |
16475 | ||
16476 | ||
16477 | ||
16478 | ||
16479 | #define UNPACK_RGB16(packed_pixel,r,g,b) r = (packed_pixel & 0xF800) >> 8; g = (packed_pixel & 0x07E0) >> 3; b = (packed_pixel & 0x001F) << 3; | |
16480 | ||
16481 | ||
16482 | ||
16483 | ||
16484 | extern int y_r_table[256] ; | |
16485 | extern int y_g_table[256] ; | |
16486 | extern int y_b_table[256] ; | |
16487 | ||
16488 | extern int u_r_table[256] ; | |
16489 | extern int u_g_table[256] ; | |
16490 | extern int u_b_table[256] ; | |
16491 | ||
16492 | extern int v_r_table[256] ; | |
16493 | extern int v_g_table[256] ; | |
16494 | extern int v_b_table[256] ; | |
16495 | ||
16496 | ||
16497 | extern void yv12_to_yv12 | |
16498 | (const unsigned char *y_src, int y_src_pitch, unsigned char *y_dst, int y_dst_pitch, | |
16499 | const unsigned char *u_src, int u_src_pitch, unsigned char *u_dst, int u_dst_pitch, | |
16500 | const unsigned char *v_src, int v_src_pitch, unsigned char *v_dst, int v_dst_pitch, | |
16501 | int width, int height) ; | |
16502 | extern void yuy2_to_yuy2 | |
16503 | (const unsigned char *src, int src_pitch, | |
16504 | unsigned char *dst, int dst_pitch, | |
16505 | int width, int height) ; | |
16506 | ||
16507 | ||
16508 | void xine_hexdump (const char *buf, int length) ; | |
16509 | # 799 "/usr/include/xine/xineutils.h" 3 4 | |
16510 | #define EXPECT_TRUE(x) __builtin_expect((x),1) | |
16511 | #define EXPECT_FALSE(x) __builtin_expect((x),0) | |
16512 | # 811 "/usr/include/xine/xineutils.h" 3 4 | |
16513 | #define _x_assert(exp) do { if (!(exp)) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", __FILE__, __LINE__, __XINE_FUNCTION__, #exp); abort(); } } while(0) | |
16514 | # 821 "/usr/include/xine/xineutils.h" 3 4 | |
16515 | #define _x_abort() do { fprintf(stderr, "abort: %s:%d: %s: Aborting.\n", __FILE__, __LINE__, __XINE_FUNCTION__); abort(); } while(0) | |
16516 | # 835 "/usr/include/xine/xineutils.h" 3 4 | |
16517 | #define LOG_MODULE_STRING printf("%s: ", LOG_MODULE ); | |
16518 | ||
16519 | ||
16520 | ||
16521 | ||
16522 | ||
16523 | #define LONG_LOG_MODULE_STRING LOG_MODULE_STRING | |
16524 | # 871 "/usr/include/xine/xineutils.h" 3 4 | |
16525 | #define lprintf(fmt,args...) do {} while(0) | |
16526 | # 882 "/usr/include/xine/xineutils.h" 3 4 | |
16527 | #define llprintf(cat,fmt,args...) do{ if(cat){ LONG_LOG_MODULE_STRING printf( fmt, ##args ); } }while(0) | |
16528 | # 910 "/usr/include/xine/xineutils.h" 3 4 | |
16529 | #define xprintf(xine,verbose,fmt,args...) do { if((xine) && (xine)->verbosity >= verbose){ xine_log(xine, XINE_LOG_TRACE, fmt, ##args); } } while(0) | |
16530 | # 958 "/usr/include/xine/xineutils.h" 3 4 | |
16531 | #define XINE_PROFILE(function) function | |
16532 | #define XINE_PROFILE_ACCUMULATE(function) function | |
16533 | ||
16534 | ||
16535 | ||
16536 | ||
16537 | ||
16538 | char *xine_get_system_encoding(void) ; | |
16539 | ||
16540 | ||
16541 | ||
16542 | ||
16543 | const char *xine_guess_spu_encoding(void) ; | |
16544 | ||
16545 | ||
16546 | ||
16547 | ||
16548 | ||
16549 | int xine_monotonic_clock(struct timeval *tv, struct timezone *tz) ; | |
16550 | # 36 "/usr/include/xine/input_plugin.h" 2 3 4 | |
16551 | # 1 "/usr/include/xine/buffer.h" 1 3 4 | |
16552 | # 35 "/usr/include/xine/buffer.h" 3 4 | |
16553 | #define HAVE_BUFFER_H | |
16554 | ||
16555 | ||
16556 | ||
16557 | ||
16558 | ||
16559 | ||
16560 | # 1 "../../../config.h" 1 3 4 | |
16561 | # 14 "../../../config.h" 3 4 | |
16562 | #define DIRECTFB_VERSION "0.9.25" | |
16563 | ||
16564 | ||
16565 | #define HAVE_DLFCN_H 1 | |
16566 | ||
16567 | ||
16568 | ||
16569 | ||
16570 | ||
16571 | #define HAVE_INTTYPES_H 1 | |
16572 | ||
16573 | ||
16574 | #define HAVE_MEMORY_H 1 | |
16575 | ||
16576 | ||
16577 | #define HAVE_STDINT_H 1 | |
16578 | ||
16579 | ||
16580 | #define HAVE_STDLIB_H 1 | |
16581 | ||
16582 | ||
16583 | #define HAVE_STRINGS_H 1 | |
16584 | ||
16585 | ||
16586 | #define HAVE_STRING_H 1 | |
16587 | ||
16588 | ||
16589 | #define HAVE_SYS_STAT_H 1 | |
16590 | ||
16591 | ||
16592 | #define HAVE_SYS_TYPES_H 1 | |
16593 | ||
16594 | ||
16595 | #define HAVE_UNISTD_H 1 | |
16596 | ||
16597 | ||
16598 | #define PACKAGE_BUGREPORT "" | |
16599 | ||
16600 | ||
16601 | #define PACKAGE_NAME "" | |
16602 | ||
16603 | ||
16604 | #define PACKAGE_STRING "" | |
16605 | ||
16606 | ||
16607 | #define PACKAGE_TARNAME "" | |
16608 | ||
16609 | ||
16610 | #define PACKAGE_VERSION "" | |
16611 | ||
16612 | ||
16613 | #define STDC_HEADERS 1 | |
16614 | ||
16615 | ||
16616 | #define USE_MMX 1 | |
16617 | # 43 "/usr/include/xine/buffer.h" 2 3 4 | |
16618 | ||
16619 | ||
16620 | # 1 "/usr/include/stdio.h" 1 3 4 | |
16621 | # 46 "/usr/include/xine/buffer.h" 2 3 4 | |
16622 | # 1 "/usr/include/pthread.h" 1 3 4 | |
16623 | # 47 "/usr/include/xine/buffer.h" 2 3 4 | |
16624 | # 1 "/usr/include/sys/types.h" 1 3 4 | |
16625 | # 48 "/usr/include/xine/buffer.h" 2 3 4 | |
16626 | # 57 "/usr/include/xine/buffer.h" 3 4 | |
16627 | #define BUF_MAX_CALLBACKS 5 | |
16628 | # 72 "/usr/include/xine/buffer.h" 3 4 | |
16629 | #define BUF_MAJOR_MASK 0xFF000000 | |
16630 | #define BUF_DECODER_MASK 0x00FF0000 | |
16631 | ||
16632 | ||
16633 | ||
16634 | #define BUF_CONTROL_BASE 0x01000000 | |
16635 | #define BUF_CONTROL_START 0x01000000 | |
16636 | #define BUF_CONTROL_END 0x01010000 | |
16637 | #define BUF_CONTROL_QUIT 0x01020000 | |
16638 | #define BUF_CONTROL_DISCONTINUITY 0x01030000 | |
16639 | #define BUF_CONTROL_NOP 0x01040000 | |
16640 | #define BUF_CONTROL_AUDIO_CHANNEL 0x01050000 | |
16641 | #define BUF_CONTROL_SPU_CHANNEL 0x01060000 | |
16642 | #define BUF_CONTROL_NEWPTS 0x01070000 | |
16643 | #define BUF_CONTROL_RESET_DECODER 0x01080000 | |
16644 | #define BUF_CONTROL_HEADERS_DONE 0x01090000 | |
16645 | #define BUF_CONTROL_FLUSH_DECODER 0x010a0000 | |
16646 | #define BUF_CONTROL_RESET_TRACK_MAP 0x010b0000 | |
16647 | ||
16648 | ||
16649 | ||
16650 | #define BUF_VIDEO_BASE 0x02000000 | |
16651 | #define BUF_VIDEO_UNKNOWN 0x02ff0000 | |
16652 | #define BUF_VIDEO_MPEG 0x02000000 | |
16653 | #define BUF_VIDEO_MPEG4 0x02010000 | |
16654 | #define BUF_VIDEO_CINEPAK 0x02020000 | |
16655 | #define BUF_VIDEO_SORENSON_V1 0x02030000 | |
16656 | #define BUF_VIDEO_MSMPEG4_V2 0x02040000 | |
16657 | #define BUF_VIDEO_MSMPEG4_V3 0x02050000 | |
16658 | #define BUF_VIDEO_MJPEG 0x02060000 | |
16659 | #define BUF_VIDEO_IV50 0x02070000 | |
16660 | #define BUF_VIDEO_IV41 0x02080000 | |
16661 | #define BUF_VIDEO_IV32 0x02090000 | |
16662 | #define BUF_VIDEO_IV31 0x020a0000 | |
16663 | #define BUF_VIDEO_ATIVCR1 0x020b0000 | |
16664 | #define BUF_VIDEO_ATIVCR2 0x020c0000 | |
16665 | #define BUF_VIDEO_I263 0x020d0000 | |
16666 | #define BUF_VIDEO_RV10 0x020e0000 | |
16667 | #define BUF_VIDEO_RGB 0x02100000 | |
16668 | #define BUF_VIDEO_YUY2 0x02110000 | |
16669 | #define BUF_VIDEO_JPEG 0x02120000 | |
16670 | #define BUF_VIDEO_WMV7 0x02130000 | |
16671 | #define BUF_VIDEO_WMV8 0x02140000 | |
16672 | #define BUF_VIDEO_MSVC 0x02150000 | |
16673 | #define BUF_VIDEO_DV 0x02160000 | |
16674 | #define BUF_VIDEO_REAL 0x02170000 | |
16675 | #define BUF_VIDEO_VP31 0x02180000 | |
16676 | #define BUF_VIDEO_H263 0x02190000 | |
16677 | #define BUF_VIDEO_3IVX 0x021A0000 | |
16678 | #define BUF_VIDEO_CYUV 0x021B0000 | |
16679 | #define BUF_VIDEO_DIVX5 0x021C0000 | |
16680 | #define BUF_VIDEO_XVID 0x021D0000 | |
16681 | #define BUF_VIDEO_SMC 0x021E0000 | |
16682 | #define BUF_VIDEO_RPZA 0x021F0000 | |
16683 | #define BUF_VIDEO_QTRLE 0x02200000 | |
16684 | #define BUF_VIDEO_MSRLE 0x02210000 | |
16685 | #define BUF_VIDEO_DUCKTM1 0x02220000 | |
16686 | #define BUF_VIDEO_FLI 0x02230000 | |
16687 | #define BUF_VIDEO_ROQ 0x02240000 | |
16688 | #define BUF_VIDEO_SORENSON_V3 0x02250000 | |
16689 | #define BUF_VIDEO_MSMPEG4_V1 0x02260000 | |
16690 | #define BUF_VIDEO_MSS1 0x02270000 | |
16691 | #define BUF_VIDEO_IDCIN 0x02280000 | |
16692 | #define BUF_VIDEO_PGVV 0x02290000 | |
16693 | #define BUF_VIDEO_ZYGO 0x022A0000 | |
16694 | #define BUF_VIDEO_TSCC 0x022B0000 | |
16695 | #define BUF_VIDEO_YVU9 0x022C0000 | |
16696 | #define BUF_VIDEO_VQA 0x022D0000 | |
16697 | #define BUF_VIDEO_GREY 0x022E0000 | |
16698 | #define BUF_VIDEO_XXAN 0x022F0000 | |
16699 | #define BUF_VIDEO_WC3 0x02300000 | |
16700 | #define BUF_VIDEO_YV12 0x02310000 | |
16701 | #define BUF_VIDEO_SEGA 0x02320000 | |
16702 | #define BUF_VIDEO_RV20 0x02330000 | |
16703 | #define BUF_VIDEO_RV30 0x02340000 | |
16704 | #define BUF_VIDEO_MVI2 0x02350000 | |
16705 | #define BUF_VIDEO_UCOD 0x02360000 | |
16706 | #define BUF_VIDEO_WMV9 0x02370000 | |
16707 | #define BUF_VIDEO_INTERPLAY 0x02380000 | |
16708 | #define BUF_VIDEO_RV40 0x02390000 | |
16709 | #define BUF_VIDEO_PSX_MDEC 0x023A0000 | |
16710 | #define BUF_VIDEO_YUV_FRAMES 0x023B0000 | |
16711 | #define BUF_VIDEO_HUFFYUV 0x023C0000 | |
16712 | #define BUF_VIDEO_IMAGE 0x023D0000 | |
16713 | #define BUF_VIDEO_THEORA 0x023E0000 | |
16714 | #define BUF_VIDEO_4XM 0x023F0000 | |
16715 | #define BUF_VIDEO_I420 0x02400000 | |
16716 | #define BUF_VIDEO_VP4 0x02410000 | |
16717 | #define BUF_VIDEO_VP5 0x02420000 | |
16718 | #define BUF_VIDEO_VP6 0x02430000 | |
16719 | #define BUF_VIDEO_VMD 0x02440000 | |
16720 | #define BUF_VIDEO_MSZH 0x02450000 | |
16721 | #define BUF_VIDEO_ZLIB 0x02460000 | |
16722 | #define BUF_VIDEO_8BPS 0x02470000 | |
16723 | #define BUF_VIDEO_ASV1 0x02480000 | |
16724 | #define BUF_VIDEO_ASV2 0x02490000 | |
16725 | #define BUF_VIDEO_BITPLANE 0x024A0000 | |
16726 | #define BUF_VIDEO_BITPLANE_BR1 0x024B0000 | |
16727 | #define BUF_VIDEO_FLV1 0x024C0000 | |
16728 | #define BUF_VIDEO_H264 0x024D0000 | |
16729 | #define BUF_VIDEO_MJPEG_B 0x024E0000 | |
16730 | #define BUF_VIDEO_H261 0x024F0000 | |
16731 | #define BUF_VIDEO_AASC 0x02500000 | |
16732 | #define BUF_VIDEO_LOCO 0x02510000 | |
16733 | #define BUF_VIDEO_QDRW 0x02520000 | |
16734 | #define BUF_VIDEO_QPEG 0x02530000 | |
16735 | #define BUF_VIDEO_ULTI 0x02540000 | |
16736 | #define BUF_VIDEO_WNV1 0x02550000 | |
16737 | #define BUF_VIDEO_XL 0x02560000 | |
16738 | #define BUF_VIDEO_RT21 0x02570000 | |
16739 | #define BUF_VIDEO_FPS1 0x02580000 | |
16740 | #define BUF_VIDEO_DUCKTM2 0x02590000 | |
16741 | #define BUF_VIDEO_CSCD 0x025A0000 | |
16742 | #define BUF_VIDEO_ALGMM 0x025B0000 | |
16743 | #define BUF_VIDEO_ZMBV 0x025C0000 | |
16744 | #define BUF_VIDEO_AVS 0x025D0000 | |
16745 | #define BUF_VIDEO_SMACKER 0x025E0000 | |
16746 | #define BUF_VIDEO_NUV 0x025F0000 | |
16747 | #define BUF_VIDEO_KMVC 0x02600000 | |
16748 | #define BUF_VIDEO_FLASHSV 0x02610000 | |
16749 | #define BUF_VIDEO_CAVS 0x02620000 | |
16750 | #define BUF_VIDEO_VP6F 0x02630000 | |
16751 | ||
16752 | ||
16753 | ||
16754 | #define BUF_AUDIO_BASE 0x03000000 | |
16755 | #define BUF_AUDIO_UNKNOWN 0x03ff0000 | |
16756 | #define BUF_AUDIO_A52 0x03000000 | |
16757 | #define BUF_AUDIO_MPEG 0x03010000 | |
16758 | #define BUF_AUDIO_LPCM_BE 0x03020000 | |
16759 | #define BUF_AUDIO_LPCM_LE 0x03030000 | |
16760 | #define BUF_AUDIO_WMAV1 0x03040000 | |
16761 | #define BUF_AUDIO_DTS 0x03050000 | |
16762 | #define BUF_AUDIO_MSADPCM 0x03060000 | |
16763 | #define BUF_AUDIO_MSIMAADPCM 0x03070000 | |
16764 | #define BUF_AUDIO_MSGSM 0x03080000 | |
16765 | #define BUF_AUDIO_VORBIS 0x03090000 | |
16766 | #define BUF_AUDIO_IMC 0x030a0000 | |
16767 | #define BUF_AUDIO_LH 0x030b0000 | |
16768 | #define BUF_AUDIO_VOXWARE 0x030c0000 | |
16769 | #define BUF_AUDIO_ACELPNET 0x030d0000 | |
16770 | #define BUF_AUDIO_AAC 0x030e0000 | |
16771 | #define BUF_AUDIO_DNET 0x030f0000 | |
16772 | #define BUF_AUDIO_VIVOG723 0x03100000 | |
16773 | #define BUF_AUDIO_DK3ADPCM 0x03110000 | |
16774 | #define BUF_AUDIO_DK4ADPCM 0x03120000 | |
16775 | #define BUF_AUDIO_ROQ 0x03130000 | |
16776 | #define BUF_AUDIO_QTIMAADPCM 0x03140000 | |
16777 | #define BUF_AUDIO_MAC3 0x03150000 | |
16778 | #define BUF_AUDIO_MAC6 0x03160000 | |
16779 | #define BUF_AUDIO_QDESIGN1 0x03170000 | |
16780 | #define BUF_AUDIO_QDESIGN2 0x03180000 | |
16781 | #define BUF_AUDIO_QCLP 0x03190000 | |
16782 | #define BUF_AUDIO_SMJPEG_IMA 0x031A0000 | |
16783 | #define BUF_AUDIO_VQA_IMA 0x031B0000 | |
16784 | #define BUF_AUDIO_MULAW 0x031C0000 | |
16785 | #define BUF_AUDIO_ALAW 0x031D0000 | |
16786 | #define BUF_AUDIO_GSM610 0x031E0000 | |
16787 | #define BUF_AUDIO_EA_ADPCM 0x031F0000 | |
16788 | #define BUF_AUDIO_WMAV2 0x03200000 | |
16789 | #define BUF_AUDIO_COOK 0x03210000 | |
16790 | #define BUF_AUDIO_ATRK 0x03220000 | |
16791 | #define BUF_AUDIO_14_4 0x03230000 | |
16792 | #define BUF_AUDIO_28_8 0x03240000 | |
16793 | #define BUF_AUDIO_SIPRO 0x03250000 | |
16794 | #define BUF_AUDIO_WMAV3 0x03260000 | |
16795 | #define BUF_AUDIO_INTERPLAY 0x03270000 | |
16796 | #define BUF_AUDIO_XA_ADPCM 0x03280000 | |
16797 | #define BUF_AUDIO_WESTWOOD 0x03290000 | |
16798 | #define BUF_AUDIO_DIALOGIC_IMA 0x032A0000 | |
16799 | #define BUF_AUDIO_NSF 0x032B0000 | |
16800 | #define BUF_AUDIO_FLAC 0x032C0000 | |
16801 | #define BUF_AUDIO_DV 0x032D0000 | |
16802 | #define BUF_AUDIO_WMAV 0x032E0000 | |
16803 | #define BUF_AUDIO_SPEEX 0x032F0000 | |
16804 | #define BUF_AUDIO_RAWPCM 0x03300000 | |
16805 | #define BUF_AUDIO_4X_ADPCM 0x03310000 | |
16806 | #define BUF_AUDIO_VMD 0x03320000 | |
16807 | #define BUF_AUDIO_XAN_DPCM 0x03330000 | |
16808 | #define BUF_AUDIO_ALAC 0x03340000 | |
16809 | #define BUF_AUDIO_MPC 0x03350000 | |
16810 | #define BUF_AUDIO_SHORTEN 0x03360000 | |
16811 | #define BUF_AUDIO_WESTWOOD_SND1 0x03370000 | |
16812 | #define BUF_AUDIO_WMALL 0x03380000 | |
16813 | #define BUF_AUDIO_TRUESPEECH 0x03390000 | |
16814 | #define BUF_AUDIO_TTA 0x033A0000 | |
16815 | #define BUF_AUDIO_SMACKER 0x033B0000 | |
16816 | #define BUF_AUDIO_FLVADPCM 0x033C0000 | |
16817 | #define BUF_AUDIO_WAVPACK 0x033D0000 | |
16818 | ||
16819 | ||
16820 | ||
16821 | #define BUF_SPU_BASE 0x04000000 | |
16822 | #define BUF_SPU_DVD 0x04000000 | |
16823 | #define BUF_SPU_TEXT 0x04010000 | |
16824 | #define BUF_SPU_CC 0x04020000 | |
16825 | #define BUF_SPU_DVB 0x04030000 | |
16826 | #define BUF_SPU_SVCD 0x04040000 | |
16827 | #define BUF_SPU_CVD 0x04050000 | |
16828 | #define BUF_SPU_OGM 0x04060000 | |
16829 | #define BUF_SPU_CMML 0x04070000 | |
16830 | ||
16831 | ||
16832 | ||
16833 | #define BUF_DEMUX_BLOCK 0x05000000 | |
16834 | ||
16835 | typedef struct extra_info_s extra_info_t; | |
16836 | ||
16837 | ||
16838 | ||
16839 | ||
16840 | ||
16841 | ||
16842 | ||
16843 | struct extra_info_s { | |
16844 | ||
16845 | int input_normpos; | |
16846 | ||
16847 | ||
16848 | int input_time; | |
16849 | ||
16850 | uint32_t frame_number; | |
16851 | ||
16852 | int seek_count; | |
16853 | int64_t vpts; | |
16854 | ||
16855 | int invalid; | |
16856 | int total_time; | |
16857 | }; | |
16858 | ||
16859 | ||
16860 | #define BUF_NUM_DEC_INFO 5 | |
16861 | ||
16862 | typedef struct buf_element_s buf_element_t; | |
16863 | struct buf_element_s { | |
16864 | buf_element_t *next; | |
16865 | ||
16866 | unsigned char *mem; | |
16867 | unsigned char *content; | |
16868 | ||
16869 | int32_t size ; | |
16870 | int32_t max_size; | |
16871 | uint32_t type; | |
16872 | int64_t pts; | |
16873 | int64_t disc_off; | |
16874 | ||
16875 | extra_info_t *extra_info; | |
16876 | ||
16877 | uint32_t decoder_flags; | |
16878 | ||
16879 | ||
16880 | uint32_t decoder_info[5]; | |
16881 | ||
16882 | void *decoder_info_ptr[5]; | |
16883 | ||
16884 | void (*free_buffer) (buf_element_t *buf); | |
16885 | ||
16886 | void *source; | |
16887 | ||
16888 | ||
16889 | } ; | |
16890 | ||
16891 | ||
16892 | ||
16893 | #define BUF_FLAG_KEYFRAME 0x0001 | |
16894 | ||
16895 | ||
16896 | #define BUF_FLAG_FRAME_START 0x0002 | |
16897 | #define BUF_FLAG_FRAME_END 0x0004 | |
16898 | ||
16899 | ||
16900 | ||
16901 | #define BUF_FLAG_HEADER 0x0008 | |
16902 | ||
16903 | ||
16904 | ||
16905 | ||
16906 | #define BUF_FLAG_PREVIEW 0x0010 | |
16907 | ||
16908 | ||
16909 | #define BUF_FLAG_END_USER 0x0020 | |
16910 | ||
16911 | ||
16912 | #define BUF_FLAG_END_STREAM 0x0040 | |
16913 | ||
16914 | ||
16915 | #define BUF_FLAG_FRAMERATE 0x0080 | |
16916 | ||
16917 | ||
16918 | #define BUF_FLAG_SEEK 0x0100 | |
16919 | ||
16920 | ||
16921 | #define BUF_FLAG_SPECIAL 0x0200 | |
16922 | ||
16923 | ||
16924 | ||
16925 | ||
16926 | ||
16927 | #define BUF_FLAG_STDHEADER 0x0400 | |
16928 | ||
16929 | ||
16930 | ||
16931 | #define BUF_FLAG_ASPECT 0x0800 | |
16932 | # 411 "/usr/include/xine/buffer.h" 3 4 | |
16933 | #define BUF_SPECIAL_PALETTE 1 | |
16934 | # 428 "/usr/include/xine/buffer.h" 3 4 | |
16935 | #define BUF_SPECIAL_ASPECT 3 | |
16936 | # 438 "/usr/include/xine/buffer.h" 3 4 | |
16937 | #define BUF_SPECIAL_DECODER_CONFIG 4 | |
16938 | # 452 "/usr/include/xine/buffer.h" 3 4 | |
16939 | #define BUF_SPECIAL_STSD_ATOM 5 | |
16940 | # 462 "/usr/include/xine/buffer.h" 3 4 | |
16941 | #define BUF_SPECIAL_LPCM_CONFIG 6 | |
16942 | # 473 "/usr/include/xine/buffer.h" 3 4 | |
16943 | #define BUF_SPECIAL_CHARSET_ENCODING 7 | |
16944 | # 483 "/usr/include/xine/buffer.h" 3 4 | |
16945 | #define BUF_SPECIAL_SPU_DVD_SUBTYPE 8 | |
16946 | ||
16947 | ||
16948 | #define SPU_DVD_SUBTYPE_CLUT 1 | |
16949 | #define SPU_DVD_SUBTYPE_PACKAGE 2 | |
16950 | #define SPU_DVD_SUBTYPE_VOBSUB_PACKAGE 3 | |
16951 | #define SPU_DVD_SUBTYPE_NAV 4 | |
16952 | # 501 "/usr/include/xine/buffer.h" 3 4 | |
16953 | #define BUF_SPECIAL_SPU_DVB_DESCRIPTOR 9 | |
16954 | # 511 "/usr/include/xine/buffer.h" 3 4 | |
16955 | #define BUF_SPECIAL_RV_CHUNK_TABLE 10 | |
16956 | ||
16957 | typedef struct spu_dvb_descriptor_s spu_dvb_descriptor_t; | |
16958 | struct spu_dvb_descriptor_s | |
16959 | { | |
16960 | char lang[4]; | |
16961 | long comp_page_id; | |
16962 | long aux_page_id; | |
16963 | } ; | |
16964 | ||
16965 | typedef struct palette_entry_s palette_entry_t; | |
16966 | struct palette_entry_s | |
16967 | { | |
16968 | unsigned char r, g, b; | |
16969 | } ; | |
16970 | ||
16971 | typedef struct fifo_buffer_s fifo_buffer_t; | |
16972 | struct fifo_buffer_s | |
16973 | { | |
16974 | buf_element_t *first, *last; | |
16975 | ||
16976 | int fifo_size; | |
16977 | uint32_t fifo_data_size; | |
16978 | void *fifo_empty_cb_data; | |
16979 | ||
16980 | pthread_mutex_t mutex; | |
16981 | pthread_cond_t not_empty; | |
16982 | ||
16983 | ||
16984 | ||
16985 | ||
16986 | ||
16987 | void (*put) (fifo_buffer_t *fifo, buf_element_t *buf); | |
16988 | ||
16989 | buf_element_t *(*get) (fifo_buffer_t *fifo); | |
16990 | ||
16991 | void (*clear) (fifo_buffer_t *fifo) ; | |
16992 | ||
16993 | int (*size) (fifo_buffer_t *fifo); | |
16994 | ||
16995 | int (*num_free) (fifo_buffer_t *fifo); | |
16996 | ||
16997 | uint32_t (*data_size) (fifo_buffer_t *fifo); | |
16998 | ||
16999 | void (*dispose) (fifo_buffer_t *fifo); | |
17000 | # 564 "/usr/include/xine/buffer.h" 3 4 | |
17001 | buf_element_t *(*buffer_pool_alloc) (fifo_buffer_t *self); | |
17002 | ||
17003 | ||
17004 | ||
17005 | ||
17006 | ||
17007 | ||
17008 | ||
17009 | buf_element_t *(*buffer_pool_try_alloc) (fifo_buffer_t *self); | |
17010 | ||
17011 | ||
17012 | void (*insert) (fifo_buffer_t *fifo, buf_element_t *buf); | |
17013 | ||
17014 | ||
17015 | void (*register_alloc_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, void *), void *cb_data); | |
17016 | void (*register_put_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *), void *cb_data); | |
17017 | void (*register_get_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *), void *cb_data); | |
17018 | void (*unregister_alloc_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, void *)); | |
17019 | void (*unregister_put_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *)); | |
17020 | void (*unregister_get_cb) (fifo_buffer_t *fifo, void (*cb)(fifo_buffer_t *fifo, buf_element_t *buf, void *)); | |
17021 | ||
17022 | ||
17023 | ||
17024 | ||
17025 | buf_element_t *buffer_pool_top; | |
17026 | pthread_mutex_t buffer_pool_mutex; | |
17027 | pthread_cond_t buffer_pool_cond_not_empty; | |
17028 | int buffer_pool_num_free; | |
17029 | int buffer_pool_capacity; | |
17030 | int buffer_pool_buf_size; | |
17031 | void *buffer_pool_base; | |
17032 | void (*alloc_cb[5])(fifo_buffer_t *fifo, void *data_cb); | |
17033 | void (*put_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb); | |
17034 | void (*get_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb); | |
17035 | void *alloc_cb_data[5]; | |
17036 | void *put_cb_data[5]; | |
17037 | void *get_cb_data[5]; | |
17038 | } ; | |
17039 | ||
17040 | ||
17041 | ||
17042 | ||
17043 | ||
17044 | ||
17045 | ||
17046 | fifo_buffer_t *_x_fifo_buffer_new (int num_buffers, uint32_t buf_size) ; | |
17047 | fifo_buffer_t *_x_dummy_fifo_buffer_new (int num_buffers, uint32_t buf_size) ; | |
17048 | ||
17049 | ||
17050 | ||
17051 | ||
17052 | ||
17053 | ||
17054 | uint32_t _x_fourcc_to_buf_video( uint32_t fourcc_int ) ; | |
17055 | ||
17056 | ||
17057 | char * _x_buf_video_name( uint32_t buf_type ) ; | |
17058 | ||
17059 | ||
17060 | uint32_t _x_formattag_to_buf_audio( uint32_t formattag ) ; | |
17061 | ||
17062 | ||
17063 | char * _x_buf_audio_name( uint32_t buf_type ) ; | |
17064 | # 638 "/usr/include/xine/buffer.h" 3 4 | |
17065 | typedef struct __attribute__((__packed__)) { | |
17066 | int32_t biSize; | |
17067 | int32_t biWidth; | |
17068 | int32_t biHeight; | |
17069 | int16_t biPlanes; | |
17070 | int16_t biBitCount; | |
17071 | uint32_t biCompression; | |
17072 | int32_t biSizeImage; | |
17073 | int32_t biXPelsPerMeter; | |
17074 | int32_t biYPelsPerMeter; | |
17075 | int32_t biClrUsed; | |
17076 | int32_t biClrImportant; | |
17077 | } xine_bmiheader; | |
17078 | ||
17079 | ||
17080 | ||
17081 | ||
17082 | typedef struct __attribute__((__packed__)) { | |
17083 | int16_t wFormatTag; | |
17084 | int16_t nChannels; | |
17085 | int32_t nSamplesPerSec; | |
17086 | int32_t nAvgBytesPerSec; | |
17087 | int16_t nBlockAlign; | |
17088 | int16_t wBitsPerSample; | |
17089 | int16_t cbSize; | |
17090 | } xine_waveformatex; | |
17091 | ||
17092 | ||
17093 | ||
17094 | ||
17095 | ||
17096 | void _x_bmiheader_le2me( xine_bmiheader *bih ) ; | |
17097 | ||
17098 | ||
17099 | void _x_waveformatex_le2me( xine_waveformatex *wavex ) ; | |
17100 | # 37 "/usr/include/xine/input_plugin.h" 2 3 4 | |
17101 | ||
17102 | ||
17103 | ||
17104 | #define INPUT_PLUGIN_IFACE_VERSION 17 | |
17105 | ||
17106 | typedef struct input_class_s input_class_t ; | |
17107 | typedef struct input_plugin_s input_plugin_t; | |
17108 | ||
17109 | struct input_class_s { | |
17110 | ||
17111 | ||
17112 | ||
17113 | ||
17114 | ||
17115 | input_plugin_t* (*get_instance) (input_class_t *this, xine_stream_t *stream, const char *mrl); | |
17116 | ||
17117 | ||
17118 | ||
17119 | ||
17120 | ||
17121 | const char* (*get_identifier) (input_class_t *this); | |
17122 | ||
17123 | ||
17124 | ||
17125 | ||
17126 | ||
17127 | const char* (*get_description) (input_class_t *this); | |
17128 | ||
17129 | ||
17130 | ||
17131 | ||
17132 | ||
17133 | xine_mrl_t ** (*get_dir) (input_class_t *this, const char *filename, int *nFiles); | |
17134 | ||
17135 | ||
17136 | ||
17137 | ||
17138 | ||
17139 | char ** (*get_autoplay_list) (input_class_t *this, int *num_files); | |
17140 | ||
17141 | ||
17142 | ||
17143 | ||
17144 | void (*dispose) (input_class_t *this); | |
17145 | ||
17146 | ||
17147 | ||
17148 | ||
17149 | ||
17150 | ||
17151 | int (*eject_media) (input_class_t *this); | |
17152 | }; | |
17153 | ||
17154 | struct input_plugin_s { | |
17155 | ||
17156 | ||
17157 | ||
17158 | ||
17159 | ||
17160 | int (*open) (input_plugin_t *this); | |
17161 | # 114 "/usr/include/xine/input_plugin.h" 3 4 | |
17162 | uint32_t (*get_capabilities) (input_plugin_t *this); | |
17163 | ||
17164 | ||
17165 | ||
17166 | ||
17167 | off_t (*read) (input_plugin_t *this, char *buf, off_t nlen); | |
17168 | ||
17169 | ||
17170 | ||
17171 | ||
17172 | ||
17173 | ||
17174 | ||
17175 | buf_element_t *(*read_block)(input_plugin_t *this, fifo_buffer_t *fifo, off_t len); | |
17176 | ||
17177 | ||
17178 | ||
17179 | ||
17180 | ||
17181 | ||
17182 | ||
17183 | off_t (*seek) (input_plugin_t *this, off_t offset, int origin); | |
17184 | # 147 "/usr/include/xine/input_plugin.h" 3 4 | |
17185 | off_t (*seek_time) (input_plugin_t *this, int time_offset, int origin); | |
17186 | ||
17187 | ||
17188 | ||
17189 | ||
17190 | ||
17191 | ||
17192 | off_t (*get_current_pos) (input_plugin_t *this); | |
17193 | ||
17194 | ||
17195 | ||
17196 | ||
17197 | ||
17198 | ||
17199 | ||
17200 | int (*get_current_time) (input_plugin_t *this); | |
17201 | # 182 "/usr/include/xine/input_plugin.h" 3 4 | |
17202 | off_t (*get_length) (input_plugin_t *this); | |
17203 | # 198 "/usr/include/xine/input_plugin.h" 3 4 | |
17204 | uint32_t (*get_blocksize) (input_plugin_t *this); | |
17205 | ||
17206 | ||
17207 | ||
17208 | ||
17209 | ||
17210 | const char * (*get_mrl) (input_plugin_t *this); | |
17211 | ||
17212 | ||
17213 | ||
17214 | ||
17215 | ||
17216 | int (*get_optional_data) (input_plugin_t *this, void *data, int data_type); | |
17217 | ||
17218 | ||
17219 | ||
17220 | ||
17221 | ||
17222 | void (*dispose) (input_plugin_t *this); | |
17223 | ||
17224 | ||
17225 | ||
17226 | ||
17227 | ||
17228 | input_class_t *input_class; | |
17229 | ||
17230 | void *node; | |
17231 | ||
17232 | }; | |
17233 | ||
17234 | ||
17235 | ||
17236 | ||
17237 | #define INPUT_CAP_NOCAP 0x00000000 | |
17238 | # 242 "/usr/include/xine/input_plugin.h" 3 4 | |
17239 | #define INPUT_CAP_SEEKABLE 0x00000001 | |
17240 | # 252 "/usr/include/xine/input_plugin.h" 3 4 | |
17241 | #define INPUT_CAP_BLOCK 0x00000002 | |
17242 | # 264 "/usr/include/xine/input_plugin.h" 3 4 | |
17243 | #define INPUT_CAP_AUDIOLANG 0x00000008 | |
17244 | #define INPUT_CAP_SPULANG 0x00000010 | |
17245 | # 279 "/usr/include/xine/input_plugin.h" 3 4 | |
17246 | #define INPUT_CAP_PREVIEW 0x00000040 | |
17247 | # 290 "/usr/include/xine/input_plugin.h" 3 4 | |
17248 | #define INPUT_CAP_CHAPTERS 0x00000080 | |
17249 | ||
17250 | ||
17251 | ||
17252 | ||
17253 | ||
17254 | ||
17255 | ||
17256 | #define INPUT_CAP_RIP_FORBIDDEN 0x00000100 | |
17257 | ||
17258 | ||
17259 | #define INPUT_IS_SEEKABLE(input) (((input)->get_capabilities(input) & INPUT_CAP_SEEKABLE) != 0) | |
17260 | ||
17261 | #define INPUT_OPTIONAL_UNSUPPORTED 0 | |
17262 | #define INPUT_OPTIONAL_SUCCESS 1 | |
17263 | ||
17264 | #define INPUT_OPTIONAL_DATA_AUDIOLANG 2 | |
17265 | #define INPUT_OPTIONAL_DATA_SPULANG 3 | |
17266 | #define INPUT_OPTIONAL_DATA_PREVIEW 7 | |
17267 | ||
17268 | #define MAX_MRL_ENTRIES 255 | |
17269 | #define MAX_PREVIEW_SIZE 4096 | |
17270 | ||
17271 | ||
17272 | #define mrl_unknown (0 << 0) | |
17273 | #define mrl_dvd (1 << 0) | |
17274 | #define mrl_vcd (1 << 1) | |
17275 | #define mrl_net (1 << 2) | |
17276 | #define mrl_rtp (1 << 3) | |
17277 | #define mrl_stdin (1 << 4) | |
17278 | #define mrl_cda (1 << 5) | |
17279 | #define mrl_file (1 << 6) | |
17280 | #define mrl_file_fifo (1 << 7) | |
17281 | #define mrl_file_chardev (1 << 8) | |
17282 | #define mrl_file_directory (1 << 9) | |
17283 | #define mrl_file_blockdev (1 << 10) | |
17284 | #define mrl_file_normal (1 << 11) | |
17285 | #define mrl_file_symlink (1 << 12) | |
17286 | #define mrl_file_sock (1 << 13) | |
17287 | #define mrl_file_exec (1 << 14) | |
17288 | #define mrl_file_backup (1 << 15) | |
17289 | #define mrl_file_hidden (1 << 16) | |
17290 | ||
17291 | ||
17292 | ||
17293 | ||
17294 | #define MRL_ZERO(m) { if((m)) { if((m)->origin) free((m)->origin); if((m)->mrl) free((m)->mrl); if((m)->link) free((m)->link); (m)->origin = NULL; (m)->mrl = NULL; (m)->link = NULL; (m)->type = 0; (m)->size = (off_t) 0; } } | |
17295 | # 355 "/usr/include/xine/input_plugin.h" 3 4 | |
17296 | #define MRL_DUPLICATE(s,d) { _x_assert((s) != NULL); _x_assert((d) != NULL); if((s)->origin) { if((d)->origin) { (d)->origin = (char *) realloc((d)->origin, strlen((s)->origin) + 1); sprintf((d)->origin, "%s", (s)->origin); } else (d)->origin = strdup((s)->origin); } else (d)->origin = NULL; if((s)->mrl) { if((d)->mrl) { (d)->mrl = (char *) realloc((d)->mrl, strlen((s)->mrl) + 1); sprintf((d)->mrl, "%s", (s)->mrl); } else (d)->mrl = strdup((s)->mrl); } else (d)->mrl = NULL; if((s)->link) { if((d)->link) { (d)->link = (char *) realloc((d)->link, strlen((s)->link) + 1); sprintf((d)->link, "%s", (s)->link); } else (d)->link = strdup((s)->link); } else (d)->link = NULL; (d)->type = (s)->type; (d)->size = (s)->size; } | |
17297 | # 399 "/usr/include/xine/input_plugin.h" 3 4 | |
17298 | #define MRLS_DUPLICATE(s,d) { int i = 0; _x_assert((s) != NULL); _x_assert((d) != NULL); while((s) != NULL) { d[i] = (xine_mrl_t *) malloc(sizeof(xine_mrl_t)); MRL_DUPLICATE(s[i], d[i]); i++; } } | |
17299 | # 58 "/usr/include/xine/xine_internal.h" 2 3 4 | |
17300 | # 1 "/usr/include/xine/demux.h" 1 3 4 | |
17301 | # 24 "/usr/include/xine/demux.h" 3 4 | |
17302 | #define HAVE_DEMUX_H | |
17303 | # 33 "/usr/include/xine/demux.h" 3 4 | |
17304 | # 1 "/usr/include/xine/xine_internal.h" 1 3 4 | |
17305 | # 34 "/usr/include/xine/demux.h" 2 3 4 | |
17306 | ||
17307 | ||
17308 | #define DEMUXER_PLUGIN_IFACE_VERSION 26 | |
17309 | ||
17310 | #define DEMUX_OK 0 | |
17311 | #define DEMUX_FINISHED 1 | |
17312 | ||
17313 | #define DEMUX_CANNOT_HANDLE 0 | |
17314 | #define DEMUX_CAN_HANDLE 1 | |
17315 | ||
17316 | #define METHOD_BY_CONTENT 1 | |
17317 | #define METHOD_BY_EXTENSION 2 | |
17318 | #define METHOD_EXPLICIT 3 | |
17319 | ||
17320 | typedef struct demux_class_s demux_class_t ; | |
17321 | typedef struct demux_plugin_s demux_plugin_t; | |
17322 | ||
17323 | struct demux_class_s { | |
17324 | ||
17325 | ||
17326 | ||
17327 | ||
17328 | demux_plugin_t* (*open_plugin) (demux_class_t *this, xine_stream_t *stream, input_plugin_t *input); | |
17329 | ||
17330 | ||
17331 | ||
17332 | ||
17333 | const char* (*get_description) (demux_class_t *this); | |
17334 | ||
17335 | ||
17336 | ||
17337 | ||
17338 | ||
17339 | const char* (*get_identifier) (demux_class_t *this); | |
17340 | ||
17341 | ||
17342 | ||
17343 | ||
17344 | ||
17345 | const char* (*get_mimetypes) (demux_class_t *this); | |
17346 | # 82 "/usr/include/xine/demux.h" 3 4 | |
17347 | const char* (*get_extensions) (demux_class_t *this); | |
17348 | ||
17349 | ||
17350 | ||
17351 | ||
17352 | void (*dispose) (demux_class_t *this); | |
17353 | }; | |
17354 | ||
17355 | ||
17356 | ||
17357 | ||
17358 | ||
17359 | ||
17360 | struct demux_plugin_s { | |
17361 | ||
17362 | ||
17363 | ||
17364 | ||
17365 | ||
17366 | ||
17367 | void (*send_headers) (demux_plugin_t *this); | |
17368 | # 123 "/usr/include/xine/demux.h" 3 4 | |
17369 | int (*seek) (demux_plugin_t *this, | |
17370 | off_t start_pos, int start_time, int playing ); | |
17371 | # 136 "/usr/include/xine/demux.h" 3 4 | |
17372 | int (*send_chunk) (demux_plugin_t *this); | |
17373 | ||
17374 | ||
17375 | ||
17376 | ||
17377 | ||
17378 | void (*dispose) (demux_plugin_t *this) ; | |
17379 | ||
17380 | ||
17381 | ||
17382 | ||
17383 | ||
17384 | int (*get_status) (demux_plugin_t *this) ; | |
17385 | ||
17386 | ||
17387 | ||
17388 | ||
17389 | ||
17390 | ||
17391 | int (*get_stream_length) (demux_plugin_t *this); | |
17392 | ||
17393 | ||
17394 | ||
17395 | ||
17396 | ||
17397 | uint32_t (*get_capabilities) (demux_plugin_t *this); | |
17398 | ||
17399 | ||
17400 | ||
17401 | ||
17402 | int (*get_optional_data) (demux_plugin_t *this, void *data, int data_type); | |
17403 | ||
17404 | ||
17405 | ||
17406 | ||
17407 | ||
17408 | demux_class_t *demux_class; | |
17409 | ||
17410 | void *node; | |
17411 | ||
17412 | } ; | |
17413 | ||
17414 | ||
17415 | ||
17416 | ||
17417 | #define DEMUX_CAP_NOCAP 0x00000000 | |
17418 | # 192 "/usr/include/xine/demux.h" 3 4 | |
17419 | #define DEMUX_CAP_AUDIOLANG 0x00000008 | |
17420 | #define DEMUX_CAP_SPULANG 0x00000010 | |
17421 | # 205 "/usr/include/xine/demux.h" 3 4 | |
17422 | #define DEMUX_CAP_CHAPTERS 0x00000080 | |
17423 | ||
17424 | ||
17425 | #define DEMUX_OPTIONAL_UNSUPPORTED 0 | |
17426 | #define DEMUX_OPTIONAL_SUCCESS 1 | |
17427 | ||
17428 | #define DEMUX_OPTIONAL_DATA_AUDIOLANG 2 | |
17429 | #define DEMUX_OPTIONAL_DATA_SPULANG 3 | |
17430 | # 59 "/usr/include/xine/xine_internal.h" 2 3 4 | |
17431 | # 1 "/usr/include/xine/video_out.h" 1 3 4 | |
17432 | # 36 "/usr/include/xine/video_out.h" 3 4 | |
17433 | #define HAVE_VIDEO_OUT_H | |
17434 | ||
17435 | ||
17436 | ||
17437 | ||
17438 | ||
17439 | ||
17440 | # 1 "../../../config.h" 1 3 4 | |
17441 | # 14 "../../../config.h" 3 4 | |
17442 | #define DIRECTFB_VERSION "0.9.25" | |
17443 | ||
17444 | ||
17445 | #define HAVE_DLFCN_H 1 | |
17446 | ||
17447 | ||
17448 | ||
17449 | ||
17450 | ||
17451 | #define HAVE_INTTYPES_H 1 | |
17452 | ||
17453 | ||
17454 | #define HAVE_MEMORY_H 1 | |
17455 | ||
17456 | ||
17457 | #define HAVE_STDINT_H 1 | |
17458 | ||
17459 | ||
17460 | #define HAVE_STDLIB_H 1 | |
17461 | ||
17462 | ||
17463 | #define HAVE_STRINGS_H 1 | |
17464 | ||
17465 | ||
17466 | #define HAVE_STRING_H 1 | |
17467 | ||
17468 | ||
17469 | #define HAVE_SYS_STAT_H 1 | |
17470 | ||
17471 | ||
17472 | #define HAVE_SYS_TYPES_H 1 | |
17473 | ||
17474 | ||
17475 | #define HAVE_UNISTD_H 1 | |
17476 | ||
17477 | ||
17478 | #define PACKAGE_BUGREPORT "" | |
17479 | ||
17480 | ||
17481 | #define PACKAGE_NAME "" | |
17482 | ||
17483 | ||
17484 | #define PACKAGE_STRING "" | |
17485 | ||
17486 | ||
17487 | #define PACKAGE_TARNAME "" | |
17488 | ||
17489 | ||
17490 | #define PACKAGE_VERSION "" | |
17491 | ||
17492 | ||
17493 | #define STDC_HEADERS 1 | |
17494 | ||
17495 | ||
17496 | #define USE_MMX 1 | |
17497 | # 44 "/usr/include/xine/video_out.h" 2 3 4 | |
17498 | ||
17499 | ||
17500 | # 1 "/usr/include/pthread.h" 1 3 4 | |
17501 | # 47 "/usr/include/xine/video_out.h" 2 3 4 | |
17502 | # 57 "/usr/include/xine/video_out.h" 3 4 | |
17503 | typedef struct vo_frame_s vo_frame_t; | |
17504 | typedef struct vo_driver_s vo_driver_t; | |
17505 | typedef struct video_driver_class_s video_driver_class_t; | |
17506 | typedef struct vo_overlay_s vo_overlay_t; | |
17507 | typedef struct video_overlay_manager_s video_overlay_manager_t; | |
17508 | ||
17509 | ||
17510 | ||
17511 | ||
17512 | ||
17513 | ||
17514 | ||
17515 | struct vo_frame_s { | |
17516 | ||
17517 | ||
17518 | ||
17519 | ||
17520 | ||
17521 | ||
17522 | ||
17523 | void (*proc_duplicate_frame_data) (vo_frame_t *vo_img, vo_frame_t *src); | |
17524 | ||
17525 | ||
17526 | ||
17527 | void (*proc_frame) (vo_frame_t *vo_img); | |
17528 | ||
17529 | ||
17530 | ||
17531 | void (*proc_slice) (vo_frame_t *vo_img, uint8_t **src); | |
17532 | ||
17533 | ||
17534 | void (*field) (vo_frame_t *vo_img, int which_field); | |
17535 | ||
17536 | ||
17537 | ||
17538 | ||
17539 | int (*draw) (vo_frame_t *vo_img, xine_stream_t *stream); | |
17540 | ||
17541 | ||
17542 | ||
17543 | ||
17544 | ||
17545 | void (*lock) (vo_frame_t *vo_img); | |
17546 | ||
17547 | ||
17548 | void (*free) (vo_frame_t *vo_img); | |
17549 | ||
17550 | ||
17551 | void (*dispose) (vo_frame_t *vo_img); | |
17552 | ||
17553 | ||
17554 | ||
17555 | ||
17556 | ||
17557 | int64_t pts; | |
17558 | int64_t vpts; | |
17559 | int bad_frame; | |
17560 | int duration; | |
17561 | ||
17562 | ||
17563 | ||
17564 | uint8_t *base[3]; | |
17565 | int pitches[3]; | |
17566 | ||
17567 | ||
17568 | int top_field_first; | |
17569 | int repeat_first_field; | |
17570 | ||
17571 | ||
17572 | ||
17573 | int progressive_frame; | |
17574 | int picture_coding_type; | |
17575 | ||
17576 | ||
17577 | int crop_left, crop_right, crop_top, crop_bottom; | |
17578 | ||
17579 | ||
17580 | extra_info_t *extra_info; | |
17581 | ||
17582 | ||
17583 | int width, height; | |
17584 | double ratio; | |
17585 | int format; | |
17586 | ||
17587 | int drawn; | |
17588 | int flags; | |
17589 | int proc_called; | |
17590 | ||
17591 | ||
17592 | void *accel_data; | |
17593 | ||
17594 | ||
17595 | xine_video_port_t *port; | |
17596 | vo_driver_t *driver; | |
17597 | xine_stream_t *stream; | |
17598 | ||
17599 | ||
17600 | int overlay_offset_x, overlay_offset_y; | |
17601 | ||
17602 | ||
17603 | ||
17604 | ||
17605 | ||
17606 | struct vo_frame_s *next; | |
17607 | int lock_counter; | |
17608 | pthread_mutex_t mutex; | |
17609 | ||
17610 | int id; | |
17611 | int is_first; | |
17612 | }; | |
17613 | ||
17614 | ||
17615 | ||
17616 | ||
17617 | ||
17618 | ||
17619 | ||
17620 | struct xine_video_port_s { | |
17621 | ||
17622 | uint32_t (*get_capabilities) (xine_video_port_t *self); | |
17623 | ||
17624 | ||
17625 | ||
17626 | ||
17627 | void (*open) (xine_video_port_t *self, xine_stream_t *stream); | |
17628 | # 192 "/usr/include/xine/video_out.h" 3 4 | |
17629 | vo_frame_t* (*get_frame) (xine_video_port_t *self, uint32_t width, | |
17630 | uint32_t height, double ratio, | |
17631 | int format, int flags); | |
17632 | ||
17633 | ||
17634 | vo_frame_t* (*get_last_frame) (xine_video_port_t *self); | |
17635 | ||
17636 | ||
17637 | void (*enable_ovl) (xine_video_port_t *self, int ovl_enable); | |
17638 | ||
17639 | ||
17640 | video_overlay_manager_t* (*get_overlay_manager) (xine_video_port_t *self); | |
17641 | ||
17642 | ||
17643 | void (*flush) (xine_video_port_t *self); | |
17644 | ||
17645 | ||
17646 | ||
17647 | ||
17648 | ||
17649 | int (*get_property) (xine_video_port_t *self, int property); | |
17650 | int (*set_property) (xine_video_port_t *self, int property, int value); | |
17651 | ||
17652 | ||
17653 | int (*status) (xine_video_port_t *self, xine_stream_t *stream, | |
17654 | int *width, int *height, int64_t *img_duration); | |
17655 | ||
17656 | ||
17657 | ||
17658 | ||
17659 | void (*close) (xine_video_port_t *self, xine_stream_t *stream); | |
17660 | ||
17661 | ||
17662 | void (*exit) (xine_video_port_t *self); | |
17663 | ||
17664 | ||
17665 | vo_driver_t *driver; | |
17666 | ||
17667 | }; | |
17668 | ||
17669 | ||
17670 | #define VO_PROP_INTERLACED 0 | |
17671 | #define VO_PROP_ASPECT_RATIO 1 | |
17672 | #define VO_PROP_HUE 2 | |
17673 | #define VO_PROP_SATURATION 3 | |
17674 | #define VO_PROP_CONTRAST 4 | |
17675 | #define VO_PROP_BRIGHTNESS 5 | |
17676 | #define VO_PROP_COLORKEY 6 | |
17677 | #define VO_PROP_AUTOPAINT_COLORKEY 7 | |
17678 | #define VO_PROP_ZOOM_X 8 | |
17679 | #define VO_PROP_PAN_SCAN 9 | |
17680 | #define VO_PROP_TVMODE 10 | |
17681 | #define VO_PROP_MAX_NUM_FRAMES 11 | |
17682 | #define VO_PROP_ZOOM_Y 13 | |
17683 | #define VO_PROP_DISCARD_FRAMES 14 | |
17684 | #define VO_PROP_WINDOW_WIDTH 15 | |
17685 | #define VO_PROP_WINDOW_HEIGHT 16 | |
17686 | #define VO_PROP_BUFS_IN_FIFO 17 | |
17687 | #define VO_PROP_NUM_STREAMS 18 | |
17688 | #define VO_NUM_PROPERTIES 19 | |
17689 | ||
17690 | ||
17691 | ||
17692 | ||
17693 | #define OVL_PALETTE_SIZE 256 | |
17694 | ||
17695 | ||
17696 | ||
17697 | ||
17698 | ||
17699 | #define VO_NUM_RECENT_FRAMES 2 | |
17700 | ||
17701 | ||
17702 | #define VO_TOP_FIELD 1 | |
17703 | #define VO_BOTTOM_FIELD 2 | |
17704 | #define VO_BOTH_FIELDS (VO_TOP_FIELD | VO_BOTTOM_FIELD) | |
17705 | #define VO_PAN_SCAN_FLAG 4 | |
17706 | #define VO_INTERLACED_FLAG 8 | |
17707 | #define VO_NEW_SEQUENCE_FLAG 16 | |
17708 | ||
17709 | ||
17710 | #define VO_CAP_YV12 0x00000001 | |
17711 | #define VO_CAP_YUY2 0x00000002 | |
17712 | #define VO_CAP_XVMC_MOCOMP 0x00000004 | |
17713 | #define VO_CAP_XVMC_IDCT 0x00000008 | |
17714 | #define VO_CAP_UNSCALED_OVERLAY 0x00000010 | |
17715 | #define VO_CAP_CROP 0x00000020 | |
17716 | #define VO_CAP_XXMC 0x00000040 | |
17717 | # 291 "/usr/include/xine/video_out.h" 3 4 | |
17718 | #define VIDEO_OUT_DRIVER_IFACE_VERSION 21 | |
17719 | ||
17720 | struct vo_driver_s { | |
17721 | ||
17722 | uint32_t (*get_capabilities) (vo_driver_t *self); | |
17723 | ||
17724 | ||
17725 | ||
17726 | ||
17727 | ||
17728 | vo_frame_t* (*alloc_frame) (vo_driver_t *self); | |
17729 | ||
17730 | ||
17731 | ||
17732 | ||
17733 | ||
17734 | void (*update_frame_format) (vo_driver_t *self, vo_frame_t *img, | |
17735 | uint32_t width, uint32_t height, | |
17736 | double ratio, int format, int flags); | |
17737 | ||
17738 | ||
17739 | void (*display_frame) (vo_driver_t *self, vo_frame_t *vo_img); | |
17740 | # 326 "/usr/include/xine/video_out.h" 3 4 | |
17741 | void (*overlay_begin) (vo_driver_t *self, vo_frame_t *vo_img, int changed); | |
17742 | void (*overlay_blend) (vo_driver_t *self, vo_frame_t *vo_img, vo_overlay_t *overlay); | |
17743 | void (*overlay_end) (vo_driver_t *self, vo_frame_t *vo_img); | |
17744 | ||
17745 | ||
17746 | ||
17747 | ||
17748 | int (*get_property) (vo_driver_t *self, int property); | |
17749 | int (*set_property) (vo_driver_t *self, | |
17750 | int property, int value); | |
17751 | void (*get_property_min_max) (vo_driver_t *self, | |
17752 | int property, int *min, int *max); | |
17753 | ||
17754 | ||
17755 | ||
17756 | ||
17757 | ||
17758 | ||
17759 | ||
17760 | int (*gui_data_exchange) (vo_driver_t *self, int data_type, | |
17761 | void *data); | |
17762 | ||
17763 | ||
17764 | ||
17765 | ||
17766 | ||
17767 | int (*redraw_needed) (vo_driver_t *self); | |
17768 | ||
17769 | ||
17770 | ||
17771 | ||
17772 | void (*dispose) (vo_driver_t *self); | |
17773 | ||
17774 | void *node; | |
17775 | }; | |
17776 | ||
17777 | struct video_driver_class_s { | |
17778 | ||
17779 | ||
17780 | ||
17781 | ||
17782 | vo_driver_t* (*open_plugin) (video_driver_class_t *self, const void *visual); | |
17783 | ||
17784 | ||
17785 | ||
17786 | ||
17787 | char* (*get_identifier) (video_driver_class_t *self); | |
17788 | ||
17789 | ||
17790 | ||
17791 | ||
17792 | ||
17793 | char* (*get_description) (video_driver_class_t *self); | |
17794 | ||
17795 | ||
17796 | ||
17797 | ||
17798 | void (*dispose) (video_driver_class_t *self); | |
17799 | }; | |
17800 | ||
17801 | ||
17802 | typedef struct rle_elem_s { | |
17803 | uint16_t len; | |
17804 | uint16_t color; | |
17805 | } rle_elem_t; | |
17806 | ||
17807 | struct vo_overlay_s { | |
17808 | ||
17809 | rle_elem_t *rle; | |
17810 | int data_size; | |
17811 | int num_rle; | |
17812 | int x; | |
17813 | int y; | |
17814 | int width; | |
17815 | int height; | |
17816 | ||
17817 | uint32_t color[256]; | |
17818 | uint8_t trans[256]; | |
17819 | int rgb_clut; | |
17820 | ||
17821 | ||
17822 | int hili_top; | |
17823 | int hili_bottom; | |
17824 | int hili_left; | |
17825 | int hili_right; | |
17826 | uint32_t hili_color[256]; | |
17827 | uint8_t hili_trans[256]; | |
17828 | int hili_rgb_clut; | |
17829 | ||
17830 | int unscaled; | |
17831 | }; | |
17832 | # 425 "/usr/include/xine/video_out.h" 3 4 | |
17833 | struct video_overlay_manager_s { | |
17834 | void (*init) (video_overlay_manager_t *this_gen); | |
17835 | ||
17836 | void (*dispose) (video_overlay_manager_t *this_gen); | |
17837 | ||
17838 | int32_t (*get_handle) (video_overlay_manager_t *this_gen, int object_type ); | |
17839 | ||
17840 | void (*free_handle) (video_overlay_manager_t *this_gen, int32_t handle); | |
17841 | ||
17842 | int32_t (*add_event) (video_overlay_manager_t *this_gen, void *event); | |
17843 | ||
17844 | void (*flush_events) (video_overlay_manager_t *this_gen ); | |
17845 | ||
17846 | int (*redraw_needed) (video_overlay_manager_t *this_gen, int64_t vpts ); | |
17847 | ||
17848 | void (*multiple_overlay_blend) (video_overlay_manager_t *this_gen, int64_t vpts, | |
17849 | vo_driver_t *output, vo_frame_t *vo_img, int enabled); | |
17850 | }; | |
17851 | ||
17852 | ||
17853 | ||
17854 | ||
17855 | ||
17856 | xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabonly) ; | |
17857 | # 60 "/usr/include/xine/xine_internal.h" 2 3 4 | |
17858 | # 1 "/usr/include/xine/audio_out.h" 1 3 4 | |
17859 | # 23 "/usr/include/xine/audio_out.h" 3 4 | |
17860 | #define HAVE_AUDIO_OUT_H | |
17861 | # 36 "/usr/include/xine/audio_out.h" 3 4 | |
17862 | # 1 "/usr/include/xine/metronom.h" 1 3 4 | |
17863 | # 44 "/usr/include/xine/metronom.h" 3 4 | |
17864 | #define HAVE_METRONOM_H | |
17865 | ||
17866 | ||
17867 | ||
17868 | ||
17869 | ||
17870 | # 1 "/usr/include/pthread.h" 1 3 4 | |
17871 | # 51 "/usr/include/xine/metronom.h" 2 3 4 | |
17872 | # 60 "/usr/include/xine/metronom.h" 3 4 | |
17873 | typedef struct metronom_s metronom_t ; | |
17874 | typedef struct metronom_clock_s metronom_clock_t; | |
17875 | typedef struct scr_plugin_s scr_plugin_t; | |
17876 | ||
17877 | ||
17878 | ||
17879 | ||
17880 | ||
17881 | ||
17882 | ||
17883 | #define PREBUFFER_PTS_OFFSET 12000 | |
17884 | ||
17885 | ||
17886 | #define DISC_STREAMSTART 0 | |
17887 | #define DISC_RELATIVE 1 | |
17888 | #define DISC_ABSOLUTE 2 | |
17889 | #define DISC_STREAMSEEK 3 | |
17890 | ||
17891 | struct metronom_s { | |
17892 | ||
17893 | ||
17894 | ||
17895 | ||
17896 | ||
17897 | ||
17898 | ||
17899 | void (*set_audio_rate) (metronom_t *self, int64_t pts_per_smpls); | |
17900 | # 100 "/usr/include/xine/metronom.h" 3 4 | |
17901 | void (*got_video_frame) (metronom_t *self, vo_frame_t *frame); | |
17902 | # 115 "/usr/include/xine/metronom.h" 3 4 | |
17903 | int64_t (*got_audio_samples) (metronom_t *self, int64_t pts, | |
17904 | int nsamples); | |
17905 | # 128 "/usr/include/xine/metronom.h" 3 4 | |
17906 | int64_t (*got_spu_packet) (metronom_t *self, int64_t pts); | |
17907 | # 150 "/usr/include/xine/metronom.h" 3 4 | |
17908 | void (*handle_audio_discontinuity) (metronom_t *self, int type, int64_t disc_off); | |
17909 | void (*handle_video_discontinuity) (metronom_t *self, int type, int64_t disc_off); | |
17910 | ||
17911 | ||
17912 | ||
17913 | ||
17914 | void (*set_option) (metronom_t *self, int option, int64_t value); | |
17915 | int64_t (*get_option) (metronom_t *self, int option); | |
17916 | ||
17917 | ||
17918 | ||
17919 | ||
17920 | ||
17921 | ||
17922 | ||
17923 | void (*set_master) (metronom_t *self, metronom_t *master); | |
17924 | ||
17925 | void (*exit) (metronom_t *self); | |
17926 | # 216 "/usr/include/xine/metronom.h" 3 4 | |
17927 | }; | |
17928 | ||
17929 | ||
17930 | ||
17931 | ||
17932 | ||
17933 | #define METRONOM_AV_OFFSET 2 | |
17934 | #define METRONOM_ADJ_VPTS_OFFSET 3 | |
17935 | #define METRONOM_FRAME_DURATION 4 | |
17936 | #define METRONOM_SPU_OFFSET 5 | |
17937 | #define METRONOM_VPTS_OFFSET 6 | |
17938 | #define METRONOM_PREBUFFER 7 | |
17939 | ||
17940 | metronom_t *_x_metronom_init (int have_video, int have_audio, xine_t *xine) ; | |
17941 | ||
17942 | ||
17943 | struct metronom_clock_s { | |
17944 | ||
17945 | ||
17946 | ||
17947 | ||
17948 | void (*set_option) (metronom_clock_t *self, int option, int64_t value); | |
17949 | int64_t (*get_option) (metronom_clock_t *self, int option); | |
17950 | # 263 "/usr/include/xine/metronom.h" 3 4 | |
17951 | void *dummy1; | |
17952 | void *dummy2; | |
17953 | void *dummy3; | |
17954 | ||
17955 | ||
17956 | ||
17957 | ||
17958 | ||
17959 | ||
17960 | int64_t (*get_current_time) (metronom_clock_t *self); | |
17961 | ||
17962 | ||
17963 | ||
17964 | ||
17965 | ||
17966 | void (*adjust_clock) (metronom_clock_t *self, int64_t desired_pts); | |
17967 | # 288 "/usr/include/xine/metronom.h" 3 4 | |
17968 | void *dummy4; | |
17969 | ||
17970 | ||
17971 | ||
17972 | ||
17973 | ||
17974 | int (*register_scr) (metronom_clock_t *self, scr_plugin_t *scr); | |
17975 | void (*unregister_scr) (metronom_clock_t *self, scr_plugin_t *scr); | |
17976 | # 308 "/usr/include/xine/metronom.h" 3 4 | |
17977 | void *dummy5; | |
17978 | void *dummy6; | |
17979 | void *dummy7; | |
17980 | void *dummy8; | |
17981 | pthread_t dummy9; | |
17982 | int dummy10; | |
17983 | int dummy11; | |
17984 | ||
17985 | ||
17986 | int speed; | |
17987 | ||
17988 | ||
17989 | ||
17990 | ||
17991 | ||
17992 | }; | |
17993 | ||
17994 | metronom_clock_t *_x_metronom_clock_init(xine_t *xine) ; | |
17995 | ||
17996 | ||
17997 | ||
17998 | ||
17999 | ||
18000 | #define CLOCK_SCR_ADJUSTABLE 1 | |
18001 | ||
18002 | ||
18003 | ||
18004 | ||
18005 | ||
18006 | struct scr_plugin_s | |
18007 | { | |
18008 | int interface_version; | |
18009 | ||
18010 | int (*get_priority) (scr_plugin_t *self); | |
18011 | # 350 "/usr/include/xine/metronom.h" 3 4 | |
18012 | int (*set_fine_speed) (scr_plugin_t *self, int speed); | |
18013 | ||
18014 | void (*adjust) (scr_plugin_t *self, int64_t vpts); | |
18015 | ||
18016 | void (*start) (scr_plugin_t *self, int64_t start_vpts); | |
18017 | ||
18018 | int64_t (*get_current) (scr_plugin_t *self); | |
18019 | ||
18020 | void (*exit) (scr_plugin_t *self); | |
18021 | ||
18022 | metronom_clock_t *clock; | |
18023 | }; | |
18024 | # 37 "/usr/include/xine/audio_out.h" 2 3 4 | |
18025 | ||
18026 | ||
18027 | ||
18028 | ||
18029 | ||
18030 | #define AUDIO_OUT_IFACE_VERSION 8 | |
18031 | ||
18032 | ||
18033 | ||
18034 | ||
18035 | ||
18036 | ||
18037 | typedef struct ao_driver_s ao_driver_t; | |
18038 | ||
18039 | struct ao_driver_s { | |
18040 | # 60 "/usr/include/xine/audio_out.h" 3 4 | |
18041 | uint32_t (*get_capabilities) (ao_driver_t *); | |
18042 | ||
18043 | ||
18044 | ||
18045 | ||
18046 | ||
18047 | ||
18048 | ||
18049 | int (*open)(ao_driver_t *, uint32_t bits, uint32_t rate, int mode); | |
18050 | ||
18051 | ||
18052 | ||
18053 | int (*num_channels)(ao_driver_t *self_gen); | |
18054 | ||
18055 | ||
18056 | ||
18057 | ||
18058 | int (*bytes_per_frame)(ao_driver_t *self_gen); | |
18059 | ||
18060 | ||
18061 | ||
18062 | ||
18063 | int (*delay)(ao_driver_t *self_gen); | |
18064 | ||
18065 | ||
18066 | ||
18067 | ||
18068 | int (*get_gap_tolerance) (ao_driver_t *self_gen); | |
18069 | # 96 "/usr/include/xine/audio_out.h" 3 4 | |
18070 | int (*write)(ao_driver_t *, | |
18071 | int16_t* audio_data, uint32_t num_samples); | |
18072 | ||
18073 | ||
18074 | ||
18075 | ||
18076 | ||
18077 | void (*close)(ao_driver_t *); | |
18078 | ||
18079 | ||
18080 | ||
18081 | ||
18082 | ||
18083 | void (*exit) (ao_driver_t *); | |
18084 | # 119 "/usr/include/xine/audio_out.h" 3 4 | |
18085 | int (*get_property) (ao_driver_t *, int property); | |
18086 | ||
18087 | int (*set_property) (ao_driver_t *, int property, int value); | |
18088 | ||
18089 | ||
18090 | ||
18091 | ||
18092 | ||
18093 | ||
18094 | ||
18095 | int (*control) (ao_driver_t *, int cmd, ...); | |
18096 | ||
18097 | void *node; | |
18098 | }; | |
18099 | ||
18100 | typedef struct ao_format_s ao_format_t; | |
18101 | ||
18102 | struct ao_format_s { | |
18103 | uint32_t bits; | |
18104 | uint32_t rate; | |
18105 | int mode; | |
18106 | }; | |
18107 | ||
18108 | typedef struct audio_fifo_s audio_fifo_t; | |
18109 | ||
18110 | typedef struct audio_buffer_s audio_buffer_t; | |
18111 | ||
18112 | struct audio_buffer_s { | |
18113 | ||
18114 | audio_buffer_t *next; | |
18115 | ||
18116 | int16_t *mem; | |
18117 | int mem_size; | |
18118 | int num_frames; | |
18119 | ||
18120 | int64_t vpts; | |
18121 | uint32_t frame_header_count; | |
18122 | uint32_t first_access_unit; | |
18123 | ||
18124 | ||
18125 | extra_info_t *extra_info; | |
18126 | ||
18127 | xine_stream_t *stream; | |
18128 | ||
18129 | ao_format_t format; | |
18130 | }; | |
18131 | # 174 "/usr/include/xine/audio_out.h" 3 4 | |
18132 | struct xine_audio_port_s { | |
18133 | uint32_t (*get_capabilities) (xine_audio_port_t *); | |
18134 | ||
18135 | ||
18136 | ||
18137 | ||
18138 | ||
18139 | int (*get_property) (xine_audio_port_t *, int property); | |
18140 | int (*set_property) (xine_audio_port_t *, int property, int value); | |
18141 | ||
18142 | ||
18143 | ||
18144 | ||
18145 | ||
18146 | ||
18147 | int (*open) (xine_audio_port_t *, xine_stream_t *stream, | |
18148 | uint32_t bits, uint32_t rate, int mode); | |
18149 | ||
18150 | ||
18151 | ||
18152 | ||
18153 | audio_buffer_t * (*get_buffer) (xine_audio_port_t *); | |
18154 | ||
18155 | ||
18156 | ||
18157 | ||
18158 | ||
18159 | ||
18160 | void (*put_buffer) (xine_audio_port_t *, audio_buffer_t *buf, xine_stream_t *stream); | |
18161 | ||
18162 | ||
18163 | ||
18164 | ||
18165 | void (*close) (xine_audio_port_t *self, xine_stream_t *stream); | |
18166 | ||
18167 | ||
18168 | void (*exit) (xine_audio_port_t *); | |
18169 | ||
18170 | ||
18171 | ||
18172 | ||
18173 | ||
18174 | ||
18175 | int (*control) (xine_audio_port_t *, int cmd, ...); | |
18176 | ||
18177 | ||
18178 | ||
18179 | ||
18180 | void (*flush) (xine_audio_port_t *); | |
18181 | ||
18182 | ||
18183 | ||
18184 | ||
18185 | ||
18186 | int (*status) (xine_audio_port_t *, xine_stream_t *stream, | |
18187 | uint32_t *bits, uint32_t *rate, int *mode); | |
18188 | ||
18189 | }; | |
18190 | ||
18191 | typedef struct audio_driver_class_s audio_driver_class_t; | |
18192 | ||
18193 | struct audio_driver_class_s { | |
18194 | ||
18195 | ||
18196 | ||
18197 | ||
18198 | ao_driver_t* (*open_plugin) (audio_driver_class_t *, const void *data); | |
18199 | ||
18200 | ||
18201 | ||
18202 | ||
18203 | char* (*get_identifier) (audio_driver_class_t *); | |
18204 | ||
18205 | ||
18206 | ||
18207 | ||
18208 | ||
18209 | char* (*get_description) (audio_driver_class_t *); | |
18210 | ||
18211 | ||
18212 | ||
18213 | ||
18214 | ||
18215 | void (*dispose) (audio_driver_class_t *); | |
18216 | }; | |
18217 | ||
18218 | ||
18219 | ||
18220 | ||
18221 | ||
18222 | xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver, int grab_only) ; | |
18223 | ||
18224 | ||
18225 | ||
18226 | ||
18227 | ||
18228 | #define AO_CAP_NOCAP 0x00000000 | |
18229 | #define AO_CAP_MODE_A52 0x00000001 | |
18230 | #define AO_CAP_MODE_AC5 0x00000002 | |
18231 | ||
18232 | #define AO_CAP_MODE_MONO 0x00000004 | |
18233 | ||
18234 | #define AO_CAP_MODE_STEREO 0x00000008 | |
18235 | ||
18236 | #define AO_CAP_MODE_4CHANNEL 0x00000010 | |
18237 | ||
18238 | ||
18239 | ||
18240 | ||
18241 | ||
18242 | ||
18243 | ||
18244 | #define AO_CAP_MODE_4_1CHANNEL 0x00000020 | |
18245 | ||
18246 | #define AO_CAP_MODE_5CHANNEL 0x00000040 | |
18247 | ||
18248 | #define AO_CAP_MODE_5_1CHANNEL 0x00000080 | |
18249 | ||
18250 | ||
18251 | ||
18252 | ||
18253 | int _x_ao_mode2channels( int mode ) ; | |
18254 | ||
18255 | ||
18256 | ||
18257 | int _x_ao_channels2mode( int channels ) ; | |
18258 | ||
18259 | #define AO_CAP_MIXER_VOL 0x00000100 | |
18260 | #define AO_CAP_PCM_VOL 0x00000200 | |
18261 | #define AO_CAP_MUTE_VOL 0x00000400 | |
18262 | #define AO_CAP_8BITS 0x00000800 | |
18263 | #define AO_CAP_16BITS 0x00001000 | |
18264 | #define AO_CAP_24BITS 0x00002000 | |
18265 | #define AO_CAP_FLOAT32 0x00004000 | |
18266 | ||
18267 | ||
18268 | #define AO_PROP_MIXER_VOL 0 | |
18269 | #define AO_PROP_PCM_VOL 1 | |
18270 | #define AO_PROP_MUTE_VOL 2 | |
18271 | #define AO_PROP_COMPRESSOR 3 | |
18272 | #define AO_PROP_DISCARD_BUFFERS 4 | |
18273 | #define AO_PROP_BUFS_IN_FIFO 5 | |
18274 | #define AO_PROP_AMP 6 | |
18275 | #define AO_PROP_EQ_30HZ 7 | |
18276 | #define AO_PROP_EQ_60HZ 8 | |
18277 | #define AO_PROP_EQ_125HZ 9 | |
18278 | #define AO_PROP_EQ_250HZ 10 | |
18279 | #define AO_PROP_EQ_500HZ 11 | |
18280 | #define AO_PROP_EQ_1000HZ 12 | |
18281 | #define AO_PROP_EQ_2000HZ 13 | |
18282 | #define AO_PROP_EQ_4000HZ 14 | |
18283 | #define AO_PROP_EQ_8000HZ 15 | |
18284 | #define AO_PROP_EQ_16000HZ 16 | |
18285 | #define AO_PROP_CLOSE_DEVICE 17 | |
18286 | #define AO_PROP_AMP_MUTE 18 | |
18287 | #define AO_PROP_NUM_STREAMS 19 | |
18288 | #define AO_PROP_CLOCK_SPEED 20 | |
18289 | #define AO_NUM_PROPERTIES 21 | |
18290 | ||
18291 | ||
18292 | #define AO_CTRL_PLAY_PAUSE 0 | |
18293 | #define AO_CTRL_PLAY_RESUME 1 | |
18294 | #define AO_CTRL_FLUSH_BUFFERS 2 | |
18295 | ||
18296 | ||
18297 | #define AO_MAX_GAP 15000 | |
18298 | # 61 "/usr/include/xine/xine_internal.h" 2 3 4 | |
18299 | ||
18300 | # 1 "/usr/include/xine/osd.h" 1 3 4 | |
18301 | # 25 "/usr/include/xine/osd.h" 3 4 | |
18302 | #define HAVE_OSD_H | |
18303 | # 37 "/usr/include/xine/osd.h" 3 4 | |
18304 | # 1 "/usr/include/xine/video_overlay.h" 1 3 4 | |
18305 | # 25 "/usr/include/xine/video_overlay.h" 3 4 | |
18306 | #define HAVE_VIDEO_OVERLAY_H | |
18307 | # 34 "/usr/include/xine/video_overlay.h" 3 4 | |
18308 | #define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) {y: (_y), cr: (_cr), cb: (_cb)} | |
18309 | ||
18310 | ||
18311 | ||
18312 | ||
18313 | #define MAX_OBJECTS 50 | |
18314 | #define MAX_EVENTS 50 | |
18315 | #define MAX_SHOWING 16 | |
18316 | ||
18317 | #define OVERLAY_EVENT_NULL 0 | |
18318 | #define OVERLAY_EVENT_SHOW 1 | |
18319 | #define OVERLAY_EVENT_HIDE 2 | |
18320 | #define OVERLAY_EVENT_MENU_BUTTON 3 | |
18321 | #define OVERLAY_EVENT_FREE_HANDLE 8 | |
18322 | ||
18323 | ||
18324 | ||
18325 | ||
18326 | ||
18327 | #define OVL_PALETTE_SIZE 256 | |
18328 | ||
18329 | typedef struct vo_buttons_s { | |
18330 | int32_t type; | |
18331 | ||
18332 | ||
18333 | ||
18334 | ||
18335 | ||
18336 | ||
18337 | int32_t hili_top; | |
18338 | int32_t hili_bottom; | |
18339 | int32_t hili_left; | |
18340 | int32_t hili_right; | |
18341 | int32_t up; | |
18342 | int32_t down; | |
18343 | int32_t left; | |
18344 | int32_t right; | |
18345 | uint32_t select_color[256]; | |
18346 | uint8_t select_trans[256]; | |
18347 | xine_event_t select_event; | |
18348 | uint32_t active_color[256]; | |
18349 | uint8_t active_trans[256]; | |
18350 | xine_event_t active_event; | |
18351 | int32_t hili_rgb_clut; | |
18352 | ||
18353 | } vo_buttons_t; | |
18354 | ||
18355 | typedef struct video_overlay_object_s { | |
18356 | int32_t handle; | |
18357 | uint32_t object_type; | |
18358 | int64_t pts; | |
18359 | vo_overlay_t *overlay; | |
18360 | uint32_t palette_type; | |
18361 | uint32_t *palette; | |
18362 | int32_t buttonN; | |
18363 | ||
18364 | vo_buttons_t button[32]; | |
18365 | } video_overlay_object_t; | |
18366 | ||
18367 | ||
18368 | typedef struct video_overlay_event_s { | |
18369 | uint32_t event_type; | |
18370 | int64_t vpts; | |
18371 | ||
18372 | ||
18373 | ||
18374 | ||
18375 | video_overlay_object_t object; | |
18376 | } video_overlay_event_t; | |
18377 | ||
18378 | video_overlay_manager_t *_x_video_overlay_new_manager(xine_t *) ; | |
18379 | # 38 "/usr/include/xine/osd.h" 2 3 4 | |
18380 | ||
18381 | ||
18382 | typedef struct osd_object_s osd_object_t; | |
18383 | typedef struct osd_renderer_s osd_renderer_t; | |
18384 | typedef struct osd_font_s osd_font_t; | |
18385 | typedef struct osd_ft2context_s osd_ft2context_t; | |
18386 | ||
18387 | struct osd_object_s { | |
18388 | osd_object_t *next; | |
18389 | osd_renderer_t *renderer; | |
18390 | ||
18391 | int width, height; | |
18392 | uint8_t *area; | |
18393 | int display_x,display_y; | |
18394 | ||
18395 | ||
18396 | int x1, y1; | |
18397 | int x2, y2; | |
18398 | ||
18399 | uint32_t color[256]; | |
18400 | uint8_t trans[256]; | |
18401 | ||
18402 | int32_t handle; | |
18403 | ||
18404 | ||
18405 | ||
18406 | ||
18407 | ||
18408 | ||
18409 | osd_font_t *font; | |
18410 | osd_ft2context_t *ft2; | |
18411 | }; | |
18412 | ||
18413 | ||
18414 | struct xine_osd_s { | |
18415 | osd_object_t osd; | |
18416 | }; | |
18417 | ||
18418 | struct osd_renderer_s { | |
18419 | # 86 "/usr/include/xine/osd.h" 3 4 | |
18420 | osd_object_t* (*new_object) (osd_renderer_t *this, int width, int height); | |
18421 | ||
18422 | ||
18423 | ||
18424 | ||
18425 | void (*free_object) (osd_object_t *osd_to_close); | |
18426 | ||
18427 | ||
18428 | ||
18429 | ||
18430 | ||
18431 | ||
18432 | int (*show) (osd_object_t *osd, int64_t vpts ); | |
18433 | ||
18434 | ||
18435 | ||
18436 | ||
18437 | ||
18438 | int (*hide) (osd_object_t *osd, int64_t vpts ); | |
18439 | ||
18440 | ||
18441 | ||
18442 | ||
18443 | void (*point) (osd_object_t *osd, int x, int y, int color); | |
18444 | ||
18445 | ||
18446 | ||
18447 | ||
18448 | void (*line) (osd_object_t *osd, | |
18449 | int x1, int y1, int x2, int y2, int color ); | |
18450 | ||
18451 | ||
18452 | ||
18453 | ||
18454 | void (*filled_rect) (osd_object_t *osd, | |
18455 | int x1, int y1, int x2, int y2, int color ); | |
18456 | ||
18457 | ||
18458 | ||
18459 | ||
18460 | void (*set_palette) (osd_object_t *osd, const uint32_t *color, const uint8_t *trans ); | |
18461 | # 138 "/usr/include/xine/osd.h" 3 4 | |
18462 | void (*set_text_palette) (osd_object_t *osd, int palette_number, | |
18463 | int color_base ); | |
18464 | ||
18465 | ||
18466 | ||
18467 | ||
18468 | void (*get_palette) (osd_object_t *osd, uint32_t *color, | |
18469 | uint8_t *trans); | |
18470 | ||
18471 | ||
18472 | ||
18473 | ||
18474 | void (*set_position) (osd_object_t *osd, int x, int y); | |
18475 | ||
18476 | ||
18477 | ||
18478 | ||
18479 | ||
18480 | int (*set_font) (osd_object_t *osd, const char *fontname, int size); | |
18481 | ||
18482 | ||
18483 | ||
18484 | ||
18485 | ||
18486 | ||
18487 | ||
18488 | int (*set_encoding) (osd_object_t *osd, const char *encoding); | |
18489 | # 175 "/usr/include/xine/osd.h" 3 4 | |
18490 | int (*render_text) (osd_object_t *osd, int x1, int y1, | |
18491 | const char *text, int color_base); | |
18492 | ||
18493 | ||
18494 | ||
18495 | ||
18496 | int (*get_text_size) (osd_object_t *osd, const char *text, | |
18497 | int *width, int *height); | |
18498 | ||
18499 | ||
18500 | ||
18501 | ||
18502 | ||
18503 | ||
18504 | void (*close) (osd_renderer_t *this); | |
18505 | ||
18506 | ||
18507 | ||
18508 | ||
18509 | void (*clear) (osd_object_t *osd ); | |
18510 | ||
18511 | ||
18512 | ||
18513 | ||
18514 | void (*draw_bitmap) (osd_object_t *osd, uint8_t *bitmap, | |
18515 | int x1, int y1, int width, int height, | |
18516 | uint8_t *palette_map); | |
18517 | ||
18518 | ||
18519 | ||
18520 | ||
18521 | ||
18522 | ||
18523 | int (*show_unscaled) (osd_object_t *osd, int64_t vpts ); | |
18524 | ||
18525 | ||
18526 | ||
18527 | ||
18528 | uint32_t (*get_capabilities) (osd_object_t *osd); | |
18529 | ||
18530 | ||
18531 | ||
18532 | pthread_mutex_t osd_mutex; | |
18533 | video_overlay_event_t event; | |
18534 | osd_object_t *osds; | |
18535 | osd_font_t *fonts; | |
18536 | int textpalette; | |
18537 | ||
18538 | xine_stream_t *stream; | |
18539 | ||
18540 | }; | |
18541 | ||
18542 | ||
18543 | ||
18544 | ||
18545 | osd_renderer_t *_x_osd_renderer_init( xine_stream_t *stream ); | |
18546 | ||
18547 | ||
18548 | ||
18549 | ||
18550 | ||
18551 | ||
18552 | #define TEXT_PALETTE_SIZE 11 | |
18553 | ||
18554 | ||
18555 | ||
18556 | ||
18557 | ||
18558 | ||
18559 | #define OSD_TEXT1 (0 * TEXT_PALETTE_SIZE) | |
18560 | #define OSD_TEXT2 (1 * TEXT_PALETTE_SIZE) | |
18561 | #define OSD_TEXT3 (2 * TEXT_PALETTE_SIZE) | |
18562 | #define OSD_TEXT4 (3 * TEXT_PALETTE_SIZE) | |
18563 | #define OSD_TEXT5 (4 * TEXT_PALETTE_SIZE) | |
18564 | #define OSD_TEXT6 (5 * TEXT_PALETTE_SIZE) | |
18565 | #define OSD_TEXT7 (6 * TEXT_PALETTE_SIZE) | |
18566 | #define OSD_TEXT8 (7 * TEXT_PALETTE_SIZE) | |
18567 | #define OSD_TEXT9 (8 * TEXT_PALETTE_SIZE) | |
18568 | #define OSD_TEXT10 (9 * TEXT_PALETTE_SIZE) | |
18569 | ||
18570 | ||
18571 | ||
18572 | ||
18573 | ||
18574 | ||
18575 | #define NUMBER_OF_TEXT_PALETTES 4 | |
18576 | #define TEXTPALETTE_WHITE_BLACK_TRANSPARENT 0 | |
18577 | #define TEXTPALETTE_WHITE_NONE_TRANSPARENT 1 | |
18578 | #define TEXTPALETTE_WHITE_NONE_TRANSLUCID 2 | |
18579 | #define TEXTPALETTE_YELLOW_BLACK_TRANSPARENT 3 | |
18580 | # 63 "/usr/include/xine/xine_internal.h" 2 3 4 | |
18581 | # 1 "/usr/include/xine/xineintl.h" 1 3 4 | |
18582 | # 25 "/usr/include/xine/xineintl.h" 3 4 | |
18583 | #define HAVE_XINEINTL_H | |
18584 | ||
18585 | ||
18586 | ||
18587 | ||
18588 | ||
18589 | # 1 "/usr/include/locale.h" 1 3 4 | |
18590 | ||
18591 | ||
18592 | ||
18593 | ||
18594 | ||
18595 | ||
18596 | ||
18597 | # 1 "/usr/include/gentoo-multilib/amd64/locale.h" 1 3 4 | |
18598 | # 24 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 | |
18599 | #define _LOCALE_H 1 | |
18600 | ||
18601 | # 1 "/usr/include/features.h" 1 3 4 | |
18602 | # 27 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 | |
18603 | ||
18604 | #define __need_NULL | |
18605 | # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4 | |
18606 | # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/stddef.h" 3 4 | |
18607 | #undef NULL | |
18608 | ||
18609 | ||
18610 | ||
18611 | ||
18612 | #define NULL ((void *)0) | |
18613 | ||
18614 | ||
18615 | ||
18616 | ||
18617 | ||
18618 | #undef __need_NULL | |
18619 | # 30 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 | |
18620 | # 1 "/usr/include/bits/locale.h" 1 3 4 | |
18621 | ||
18622 | ||
18623 | ||
18624 | ||
18625 | ||
18626 | ||
18627 | ||
18628 | # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4 | |
18629 | # 25 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 3 4 | |
18630 | #define _BITS_LOCALE_H 1 | |
18631 | ||
18632 | enum | |
18633 | { | |
18634 | __LC_CTYPE = 0, | |
18635 | __LC_NUMERIC = 1, | |
18636 | __LC_TIME = 2, | |
18637 | __LC_COLLATE = 3, | |
18638 | __LC_MONETARY = 4, | |
18639 | __LC_MESSAGES = 5, | |
18640 | __LC_ALL = 6, | |
18641 | __LC_PAPER = 7, | |
18642 | __LC_NAME = 8, | |
18643 | __LC_ADDRESS = 9, | |
18644 | __LC_TELEPHONE = 10, | |
18645 | __LC_MEASUREMENT = 11, | |
18646 | __LC_IDENTIFICATION = 12 | |
18647 | }; | |
18648 | # 9 "/usr/include/bits/locale.h" 2 3 4 | |
18649 | # 31 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 | |
18650 | ||
18651 | ||
18652 | ||
18653 | ||
18654 | ||
18655 | #define LC_CTYPE __LC_CTYPE | |
18656 | #define LC_NUMERIC __LC_NUMERIC | |
18657 | #define LC_TIME __LC_TIME | |
18658 | #define LC_COLLATE __LC_COLLATE | |
18659 | #define LC_MONETARY __LC_MONETARY | |
18660 | #define LC_MESSAGES __LC_MESSAGES | |
18661 | #define LC_ALL __LC_ALL | |
18662 | #define LC_PAPER __LC_PAPER | |
18663 | #define LC_NAME __LC_NAME | |
18664 | #define LC_ADDRESS __LC_ADDRESS | |
18665 | #define LC_TELEPHONE __LC_TELEPHONE | |
18666 | #define LC_MEASUREMENT __LC_MEASUREMENT | |
18667 | #define LC_IDENTIFICATION __LC_IDENTIFICATION | |
18668 | ||
18669 | ||
18670 | ||
18671 | struct lconv | |
18672 | { | |
18673 | ||
18674 | ||
18675 | char *decimal_point; | |
18676 | char *thousands_sep; | |
18677 | ||
18678 | ||
18679 | ||
18680 | ||
18681 | ||
18682 | char *grouping; | |
18683 | ||
18684 | ||
18685 | ||
18686 | ||
18687 | ||
18688 | char *int_curr_symbol; | |
18689 | char *currency_symbol; | |
18690 | char *mon_decimal_point; | |
18691 | char *mon_thousands_sep; | |
18692 | char *mon_grouping; | |
18693 | char *positive_sign; | |
18694 | char *negative_sign; | |
18695 | char int_frac_digits; | |
18696 | char frac_digits; | |
18697 | ||
18698 | char p_cs_precedes; | |
18699 | ||
18700 | char p_sep_by_space; | |
18701 | ||
18702 | char n_cs_precedes; | |
18703 | ||
18704 | char n_sep_by_space; | |
18705 | ||
18706 | ||
18707 | ||
18708 | ||
18709 | ||
18710 | ||
18711 | char p_sign_posn; | |
18712 | char n_sign_posn; | |
18713 | ||
18714 | ||
18715 | char int_p_cs_precedes; | |
18716 | ||
18717 | char int_p_sep_by_space; | |
18718 | ||
18719 | char int_n_cs_precedes; | |
18720 | ||
18721 | char int_n_sep_by_space; | |
18722 | ||
18723 | ||
18724 | ||
18725 | ||
18726 | ||
18727 | ||
18728 | char int_p_sign_posn; | |
18729 | char int_n_sign_posn; | |
18730 | # 119 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 | |
18731 | }; | |
18732 | ||
18733 | ||
18734 | ||
18735 | ||
18736 | ||
18737 | extern char *setlocale (int __category, __const char *__locale) __attribute__ ((__nothrow__)); | |
18738 | ||
18739 | ||
18740 | extern struct lconv *localeconv (void) __attribute__ ((__nothrow__)); | |
18741 | ||
18742 | ||
18743 | # 146 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 | |
18744 | # 1 "/usr/include/xlocale.h" 1 3 4 | |
18745 | # 147 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4 | |
18746 | ||
18747 | typedef __locale_t locale_t; | |
18748 | ||
18749 | ||
18750 | ||
18751 | ||
18752 | ||
18753 | extern __locale_t newlocale (int __category_mask, __const char *__locale, | |
18754 | __locale_t __base) __attribute__ ((__nothrow__)); | |
18755 | ||
18756 | ||
18757 | ||
18758 | ||
18759 | ||
18760 | #define LC_CTYPE_MASK (1 << __LC_CTYPE) | |
18761 | #define LC_NUMERIC_MASK (1 << __LC_NUMERIC) | |
18762 | #define LC_TIME_MASK (1 << __LC_TIME) | |
18763 | #define LC_COLLATE_MASK (1 << __LC_COLLATE) | |
18764 | #define LC_MONETARY_MASK (1 << __LC_MONETARY) | |
18765 | #define LC_MESSAGES_MASK (1 << __LC_MESSAGES) | |
18766 | #define LC_PAPER_MASK (1 << __LC_PAPER) | |
18767 | #define LC_NAME_MASK (1 << __LC_NAME) | |
18768 | #define LC_ADDRESS_MASK (1 << __LC_ADDRESS) | |
18769 | #define LC_TELEPHONE_MASK (1 << __LC_TELEPHONE) | |
18770 | #define LC_MEASUREMENT_MASK (1 << __LC_MEASUREMENT) | |
18771 | #define LC_IDENTIFICATION_MASK (1 << __LC_IDENTIFICATION) | |
18772 | #define LC_ALL_MASK (LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK | LC_TELEPHONE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK ) | |
18773 | # 189 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4 | |
18774 | extern __locale_t duplocale (__locale_t __dataset) __attribute__ ((__nothrow__)); | |
18775 | ||
18776 | ||
18777 | ||
18778 | extern void freelocale (__locale_t __dataset) __attribute__ ((__nothrow__)); | |
18779 | ||
18780 | ||
18781 | ||
18782 | ||
18783 | ||
18784 | ||
18785 | extern __locale_t uselocale (__locale_t __dataset) __attribute__ ((__nothrow__)); | |
18786 | ||
18787 | ||
18788 | ||
18789 | #define LC_GLOBAL_LOCALE ((__locale_t) -1L) | |
18790 | ||
18791 | ||
18792 | ||
18793 | ||
18794 | # 9 "/usr/include/locale.h" 2 3 4 | |
18795 | # 32 "/usr/include/xine/xineintl.h" 2 3 4 | |
18796 | # 43 "/usr/include/xine/xineintl.h" 3 4 | |
18797 | #define textdomain(String) (String) | |
18798 | #define gettext(String) (String) | |
18799 | #define dgettext(Domain,Message) (Message) | |
18800 | #define dcgettext(Domain,Message,Type) (Message) | |
18801 | #define ngettext(Singular,Plural,IsPlural) (Singular) | |
18802 | #define bindtextdomain(Domain,Directory) (Domain) | |
18803 | #define _(String) (String) | |
18804 | #define N_(String) (String) | |
18805 | # 64 "/usr/include/xine/xine_internal.h" 2 3 4 | |
18806 | # 1 "/usr/include/xine/plugin_catalog.h" 1 3 4 | |
18807 | # 27 "/usr/include/xine/plugin_catalog.h" 3 4 | |
18808 | #define _PLUGIN_CATALOG_H | |
18809 | ||
18810 | ||
18811 | ||
18812 | ||
18813 | ||
18814 | # 1 "/usr/include/xine/xine_plugin.h" 1 3 4 | |
18815 | # 27 "/usr/include/xine/xine_plugin.h" 3 4 | |
18816 | #define XINE_PLUGIN_H | |
18817 | ||
18818 | #define PLUGIN_NONE 0 | |
18819 | #define PLUGIN_INPUT 1 | |
18820 | #define PLUGIN_DEMUX 2 | |
18821 | #define PLUGIN_AUDIO_DECODER 3 | |
18822 | #define PLUGIN_VIDEO_DECODER 4 | |
18823 | #define PLUGIN_SPU_DECODER 5 | |
18824 | #define PLUGIN_AUDIO_OUT 6 | |
18825 | #define PLUGIN_VIDEO_OUT 7 | |
18826 | #define PLUGIN_POST 8 | |
18827 | ||
18828 | #define PLUGIN_TYPE_MAX PLUGIN_POST | |
18829 | ||
18830 | ||
18831 | ||
18832 | ||
18833 | #define PLUGIN_MUST_PRELOAD (1 << 7) | |
18834 | ||
18835 | ||
18836 | ||
18837 | ||
18838 | #define PLUGIN_NO_UNLOAD (1 << 6) | |
18839 | ||
18840 | #define PLUGIN_TYPE_MASK ((1 << 6) - 1) | |
18841 | ||
18842 | typedef struct { | |
18843 | uint8_t type; | |
18844 | uint8_t API; | |
18845 | char *id; | |
18846 | uint32_t version; | |
18847 | const void *special_info; | |
18848 | void *(*init)(xine_t *, void *); | |
18849 | } plugin_info_t; | |
18850 | ||
18851 | ||
18852 | ||
18853 | typedef struct { | |
18854 | int priority; | |
18855 | int visual_type; | |
18856 | } vo_info_t; | |
18857 | ||
18858 | ||
18859 | typedef struct { | |
18860 | int priority; | |
18861 | } ao_info_t; | |
18862 | ||
18863 | ||
18864 | typedef struct { | |
18865 | uint32_t *supported_types; | |
18866 | int priority; | |
18867 | } decoder_info_t; | |
18868 | ||
18869 | ||
18870 | typedef struct { | |
18871 | uint32_t type; | |
18872 | } post_info_t; | |
18873 | ||
18874 | ||
18875 | typedef struct { | |
18876 | int priority; | |
18877 | } demuxer_info_t; | |
18878 | ||
18879 | ||
18880 | typedef struct { | |
18881 | int priority; | |
18882 | } input_info_t; | |
18883 | # 106 "/usr/include/xine/xine_plugin.h" 3 4 | |
18884 | void xine_register_plugins(xine_t *self, plugin_info_t *info) ; | |
18885 | # 34 "/usr/include/xine/plugin_catalog.h" 2 3 4 | |
18886 | ||
18887 | ||
18888 | ||
18889 | #define DECODER_MAX 128 | |
18890 | #define PLUGIN_MAX 256 | |
18891 | ||
18892 | ||
18893 | #define PLUGINS_PER_TYPE 10 | |
18894 | ||
18895 | #define CACHE_CATALOG_VERSION 2 | |
18896 | #define CACHE_CATALOG_FILE ".xine/catalog.cache" | |
18897 | #define CACHE_CATALOG_DIR ".xine" | |
18898 | ||
18899 | typedef struct { | |
18900 | char *filename; | |
18901 | off_t filesize; | |
18902 | time_t filemtime; | |
18903 | int ref; | |
18904 | void *lib_handle; | |
18905 | int no_unload; | |
18906 | } plugin_file_t ; | |
18907 | ||
18908 | typedef struct { | |
18909 | plugin_file_t *file; | |
18910 | plugin_info_t *info; | |
18911 | void *plugin_class; | |
18912 | int ref; | |
18913 | int priority; | |
18914 | } plugin_node_t ; | |
18915 | ||
18916 | struct plugin_catalog_s { | |
18917 | xine_sarray_t *plugin_lists[8]; | |
18918 | ||
18919 | xine_sarray_t *cache_list; | |
18920 | xine_list_t *file_list; | |
18921 | ||
18922 | plugin_node_t *audio_decoder_map[128][10]; | |
18923 | plugin_node_t *video_decoder_map[128][10]; | |
18924 | plugin_node_t *spu_decoder_map[128][10]; | |
18925 | ||
18926 | const char *ids[256]; | |
18927 | ||
18928 | ||
18929 | char *prio_desc[128]; | |
18930 | ||
18931 | pthread_mutex_t lock; | |
18932 | ||
18933 | int plugin_count; | |
18934 | int decoder_count; | |
18935 | }; | |
18936 | typedef struct plugin_catalog_s plugin_catalog_t; | |
18937 | # 93 "/usr/include/xine/plugin_catalog.h" 3 4 | |
18938 | void _x_scan_plugins (xine_t *this) ; | |
18939 | ||
18940 | ||
18941 | ||
18942 | ||
18943 | ||
18944 | ||
18945 | void _x_dispose_plugins (xine_t *this) ; | |
18946 | # 65 "/usr/include/xine/xine_internal.h" 2 3 4 | |
18947 | # 1 "/usr/include/xine/video_decoder.h" 1 3 4 | |
18948 | # 27 "/usr/include/xine/video_decoder.h" 3 4 | |
18949 | #define HAVE_VIDEO_DECODER_H | |
18950 | # 37 "/usr/include/xine/video_decoder.h" 3 4 | |
18951 | #define VIDEO_DECODER_IFACE_VERSION 18 | |
18952 | ||
18953 | ||
18954 | ||
18955 | ||
18956 | ||
18957 | ||
18958 | typedef struct video_decoder_class_s video_decoder_class_t; | |
18959 | typedef struct video_decoder_s video_decoder_t; | |
18960 | ||
18961 | struct video_decoder_class_s { | |
18962 | ||
18963 | ||
18964 | ||
18965 | ||
18966 | video_decoder_t* (*open_plugin) (video_decoder_class_t *this, xine_stream_t *stream); | |
18967 | ||
18968 | ||
18969 | ||
18970 | ||
18971 | char* (*get_identifier) (video_decoder_class_t *this); | |
18972 | ||
18973 | ||
18974 | ||
18975 | ||
18976 | ||
18977 | char* (*get_description) (video_decoder_class_t *this); | |
18978 | ||
18979 | ||
18980 | ||
18981 | ||
18982 | void (*dispose) (video_decoder_class_t *this); | |
18983 | }; | |
18984 | ||
18985 | ||
18986 | struct video_decoder_s { | |
18987 | ||
18988 | ||
18989 | ||
18990 | ||
18991 | ||
18992 | void (*decode_data) (video_decoder_t *this, buf_element_t *buf); | |
18993 | ||
18994 | ||
18995 | ||
18996 | ||
18997 | ||
18998 | void (*reset) (video_decoder_t *this); | |
18999 | ||
19000 | ||
19001 | ||
19002 | ||
19003 | ||
19004 | void (*discontinuity) (video_decoder_t *this); | |
19005 | ||
19006 | ||
19007 | ||
19008 | ||
19009 | void (*flush) (video_decoder_t *this); | |
19010 | ||
19011 | ||
19012 | ||
19013 | ||
19014 | void (*dispose) (video_decoder_t *this); | |
19015 | ||
19016 | ||
19017 | void *node; | |
19018 | ||
19019 | }; | |
19020 | # 66 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19021 | # 1 "/usr/include/xine/audio_decoder.h" 1 3 4 | |
19022 | # 27 "/usr/include/xine/audio_decoder.h" 3 4 | |
19023 | #define HAVE_AUDIO_DECODER_H | |
19024 | # 37 "/usr/include/xine/audio_decoder.h" 3 4 | |
19025 | #define AUDIO_DECODER_IFACE_VERSION 15 | |
19026 | ||
19027 | ||
19028 | ||
19029 | ||
19030 | ||
19031 | typedef struct audio_decoder_class_s audio_decoder_class_t; | |
19032 | typedef struct audio_decoder_s audio_decoder_t; | |
19033 | ||
19034 | struct audio_decoder_class_s { | |
19035 | ||
19036 | ||
19037 | ||
19038 | ||
19039 | audio_decoder_t* (*open_plugin) (audio_decoder_class_t *this, xine_stream_t *stream); | |
19040 | ||
19041 | ||
19042 | ||
19043 | ||
19044 | char* (*get_identifier) (audio_decoder_class_t *this); | |
19045 | ||
19046 | ||
19047 | ||
19048 | ||
19049 | ||
19050 | char* (*get_description) (audio_decoder_class_t *this); | |
19051 | ||
19052 | ||
19053 | ||
19054 | ||
19055 | ||
19056 | void (*dispose) (audio_decoder_class_t *this); | |
19057 | }; | |
19058 | ||
19059 | ||
19060 | struct audio_decoder_s { | |
19061 | ||
19062 | ||
19063 | ||
19064 | ||
19065 | ||
19066 | void (*decode_data) (audio_decoder_t *this, buf_element_t *buf); | |
19067 | ||
19068 | ||
19069 | ||
19070 | ||
19071 | ||
19072 | void (*reset) (audio_decoder_t *this); | |
19073 | ||
19074 | ||
19075 | ||
19076 | ||
19077 | ||
19078 | void (*discontinuity) (audio_decoder_t *this); | |
19079 | ||
19080 | ||
19081 | ||
19082 | ||
19083 | void (*dispose) (audio_decoder_t *this); | |
19084 | ||
19085 | void *node; | |
19086 | ||
19087 | }; | |
19088 | # 67 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19089 | # 1 "/usr/include/xine/spu_decoder.h" 1 3 4 | |
19090 | # 25 "/usr/include/xine/spu_decoder.h" 3 4 | |
19091 | #define HAVE_SPU_API_H | |
19092 | # 35 "/usr/include/xine/spu_decoder.h" 3 4 | |
19093 | #define SPU_DECODER_IFACE_VERSION 16 | |
19094 | ||
19095 | ||
19096 | ||
19097 | ||
19098 | ||
19099 | typedef struct spu_decoder_class_s spu_decoder_class_t; | |
19100 | typedef struct spu_decoder_s spu_decoder_t; | |
19101 | ||
19102 | struct spu_decoder_class_s { | |
19103 | ||
19104 | ||
19105 | ||
19106 | ||
19107 | spu_decoder_t* (*open_plugin) (spu_decoder_class_t *this, xine_stream_t *stream); | |
19108 | ||
19109 | ||
19110 | ||
19111 | ||
19112 | char* (*get_identifier) (spu_decoder_class_t *this); | |
19113 | ||
19114 | ||
19115 | ||
19116 | ||
19117 | ||
19118 | char* (*get_description) (spu_decoder_class_t *this); | |
19119 | ||
19120 | ||
19121 | ||
19122 | ||
19123 | void (*dispose) (spu_decoder_class_t *this); | |
19124 | }; | |
19125 | ||
19126 | ||
19127 | struct spu_decoder_s { | |
19128 | ||
19129 | ||
19130 | ||
19131 | ||
19132 | void (*decode_data) (spu_decoder_t *this, buf_element_t *buf); | |
19133 | ||
19134 | ||
19135 | ||
19136 | ||
19137 | ||
19138 | void (*reset) (spu_decoder_t *this); | |
19139 | ||
19140 | ||
19141 | ||
19142 | ||
19143 | ||
19144 | void (*discontinuity) (spu_decoder_t *this); | |
19145 | ||
19146 | ||
19147 | ||
19148 | ||
19149 | void (*dispose) (spu_decoder_t *this); | |
19150 | # 103 "/usr/include/xine/spu_decoder.h" 3 4 | |
19151 | int (*get_interact_info) (spu_decoder_t *this, void *data); | |
19152 | # 112 "/usr/include/xine/spu_decoder.h" 3 4 | |
19153 | void (*set_button) (spu_decoder_t *this_gen, int32_t button, int32_t mode); | |
19154 | ||
19155 | void *node; | |
19156 | }; | |
19157 | # 142 "/usr/include/xine/spu_decoder.h" 3 4 | |
19158 | int _x_spu_decoder_sleep(xine_stream_t *, int64_t next_spu_vpts) ; | |
19159 | # 68 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19160 | # 1 "/usr/include/xine/scratch.h" 1 3 4 | |
19161 | # 27 "/usr/include/xine/scratch.h" 3 4 | |
19162 | #define HAVE_SCRATCH_H | |
19163 | ||
19164 | ||
19165 | # 1 "/usr/include/pthread.h" 1 3 4 | |
19166 | # 31 "/usr/include/xine/scratch.h" 2 3 4 | |
19167 | ||
19168 | typedef struct scratch_buffer_s scratch_buffer_t; | |
19169 | ||
19170 | #define SCRATCH_LINE_LEN_MAX 1024 | |
19171 | ||
19172 | struct scratch_buffer_s { | |
19173 | ||
19174 | void | |
19175 | ||
19176 | __attribute__((__format__(__printf__, 2, 0))) | |
19177 | ||
19178 | (*scratch_printf) (scratch_buffer_t *this, const char *format, va_list ap); | |
19179 | ||
19180 | char **(*get_content) (scratch_buffer_t *this); | |
19181 | ||
19182 | void (*dispose) (scratch_buffer_t *this); | |
19183 | ||
19184 | char **lines; | |
19185 | char **ordered; | |
19186 | ||
19187 | int num_lines; | |
19188 | int cur; | |
19189 | ||
19190 | pthread_mutex_t lock; | |
19191 | }; | |
19192 | ||
19193 | scratch_buffer_t *_x_new_scratch_buffer (int num_lines) ; | |
19194 | # 69 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19195 | # 1 "/usr/include/xine/broadcaster.h" 1 3 4 | |
19196 | # 27 "/usr/include/xine/broadcaster.h" 3 4 | |
19197 | #define HAVE_BROADCASTER_H | |
19198 | ||
19199 | ||
19200 | ||
19201 | ||
19202 | ||
19203 | ||
19204 | # 1 "../../../config.h" 1 3 4 | |
19205 | # 14 "../../../config.h" 3 4 | |
19206 | #define DIRECTFB_VERSION "0.9.25" | |
19207 | ||
19208 | ||
19209 | #define HAVE_DLFCN_H 1 | |
19210 | ||
19211 | ||
19212 | ||
19213 | ||
19214 | ||
19215 | #define HAVE_INTTYPES_H 1 | |
19216 | ||
19217 | ||
19218 | #define HAVE_MEMORY_H 1 | |
19219 | ||
19220 | ||
19221 | #define HAVE_STDINT_H 1 | |
19222 | ||
19223 | ||
19224 | #define HAVE_STDLIB_H 1 | |
19225 | ||
19226 | ||
19227 | #define HAVE_STRINGS_H 1 | |
19228 | ||
19229 | ||
19230 | #define HAVE_STRING_H 1 | |
19231 | ||
19232 | ||
19233 | #define HAVE_SYS_STAT_H 1 | |
19234 | ||
19235 | ||
19236 | #define HAVE_SYS_TYPES_H 1 | |
19237 | ||
19238 | ||
19239 | #define HAVE_UNISTD_H 1 | |
19240 | ||
19241 | ||
19242 | #define PACKAGE_BUGREPORT "" | |
19243 | ||
19244 | ||
19245 | #define PACKAGE_NAME "" | |
19246 | ||
19247 | ||
19248 | #define PACKAGE_STRING "" | |
19249 | ||
19250 | ||
19251 | #define PACKAGE_TARNAME "" | |
19252 | ||
19253 | ||
19254 | #define PACKAGE_VERSION "" | |
19255 | ||
19256 | ||
19257 | #define STDC_HEADERS 1 | |
19258 | ||
19259 | ||
19260 | #define USE_MMX 1 | |
19261 | # 35 "/usr/include/xine/broadcaster.h" 2 3 4 | |
19262 | ||
19263 | ||
19264 | typedef struct broadcaster_s broadcaster_t; | |
19265 | ||
19266 | broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port) ; | |
19267 | void _x_close_broadcaster(broadcaster_t *this) ; | |
19268 | int _x_get_broadcaster_port(broadcaster_t *this) ; | |
19269 | # 70 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19270 | # 1 "/usr/include/xine/io_helper.h" 1 3 4 | |
19271 | # 24 "/usr/include/xine/io_helper.h" 3 4 | |
19272 | #define IO_HELPER_H | |
19273 | ||
19274 | # 1 "/usr/include/xine/xine_internal.h" 1 3 4 | |
19275 | # 27 "/usr/include/xine/io_helper.h" 2 3 4 | |
19276 | ||
19277 | ||
19278 | ||
19279 | #define XIO_READ_READY 1 | |
19280 | #define XIO_WRITE_READY 2 | |
19281 | ||
19282 | ||
19283 | #define XIO_READY 0 | |
19284 | #define XIO_ERROR 1 | |
19285 | #define XIO_ABORTED 2 | |
19286 | #define XIO_TIMEOUT 3 | |
19287 | # 61 "/usr/include/xine/io_helper.h" 3 4 | |
19288 | int _x_io_select (xine_stream_t *stream, int fd, int state, int timeout_msec) ; | |
19289 | # 74 "/usr/include/xine/io_helper.h" 3 4 | |
19290 | int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port) ; | |
19291 | # 90 "/usr/include/xine/io_helper.h" 3 4 | |
19292 | int _x_io_tcp_connect_finish(xine_stream_t *stream, int fd, int timeout_msec) ; | |
19293 | # 100 "/usr/include/xine/io_helper.h" 3 4 | |
19294 | off_t _x_io_tcp_read (xine_stream_t *stream, int s, char *buf, off_t todo) ; | |
19295 | # 111 "/usr/include/xine/io_helper.h" 3 4 | |
19296 | off_t _x_io_tcp_write (xine_stream_t *stream, int s, char *buf, off_t todo) ; | |
19297 | # 121 "/usr/include/xine/io_helper.h" 3 4 | |
19298 | off_t _x_io_file_read (xine_stream_t *stream, int fd, char *buf, off_t todo) ; | |
19299 | # 132 "/usr/include/xine/io_helper.h" 3 4 | |
19300 | off_t _x_io_file_write (xine_stream_t *stream, int fd, char *buf, off_t todo) ; | |
19301 | ||
19302 | ||
19303 | ||
19304 | ||
19305 | ||
19306 | ||
19307 | int _x_io_tcp_read_line(xine_stream_t *stream, int sock, char *str, int size) ; | |
19308 | # 71 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19309 | # 1 "/usr/include/xine/info_helper.h" 1 3 4 | |
19310 | # 27 "/usr/include/xine/info_helper.h" 3 4 | |
19311 | #define INFO_HELPER_H | |
19312 | # 41 "/usr/include/xine/info_helper.h" 3 4 | |
19313 | void _x_stream_info_set(xine_stream_t *stream, int info, int value) ; | |
19314 | # 51 "/usr/include/xine/info_helper.h" 3 4 | |
19315 | void _x_stream_info_reset(xine_stream_t *stream, int info) ; | |
19316 | # 61 "/usr/include/xine/info_helper.h" 3 4 | |
19317 | void _x_stream_info_public_reset(xine_stream_t *stream, int info) ; | |
19318 | # 71 "/usr/include/xine/info_helper.h" 3 4 | |
19319 | uint32_t _x_stream_info_get(xine_stream_t *stream, int info) ; | |
19320 | # 81 "/usr/include/xine/info_helper.h" 3 4 | |
19321 | uint32_t _x_stream_info_get_public(xine_stream_t *stream, int info) ; | |
19322 | # 92 "/usr/include/xine/info_helper.h" 3 4 | |
19323 | void _x_meta_info_set(xine_stream_t *stream, int info, const char *str) ; | |
19324 | # 103 "/usr/include/xine/info_helper.h" 3 4 | |
19325 | void _x_meta_info_set_utf8(xine_stream_t *stream, int info, const char *str) ; | |
19326 | # 115 "/usr/include/xine/info_helper.h" 3 4 | |
19327 | void _x_meta_info_set_generic(xine_stream_t *stream, int info, const char *str, const char *enc) ; | |
19328 | # 126 "/usr/include/xine/info_helper.h" 3 4 | |
19329 | void _x_meta_info_set_multi(xine_stream_t *stream, int info, ...) ; | |
19330 | # 138 "/usr/include/xine/info_helper.h" 3 4 | |
19331 | void _x_meta_info_n_set(xine_stream_t *stream, int info, const char *buf, int len) ; | |
19332 | # 148 "/usr/include/xine/info_helper.h" 3 4 | |
19333 | void _x_meta_info_reset(xine_stream_t *stream, int info) ; | |
19334 | # 158 "/usr/include/xine/info_helper.h" 3 4 | |
19335 | void _x_meta_info_public_reset(xine_stream_t *stream, int info) ; | |
19336 | # 168 "/usr/include/xine/info_helper.h" 3 4 | |
19337 | const char *_x_meta_info_get(xine_stream_t *stream, int info) ; | |
19338 | # 178 "/usr/include/xine/info_helper.h" 3 4 | |
19339 | const char *_x_meta_info_get_public(xine_stream_t *stream, int info) ; | |
19340 | # 72 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19341 | # 1 "/usr/include/xine/alphablend.h" 1 3 4 | |
19342 | # 26 "/usr/include/xine/alphablend.h" 3 4 | |
19343 | #define __ALPHABLEND_H__ | |
19344 | ||
19345 | # 1 "/usr/include/xine/video_out.h" 1 3 4 | |
19346 | # 29 "/usr/include/xine/alphablend.h" 2 3 4 | |
19347 | ||
19348 | typedef struct { | |
19349 | void *buffer; | |
19350 | int buffer_size; | |
19351 | ||
19352 | int disable_exact_blending; | |
19353 | ||
19354 | int offset_x, offset_y; | |
19355 | } alphablend_t; | |
19356 | ||
19357 | void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine) ; | |
19358 | void _x_alphablend_free(alphablend_t *extra_data) ; | |
19359 | ||
19360 | ||
19361 | #undef ATTRIBUTE_PACKED | |
19362 | #undef PRAGMA_PACK_BEGIN | |
19363 | #undef PRAGMA_PACK_END | |
19364 | ||
19365 | ||
19366 | #define ATTRIBUTE_PACKED __attribute__ ((packed)) | |
19367 | #define PRAGMA_PACK 0 | |
19368 | # 61 "/usr/include/xine/alphablend.h" 3 4 | |
19369 | typedef struct { | |
19370 | uint8_t cb; | |
19371 | uint8_t cr; | |
19372 | uint8_t y; | |
19373 | uint8_t foo; | |
19374 | } __attribute__ ((packed)) clut_t; | |
19375 | ||
19376 | ||
19377 | ||
19378 | ||
19379 | ||
19380 | ||
19381 | #define XX44_PALETTE_SIZE 32 | |
19382 | ||
19383 | typedef struct { | |
19384 | unsigned size; | |
19385 | unsigned max_used; | |
19386 | uint32_t cluts[32]; | |
19387 | ||
19388 | int lookup_cache[256*2]; | |
19389 | } xx44_palette_t; | |
19390 | ||
19391 | ||
19392 | void _x_blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl, | |
19393 | int img_width, int img_height, | |
19394 | int dst_width, int dst_height, | |
19395 | alphablend_t *extra_data) ; | |
19396 | ||
19397 | void _x_blend_rgb24 (uint8_t * img, vo_overlay_t * img_overl, | |
19398 | int img_width, int img_height, | |
19399 | int dst_width, int dst_height, | |
19400 | alphablend_t *extra_data) ; | |
19401 | ||
19402 | void _x_blend_rgb32 (uint8_t * img, vo_overlay_t * img_overl, | |
19403 | int img_width, int img_height, | |
19404 | int dst_width, int dst_height, | |
19405 | alphablend_t *extra_data) ; | |
19406 | ||
19407 | void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl, | |
19408 | int dst_width, int dst_height, int dst_pitches[3], | |
19409 | alphablend_t *extra_data) ; | |
19410 | ||
19411 | void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl, | |
19412 | int dst_width, int dst_height, int dst_pitch, | |
19413 | alphablend_t *extra_data) ; | |
19414 | # 114 "/usr/include/xine/alphablend.h" 3 4 | |
19415 | void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl, | |
19416 | int dst_width, int dst_height, int dst_pitch, | |
19417 | alphablend_t *extra_data, | |
19418 | xx44_palette_t *palette,int ia44) ; | |
19419 | ||
19420 | ||
19421 | ||
19422 | ||
19423 | ||
19424 | void _x_clear_xx44_palette(xx44_palette_t *p) ; | |
19425 | void _x_init_xx44_palette(xx44_palette_t *p, unsigned num_entries) ; | |
19426 | void _x_dispose_xx44_palette(xx44_palette_t *p) ; | |
19427 | ||
19428 | ||
19429 | ||
19430 | ||
19431 | ||
19432 | void _x_xx44_to_xvmc_palette(const xx44_palette_t *p,unsigned char *xvmc_palette, | |
19433 | unsigned first_xx44_entry, unsigned num_xx44_entries, | |
19434 | unsigned num_xvmc_components, char *xvmc_components) ; | |
19435 | # 73 "/usr/include/xine/xine_internal.h" 2 3 4 | |
19436 | ||
19437 | ||
19438 | ||
19439 | #define XINE_MAX_EVENT_LISTENERS 50 | |
19440 | #define XINE_MAX_EVENT_TYPES 100 | |
19441 | ||
19442 | ||
19443 | #define XINE_VERSION_CODE XINE_MAJOR_VERSION*10000+XINE_MINOR_VERSION*100+XINE_SUB_VERSION | |
19444 | ||
19445 | ||
19446 | ||
19447 | ||
19448 | ||
19449 | ||
19450 | #define XINE_LOG_MSG 0 | |
19451 | #define XINE_LOG_PLUGIN 1 | |
19452 | #define XINE_LOG_TRACE 2 | |
19453 | #define XINE_LOG_NUM 3 | |
19454 | ||
19455 | #define XINE_STREAM_INFO_MAX 99 | |
19456 | ||
19457 | typedef struct xine_ticket_s xine_ticket_t; | |
19458 | ||
19459 | ||
19460 | ||
19461 | ||
19462 | ||
19463 | struct xine_s { | |
19464 | ||
19465 | config_values_t *config; | |
19466 | ||
19467 | plugin_catalog_t *plugin_catalog; | |
19468 | ||
19469 | int demux_strategy; | |
19470 | char *save_path; | |
19471 | ||
19472 | ||
19473 | scratch_buffer_t *log_buffers[3]; | |
19474 | ||
19475 | int verbosity; | |
19476 | ||
19477 | xine_list_t *streams; | |
19478 | pthread_mutex_t streams_lock; | |
19479 | ||
19480 | metronom_clock_t *clock; | |
19481 | ||
19482 | ||
19483 | ||
19484 | ||
19485 | ||
19486 | }; | |
19487 | ||
19488 | ||
19489 | ||
19490 | ||
19491 | ||
19492 | struct xine_ticket_s { | |
19493 | ||
19494 | ||
19495 | ||
19496 | ||
19497 | ||
19498 | ||
19499 | ||
19500 | int ticket_revoked; | |
19501 | ||
19502 | ||
19503 | ||
19504 | ||
19505 | void (*acquire)(xine_ticket_t *self, int irrevocable); | |
19506 | ||
19507 | ||
19508 | void (*release)(xine_ticket_t *self, int irrevocable); | |
19509 | ||
19510 | ||
19511 | ||
19512 | ||
19513 | ||
19514 | void (*renew)(xine_ticket_t *self, int irrevocable); | |
19515 | # 174 "/usr/include/xine/xine_internal.h" 3 4 | |
19516 | }; | |
19517 | ||
19518 | ||
19519 | ||
19520 | ||
19521 | ||
19522 | struct xine_event_queue_s { | |
19523 | xine_list_t *events; | |
19524 | pthread_mutex_t lock; | |
19525 | pthread_cond_t new_event; | |
19526 | pthread_cond_t events_processed; | |
19527 | xine_stream_t *stream; | |
19528 | pthread_t *listener_thread; | |
19529 | xine_event_listener_cb_t callback; | |
19530 | int callback_running; | |
19531 | void *user_data; | |
19532 | }; | |
19533 | ||
19534 | ||
19535 | ||
19536 | ||
19537 | ||
19538 | struct xine_stream_s { | |
19539 | ||
19540 | ||
19541 | xine_t *xine; | |
19542 | ||
19543 | ||
19544 | metronom_t *metronom; | |
19545 | ||
19546 | ||
19547 | input_plugin_t *input_plugin; | |
19548 | ||
19549 | ||
19550 | int content_detection_method; | |
19551 | ||
19552 | ||
19553 | xine_video_port_t *video_out; | |
19554 | ||
19555 | ||
19556 | fifo_buffer_t *video_fifo; | |
19557 | ||
19558 | ||
19559 | xine_audio_port_t *audio_out; | |
19560 | ||
19561 | ||
19562 | fifo_buffer_t *audio_fifo; | |
19563 | ||
19564 | ||
19565 | osd_renderer_t *osd_renderer; | |
19566 | ||
19567 | ||
19568 | xine_stream_t *master; | |
19569 | xine_stream_t *slave; | |
19570 | ||
19571 | ||
19572 | spu_decoder_t *spu_decoder_plugin; | |
19573 | ||
19574 | ||
19575 | vo_driver_t *video_driver; | |
19576 | ||
19577 | ||
19578 | int audio_channel_auto; | |
19579 | int spu_decoder_streamtype; | |
19580 | int spu_channel_user; | |
19581 | int spu_channel_auto; | |
19582 | int spu_channel_letterbox; | |
19583 | int spu_channel; | |
19584 | # 349 "/usr/include/xine/xine_internal.h" 3 4 | |
19585 | }; | |
19586 | ||
19587 | ||
19588 | ||
19589 | #define XINE_ANON_STREAM ((xine_stream_t *)-1) | |
19590 | ||
19591 | ||
19592 | ||
19593 | ||
19594 | ||
19595 | ||
19596 | void _x_handle_stream_end (xine_stream_t *stream, int non_user) ; | |
19597 | ||
19598 | ||
19599 | ||
19600 | int _x_message(xine_stream_t *stream, int type, ...) ; | |
19601 | ||
19602 | ||
19603 | ||
19604 | void _x_flush_events_queues (xine_stream_t *stream) ; | |
19605 | ||
19606 | ||
19607 | ||
19608 | ||
19609 | input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mrl) ; | |
19610 | demux_plugin_t *_x_find_demux_plugin (xine_stream_t *stream, input_plugin_t *input) ; | |
19611 | demux_plugin_t *_x_find_demux_plugin_by_name (xine_stream_t *stream, const char *name, input_plugin_t *input) ; | |
19612 | demux_plugin_t *_x_find_demux_plugin_last_probe(xine_stream_t *stream, const char *last_demux_name, input_plugin_t *input) ; | |
19613 | input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *filename) ; | |
19614 | input_plugin_t *_x_cache_plugin_get_instance (xine_stream_t *stream, int readahead_size) ; | |
19615 | void _x_free_input_plugin (xine_stream_t *stream, input_plugin_t *input) ; | |
19616 | void _x_free_demux_plugin (xine_stream_t *stream, demux_plugin_t *demux) ; | |
19617 | ||
19618 | ||
19619 | ||
19620 | int _x_video_decoder_init (xine_stream_t *stream) ; | |
19621 | void _x_video_decoder_shutdown (xine_stream_t *stream) ; | |
19622 | ||
19623 | int _x_audio_decoder_init (xine_stream_t *stream) ; | |
19624 | void _x_audio_decoder_shutdown (xine_stream_t *stream) ; | |
19625 | ||
19626 | ||
19627 | void _x_extra_info_reset( extra_info_t *extra_info ) ; | |
19628 | ||
19629 | void _x_extra_info_merge( extra_info_t *dst, extra_info_t *src ) ; | |
19630 | ||
19631 | void _x_get_current_info (xine_stream_t *stream, extra_info_t *extra_info, int size) ; | |
19632 | # 409 "/usr/include/xine/xine_internal.h" 3 4 | |
19633 | void _x_demux_flush_engine (xine_stream_t *stream) ; | |
19634 | ||
19635 | void _x_demux_control_nop (xine_stream_t *stream, uint32_t flags) ; | |
19636 | void _x_demux_control_newpts (xine_stream_t *stream, int64_t pts, uint32_t flags) ; | |
19637 | void _x_demux_control_headers_done (xine_stream_t *stream) ; | |
19638 | void _x_demux_control_start (xine_stream_t *stream) ; | |
19639 | void _x_demux_control_end (xine_stream_t *stream, uint32_t flags) ; | |
19640 | int _x_demux_start_thread (xine_stream_t *stream) ; | |
19641 | int _x_demux_stop_thread (xine_stream_t *stream) ; | |
19642 | int _x_demux_read_header (input_plugin_t *input, unsigned char *buffer, off_t size) ; | |
19643 | int _x_demux_check_extension (const char *mrl, const char *extensions) ; | |
19644 | ||
19645 | off_t _x_read_abort (xine_stream_t *stream, int fd, char *buf, off_t todo) ; | |
19646 | ||
19647 | int _x_action_pending (xine_stream_t *stream) ; | |
19648 | ||
19649 | void _x_demux_send_data(fifo_buffer_t *fifo, uint8_t *data, int size, | |
19650 | int64_t pts, uint32_t type, uint32_t decoder_flags, | |
19651 | int input_normpos, int input_time, int total_time, | |
19652 | uint32_t frame_number) ; | |
19653 | ||
19654 | int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input, | |
19655 | int size, int64_t pts, uint32_t type, | |
19656 | uint32_t decoder_flags, off_t input_normpos, | |
19657 | int input_time, int total_time, | |
19658 | uint32_t frame_number) ; | |
19659 | ||
19660 | void _x_demux_send_mrl_reference (xine_stream_t *stream, int alternative, | |
19661 | const char *mrl, const char *title, | |
19662 | int start_time, int duration) ; | |
19663 | # 448 "/usr/include/xine/xine_internal.h" 3 4 | |
19664 | video_decoder_t *_x_get_video_decoder (xine_stream_t *stream, uint8_t stream_type) ; | |
19665 | void _x_free_video_decoder (xine_stream_t *stream, video_decoder_t *decoder) ; | |
19666 | audio_decoder_t *_x_get_audio_decoder (xine_stream_t *stream, uint8_t stream_type) ; | |
19667 | void _x_free_audio_decoder (xine_stream_t *stream, audio_decoder_t *decoder) ; | |
19668 | spu_decoder_t *_x_get_spu_decoder (xine_stream_t *stream, uint8_t stream_type) ; | |
19669 | void _x_free_spu_decoder (xine_stream_t *stream, spu_decoder_t *decoder) ; | |
19670 | ||
19671 | int _x_decoder_available (xine_t *xine, uint32_t buftype) ; | |
19672 | ||
19673 | ||
19674 | ||
19675 | ||
19676 | ||
19677 | ||
19678 | ||
19679 | vo_driver_t *_x_load_video_output_plugin(xine_t *this, | |
19680 | char *id, int visual_type, void *visual) ; | |
19681 | # 476 "/usr/include/xine/xine_internal.h" 3 4 | |
19682 | ao_driver_t *_x_load_audio_output_plugin (xine_t *self, char *id) ; | |
19683 | ||
19684 | ||
19685 | void _x_set_speed (xine_stream_t *stream, int speed) ; | |
19686 | ||
19687 | int _x_get_speed (xine_stream_t *stream) ; | |
19688 | ||
19689 | void _x_set_fine_speed (xine_stream_t *stream, int speed) ; | |
19690 | ||
19691 | int _x_get_fine_speed (xine_stream_t *stream) ; | |
19692 | ||
19693 | void _x_select_spu_channel (xine_stream_t *stream, int channel) ; | |
19694 | ||
19695 | int _x_get_audio_channel (xine_stream_t *stream) ; | |
19696 | ||
19697 | int _x_get_spu_channel (xine_stream_t *stream) ; | |
19698 | ||
19699 | ||
19700 | ||
19701 | ||
19702 | ||
19703 | ||
19704 | #define XINE_EVENT_PIDS_CHANGE 0x80000000 | |
19705 | ||
19706 | ||
19707 | ||
19708 | ||
19709 | typedef struct { | |
19710 | int vpid; | |
19711 | int apid; | |
19712 | } xine_pids_data_t; | |
19713 | # 46 "video_out_dfb.c" 2 | |
19714 | ||
19715 | ||
19716 | ||
19717 | # 1 "video_out_dfb.h" 1 | |
19718 | # 21 "video_out_dfb.h" | |
19719 | #define __VIDEO_OUT_DFB_H__ | |
19720 | ||
19721 | ||
19722 | ||
19723 | ||
19724 | ||
19725 | ||
19726 | typedef void (*DVOutputCallback) ( void *cdata, | |
19727 | int width, | |
19728 | int height, | |
19729 | double ratio, | |
19730 | DFBSurfacePixelFormat format, | |
19731 | DFBRectangle *dest_rect ); | |
19732 | ||
19733 | typedef struct { | |
19734 | IDirectFBSurface *destination; | |
19735 | IDirectFBSurface *subpicture; | |
19736 | ||
19737 | DVOutputCallback output_cb; | |
19738 | void *output_cdata; | |
19739 | ||
19740 | DVFrameCallback frame_cb; | |
19741 | void *frame_cdata; | |
19742 | } dfb_visual_t; | |
19743 | ||
19744 | typedef struct { | |
19745 | DVFrameCallback frame_cb; | |
19746 | void *cdata; | |
19747 | } dfb_framecallback_t; | |
19748 | # 96 "video_out_dfb.h" | |
19749 | typedef struct dfb_frame_s dfb_frame_t; | |
19750 | typedef struct dfb_driver_s dfb_driver_t; | |
19751 | ||
19752 | ||
19753 | typedef struct { | |
19754 | const char *name; | |
19755 | struct { | |
19756 | short off; | |
19757 | short min; | |
19758 | short max; | |
19759 | } y; | |
19760 | struct { | |
19761 | short off; | |
19762 | short min; | |
19763 | short max; | |
19764 | } uv; | |
19765 | int v_for_r; | |
19766 | int v_for_g; | |
19767 | int u_for_g; | |
19768 | int u_for_b; | |
19769 | } DVProcMatrix; | |
19770 | ||
19771 | typedef union { | |
19772 | struct { | |
19773 | uint8_t a; | |
19774 | uint8_t r; | |
19775 | uint8_t g; | |
19776 | uint8_t b; | |
19777 | } rgb; | |
19778 | struct { | |
19779 | uint8_t a; | |
19780 | uint8_t y; | |
19781 | uint8_t u; | |
19782 | uint8_t v; | |
19783 | } yuv; | |
19784 | } DVColor; | |
19785 | ||
19786 | typedef struct { | |
19787 | uint8_t *plane[3]; | |
19788 | uint32_t pitch[3]; | |
19789 | uint32_t period[2]; | |
19790 | ||
19791 | int x; | |
19792 | int y; | |
19793 | int len; | |
19794 | } DVBlender; | |
19795 | ||
19796 | ||
19797 | typedef void (*DVProcFunc) ( dfb_frame_t *frame ); | |
19798 | ||
19799 | typedef void (*DVBlendFunc) ( DVBlender *blender, | |
19800 | DVColor *color ); | |
19801 | ||
19802 | ||
19803 | typedef enum { | |
19804 | MF_NONE = 0x0000000, | |
19805 | MF_B = 0x00000001, | |
19806 | MF_C = 0x00000002, | |
19807 | MF_S = 0x00000004, | |
19808 | MF_ALL = 0x00000007 | |
19809 | } MixerFlags; | |
19810 | ||
19811 | struct dfb_frame_s { | |
19812 | vo_frame_t vo_frame; | |
19813 | ||
19814 | int width; | |
19815 | int height; | |
19816 | int area; | |
19817 | int in_format; | |
19818 | int out_format; | |
19819 | ||
19820 | CoreSurface *surface; | |
19821 | uint8_t *out_plane[3]; | |
19822 | uint32_t out_pitch[3]; | |
19823 | void *chunk[3]; | |
19824 | ||
19825 | MixerFlags mixer_set; | |
19826 | bool proc_needed; | |
19827 | }; | |
19828 | ||
19829 | struct dfb_driver_s { | |
19830 | vo_driver_t vo_driver; | |
19831 | ||
19832 | xine_t *xine; | |
19833 | ||
19834 | struct { | |
19835 | int max_num_frames; | |
19836 | int proc_matrix; | |
19837 | bool enable_mmx; | |
19838 | } config; | |
19839 | ||
19840 | int accel; | |
19841 | ||
19842 | CardState state; | |
19843 | ||
19844 | IDirectFBSurface *dest; | |
19845 | IDirectFBSurface_data *dest_data; | |
19846 | DFBSurfacePixelFormat dest_format; | |
19847 | ||
19848 | IDirectFBSurface *ovl; | |
19849 | IDirectFBSurface_data *ovl_data; | |
19850 | int ovl_width; | |
19851 | int ovl_height; | |
19852 | int ovl_changed; | |
19853 | ||
19854 | DFBSurfacePixelFormat frame_format; | |
19855 | int frame_width; | |
19856 | int frame_height; | |
19857 | ||
19858 | struct { | |
19859 | MixerFlags set; | |
19860 | int b; | |
19861 | int c; | |
19862 | int s; | |
19863 | } mixer; | |
19864 | ||
19865 | int deinterlace; | |
19866 | int aspect_ratio; | |
19867 | double output_ratio; | |
19868 | ||
19869 | DVOutputCallback output_cb; | |
19870 | void* output_cdata; | |
19871 | ||
19872 | DVFrameCallback frame_cb; | |
19873 | void* frame_cdata; | |
19874 | }; | |
19875 | ||
19876 | typedef struct { | |
19877 | video_driver_class_t vo_class; | |
19878 | xine_t *xine; | |
19879 | } dfb_driver_class_t; | |
19880 | ||
19881 | ||
19882 | ||
19883 | ||
19884 | #define DFB_PFUNCTION_GEN_NAME(a,s,d) __ ##a ##_ ##s ##_be_ ##d | |
19885 | #define DFB_BFUNCTION_GEN_NAME(a,d) __ ##a ##_blend_ ##d | |
19886 | ||
19887 | #define DFB_PFUNCTION_NAME(a,s,d) DFB_PFUNCTION_GEN_NAME( a, s, d ) | |
19888 | #define DFB_BFUNCTION_NAME(a,d) DFB_BFUNCTION_GEN_NAME( a, d ) | |
19889 | ||
19890 | #define DFB_PFUNCTION(s,d) void DFB_PFUNCTION_NAME( PACCEL, s, d ) ( dfb_frame_t *frame ) | |
19891 | ||
19892 | ||
19893 | #define DFB_BFUNCTION(d) void DFB_BFUNCTION_NAME( PACCEL, d ) ( DVBlender *blender, DVColor *color ) | |
19894 | ||
19895 | ||
19896 | ||
19897 | #define DFB_PFUNCTION_ASSIGN(a,s,d,f) ProcFuncs[(#s=="yuy2")?0:1][DFB_PIXELFORMAT_INDEX(f)] = DFB_PFUNCTION_NAME(a,s,d) | |
19898 | ||
19899 | ||
19900 | #define DFB_BFUNCTION_ASSIGN(a,d,f) BlendFuncs[DFB_PIXELFORMAT_INDEX(f)] = DFB_BFUNCTION_NAME( a, d ) | |
19901 | ||
19902 | ||
19903 | ||
19904 | ||
19905 | ||
19906 | ||
19907 | #define min(a,b) (((a)<(b)) ? (a) : (b)) | |
19908 | ||
19909 | ||
19910 | ||
19911 | ||
19912 | #define max(a,b) (((a)>(b)) ? (a) : (b)) | |
19913 | ||
19914 | ||
19915 | #undef CLAMP | |
19916 | ||
19917 | #define CLAMP(a,min,max) (((a)<(min)) ? (min) : (((a)>(max)) ? (max) : (a))) | |
19918 | ||
19919 | ||
19920 | #define __aligned(n) __attribute__((aligned((n)))) | |
19921 | ||
19922 | #define __used __attribute__((used)) | |
19923 | # 314 "video_out_dfb.h" | |
19924 | #define BENCH_BEGIN(area) | |
19925 | #define BENCH_END() (void) this; | |
19926 | # 50 "video_out_dfb.c" 2 | |
19927 | ||
19928 | ||
19929 | ||
19930 | static const DVProcMatrix proc_matrices[] = { | |
19931 | { | |
19932 | .name = "ITURBT601", | |
19933 | .y = { | |
19934 | .off = +16, | |
19935 | .min = +16, | |
19936 | .max = +235 | |
19937 | }, | |
19938 | .uv = { | |
19939 | .off = +128, | |
19940 | .min = +16, | |
19941 | .max = +240 | |
19942 | }, | |
19943 | .v_for_r = 11485, | |
19944 | .v_for_g = 5850, | |
19945 | .u_for_g = 2819, | |
19946 | .u_for_b = 14516 | |
19947 | }, | |
19948 | { | |
19949 | .name = "ITURBT709", | |
19950 | .y = { | |
19951 | .off = +16, | |
19952 | .min = +16, | |
19953 | .max = +235 | |
19954 | }, | |
19955 | .uv = { | |
19956 | .off = +128, | |
19957 | .min = +16, | |
19958 | .max = +240 | |
19959 | }, | |
19960 | .v_for_r = 12862, | |
19961 | .v_for_g = 3820, | |
19962 | .u_for_g = 1531, | |
19963 | .u_for_b = 15201 | |
19964 | }, | |
19965 | { | |
19966 | .name = "EBU", | |
19967 | .y = { | |
19968 | .off = +16, | |
19969 | .min = +16, | |
19970 | .max = +235 | |
19971 | }, | |
19972 | .uv = { | |
19973 | .off = +128, | |
19974 | .min = +16, | |
19975 | .max = +240 | |
19976 | }, | |
19977 | .v_for_r = 9338, | |
19978 | .v_for_g = 4759, | |
19979 | .u_for_g = 3244, | |
19980 | .u_for_b = 16621 | |
19981 | }, | |
19982 | { | |
19983 | .name = "JFIF", | |
19984 | .y = { | |
19985 | .off = 0, | |
19986 | .min = 0, | |
19987 | .max = +255, | |
19988 | }, | |
19989 | .uv = { | |
19990 | .off = +128, | |
19991 | .min = 0, | |
19992 | .max = +255, | |
19993 | }, | |
19994 | .v_for_r = 11485, | |
19995 | .v_for_g = 5850, | |
19996 | .u_for_g = 2819, | |
19997 | .u_for_b = 14516 | |
19998 | } | |
19999 | }; | |
20000 | ||
20001 | #define N_MATRICES (sizeof(proc_matrices)/sizeof(DVProcMatrix)) | |
20002 | ||
20003 | ||
20004 | static struct { | |
20005 | ||
20006 | struct { | |
20007 | int16_t lm_sub[4]; | |
20008 | int16_t lm_add[4]; | |
20009 | int16_t uv_sub[4]; | |
20010 | int16_t lm_cfc[4]; | |
20011 | int16_t uv_cfc[4]; | |
20012 | int16_t vr_cfc[4]; | |
20013 | int16_t vg_cfc[4]; | |
20014 | int16_t ug_cfc[4]; | |
20015 | int16_t ub_cfc[4]; | |
20016 | } mmx; | |
20017 | ||
20018 | int16_t lm[256]; | |
20019 | int16_t uv[256]; | |
20020 | int16_t vr[256]; | |
20021 | int16_t vg[256]; | |
20022 | int16_t ug[256]; | |
20023 | int16_t ub[256]; | |
20024 | struct { | |
20025 | void *buf; | |
20026 | void *r; | |
20027 | void *g; | |
20028 | void *b; | |
20029 | } clamp; | |
20030 | } __attribute__((aligned((8)))) proc_table; | |
20031 | ||
20032 | ||
20033 | ||
20034 | ||
20035 | ||
20036 | # 1 "video_out_dfb_proc.h" 1 | |
20037 | # 20 "video_out_dfb_proc.h" | |
20038 | #define PACCEL generic | |
20039 | ||
20040 | ||
20041 | #define LOADUV(u,v) { register int _u = (u); register int _v = (v); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];} | |
20042 | # 33 "video_out_dfb_proc.h" | |
20043 | #define YUV2RGB(y,r,g,b) { register int _y; _y = proc_table.lm[(y)]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;} | |
20044 | # 42 "video_out_dfb_proc.h" | |
20045 | #define CLAMP8(p) (((uint8_t *)proc_table.clamp.p)[p]) | |
20046 | #define CLAMP16(p) (((uint16_t*)proc_table.clamp.p)[p]) | |
20047 | #define CLAMP32(p) (((uint32_t*)proc_table.clamp.p)[p]) | |
20048 | # 62 "video_out_dfb_proc.h" | |
20049 | #define YUY2_Y0(p) (((p)&0x000000ff) ) | |
20050 | #define YUY2_Y1(p) (((p)&0x00ff0000)>>16) | |
20051 | #define YUY2_CB(p) (((p)&0x0000ff00)>> 8) | |
20052 | #define YUY2_CR(p) (((p)&0xff000000)>>24) | |
20053 | #define YUY2_Y0_SHIFT 0 | |
20054 | #define YUY2_Y1_SHIFT 16 | |
20055 | #define YUY2_CB_SHIFT 8 | |
20056 | #define YUY2_CR_SHIFT 24 | |
20057 | #define UYVY_Y0_SHIFT 8 | |
20058 | #define UYVY_Y1_SHIFT 24 | |
20059 | #define UYVY_CB_SHIFT 0 | |
20060 | #define UYVY_CR_SHIFT 16 | |
20061 | ||
20062 | ||
20063 | ||
20064 | ||
20065 | static | |
20066 | void __generic_yuy2_be_yuy2 ( dfb_frame_t *frame ) | |
20067 | { | |
20068 | uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; | |
20069 | uint32_t *D = (uint32_t*) frame->out_plane[0]; | |
20070 | int n = frame->area/4; | |
20071 | int set = frame->mixer_set; | |
20072 | ||
20073 | do { | |
20074 | register uint32_t Spix, Dpix; | |
20075 | ||
20076 | Spix = *S; | |
20077 | ||
20078 | if (set & MF_S) { | |
20079 | Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8] << 8; | |
20080 | Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 24; | |
20081 | } else | |
20082 | Dpix = Spix & 0xff00ff00; | |
20083 | ||
20084 | if (set & (MF_B | MF_C)) { | |
20085 | Dpix |= proc_table.lm[(Spix&0x000000ff)]; | |
20086 | Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 16; | |
20087 | } else | |
20088 | Dpix |= Spix & 0x00ff000ff; | |
20089 | ||
20090 | *D = Dpix; | |
20091 | ||
20092 | Spix = *(S+1); | |
20093 | ||
20094 | if (set & MF_S) { | |
20095 | Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8] << 8; | |
20096 | Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 24; | |
20097 | } else | |
20098 | Dpix = Spix & 0xff00ff00; | |
20099 | ||
20100 | if (set & (MF_B | MF_C)) { | |
20101 | Dpix |= proc_table.lm[(Spix&0x000000ff)]; | |
20102 | Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 16; | |
20103 | } else | |
20104 | Dpix |= Spix & 0x00ff000ff; | |
20105 | ||
20106 | *(D+1) = Dpix; | |
20107 | ||
20108 | S += 2; | |
20109 | D += 2; | |
20110 | } while (--n); | |
20111 | } | |
20112 | ||
20113 | static | |
20114 | void __generic_yuy2_be_uyvy ( dfb_frame_t *frame ) | |
20115 | { | |
20116 | uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; | |
20117 | uint32_t *D = (uint32_t*) frame->out_plane[0]; | |
20118 | int n = frame->area/4; | |
20119 | int set = frame->mixer_set; | |
20120 | ||
20121 | if (set) { | |
20122 | do { | |
20123 | register uint32_t Spix, Dpix; | |
20124 | ||
20125 | Spix = *S; | |
20126 | ||
20127 | if (set & MF_S) { | |
20128 | Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8]; | |
20129 | Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 16; | |
20130 | } else | |
20131 | Dpix = (Spix & 0xff00ff00) >> 8; | |
20132 | ||
20133 | if (set & (MF_B | MF_C)) { | |
20134 | Dpix |= proc_table.lm[(Spix&0x000000ff)] << 8; | |
20135 | Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 24; | |
20136 | } else | |
20137 | Dpix |= (Spix & 0x00ff00ff) << 8; | |
20138 | ||
20139 | *D = Dpix; | |
20140 | ||
20141 | Spix = *(S+1); | |
20142 | ||
20143 | if (set & MF_S) { | |
20144 | Dpix = proc_table.uv[(Spix&0x0000ff00)>> 8]; | |
20145 | Dpix |= proc_table.uv[(Spix&0xff000000)>>24] << 16; | |
20146 | } else | |
20147 | Dpix = (Spix & 0xff00ff00) >> 8; | |
20148 | ||
20149 | if (set & (MF_B | MF_C)) { | |
20150 | Dpix |= proc_table.lm[(Spix&0x000000ff)] << 8; | |
20151 | Dpix |= proc_table.lm[(Spix&0x00ff0000)>>16] << 24; | |
20152 | } else | |
20153 | Dpix |= (Spix & 0x00ff00ff) << 8; | |
20154 | ||
20155 | *(D+1) = Dpix; | |
20156 | ||
20157 | S += 2; | |
20158 | D += 2; | |
20159 | } while (--n); | |
20160 | } | |
20161 | else { | |
20162 | do { | |
20163 | register uint32_t Spix; | |
20164 | ||
20165 | Spix = *(S+0); | |
20166 | *(D+0) = ((Spix&0xff00ff00) >> 8) | | |
20167 | ((Spix&0x00ff00ff) << 8); | |
20168 | ||
20169 | Spix = *(S+1); | |
20170 | *(D+1) = ((Spix&0xff00ff00) >> 8) | | |
20171 | ((Spix&0x00ff00ff) << 8); | |
20172 | ||
20173 | S += 2; | |
20174 | D += 2; | |
20175 | } while (--n); | |
20176 | } | |
20177 | } | |
20178 | ||
20179 | static | |
20180 | void __generic_yuy2_be_yv12 ( dfb_frame_t *frame ) | |
20181 | { | |
20182 | uint16_t *S = (uint16_t*) frame->vo_frame.base[0]; | |
20183 | uint8_t *Dy = frame->out_plane[0]; | |
20184 | uint8_t *Du = frame->out_plane[1]; | |
20185 | uint8_t *Dv = frame->out_plane[2]; | |
20186 | int w = frame->width; | |
20187 | int l = frame->width/2; | |
20188 | int n = frame->height/2; | |
20189 | int set = frame->mixer_set; | |
20190 | ||
20191 | if (set) { | |
20192 | do { | |
20193 | do { | |
20194 | register uint32_t Spix0, Spix1; | |
20195 | register uint32_t pu, pv; | |
20196 | ||
20197 | Spix0 = *((uint32_t*)(S+0)); | |
20198 | Spix1 = *((uint32_t*)(S+w)); | |
20199 | ||
20200 | if (set & (MF_B | MF_C)) { | |
20201 | *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; | |
20202 | *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; | |
20203 | *(Dy+w+0) = proc_table.lm[(((Spix1)&0x000000ff) )]; | |
20204 | *(Dy+w+1) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; | |
20205 | } else { | |
20206 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20207 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20208 | *(Dy+w+0) = (((Spix1)&0x000000ff) ); | |
20209 | *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); | |
20210 | } | |
20211 | ||
20212 | pu = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; | |
20213 | pv = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; | |
20214 | ||
20215 | if (set & MF_S) { | |
20216 | *Du++ = proc_table.uv[pu]; | |
20217 | *Dv++ = proc_table.uv[pv]; | |
20218 | } else { | |
20219 | *Du++ = pu; | |
20220 | *Dv++ = pv; | |
20221 | } | |
20222 | ||
20223 | S += 2; | |
20224 | Dy += 2; | |
20225 | } while (--l); | |
20226 | ||
20227 | l = w/2; | |
20228 | S += w; | |
20229 | Dy += w; | |
20230 | } while (--n); | |
20231 | } | |
20232 | else { | |
20233 | do { | |
20234 | do { | |
20235 | register uint32_t Spix0, Spix1; | |
20236 | ||
20237 | Spix0 = *((uint32_t*)(S+0)); | |
20238 | Spix1 = *((uint32_t*)(S+w)); | |
20239 | ||
20240 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20241 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20242 | *(Dy+w+0) = (((Spix1)&0x000000ff) ); | |
20243 | *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); | |
20244 | *Du++ = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; | |
20245 | *Dv++ = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; | |
20246 | ||
20247 | S += 2; | |
20248 | Dy += 2; | |
20249 | } while (--l); | |
20250 | ||
20251 | l = w/2; | |
20252 | S += w; | |
20253 | Dy += w; | |
20254 | } while (--n); | |
20255 | } | |
20256 | } | |
20257 | ||
20258 | static | |
20259 | void __generic_yuy2_be_nv12 ( dfb_frame_t *frame ) | |
20260 | { | |
20261 | uint16_t *S = (uint16_t*) frame->vo_frame.base[0]; | |
20262 | uint8_t *Dy = frame->out_plane[0]; | |
20263 | uint16_t *Duv = (uint16_t*) frame->out_plane[1]; | |
20264 | int w = frame->width; | |
20265 | int l = frame->width/2; | |
20266 | int n = frame->height/2; | |
20267 | int set = frame->mixer_set; | |
20268 | ||
20269 | if (set) { | |
20270 | do { | |
20271 | do { | |
20272 | register uint32_t Spix0, Spix1; | |
20273 | register uint32_t pu, pv; | |
20274 | ||
20275 | Spix0 = *((uint32_t*)(S+0)); | |
20276 | Spix1 = *((uint32_t*)(S+w)); | |
20277 | ||
20278 | if (set & (MF_B | MF_C)) { | |
20279 | *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; | |
20280 | *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; | |
20281 | *(Dy+w+0) = proc_table.lm[(((Spix1)&0x000000ff) )]; | |
20282 | *(Dy+w+1) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; | |
20283 | } else { | |
20284 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20285 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20286 | *(Dy+w+0) = (((Spix1)&0x000000ff) ); | |
20287 | *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); | |
20288 | } | |
20289 | ||
20290 | pu = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; | |
20291 | pv = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; | |
20292 | ||
20293 | if (set & MF_S) | |
20294 | *Duv++ = proc_table.uv[pu] | | |
20295 | (proc_table.uv[pv] << 8); | |
20296 | else | |
20297 | *Duv++ = pu | (pv << 8); | |
20298 | ||
20299 | S += 2; | |
20300 | Dy += 2; | |
20301 | } while (--l); | |
20302 | ||
20303 | l = w/2; | |
20304 | S += w; | |
20305 | Dy += w; | |
20306 | } while (--n); | |
20307 | } | |
20308 | else { | |
20309 | do { | |
20310 | do { | |
20311 | register uint32_t Spix0, Spix1; | |
20312 | ||
20313 | Spix0 = *((uint32_t*)(S+0)); | |
20314 | Spix1 = *((uint32_t*)(S+w)); | |
20315 | ||
20316 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20317 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20318 | *(Dy+w+0) = (((Spix1)&0x000000ff) ); | |
20319 | *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); | |
20320 | ||
20321 | *Duv++ = (((((Spix0)&0x0000ff00)>> 8)+(((Spix1)&0x0000ff00)>> 8))>>1) | | |
20322 | ((((((Spix0)&0xff000000)>>24)+(((Spix1)&0xff000000)>>24))>>1) << 8); | |
20323 | ||
20324 | S += 2; | |
20325 | Dy += 2; | |
20326 | } while (--l); | |
20327 | ||
20328 | l = w/2; | |
20329 | S += w; | |
20330 | Dy += w; | |
20331 | } while (--n); | |
20332 | } | |
20333 | } | |
20334 | ||
20335 | static | |
20336 | void __generic_yuy2_be_nv21 ( dfb_frame_t *frame ) | |
20337 | { | |
20338 | uint16_t *S = (uint16_t*) frame->vo_frame.base[0]; | |
20339 | uint8_t *Dy = frame->out_plane[0]; | |
20340 | uint16_t *Dvu = (uint16_t*) frame->out_plane[1]; | |
20341 | int w = frame->width; | |
20342 | int l = frame->width/2; | |
20343 | int n = frame->height/2; | |
20344 | int set = frame->mixer_set; | |
20345 | ||
20346 | if (set) { | |
20347 | do { | |
20348 | do { | |
20349 | register uint32_t Spix0, Spix1; | |
20350 | register uint32_t pu, pv; | |
20351 | ||
20352 | Spix0 = *((uint32_t*)(S+0)); | |
20353 | Spix1 = *((uint32_t*)(S+w)); | |
20354 | ||
20355 | if (set & (MF_B | MF_C)) { | |
20356 | *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; | |
20357 | *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; | |
20358 | *(Dy+w+0) = proc_table.lm[(((Spix1)&0x000000ff) )]; | |
20359 | *(Dy+w+1) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; | |
20360 | } else { | |
20361 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20362 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20363 | *(Dy+w+0) = (((Spix1)&0x000000ff) ); | |
20364 | *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); | |
20365 | } | |
20366 | ||
20367 | pu = ((((Spix0)&0x0000ff00)>> 8) + (((Spix1)&0x0000ff00)>> 8)) >> 1; | |
20368 | pv = ((((Spix0)&0xff000000)>>24) + (((Spix1)&0xff000000)>>24)) >> 1; | |
20369 | ||
20370 | if (set & MF_S) | |
20371 | *Dvu++ = proc_table.uv[pv] | | |
20372 | (proc_table.uv[pu] << 8); | |
20373 | else | |
20374 | *Dvu++ = pv | (pu << 8); | |
20375 | ||
20376 | S += 2; | |
20377 | Dy += 2; | |
20378 | } while (--l); | |
20379 | ||
20380 | l = w/2; | |
20381 | S += w; | |
20382 | Dy += w; | |
20383 | } while (--n); | |
20384 | } | |
20385 | else { | |
20386 | do { | |
20387 | do { | |
20388 | register uint32_t Spix0, Spix1; | |
20389 | ||
20390 | Spix0 = *((uint32_t*)(S+0)); | |
20391 | Spix1 = *((uint32_t*)(S+w)); | |
20392 | ||
20393 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20394 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20395 | *(Dy+w+0) = (((Spix1)&0x000000ff) ); | |
20396 | *(Dy+w+1) = (((Spix1)&0x00ff0000)>>16); | |
20397 | ||
20398 | *Dvu++ = (((((Spix0)&0xff000000)>>24)+(((Spix1)&0xff000000)>>24))>>1) | | |
20399 | ((((((Spix0)&0x0000ff00)>> 8)+(((Spix1)&0x0000ff00)>> 8))>>1) << 8); | |
20400 | ||
20401 | S += 2; | |
20402 | Dy += 2; | |
20403 | } while (--l); | |
20404 | ||
20405 | l = w/2; | |
20406 | S += w; | |
20407 | Dy += w; | |
20408 | } while (--n); | |
20409 | } | |
20410 | } | |
20411 | ||
20412 | static | |
20413 | void __generic_yuy2_be_nv16 ( dfb_frame_t *frame ) | |
20414 | { | |
20415 | uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; | |
20416 | uint8_t *Dy = frame->out_plane[0]; | |
20417 | uint32_t *Duv = (uint32_t*) frame->out_plane[1]; | |
20418 | int n = frame->area/4; | |
20419 | int set = frame->mixer_set; | |
20420 | ||
20421 | if (set) { | |
20422 | do { | |
20423 | register uint32_t Spix0, Spix1; | |
20424 | ||
20425 | Spix0 = *(S+0); | |
20426 | Spix1 = *(S+1); | |
20427 | ||
20428 | if (set & (MF_B | MF_C)) { | |
20429 | *(Dy+0) = proc_table.lm[(((Spix0)&0x000000ff) )]; | |
20430 | *(Dy+1) = proc_table.lm[(((Spix0)&0x00ff0000)>>16)]; | |
20431 | *(Dy+2) = proc_table.lm[(((Spix1)&0x000000ff) )]; | |
20432 | *(Dy+3) = proc_table.lm[(((Spix1)&0x00ff0000)>>16)]; | |
20433 | } else { | |
20434 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20435 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20436 | *(Dy+2) = (((Spix1)&0x000000ff) ); | |
20437 | *(Dy+3) = (((Spix1)&0x00ff0000)>>16); | |
20438 | } | |
20439 | # 464 "video_out_dfb_proc.h" | |
20440 | if (set & MF_S) { | |
20441 | *Duv++ = (proc_table.uv[(((Spix0)&0x0000ff00)>> 8)] ) | | |
20442 | (proc_table.uv[(((Spix0)&0xff000000)>>24)] << 8) | | |
20443 | (proc_table.uv[(((Spix1)&0x0000ff00)>> 8)] << 16) | | |
20444 | (proc_table.uv[(((Spix1)&0xff000000)>>24)] << 24); | |
20445 | } else { | |
20446 | *Duv++ = ((((Spix0)&0x0000ff00)>> 8) ) | ((((Spix0)&0xff000000)>>24) << 8) | | |
20447 | ((((Spix1)&0x0000ff00)>> 8) << 16) | ((((Spix1)&0xff000000)>>24) << 24); | |
20448 | } | |
20449 | ||
20450 | ||
20451 | S += 2; | |
20452 | Dy += 4; | |
20453 | } while (--n); | |
20454 | } | |
20455 | else { | |
20456 | do { | |
20457 | register uint32_t Spix0, Spix1; | |
20458 | ||
20459 | Spix0 = *(S+0); | |
20460 | Spix1 = *(S+1); | |
20461 | ||
20462 | *(Dy+0) = (((Spix0)&0x000000ff) ); | |
20463 | *(Dy+1) = (((Spix0)&0x00ff0000)>>16); | |
20464 | *(Dy+2) = (((Spix1)&0x000000ff) ); | |
20465 | *(Dy+3) = (((Spix1)&0x00ff0000)>>16); | |
20466 | ||
20467 | ||
20468 | ||
20469 | ||
20470 | ||
20471 | *Duv++ = ((((Spix0)&0x0000ff00)>> 8) ) | ((((Spix0)&0xff000000)>>24) << 8) | | |
20472 | ((((Spix1)&0x0000ff00)>> 8) << 16) | ((((Spix1)&0xff000000)>>24) << 24); | |
20473 | ||
20474 | ||
20475 | S += 2; | |
20476 | Dy += 4; | |
20477 | } while (--n); | |
20478 | } | |
20479 | } | |
20480 | ||
20481 | static | |
20482 | void __generic_yuy2_be_rgb8 ( dfb_frame_t *frame ) | |
20483 | { | |
20484 | uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; | |
20485 | uint8_t *D = frame->out_plane[0]; | |
20486 | int n = frame->area/2; | |
20487 | ||
20488 | do { | |
20489 | register uint32_t Spix; | |
20490 | register int cr1, cr2, cr3; | |
20491 | register int r, g, b; | |
20492 | ||
20493 | Spix = *S++; | |
20494 | { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
20495 | ||
20496 | { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20497 | *(D+0) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); | |
20498 | ||
20499 | { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20500 | *(D+1) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); | |
20501 | ||
20502 | D += 2; | |
20503 | } while (--n); | |
20504 | } | |
20505 | ||
20506 | static | |
20507 | void __generic_yuy2_be_rgb16 ( dfb_frame_t *frame ) | |
20508 | { | |
20509 | uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; | |
20510 | uint16_t *D = (uint16_t*) frame->out_plane[0]; | |
20511 | int n = frame->area/2; | |
20512 | ||
20513 | do { | |
20514 | register uint32_t Spix; | |
20515 | register int cr1, cr2, cr3; | |
20516 | register int r, g, b; | |
20517 | register uint32_t p0, p1; | |
20518 | ||
20519 | Spix = *S++; | |
20520 | { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
20521 | ||
20522 | { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20523 | p0 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); | |
20524 | ||
20525 | { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20526 | p1 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); | |
20527 | ||
20528 | ||
20529 | ||
20530 | ||
20531 | *((uint32_t*)D) = p0 | (p1 << 16); | |
20532 | ||
20533 | ||
20534 | D += 2; | |
20535 | } while (--n); | |
20536 | } | |
20537 | ||
20538 | static | |
20539 | void __generic_yuy2_be_rgb24 ( dfb_frame_t *frame ) | |
20540 | { | |
20541 | uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; | |
20542 | uint8_t *D = frame->out_plane[0]; | |
20543 | int n = frame->area/2; | |
20544 | ||
20545 | do { | |
20546 | register uint32_t Spix; | |
20547 | register int cr1, cr2, cr3; | |
20548 | register int r, g, b; | |
20549 | ||
20550 | Spix = *S++; | |
20551 | { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
20552 | ||
20553 | { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20554 | *(D+0) = (((uint8_t *)proc_table.clamp.b)[b]); | |
20555 | *(D+1) = (((uint8_t *)proc_table.clamp.g)[g]); | |
20556 | *(D+2) = (((uint8_t *)proc_table.clamp.r)[r]); | |
20557 | ||
20558 | { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20559 | *(D+3) = (((uint8_t *)proc_table.clamp.b)[b]); | |
20560 | *(D+4) = (((uint8_t *)proc_table.clamp.g)[g]); | |
20561 | *(D+5) = (((uint8_t *)proc_table.clamp.r)[r]); | |
20562 | ||
20563 | D += 6; | |
20564 | } while (--n); | |
20565 | } | |
20566 | ||
20567 | static | |
20568 | void __generic_yuy2_be_rgb32 ( dfb_frame_t *frame ) | |
20569 | { | |
20570 | uint32_t *S = (uint32_t*) frame->vo_frame.base[0]; | |
20571 | uint32_t *D = (uint32_t*) frame->out_plane[0]; | |
20572 | int n = frame->area/2; | |
20573 | ||
20574 | do { | |
20575 | register uint32_t Spix; | |
20576 | register int cr1, cr2, cr3; | |
20577 | register int r, g, b; | |
20578 | ||
20579 | Spix = *S++; | |
20580 | { register int _u = ((((Spix)&0x0000ff00)>> 8)); register int _v = ((((Spix)&0xff000000)>>24)); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
20581 | ||
20582 | { register int _y; _y = proc_table.lm[((((Spix)&0x000000ff) ))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20583 | *(D+0) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); | |
20584 | ||
20585 | { register int _y; _y = proc_table.lm[((((Spix)&0x00ff0000)>>16))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
20586 | *(D+1) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); | |
20587 | ||
20588 | D += 2; | |
20589 | } while (--n); | |
20590 | } | |
20591 | ||
20592 | ||
20593 | ||
20594 | ||
20595 | ||
20596 | ||
20597 | static | |
20598 | void __generic_yv12_be_yuy2 ( dfb_frame_t *frame ) | |
20599 | { | |
20600 | uint8_t *Sy = frame->vo_frame.base[0]; | |
20601 | uint8_t *Su = frame->vo_frame.base[1]; | |
20602 | uint8_t *Sv = frame->vo_frame.base[2]; | |
20603 | uint16_t *D = (uint16_t*) frame->out_plane[0]; | |
20604 | int w = frame->width; | |
20605 | int l = frame->width/2; | |
20606 | int n = frame->height/2; | |
20607 | int set = frame->mixer_set; | |
20608 | ||
20609 | if (set) { | |
20610 | do { | |
20611 | do { | |
20612 | register uint32_t Dpix; | |
20613 | ||
20614 | if (set & MF_S) { | |
20615 | Dpix = proc_table.uv[*Su++] << 8; | |
20616 | Dpix |= proc_table.uv[*Sv++] << 24; | |
20617 | } else { | |
20618 | Dpix = *Su++ << 8; | |
20619 | Dpix |= *Sv++ << 24; | |
20620 | } | |
20621 | ||
20622 | if (set & (MF_B | MF_C)) { | |
20623 | Dpix |= proc_table.lm[*(Sy+0)] << 0; | |
20624 | Dpix |= proc_table.lm[*(Sy+1)] << 16; | |
20625 | } else { | |
20626 | Dpix |= *(Sy+0) << 0; | |
20627 | Dpix |= *(Sy+1) << 16; | |
20628 | } | |
20629 | ||
20630 | *((uint32_t*)D) = Dpix; | |
20631 | ||
20632 | Dpix &= 0xff00ff00; | |
20633 | ||
20634 | if (set & (MF_B | MF_C)) { | |
20635 | Dpix |= proc_table.lm[*(Sy+w+0)] << 0; | |
20636 | Dpix |= proc_table.lm[*(Sy+w+1)] << 16; | |
20637 | } else { | |
20638 | Dpix |= *(Sy+w+0) << 0; | |
20639 | Dpix |= *(Sy+w+1) << 16; | |
20640 | } | |
20641 | ||
20642 | *((uint32_t*)(D+w)) = Dpix; | |
20643 | ||
20644 | Sy += 2; | |
20645 | D += 2; | |
20646 | } while (--l); | |
20647 | ||
20648 | l = w/2; | |
20649 | Sy += w; | |
20650 | D += w; | |
20651 | } while (--n); | |
20652 | } | |
20653 | else { | |
20654 | do { | |
20655 | do { | |
20656 | register uint32_t Dpix; | |
20657 | ||
20658 | Dpix = *Su++ << 8; | |
20659 | Dpix |= *Sv++ << 24; | |
20660 | Dpix |= *(Sy+0) << 0; | |
20661 | Dpix |= *(Sy+1) << 16; | |
20662 | ||
20663 | *((uint32_t*)D) = Dpix; | |
20664 | ||
20665 | Dpix &= 0xff00ff00; | |
20666 | Dpix |= *(Sy+w+0) << 0; | |
20667 | Dpix |= *(Sy+w+1) << 16; | |
20668 | ||
20669 | *((uint32_t*)(D+w)) = Dpix; | |
20670 | ||
20671 | Sy += 2; | |
20672 | D += 2; | |
20673 | } while (--l); | |
20674 | ||
20675 | l = w/2; | |
20676 | Sy += w; | |
20677 | D += w; | |
20678 | } while (--n); | |
20679 | } | |
20680 | } | |
20681 | ||
20682 | static | |
20683 | void __generic_yv12_be_uyvy ( dfb_frame_t *frame ) | |
20684 | { | |
20685 | uint8_t *Sy = frame->vo_frame.base[0]; | |
20686 | uint8_t *Su = frame->vo_frame.base[1]; | |
20687 | uint8_t *Sv = frame->vo_frame.base[2]; | |
20688 | uint16_t *D = (uint16_t*) frame->out_plane[0]; | |
20689 | int w = frame->width; | |
20690 | int l = frame->width/2; | |
20691 | int n = frame->height/2; | |
20692 | int set = frame->mixer_set; | |
20693 | ||
20694 | if (set) { | |
20695 | do { | |
20696 | do { | |
20697 | register uint32_t Dpix; | |
20698 | ||
20699 | if (set & MF_S) { | |
20700 | Dpix = proc_table.uv[*Su++] << 0; | |
20701 | Dpix |= proc_table.uv[*Sv++] << 16; | |
20702 | } else { | |
20703 | Dpix = *Su++ << 0; | |
20704 | Dpix |= *Sv++ << 16; | |
20705 | } | |
20706 | ||
20707 | if (set & (MF_B | MF_C)) { | |
20708 | Dpix |= proc_table.lm[*(Sy+0)] << 8; | |
20709 | Dpix |= proc_table.lm[*(Sy+1)] << 24; | |
20710 | } else { | |
20711 | Dpix |= *(Sy+0) << 8; | |
20712 | Dpix |= *(Sy+1) << 24; | |
20713 | } | |
20714 | ||
20715 | *((uint32_t*)D) = Dpix; | |
20716 | ||
20717 | Dpix &= 0x00ff00ff; | |
20718 | ||
20719 | if (set & (MF_B | MF_C)) { | |
20720 | Dpix |= proc_table.lm[*(Sy+w+0)] << 8; | |
20721 | Dpix |= proc_table.lm[*(Sy+w+1)] << 24; | |
20722 | } else { | |
20723 | Dpix |= *(Sy+w+0) << 8; | |
20724 | Dpix |= *(Sy+w+1) << 24; | |
20725 | } | |
20726 | ||
20727 | *((uint32_t*)(D+w)) = Dpix; | |
20728 | ||
20729 | Sy += 2; | |
20730 | D += 2; | |
20731 | } while (--l); | |
20732 | ||
20733 | l = w/2; | |
20734 | Sy += w; | |
20735 | D += w; | |
20736 | } while (--n); | |
20737 | } | |
20738 | else { | |
20739 | do { | |
20740 | do { | |
20741 | register uint32_t Dpix; | |
20742 | ||
20743 | Dpix = *Su++ << 0; | |
20744 | Dpix |= *Sv++ << 16; | |
20745 | Dpix |= *(Sy+0) << 8; | |
20746 | Dpix |= *(Sy+1) << 24; | |
20747 | ||
20748 | *((uint32_t*)D) = Dpix; | |
20749 | ||
20750 | Dpix &= 0x00ff00ff; | |
20751 | Dpix |= *(Sy+w+0) << 8; | |
20752 | Dpix |= *(Sy+w+1) << 24; | |
20753 | ||
20754 | *((uint32_t*)(D+w)) = Dpix; | |
20755 | ||
20756 | Sy += 2; | |
20757 | D += 2; | |
20758 | } while (--l); | |
20759 | ||
20760 | l = w/2; | |
20761 | Sy += w; | |
20762 | D += w; | |
20763 | } while (--n); | |
20764 | } | |
20765 | } | |
20766 | ||
20767 | static | |
20768 | void __generic_yv12_be_yv12 ( dfb_frame_t *frame ) | |
20769 | { | |
20770 | uint8_t *Sy = frame->vo_frame.base[0]; | |
20771 | uint8_t *Su = frame->vo_frame.base[1]; | |
20772 | uint8_t *Sv = frame->vo_frame.base[2]; | |
20773 | uint8_t *Dy = frame->out_plane[0]; | |
20774 | uint8_t *Du = frame->out_plane[1]; | |
20775 | uint8_t *Dv = frame->out_plane[2]; | |
20776 | int set = frame->mixer_set; | |
20777 | int n; | |
20778 | ||
20779 | if (set & (MF_B | MF_C)) { | |
20780 | n = frame->area; | |
20781 | ||
20782 | do { | |
20783 | *Dy++ = proc_table.lm[*Sy++]; | |
20784 | } while (--n); | |
20785 | } | |
20786 | ||
20787 | if (set & MF_S) { | |
20788 | n = frame->area/4; | |
20789 | ||
20790 | do { | |
20791 | *Du++ = proc_table.uv[*Su++]; | |
20792 | *Dv++ = proc_table.uv[*Sv++]; | |
20793 | } while (--n); | |
20794 | } | |
20795 | } | |
20796 | ||
20797 | static | |
20798 | void __generic_yv12_be_nv12 ( dfb_frame_t *frame ) | |
20799 | { | |
20800 | uint8_t *Sy = frame->vo_frame.base[0]; | |
20801 | uint8_t *Su = frame->vo_frame.base[1]; | |
20802 | uint8_t *Sv = frame->vo_frame.base[2]; | |
20803 | uint8_t *Dy = frame->out_plane[0]; | |
20804 | uint16_t *Duv = (uint16_t*) frame->out_plane[1]; | |
20805 | int set = frame->mixer_set; | |
20806 | int n; | |
20807 | ||
20808 | if (set & (MF_B | MF_C)) { | |
20809 | n = frame->area; | |
20810 | ||
20811 | do { | |
20812 | *Dy++ = proc_table.lm[*Sy++]; | |
20813 | } while (--n); | |
20814 | } | |
20815 | ||
20816 | ||
20817 | n = frame->area/8; | |
20818 | ||
20819 | if (set & MF_S) { | |
20820 | do { | |
20821 | register uint32_t Dpix; | |
20822 | ||
20823 | ||
20824 | ||
20825 | ||
20826 | ||
20827 | ||
20828 | ||
20829 | Dpix = (proc_table.uv[*(Su+0)] ) | | |
20830 | (proc_table.uv[*(Sv+0)] << 8) | | |
20831 | (proc_table.uv[*(Su+1)] << 16) | | |
20832 | (proc_table.uv[*(Sv+1)] << 24); | |
20833 | ||
20834 | ||
20835 | *((uint32_t*)Duv) = Dpix; | |
20836 | ||
20837 | Su += 2; | |
20838 | Sv += 2; | |
20839 | Duv += 2; | |
20840 | } while (--n); | |
20841 | } | |
20842 | else { | |
20843 | do { | |
20844 | register uint32_t Dpix; | |
20845 | ||
20846 | ||
20847 | ||
20848 | ||
20849 | ||
20850 | Dpix = (*(Su+0) ) | (*(Sv+0) << 8) | | |
20851 | (*(Su+1) << 16) | (*(Sv+1) << 24); | |
20852 | ||
20853 | *((uint32_t*)Duv) = Dpix; | |
20854 | ||
20855 | Su += 2; | |
20856 | Sv += 2; | |
20857 | Duv += 2; | |
20858 | } while (--n); | |
20859 | } | |
20860 | } | |
20861 | ||
20862 | static | |
20863 | void __generic_yv12_be_nv21 ( dfb_frame_t *frame ) | |
20864 | { | |
20865 | uint8_t *Sy = frame->vo_frame.base[0]; | |
20866 | uint8_t *Su = frame->vo_frame.base[1]; | |
20867 | uint8_t *Sv = frame->vo_frame.base[2]; | |
20868 | uint8_t *Dy = frame->out_plane[0]; | |
20869 | uint16_t *Dvu = (uint16_t*) frame->out_plane[1]; | |
20870 | int set = frame->mixer_set; | |
20871 | int n; | |
20872 | ||
20873 | if (set & (MF_B | MF_C)) { | |
20874 | n = frame->area; | |
20875 | ||
20876 | do { | |
20877 | *Dy++ = proc_table.lm[*Sy++]; | |
20878 | } while (--n); | |
20879 | } | |
20880 | ||
20881 | ||
20882 | n = frame->area/8; | |
20883 | ||
20884 | if (set & MF_S) { | |
20885 | do { | |
20886 | register uint32_t Dpix; | |
20887 | ||
20888 | ||
20889 | ||
20890 | ||
20891 | ||
20892 | ||
20893 | ||
20894 | Dpix = (proc_table.uv[*(Sv+0)] ) | | |
20895 | (proc_table.uv[*(Su+0)] << 8) | | |
20896 | (proc_table.uv[*(Sv+1)] << 16) | | |
20897 | (proc_table.uv[*(Su+1)] << 24); | |
20898 | ||
20899 | ||
20900 | *((uint32_t*)Dvu) = Dpix; | |
20901 | ||
20902 | Su += 2; | |
20903 | Sv += 2; | |
20904 | Dvu += 2; | |
20905 | } while (--n); | |
20906 | } | |
20907 | else { | |
20908 | do { | |
20909 | register uint32_t Dpix; | |
20910 | ||
20911 | ||
20912 | ||
20913 | ||
20914 | ||
20915 | Dpix = (*(Sv+0) ) | (*(Su+0) << 8) | | |
20916 | (*(Sv+1) << 16) | (*(Su+1) << 24); | |
20917 | ||
20918 | *((uint32_t*)Dvu) = Dpix; | |
20919 | ||
20920 | Su += 2; | |
20921 | Sv += 2; | |
20922 | Dvu += 2; | |
20923 | } while (--n); | |
20924 | } | |
20925 | } | |
20926 | ||
20927 | static | |
20928 | void __generic_yv12_be_nv16 ( dfb_frame_t *frame ) | |
20929 | { | |
20930 | uint8_t *Sy = frame->vo_frame.base[0]; | |
20931 | uint8_t *Su = frame->vo_frame.base[1]; | |
20932 | uint8_t *Sv = frame->vo_frame.base[2]; | |
20933 | uint8_t *Dy = frame->out_plane[0]; | |
20934 | uint16_t *Duv = (uint16_t*) frame->out_plane[1]; | |
20935 | int w = frame->width/2; | |
20936 | int l = frame->width/4; | |
20937 | int set = frame->mixer_set; | |
20938 | int n; | |
20939 | ||
20940 | if (set & (MF_B | MF_C)) { | |
20941 | n = frame->area; | |
20942 | ||
20943 | do { | |
20944 | *Dy++ = proc_table.lm[*Sy++]; | |
20945 | } while (--n); | |
20946 | } | |
20947 | ||
20948 | ||
20949 | n = frame->height/2; | |
20950 | ||
20951 | if (set & MF_S) { | |
20952 | do { | |
20953 | do { | |
20954 | register uint32_t Dpix; | |
20955 | ||
20956 | ||
20957 | ||
20958 | ||
20959 | ||
20960 | ||
20961 | ||
20962 | Dpix = (proc_table.uv[*(Su+0)] ) | | |
20963 | (proc_table.uv[*(Sv+0)] << 8) | | |
20964 | (proc_table.uv[*(Su+1)] << 16) | | |
20965 | (proc_table.uv[*(Sv+1)] << 24); | |
20966 | ||
20967 | *((uint32_t*)(Duv+0)) = Dpix; | |
20968 | *((uint32_t*)(Duv+w)) = Dpix; | |
20969 | ||
20970 | Su += 2; | |
20971 | Sv += 2; | |
20972 | Duv += 2; | |
20973 | } while (--l); | |
20974 | ||
20975 | l = w/2; | |
20976 | Duv += w; | |
20977 | } while (--n); | |
20978 | } | |
20979 | else { | |
20980 | do { | |
20981 | do { | |
20982 | register uint32_t Dpix; | |
20983 | ||
20984 | ||
20985 | ||
20986 | ||
20987 | ||
20988 | Dpix = (*(Su+0) ) | (*(Sv+0) << 8) | | |
20989 | (*(Su+1) << 16) | (*(Sv+1) << 24); | |
20990 | ||
20991 | *((uint32_t*)(Duv+0)) = Dpix; | |
20992 | *((uint32_t*)(Duv+w)) = Dpix; | |
20993 | ||
20994 | Su += 2; | |
20995 | Sv += 2; | |
20996 | Duv += 2; | |
20997 | } while (--l); | |
20998 | ||
20999 | l = w/2; | |
21000 | Duv += w; | |
21001 | } while (--n); | |
21002 | } | |
21003 | } | |
21004 | ||
21005 | static | |
21006 | void __generic_yv12_be_rgb8 ( dfb_frame_t *frame ) | |
21007 | { | |
21008 | uint8_t *Sy = frame->vo_frame.base[0]; | |
21009 | uint8_t *Su = frame->vo_frame.base[1]; | |
21010 | uint8_t *Sv = frame->vo_frame.base[2]; | |
21011 | uint8_t *D = frame->out_plane[0]; | |
21012 | int w = frame->width; | |
21013 | int l = frame->width/2; | |
21014 | int n = frame->height/2; | |
21015 | ||
21016 | do { | |
21017 | do { | |
21018 | register int cr1, cr2, cr3; | |
21019 | register int r, g, b; | |
21020 | ||
21021 | { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
21022 | ||
21023 | { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21024 | *(D+0) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); | |
21025 | ||
21026 | { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21027 | *(D+1) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); | |
21028 | ||
21029 | { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21030 | *(D+w) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); | |
21031 | ||
21032 | { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21033 | *(D+w+1) = (((uint8_t *)proc_table.clamp.r)[r]) | (((uint8_t *)proc_table.clamp.g)[g]) | (((uint8_t *)proc_table.clamp.b)[b]); | |
21034 | ||
21035 | Sy += 2; | |
21036 | D += 2; | |
21037 | } while (--l); | |
21038 | ||
21039 | l = w/2; | |
21040 | Sy += w; | |
21041 | D += w; | |
21042 | } while (--n); | |
21043 | ||
21044 | } | |
21045 | ||
21046 | static | |
21047 | void __generic_yv12_be_rgb16 ( dfb_frame_t *frame ) | |
21048 | { | |
21049 | uint8_t *Sy = frame->vo_frame.base[0]; | |
21050 | uint8_t *Su = frame->vo_frame.base[1]; | |
21051 | uint8_t *Sv = frame->vo_frame.base[2]; | |
21052 | uint16_t *D = (uint16_t*) frame->out_plane[0]; | |
21053 | int w = frame->width; | |
21054 | int l = frame->width/2; | |
21055 | int n = frame->height/2; | |
21056 | ||
21057 | do { | |
21058 | do { | |
21059 | register int cr1, cr2, cr3; | |
21060 | register int r, g, b; | |
21061 | register uint32_t p0, p1; | |
21062 | ||
21063 | { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
21064 | ||
21065 | { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21066 | p0 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); | |
21067 | ||
21068 | { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21069 | p1 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); | |
21070 | ||
21071 | ||
21072 | ||
21073 | ||
21074 | *((uint32_t*)D) = p0 | (p1 << 16); | |
21075 | ||
21076 | ||
21077 | { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21078 | p0 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); | |
21079 | ||
21080 | { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21081 | p1 = (((uint16_t*)proc_table.clamp.r)[r]) | (((uint16_t*)proc_table.clamp.g)[g]) | (((uint16_t*)proc_table.clamp.b)[b]); | |
21082 | ||
21083 | ||
21084 | ||
21085 | ||
21086 | *((uint32_t*)(D+w)) = p0 | (p1 << 16); | |
21087 | ||
21088 | ||
21089 | Sy += 2; | |
21090 | D += 2; | |
21091 | } while (--l); | |
21092 | ||
21093 | l = w/2; | |
21094 | Sy += w; | |
21095 | D += w; | |
21096 | } while (--n); | |
21097 | } | |
21098 | ||
21099 | static | |
21100 | void __generic_yv12_be_rgb24 ( dfb_frame_t *frame ) | |
21101 | { | |
21102 | uint8_t *Sy = frame->vo_frame.base[0]; | |
21103 | uint8_t *Su = frame->vo_frame.base[1]; | |
21104 | uint8_t *Sv = frame->vo_frame.base[2]; | |
21105 | uint8_t *D = frame->out_plane[0]; | |
21106 | int w = frame->width; | |
21107 | int l = frame->width/2; | |
21108 | int n = frame->height/2; | |
21109 | ||
21110 | do { | |
21111 | do { | |
21112 | register int cr1, cr2, cr3; | |
21113 | register int r, g, b; | |
21114 | ||
21115 | { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
21116 | ||
21117 | { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21118 | *(D+0) = (((uint8_t *)proc_table.clamp.b)[b]); | |
21119 | *(D+1) = (((uint8_t *)proc_table.clamp.g)[g]); | |
21120 | *(D+2) = (((uint8_t *)proc_table.clamp.r)[r]); | |
21121 | ||
21122 | { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21123 | *(D+3) = (((uint8_t *)proc_table.clamp.b)[b]); | |
21124 | *(D+4) = (((uint8_t *)proc_table.clamp.g)[g]); | |
21125 | *(D+5) = (((uint8_t *)proc_table.clamp.r)[r]); | |
21126 | ||
21127 | { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21128 | *(D+w+0) = (((uint8_t *)proc_table.clamp.b)[b]); | |
21129 | *(D+w+1) = (((uint8_t *)proc_table.clamp.g)[g]); | |
21130 | *(D+w+2) = (((uint8_t *)proc_table.clamp.r)[r]); | |
21131 | ||
21132 | { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21133 | *(D+w+3) = (((uint8_t *)proc_table.clamp.b)[b]); | |
21134 | *(D+w+4) = (((uint8_t *)proc_table.clamp.g)[g]); | |
21135 | *(D+w+5) = (((uint8_t *)proc_table.clamp.r)[r]); | |
21136 | ||
21137 | Sy += 2; | |
21138 | D += 6; | |
21139 | } while (--l); | |
21140 | ||
21141 | l = w/2; | |
21142 | Sy += w; | |
21143 | D += w*3; | |
21144 | } while (--n); | |
21145 | } | |
21146 | ||
21147 | static | |
21148 | void __generic_yv12_be_rgb32 ( dfb_frame_t *frame ) | |
21149 | { | |
21150 | uint8_t *Sy = frame->vo_frame.base[0]; | |
21151 | uint8_t *Su = frame->vo_frame.base[1]; | |
21152 | uint8_t *Sv = frame->vo_frame.base[2]; | |
21153 | uint32_t *D = (uint32_t*) frame->out_plane[0]; | |
21154 | int w = frame->width; | |
21155 | int l = frame->width/2; | |
21156 | int n = frame->height/2; | |
21157 | ||
21158 | do { | |
21159 | do { | |
21160 | register int cr1, cr2, cr3; | |
21161 | register int r, g, b; | |
21162 | ||
21163 | { register int _u = (*Su++); register int _v = (*Sv++); cr1 = proc_table.vr[_v]; cr2 = proc_table.vg[_v] + proc_table.ug[_u]; cr3 = proc_table.ub[_u];}; | |
21164 | ||
21165 | { register int _y; _y = proc_table.lm[(*(Sy+0))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21166 | *(D+0) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); | |
21167 | ||
21168 | { register int _y; _y = proc_table.lm[(*(Sy+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21169 | *(D+1) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); | |
21170 | ||
21171 | { register int _y; _y = proc_table.lm[(*(Sy+w))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21172 | *(D+w) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); | |
21173 | ||
21174 | { register int _y; _y = proc_table.lm[(*(Sy+w+1))]; (r) = _y + cr1; (g) = _y + cr2; (b) = _y + cr3;}; | |
21175 | *(D+w+1) = (((uint32_t*)proc_table.clamp.r)[r]) | (((uint32_t*)proc_table.clamp.g)[g]) | (((uint32_t*)proc_table.clamp.b)[b]); | |
21176 | ||
21177 | Sy += 2; | |
21178 | D += 2; | |
21179 | } while (--l); | |
21180 | ||
21181 | l = w/2; | |
21182 | Sy += w; | |
21183 | D += w; | |
21184 | } while (--n); | |
21185 | } | |
21186 | ||
21187 | ||
21188 | ||
21189 | #undef PACCEL | |
21190 | # 160 "video_out_dfb.c" 2 | |
21191 | ||
21192 | ||
21193 | # 1 "video_out_dfb_mmxproc.h" 1 | |
21194 | # 20 "video_out_dfb_mmxproc.h" | |
21195 | #define PACCEL mmx | |
21196 | ||
21197 | static const uint64_t __attribute__((used)) lmask[] = { 0x000000ff000000ffull }; | |
21198 | ||
21199 | static const uint64_t __attribute__((used)) wmask[] = { 0x00ff00ff00ff00ffull }; | |
21200 | ||
21201 | static const uint64_t __attribute__((used)) a1mask[] = { 0x8000800080008000ull }; | |
21202 | ||
21203 | static const uint64_t __attribute__((used)) a8mask[] = { 0xffffffffffffffffull }; | |
21204 | ||
21205 | static const uint64_t __attribute__((used)) b3mask[] = { 0xe0e0e0e0e0e0e0e0ull }; | |
21206 | ||
21207 | static const uint64_t __attribute__((used)) b5mask[] = { 0xf8f8f8f8f8f8f8f8ull }; | |
21208 | ||
21209 | static const uint64_t __attribute__((used)) b6mask[] = { 0xfcfcfcfcfcfcfcfcull }; | |
21210 | ||
21211 | ||
21212 | ||
21213 | static | |
21214 | void __mmx_yuy2_be_yuy2 ( dfb_frame_t *frame ) | |
21215 | { | |
21216 | uint8_t *S = frame->vo_frame.base[0]; | |
21217 | uint8_t *D = frame->out_plane[0]; | |
21218 | int n = frame->area/4; | |
21219 | ||
21220 | __asm__ __volatile__( | |
21221 | "movq wmask, %%mm2\n\t" | |
21222 | "psllw $8, %%mm2\n\t" | |
21223 | "pxor %%mm7, %%mm7\n\t" | |
21224 | ".align 16\n" | |
21225 | "1:\n\t" | |
21226 | "movq (%1), %%mm0\n\t" | |
21227 | "movq %%mm0, %%mm1\n\t" | |
21228 | "pand wmask, %%mm1\n\t" | |
21229 | "testl $3, %3\n\t" | |
21230 | "jz 2f\n\t" | |
21231 | "psubw proc_table, %%mm1\n\t" | |
21232 | "psllw $3, %%mm1\n\t" | |
21233 | "pmulhw proc_table+24, %%mm1\n\t" | |
21234 | "paddw proc_table+8, %%mm1\n\t" | |
21235 | "packuswb %%mm1, %%mm1\n\t" | |
21236 | "punpcklbw %%mm7, %%mm1\n\t" | |
21237 | ".align 8\n" | |
21238 | "2:\n\t" | |
21239 | "pand %%mm2, %%mm0\n\t" | |
21240 | "testl $4, %3\n\t" | |
21241 | "jz 3f\n\t" | |
21242 | "psrlw $8, %%mm0\n\t" | |
21243 | "psubw proc_table+16, %%mm0\n\t" | |
21244 | "psllw $3, %%mm0\n\t" | |
21245 | "pmulhw proc_table+32, %%mm0\n\t" | |
21246 | "paddw proc_table+16, %%mm0\n\t" | |
21247 | "packuswb %%mm0, %%mm0\n\t" | |
21248 | "punpcklbw %%mm7, %%mm0\n\t" | |
21249 | "psllw $8, %%mm0\n\t" | |
21250 | ".align 8\n" | |
21251 | "3:\n\t" | |
21252 | "por %%mm1, %%mm0\n\t" | |
21253 | "movq %%mm0, (%0)\n\t" | |
21254 | "addl $8, %0\n\t" | |
21255 | "addl $8, %1\n\t" | |
21256 | "decl %2\n\t" | |
21257 | "jnz 1b\n\t" | |
21258 | "emms" | |
21259 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
21260 | : "q" (frame->mixer_set), "0" (D), "1" (S), "2" (n) | |
21261 | : "memory"); | |
21262 | } | |
21263 | ||
21264 | static | |
21265 | void __mmx_yuy2_be_uyvy ( dfb_frame_t *frame ) | |
21266 | { | |
21267 | uint8_t *S = frame->vo_frame.base[0]; | |
21268 | uint8_t *D = frame->out_plane[0]; | |
21269 | int n = frame->area/4; | |
21270 | ||
21271 | __asm__ __volatile__( | |
21272 | "pxor %%mm7, %%mm7\n\t" | |
21273 | "testl $7, %3\n\t" | |
21274 | "jz 4f\n\t" | |
21275 | ||
21276 | ".align 16\n" | |
21277 | "1:\n\t" | |
21278 | "movq (%1), %%mm0\n\t" | |
21279 | "movq %%mm0, %%mm1\n\t" | |
21280 | "pand wmask, %%mm1\n\t" | |
21281 | "psrlw $8, %%mm0\n\t" | |
21282 | "testl $3, %3\n\t" | |
21283 | "jz 2f\n\t" | |
21284 | "psubw proc_table, %%mm1\n\t" | |
21285 | "psllw $3, %%mm1\n\t" | |
21286 | "pmulhw proc_table+24, %%mm1\n\t" | |
21287 | "paddw proc_table+8, %%mm1\n\t" | |
21288 | "packuswb %%mm1, %%mm1\n\t" | |
21289 | "punpcklbw %%mm7, %%mm1\n\t" | |
21290 | ".align 4\n" | |
21291 | "2:\n\t" | |
21292 | "testl $4, %3\n\t" | |
21293 | "jz 3f\n\t" | |
21294 | "psubw proc_table+16, %%mm0\n\t" | |
21295 | "psllw $3, %%mm0\n\t" | |
21296 | "pmulhw proc_table+32, %%mm0\n\t" | |
21297 | "paddw proc_table+16, %%mm0\n\t" | |
21298 | "packuswb %%mm0, %%mm0\n\t" | |
21299 | "punpcklbw %%mm7, %%mm0\n\t" | |
21300 | ".align 8\n" | |
21301 | "3:\n\t" | |
21302 | "psllw $8, %%mm1\n\t" | |
21303 | "por %%mm1, %%mm0\n\t" | |
21304 | "movq %%mm0, (%0)\n\t" | |
21305 | "addl $8, %0\n\t" | |
21306 | "addl $8, %1\n\t" | |
21307 | "decl %2\n\t" | |
21308 | "jnz 1b\n\t" | |
21309 | "jmp 5f\n\t" | |
21310 | ||
21311 | ".align 16\n" | |
21312 | "4:\n\t" | |
21313 | "movq (%1), %%mm0\n\t" | |
21314 | "movq %%mm0, %%mm1\n\t" | |
21315 | "pand wmask, %%mm0\n\t" | |
21316 | "psrlw $8, %%mm1\n\t" | |
21317 | "psllw $8, %%mm0\n\t" | |
21318 | "por %%mm1, %%mm0\n\t" | |
21319 | "movq %%mm0, (%0)\n\t" | |
21320 | "addl $8, %0\n\t" | |
21321 | "addl $8, %1\n\t" | |
21322 | "decl %2\n\t" | |
21323 | "jnz 4b\n\t" | |
21324 | "5:\n\t" | |
21325 | "emms" | |
21326 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
21327 | : "q" (frame->mixer_set), "0" (D), "1" (S), "2" (n) | |
21328 | : "memory"); | |
21329 | } | |
21330 | ||
21331 | static | |
21332 | void __mmx_yuy2_be_yv12 ( dfb_frame_t *frame ) | |
21333 | { | |
21334 | uint8_t *S = frame->vo_frame.base[0]; | |
21335 | uint8_t *Dy = frame->out_plane[0]; | |
21336 | uint8_t *Du = frame->out_plane[1]; | |
21337 | uint8_t *Dv = frame->out_plane[2]; | |
21338 | int n = frame->height/2; | |
21339 | int set = frame->mixer_set; | |
21340 | ||
21341 | __asm__ __volatile__( | |
21342 | "pxor %%mm7, %%mm7\n\t" | |
21343 | "testb $7, %6\n\t" | |
21344 | "jz 4f\n\t" | |
21345 | ||
21346 | ".align 16\n" | |
21347 | "1:\n\t" | |
21348 | "movq (%0), %%mm0\n\t" | |
21349 | "movq (%0,%4,4), %%mm1\n\t" | |
21350 | "movq %%mm0, %%mm2\n\t" | |
21351 | "movq %%mm1, %%mm3\n\t" | |
21352 | "psrlw $8, %%mm0\n\t" | |
21353 | "psrlw $8, %%mm1\n\t" | |
21354 | "pand wmask, %%mm2\n\t" | |
21355 | "pand wmask, %%mm3\n\t" | |
21356 | "paddw %%mm1, %%mm0\n\t" | |
21357 | "psrlw $1, %%mm0\n\t" | |
21358 | "testb $3, %6\n\t" | |
21359 | "jz 2f\n\t" | |
21360 | "psubw proc_table, %%mm2\n\t" | |
21361 | "psubw proc_table, %%mm3\n\t" | |
21362 | "psllw $3, %%mm2\n\t" | |
21363 | "psllw $3, %%mm3\n\t" | |
21364 | "pmulhw proc_table+24, %%mm2\n\t" | |
21365 | "pmulhw proc_table+24, %%mm3\n\t" | |
21366 | "paddw proc_table+8, %%mm2\n\t" | |
21367 | "paddw proc_table+8, %%mm3\n\t" | |
21368 | "2:\n\t" | |
21369 | "testb $4, %6\n\t" | |
21370 | "jz 3f\n\t" | |
21371 | "psubw proc_table+16, %%mm0\n\t" | |
21372 | "psllw $3, %%mm0\n\t" | |
21373 | "pmulhw proc_table+32, %%mm0\n\t" | |
21374 | "paddw proc_table+16, %%mm0\n\t" | |
21375 | "packuswb %%mm0, %%mm0\n\t" | |
21376 | "punpcklbw %%mm7, %%mm0\n\t" | |
21377 | ".align 8\n" | |
21378 | "3:\n\t" | |
21379 | "packuswb %%mm2, %%mm2\n\t" | |
21380 | "packuswb %%mm3, %%mm3\n\t" | |
21381 | "movq %%mm0, %%mm1\n\t" | |
21382 | "movd %%mm2, (%1)\n\t" | |
21383 | "punpckhdq %%mm0, %%mm0\n\t" | |
21384 | "movd %%mm3, (%1,%4,2)\n\t" | |
21385 | "punpcklbw %%mm0, %%mm1\n\t" | |
21386 | "movd %%mm1, (%2)\n\t" | |
21387 | "punpckhdq %%mm1, %%mm1\n\t" | |
21388 | "movd %%mm1, (%3)\n\t" | |
21389 | "addl $8, %0\n\t" | |
21390 | "addl $4, %1\n\t" | |
21391 | "addl $2, %2\n\t" | |
21392 | "addl $2, %3\n\t" | |
21393 | "decl %5\n\t" | |
21394 | "jnz 1b\n\t" | |
21395 | "movl %4, %5\n\t" | |
21396 | "shll $1, %5\n\t" | |
21397 | "addl %5, %1\n\t" | |
21398 | "shll $1, %5\n\t" | |
21399 | "addl %5, %0\n\t" | |
21400 | "shrl $3, %5\n\t" | |
21401 | "decl %7\n\t" | |
21402 | "jnz 1b\n\t" | |
21403 | "jmp 5f\n\t" | |
21404 | ||
21405 | ".align 16\n" | |
21406 | "4:\n\t" | |
21407 | "movq (%0), %%mm0\n\t" | |
21408 | "movq (%0,%4,4), %%mm1\n\t" | |
21409 | "movq %%mm0, %%mm2\n\t" | |
21410 | "movq %%mm1, %%mm3\n\t" | |
21411 | "psrlw $8, %%mm0\n\t" | |
21412 | "psrlw $8, %%mm1\n\t" | |
21413 | "pand wmask, %%mm2\n\t" | |
21414 | "pand wmask, %%mm3\n\t" | |
21415 | "paddw %%mm1, %%mm0\n\t" | |
21416 | "packuswb %%mm2, %%mm2\n\t" | |
21417 | "psrlw $1, %%mm0\n\t" | |
21418 | "packuswb %%mm3, %%mm3\n\t" | |
21419 | "movq %%mm0, %%mm1\n\t" | |
21420 | "movd %%mm2, (%1)\n\t" | |
21421 | "punpckhdq %%mm0, %%mm0\n\t" | |
21422 | "movd %%mm3, (%1,%4,2)\n\t" | |
21423 | "punpcklbw %%mm0, %%mm1\n\t" | |
21424 | "movd %%mm1, (%2)\n\t" | |
21425 | "punpckhdq %%mm1, %%mm1\n\t" | |
21426 | "movd %%mm1, (%3)\n\t" | |
21427 | "addl $8, %0\n\t" | |
21428 | "addl $4, %1\n\t" | |
21429 | "addl $2, %2\n\t" | |
21430 | "addl $2, %3\n\t" | |
21431 | "decl %5\n\t" | |
21432 | "jnz 4b\n\t" | |
21433 | "movl %4, %5\n\t" | |
21434 | "shll $1, %5\n\t" | |
21435 | "addl %5, %1\n\t" | |
21436 | "shll $1, %5\n\t" | |
21437 | "addl %5, %0\n\t" | |
21438 | "shrl $3, %5\n\t" | |
21439 | "decl %7\n\t" | |
21440 | "jnz 4b\n\t" | |
21441 | "5:\n\t" | |
21442 | "emms" | |
21443 | : "=&S" (S), "=&r" (Dy), "=&r" (Du), "=&r" (Dv) | |
21444 | : "q" (frame->width/2), "c" (frame->width/4), "m" (set), "m" (n), | |
21445 | "0" (S), "1" (Dy), "2" (Du), "3" (Dv) | |
21446 | : "memory" ); | |
21447 | } | |
21448 | ||
21449 | static | |
21450 | void __mmx_yuy2_be_nv12 ( dfb_frame_t *frame ) | |
21451 | { | |
21452 | uint8_t *S = frame->vo_frame.base[0]; | |
21453 | uint8_t *Dy = frame->out_plane[0]; | |
21454 | uint8_t *Duv = frame->out_plane[1]; | |
21455 | int n = frame->height/2; | |
21456 | int set = frame->mixer_set; | |
21457 | ||
21458 | __asm__ __volatile__( | |
21459 | "testl $7, %5\n\t" | |
21460 | "jz 4f\n\t" | |
21461 | ||
21462 | ".align 16\n" | |
21463 | "1:\n\t" | |
21464 | "movq (%0), %%mm0\n\t" | |
21465 | "movq (%0,%3,4), %%mm1\n\t" | |
21466 | "movq %%mm0, %%mm2\n\t" | |
21467 | "movq %%mm1, %%mm3\n\t" | |
21468 | "psrlw $8, %%mm0\n\t" | |
21469 | "psrlw $8, %%mm1\n\t" | |
21470 | "pand wmask, %%mm2\n\t" | |
21471 | "pand wmask, %%mm3\n\t" | |
21472 | "paddw %%mm1, %%mm0\n\t" | |
21473 | "psrlw $1, %%mm0\n\t" | |
21474 | "testl $3, %5\n\t" | |
21475 | "jz 2f\n\t" | |
21476 | "psubw proc_table, %%mm2\n\t" | |
21477 | "psubw proc_table, %%mm3\n\t" | |
21478 | "psllw $3, %%mm2\n\t" | |
21479 | "psllw $3, %%mm3\n\t" | |
21480 | "pmulhw proc_table+24, %%mm2\n\t" | |
21481 | "pmulhw proc_table+24, %%mm3\n\t" | |
21482 | "paddw proc_table+8, %%mm2\n\t" | |
21483 | "paddw proc_table+8, %%mm3\n\t" | |
21484 | "2:\n\t" | |
21485 | "testl $4, %5\n\t" | |
21486 | "jz 3f\n\t" | |
21487 | "psubw proc_table+16, %%mm0\n\t" | |
21488 | "psllw $3, %%mm0\n\t" | |
21489 | "pmulhw proc_table+32, %%mm0\n\t" | |
21490 | "paddw proc_table+16, %%mm0\n\t" | |
21491 | ".align 8\n" | |
21492 | "3:\n\t" | |
21493 | "packuswb %%mm2, %%mm2\n\t" | |
21494 | "packuswb %%mm3, %%mm3\n\t" | |
21495 | "movd %%mm2, (%1)\n\t" | |
21496 | "packuswb %%mm0, %%mm0\n\t" | |
21497 | "movd %%mm3, (%1,%3,2)\n\t" | |
21498 | "movd %%mm0, (%2)\n\t" | |
21499 | "addl $8, %0\n\t" | |
21500 | "addl $4, %1\n\t" | |
21501 | "addl $4, %2\n\t" | |
21502 | "decl %4\n\t" | |
21503 | "jnz 1b\n\t" | |
21504 | "movl %3, %4\n\t" | |
21505 | "shll $1, %4\n\t" | |
21506 | "addl %4, %1\n\t" | |
21507 | "shll $1, %4\n\t" | |
21508 | "addl %4, %0\n\t" | |
21509 | "shrl $3, %4\n\t" | |
21510 | "decl %6\n\t" | |
21511 | "jnz 1b\n\t" | |
21512 | "jmp 5f\n\t" | |
21513 | ||
21514 | ".align 16\n" | |
21515 | "4:\n\t" | |
21516 | "movq (%0), %%mm0\n\t" | |
21517 | "movq (%0,%3,4), %%mm1\n\t" | |
21518 | "movq %%mm0, %%mm2\n\t" | |
21519 | "movq %%mm1, %%mm3\n\t" | |
21520 | "psrlw $8, %%mm0\n\t" | |
21521 | "psrlw $8, %%mm1\n\t" | |
21522 | "pand wmask, %%mm2\n\t" | |
21523 | "pand wmask, %%mm3\n\t" | |
21524 | "paddw %%mm1, %%mm0\n\t" | |
21525 | "packuswb %%mm2, %%mm2\n\t" | |
21526 | "psrlw $1, %%mm0\n\t" | |
21527 | "packuswb %%mm3, %%mm3\n\t" | |
21528 | "movd %%mm2, (%1)\n\t" | |
21529 | "packuswb %%mm0, %%mm0\n\t" | |
21530 | "movd %%mm3, (%1,%3,2)\n\t" | |
21531 | "movd %%mm0, (%2)\n\t" | |
21532 | "addl $8, %0\n\t" | |
21533 | "addl $4, %1\n\t" | |
21534 | "addl $4, %2\n\t" | |
21535 | "decl %4\n\t" | |
21536 | "jnz 4b\n\t" | |
21537 | "movl %3, %4\n\t" | |
21538 | "shll $1, %4\n\t" | |
21539 | "addl %4, %1\n\t" | |
21540 | "shll $1, %4\n\t" | |
21541 | "addl %4, %0\n\t" | |
21542 | "shrl $3, %4\n\t" | |
21543 | "decl %6\n\t" | |
21544 | "jnz 4b\n\t" | |
21545 | "5:\n\t" | |
21546 | "emms" | |
21547 | : "=&S" (S), "=&r" (Dy), "=&r" (Duv) | |
21548 | : "q" (frame->width/2), "c" (frame->width/4), "q" (set), "m" (n), | |
21549 | "0" (S), "1" (Dy), "2" (Duv) | |
21550 | : "memory" ); | |
21551 | } | |
21552 | ||
21553 | static | |
21554 | void __mmx_yuy2_be_nv21 ( dfb_frame_t *frame ) | |
21555 | { | |
21556 | uint8_t *S = frame->vo_frame.base[0]; | |
21557 | uint8_t *Dy = frame->out_plane[0]; | |
21558 | uint8_t *Duv = frame->out_plane[1]; | |
21559 | int n = frame->height/2; | |
21560 | int set = frame->mixer_set; | |
21561 | ||
21562 | __asm__ __volatile__( | |
21563 | "testl $7, %5\n\t" | |
21564 | "jz 4f\n\t" | |
21565 | ||
21566 | ".align 16\n" | |
21567 | "1:\n\t" | |
21568 | "movq (%0), %%mm0\n\t" | |
21569 | "movq (%0,%3,4), %%mm1\n\t" | |
21570 | "movq %%mm0, %%mm2\n\t" | |
21571 | "movq %%mm1, %%mm3\n\t" | |
21572 | "psrlw $8, %%mm0\n\t" | |
21573 | "psrlw $8, %%mm1\n\t" | |
21574 | "pand wmask, %%mm2\n\t" | |
21575 | "pand wmask, %%mm3\n\t" | |
21576 | "paddw %%mm1, %%mm0\n\t" | |
21577 | "psrlw $1, %%mm0\n\t" | |
21578 | "testl $3, %5\n\t" | |
21579 | "jz 2f\n\t" | |
21580 | "psubw proc_table, %%mm2\n\t" | |
21581 | "psubw proc_table, %%mm3\n\t" | |
21582 | "psllw $3, %%mm2\n\t" | |
21583 | "psllw $3, %%mm3\n\t" | |
21584 | "pmulhw proc_table+24, %%mm2\n\t" | |
21585 | "pmulhw proc_table+24, %%mm3\n\t" | |
21586 | "paddw proc_table+8, %%mm2\n\t" | |
21587 | "paddw proc_table+8, %%mm3\n\t" | |
21588 | "2:\n\t" | |
21589 | "testl $4, %5\n\t" | |
21590 | "jz 3f\n\t" | |
21591 | "psubw proc_table+16, %%mm0\n\t" | |
21592 | "psllw $3, %%mm0\n\t" | |
21593 | "pmulhw proc_table+32, %%mm0\n\t" | |
21594 | "paddw proc_table+16, %%mm0\n\t" | |
21595 | ".align 8\n" | |
21596 | "3:\n\t" | |
21597 | "packuswb %%mm2, %%mm2\n\t" | |
21598 | "packuswb %%mm3, %%mm3\n\t" | |
21599 | "packuswb %%mm0, %%mm0\n\t" | |
21600 | "movd %%mm2, (%1)\n\t" | |
21601 | "movq %%mm0, %%mm1\n\t" | |
21602 | "movd %%mm3, (%1,%3,2)\n\t" | |
21603 | "psllw $8, %%mm0\n\t" | |
21604 | "psrlw $8, %%mm1\n\t" | |
21605 | "por %%mm1, %%mm0\n\t" | |
21606 | "movd %%mm0, (%2)\n\t" | |
21607 | "addl $8, %0\n\t" | |
21608 | "addl $4, %1\n\t" | |
21609 | "addl $4, %2\n\t" | |
21610 | "decl %4\n\t" | |
21611 | "jnz 1b\n\t" | |
21612 | "movl %3, %4\n\t" | |
21613 | "shll $1, %4\n\t" | |
21614 | "addl %4, %1\n\t" | |
21615 | "shll $1, %4\n\t" | |
21616 | "addl %4, %0\n\t" | |
21617 | "shrl $3, %4\n\t" | |
21618 | "decl %6\n\t" | |
21619 | "jnz 1b\n\t" | |
21620 | "jmp 5f\n\t" | |
21621 | ||
21622 | ".align 16\n" | |
21623 | "4:\n\t" | |
21624 | "movq (%0), %%mm0\n\t" | |
21625 | "movq (%0,%3,4), %%mm1\n\t" | |
21626 | "movq %%mm0, %%mm2\n\t" | |
21627 | "movq %%mm1, %%mm3\n\t" | |
21628 | "psrlw $8, %%mm0\n\t" | |
21629 | "psrlw $8, %%mm1\n\t" | |
21630 | "pand wmask, %%mm2\n\t" | |
21631 | "pand wmask, %%mm3\n\t" | |
21632 | "paddw %%mm1, %%mm0\n\t" | |
21633 | "packuswb %%mm2, %%mm2\n\t" | |
21634 | "psrlw $1, %%mm0\n\t" | |
21635 | "packuswb %%mm3, %%mm3\n\t" | |
21636 | "packuswb %%mm0, %%mm0\n\t" | |
21637 | "movd %%mm2, (%1)\n\t" | |
21638 | "movq %%mm0, %%mm1\n\t" | |
21639 | "movd %%mm3, (%1,%3,2)\n\t" | |
21640 | "psllw $8, %%mm0\n\t" | |
21641 | "psrlw $8, %%mm1\n\t" | |
21642 | "por %%mm1, %%mm0\n\t" | |
21643 | "movd %%mm0, (%2)\n\t" | |
21644 | "addl $8, %0\n\t" | |
21645 | "addl $4, %1\n\t" | |
21646 | "addl $4, %2\n\t" | |
21647 | "decl %4\n\t" | |
21648 | "jnz 4b\n\t" | |
21649 | "movl %3, %4\n\t" | |
21650 | "shll $1, %4\n\t" | |
21651 | "addl %4, %1\n\t" | |
21652 | "shll $1, %4\n\t" | |
21653 | "addl %4, %0\n\t" | |
21654 | "shrl $3, %4\n\t" | |
21655 | "decl %6\n\t" | |
21656 | "jnz 4b\n\t" | |
21657 | "5:\n\t" | |
21658 | "emms" | |
21659 | : "=&S" (S), "=&r" (Dy), "=&r" (Duv) | |
21660 | : "q" (frame->width/2), "c" (frame->width/4), "q" (set), "m" (n), | |
21661 | "0" (S), "1" (Dy), "2" (Duv) | |
21662 | : "memory" ); | |
21663 | } | |
21664 | ||
21665 | static | |
21666 | void __mmx_yuy2_be_nv16 ( dfb_frame_t *frame ) | |
21667 | { | |
21668 | uint8_t *S = frame->vo_frame.base[0]; | |
21669 | uint8_t *Dy = frame->out_plane[0]; | |
21670 | uint8_t *Dvu = frame->out_plane[1]; | |
21671 | int n = frame->area/4; | |
21672 | ||
21673 | __asm__ __volatile__( | |
21674 | "testl $7, %4\n\t" | |
21675 | "jz 4f\n\t" | |
21676 | ||
21677 | ".align 16\n" | |
21678 | "movq (%0), %%mm0\n\t" | |
21679 | "movq %%mm0, %%mm1\n\t" | |
21680 | "pand wmask, %%mm0\n\t" | |
21681 | "psrlw $8, %%mm1\n\t" | |
21682 | "testl $3, %4\n\t" | |
21683 | "jz 2f\n\t" | |
21684 | "psubw proc_table, %%mm0\n\t" | |
21685 | "psllw $3, %%mm0\n\t" | |
21686 | "pmulhw proc_table+24, %%mm0\n\t" | |
21687 | "paddw proc_table+8, %%mm0\n\t" | |
21688 | ".align 4\n" | |
21689 | "2:\n\t" | |
21690 | "testl $4, %4\n\t" | |
21691 | "jz 3f\n\t" | |
21692 | "psubw proc_table+16, %%mm1\n\t" | |
21693 | "psllw $3, %%mm1\n\t" | |
21694 | "pmulhw proc_table+32, %%mm1\n\t" | |
21695 | "paddw proc_table+16, %%mm1\n\t" | |
21696 | ".align 8\n" | |
21697 | "3:\n\t" | |
21698 | "packuswb %%mm0, %%mm0\n\t" | |
21699 | "packuswb %%mm1, %%mm1\n\t" | |
21700 | "movd %%mm0, (%1)\n\t" | |
21701 | "movd %%mm1, (%2)\n\t" | |
21702 | "addl $8, %0\n\t" | |
21703 | "addl $4, %1\n\t" | |
21704 | "addl $4, %2\n\t" | |
21705 | "decl %3\n\t" | |
21706 | "jnz 1b\n\t" | |
21707 | "jmp 5f\n\t" | |
21708 | ||
21709 | ".align 16\n" | |
21710 | "4:\n\t" | |
21711 | "movq (%0), %%mm0\n\t" | |
21712 | "movq %%mm0, %%mm1\n\t" | |
21713 | "pand wmask, %%mm0\n\t" | |
21714 | "psrlw $8, %%mm1\n\t" | |
21715 | "packuswb %%mm0, %%mm0\n\t" | |
21716 | "packuswb %%mm1, %%mm1\n\t" | |
21717 | "movd %%mm0, (%1)\n\t" | |
21718 | "movd %%mm1, (%2)\n\t" | |
21719 | "addl $8, %0\n\t" | |
21720 | "addl $4, %1\n\t" | |
21721 | "addl $4, %2\n\t" | |
21722 | "decl %3\n\t" | |
21723 | "jnz 4b\n\t" | |
21724 | "5:\n\t" | |
21725 | "emms" | |
21726 | : "=&S" (S), "=&r" (Dy), "=&r" (Dvu), "=&c" (n) | |
21727 | : "q" (frame->mixer_set), "0" (S), "1" (Dy), "2" (Dvu), "3" (n) | |
21728 | : "memory" ); | |
21729 | } | |
21730 | ||
21731 | static | |
21732 | void __mmx_yuy2_be_rgb332 ( dfb_frame_t *frame ) | |
21733 | { | |
21734 | uint8_t *S = frame->vo_frame.base[0]; | |
21735 | uint8_t *D = frame->out_plane[0]; | |
21736 | int n = frame->area/4; | |
21737 | ||
21738 | __asm__ __volatile__( | |
21739 | "pxor %%mm7, %%mm7\n\t" | |
21740 | ".align 16\n" | |
21741 | "1:\n\t" | |
21742 | "movq (%1), %%mm0\n\t" | |
21743 | "movq %%mm0, %%mm2\n\t" | |
21744 | "movq %%mm0, %%mm1\n\t" | |
21745 | "pand wmask, %%mm2\n\t" | |
21746 | "psrld $8, %%mm1\n\t" | |
21747 | "psubw proc_table, %%mm2\n\t" | |
21748 | "pand lmask, %%mm1\n\t" | |
21749 | "psllw $3, %%mm2\n\t" | |
21750 | "packssdw %%mm1, %%mm1\n\t" | |
21751 | "pmulhw proc_table+24, %%mm2\n\t" | |
21752 | "punpcklwd %%mm1, %%mm1\n\t" | |
21753 | "psrld $24, %%mm0\n\t" | |
21754 | "psubw proc_table+16, %%mm1\n\t" | |
21755 | "packssdw %%mm0, %%mm0\n\t" | |
21756 | "psllw $3, %%mm1\n\t" | |
21757 | "punpcklwd %%mm0, %%mm0\n\t" | |
21758 | "movq %%mm1, %%mm4\n\t" | |
21759 | "psubw proc_table+16, %%mm0\n\t" | |
21760 | "pmulhw proc_table+64, %%mm4\n\t" | |
21761 | "psllw $3, %%mm0\n\t" | |
21762 | "paddw %%mm2, %%mm4\n\t" | |
21763 | "movq %%mm0, %%mm3\n\t" | |
21764 | "packuswb %%mm4, %%mm4\n\t" | |
21765 | "pmulhw proc_table+40, %%mm3\n\t" | |
21766 | "punpcklbw %%mm7, %%mm4\n\t" | |
21767 | "paddw %%mm2, %%mm3\n\t" | |
21768 | "pmulhw proc_table+48, %%mm0\n\t" | |
21769 | "packuswb %%mm3, %%mm3\n\t" | |
21770 | "psrlw $6, %%mm4\n\t" | |
21771 | "pand b3mask, %%mm3\n\t" | |
21772 | "pmulhw proc_table+56, %%mm1\n\t" | |
21773 | "punpcklbw %%mm7, %%mm3\n\t" | |
21774 | "paddw %%mm1, %%mm0\n\t" | |
21775 | "por %%mm4, %%mm3\n\t" | |
21776 | "paddw %%mm0, %%mm2\n\t" | |
21777 | "packuswb %%mm2, %%mm2\n\t" | |
21778 | "pand b3mask, %%mm2\n\t" | |
21779 | "punpcklbw %%mm7, %%mm2\n\t" | |
21780 | "psrlw $3, %%mm2\n\t" | |
21781 | "por %%mm2, %%mm3\n\t" | |
21782 | "packuswb %%mm3, %%mm3\n\t" | |
21783 | "movq %%mm3, (%0)\n\t" | |
21784 | "addl $4, %0\n\t" | |
21785 | "addl $8, %1\n\t" | |
21786 | "decl %2\n\t" | |
21787 | "jnz 1b\n\t" | |
21788 | "emms" | |
21789 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
21790 | : "0" (D), "1" (S), "2" (n) | |
21791 | : "memory"); | |
21792 | } | |
21793 | ||
21794 | static | |
21795 | void __mmx_yuy2_be_argb1555 ( dfb_frame_t *frame ) | |
21796 | { | |
21797 | uint8_t *S = frame->vo_frame.base[0]; | |
21798 | uint8_t *D = frame->out_plane[0]; | |
21799 | int n = frame->area/4; | |
21800 | ||
21801 | __asm__ __volatile__( | |
21802 | "pxor %%mm7, %%mm7\n\t" | |
21803 | ".align 16\n" | |
21804 | "1:\n\t" | |
21805 | "movq (%1), %%mm0\n\t" | |
21806 | "movq %%mm0, %%mm2\n\t" | |
21807 | "movq %%mm0, %%mm1\n\t" | |
21808 | "pand wmask, %%mm2\n\t" | |
21809 | "psrld $8, %%mm1\n\t" | |
21810 | "psubw proc_table, %%mm2\n\t" | |
21811 | "pand lmask, %%mm1\n\t" | |
21812 | "psllw $3, %%mm2\n\t" | |
21813 | "packssdw %%mm1, %%mm1\n\t" | |
21814 | "pmulhw proc_table+24, %%mm2\n\t" | |
21815 | "punpcklwd %%mm1, %%mm1\n\t" | |
21816 | "psrld $24, %%mm0\n\t" | |
21817 | "psubw proc_table+16, %%mm1\n\t" | |
21818 | "packssdw %%mm0, %%mm0\n\t" | |
21819 | "psllw $3, %%mm1\n\t" | |
21820 | "punpcklwd %%mm0, %%mm0\n\t" | |
21821 | "movq %%mm1, %%mm4\n\t" | |
21822 | "psubw proc_table+16, %%mm0\n\t" | |
21823 | "pmulhw proc_table+64, %%mm4\n\t" | |
21824 | "psllw $3, %%mm0\n\t" | |
21825 | "paddw %%mm2, %%mm4\n\t" | |
21826 | "movq %%mm0, %%mm3\n\t" | |
21827 | "packuswb %%mm4, %%mm4\n\t" | |
21828 | "pmulhw proc_table+40, %%mm3\n\t" | |
21829 | "punpcklbw %%mm7, %%mm4\n\t" | |
21830 | "paddw %%mm2, %%mm3\n\t" | |
21831 | "pmulhw proc_table+48, %%mm0\n\t" | |
21832 | "packuswb %%mm3, %%mm3\n\t" | |
21833 | "psrlw $3, %%mm4\n\t" | |
21834 | "pand b5mask, %%mm3\n\t" | |
21835 | "pmulhw proc_table+56, %%mm1\n\t" | |
21836 | "punpcklbw %%mm7, %%mm3\n\t" | |
21837 | "paddw %%mm1, %%mm0\n\t" | |
21838 | "psllw $7, %%mm3\n\t" | |
21839 | "paddw %%mm0, %%mm2\n\t" | |
21840 | "por %%mm4, %%mm3\n\t" | |
21841 | "packuswb %%mm2, %%mm2\n\t" | |
21842 | "pand b5mask, %%mm2\n\t" | |
21843 | "punpcklbw %%mm7, %%mm2\n\t" | |
21844 | "por a1mask, %%mm3\n\t" | |
21845 | "psllw $2, %%mm2\n\t" | |
21846 | "por %%mm2, %%mm3\n\t" | |
21847 | "movq %%mm3, (%0)\n\t" | |
21848 | "addl $8, %0\n\t" | |
21849 | "addl $8, %1\n\t" | |
21850 | "decl %2\n\t" | |
21851 | "jnz 1b\n\t" | |
21852 | "emms" | |
21853 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
21854 | : "0" (D), "1" (S), "2" (n) | |
21855 | : "memory"); | |
21856 | } | |
21857 | ||
21858 | static | |
21859 | void __mmx_yuy2_be_rgb16 ( dfb_frame_t *frame ) | |
21860 | { | |
21861 | uint8_t *S = frame->vo_frame.base[0]; | |
21862 | uint8_t *D = frame->out_plane[0]; | |
21863 | int n = frame->area/4; | |
21864 | ||
21865 | __asm__ __volatile__( | |
21866 | "pxor %%mm7, %%mm7\n\t" | |
21867 | ".align 16\n" | |
21868 | "1:\n\t" | |
21869 | "movq (%1), %%mm0\n\t" | |
21870 | "movq %%mm0, %%mm2\n\t" | |
21871 | "movq %%mm0, %%mm1\n\t" | |
21872 | "pand wmask, %%mm2\n\t" | |
21873 | "psrld $8, %%mm1\n\t" | |
21874 | "psubw proc_table, %%mm2\n\t" | |
21875 | "pand lmask, %%mm1\n\t" | |
21876 | "psllw $3, %%mm2\n\t" | |
21877 | "packssdw %%mm1, %%mm1\n\t" | |
21878 | "pmulhw proc_table+24, %%mm2\n\t" | |
21879 | "punpcklwd %%mm1, %%mm1\n\t" | |
21880 | "psrld $24, %%mm0\n\t" | |
21881 | "psubw proc_table+16, %%mm1\n\t" | |
21882 | "packssdw %%mm0, %%mm0\n\t" | |
21883 | "psllw $3, %%mm1\n\t" | |
21884 | "punpcklwd %%mm0, %%mm0\n\t" | |
21885 | "movq %%mm1, %%mm4\n\t" | |
21886 | "psubw proc_table+16, %%mm0\n\t" | |
21887 | "pmulhw proc_table+64, %%mm4\n\t" | |
21888 | "psllw $3, %%mm0\n\t" | |
21889 | "paddw %%mm2, %%mm4\n\t" | |
21890 | "movq %%mm0, %%mm3\n\t" | |
21891 | "packuswb %%mm4, %%mm4\n\t" | |
21892 | "pmulhw proc_table+40, %%mm3\n\t" | |
21893 | "punpcklbw %%mm7, %%mm4\n\t" | |
21894 | "paddw %%mm2, %%mm3\n\t" | |
21895 | "pmulhw proc_table+48, %%mm0\n\t" | |
21896 | "packuswb %%mm3, %%mm3\n\t" | |
21897 | "psrlw $3, %%mm4\n\t" | |
21898 | "pand b5mask, %%mm3\n\t" | |
21899 | "pmulhw proc_table+56, %%mm1\n\t" | |
21900 | "punpcklbw %%mm7, %%mm3\n\t" | |
21901 | "paddw %%mm1, %%mm0\n\t" | |
21902 | "psllw $8, %%mm3\n\t" | |
21903 | "paddw %%mm0, %%mm2\n\t" | |
21904 | "por %%mm4, %%mm3\n\t" | |
21905 | "packuswb %%mm2, %%mm2\n\t" | |
21906 | "pand b6mask, %%mm2\n\t" | |
21907 | "punpcklbw %%mm7, %%mm2\n\t" | |
21908 | "psllw $3, %%mm2\n\t" | |
21909 | "por %%mm2, %%mm3\n\t" | |
21910 | "movq %%mm3, (%0)\n\t" | |
21911 | "addl $8, %0\n\t" | |
21912 | "addl $8, %1\n\t" | |
21913 | "decl %2\n\t" | |
21914 | "jnz 1b\n\t" | |
21915 | "emms" | |
21916 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
21917 | : "0" (D), "1" (S), "2" (n) | |
21918 | : "memory"); | |
21919 | } | |
21920 | ||
21921 | static | |
21922 | void __mmx_yuy2_be_rgb24 ( dfb_frame_t *frame ) | |
21923 | { | |
21924 | uint8_t *S = frame->vo_frame.base[0]; | |
21925 | uint8_t *D = frame->out_plane[0]; | |
21926 | int n = frame->area/4; | |
21927 | ||
21928 | __asm__ __volatile__( | |
21929 | "pxor %%mm7, %%mm7\n\t" | |
21930 | ".align 16\n" | |
21931 | "1:\n\t" | |
21932 | "movq (%1), %%mm0\n\t" | |
21933 | "movq %%mm0, %%mm2\n\t" | |
21934 | "movq %%mm0, %%mm1\n\t" | |
21935 | "pand wmask, %%mm2\n\t" | |
21936 | "psrld $8, %%mm1\n\t" | |
21937 | "psubw proc_table, %%mm2\n\t" | |
21938 | "pand lmask, %%mm1\n\t" | |
21939 | "psllw $3, %%mm2\n\t" | |
21940 | "packssdw %%mm1, %%mm1\n\t" | |
21941 | "pmulhw proc_table+24, %%mm2\n\t" | |
21942 | "punpcklwd %%mm1, %%mm1\n\t" | |
21943 | "psrld $24, %%mm0\n\t" | |
21944 | "psubw proc_table+16, %%mm1\n\t" | |
21945 | "packssdw %%mm0, %%mm0\n\t" | |
21946 | "psllw $3, %%mm1\n\t" | |
21947 | "punpcklwd %%mm0, %%mm0\n\t" | |
21948 | "movq %%mm1, %%mm4\n\t" | |
21949 | "psubw proc_table+16, %%mm0\n\t" | |
21950 | "pmulhw proc_table+64, %%mm4\n\t" | |
21951 | "psllw $3, %%mm0\n\t" | |
21952 | "paddw %%mm2, %%mm4\n\t" | |
21953 | "movq %%mm0, %%mm3\n\t" | |
21954 | "packuswb %%mm4, %%mm4\n\t" | |
21955 | "pmulhw proc_table+40, %%mm3\n\t" | |
21956 | "movq %%mm4, %%mm5\n\t" | |
21957 | "paddw %%mm2, %%mm3\n\t" | |
21958 | "pmulhw proc_table+48, %%mm0\n\t" | |
21959 | "packuswb %%mm3, %%mm3\n\t" | |
21960 | "punpcklbw %%mm3, %%mm4\n\t" | |
21961 | "pmulhw proc_table+56, %%mm1\n\t" | |
21962 | "psrld $8, %%mm4\n\t" | |
21963 | "paddw %%mm1, %%mm0\n\t" | |
21964 | "paddw %%mm0, %%mm2\n\t" | |
21965 | "packuswb %%mm2, %%mm2\n\t" | |
21966 | "punpcklbw %%mm2, %%mm5\n\t" | |
21967 | "movq %%mm5, %%mm6\n\t" | |
21968 | "punpcklwd %%mm4, %%mm5\n\t" | |
21969 | "movq %%mm5, %%mm0\n\t" | |
21970 | "punpckhwd %%mm4, %%mm6\n\t" | |
21971 | "psrlq $40, %%mm0\n\t" | |
21972 | "punpcklwd %%mm6, %%mm0\n\t" | |
21973 | "punpckldq %%mm0, %%mm5\n\t" | |
21974 | "psrld $8, %%mm6\n\t" | |
21975 | "psrld $16, %%mm0\n\t" | |
21976 | "punpckhwd %%mm6, %%mm0\n\t" | |
21977 | "movq %%mm5, (%0)\n\t" | |
21978 | "movd %%mm0, 8(%0)\n\t" | |
21979 | "addl $12, %0\n\t" | |
21980 | "addl $8, %1\n\t" | |
21981 | "decl %2\n\t" | |
21982 | "jnz 1b\n\t" | |
21983 | "emms" | |
21984 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
21985 | : "0" (D), "1" (S), "2" (n) | |
21986 | : "memory"); | |
21987 | } | |
21988 | ||
21989 | static | |
21990 | void __mmx_yuy2_be_rgb32 ( dfb_frame_t *frame ) | |
21991 | { | |
21992 | uint8_t *S = frame->vo_frame.base[0]; | |
21993 | uint8_t *D = frame->out_plane[0]; | |
21994 | int n = frame->area/4; | |
21995 | ||
21996 | __asm__ __volatile__( | |
21997 | "pxor %%mm7, %%mm7\n\t" | |
21998 | ".align 16\n" | |
21999 | "1:\n\t" | |
22000 | "movq (%1), %%mm0\n\t" | |
22001 | "movq %%mm0, %%mm2\n\t" | |
22002 | "movq %%mm0, %%mm1\n\t" | |
22003 | "pand wmask, %%mm2\n\t" | |
22004 | "psrld $8, %%mm1\n\t" | |
22005 | "psubw proc_table, %%mm2\n\t" | |
22006 | "pand lmask, %%mm1\n\t" | |
22007 | "psllw $3, %%mm2\n\t" | |
22008 | "packssdw %%mm1, %%mm1\n\t" | |
22009 | "pmulhw proc_table+24, %%mm2\n\t" | |
22010 | "punpcklwd %%mm1, %%mm1\n\t" | |
22011 | "psrld $24, %%mm0\n\t" | |
22012 | "psubw proc_table+16, %%mm1\n\t" | |
22013 | "packssdw %%mm0, %%mm0\n\t" | |
22014 | "psllw $3, %%mm1\n\t" | |
22015 | "punpcklwd %%mm0, %%mm0\n\t" | |
22016 | "movq %%mm1, %%mm4\n\t" | |
22017 | "psubw proc_table+16, %%mm0\n\t" | |
22018 | "pmulhw proc_table+64, %%mm4\n\t" | |
22019 | "psllw $3, %%mm0\n\t" | |
22020 | "paddw %%mm2, %%mm4\n\t" | |
22021 | "movq %%mm0, %%mm3\n\t" | |
22022 | "packuswb %%mm4, %%mm4\n\t" | |
22023 | "pmulhw proc_table+40, %%mm3\n\t" | |
22024 | "paddw %%mm2, %%mm3\n\t" | |
22025 | "packuswb %%mm3, %%mm3\n\t" | |
22026 | "pmulhw proc_table+48, %%mm0\n\t" | |
22027 | "punpcklbw %%mm3, %%mm4\n\t" | |
22028 | "movq %%mm4, %%mm5\n\t" | |
22029 | "pmulhw proc_table+56, %%mm1\n\t" | |
22030 | "paddw %%mm1, %%mm0\n\t" | |
22031 | "paddw %%mm0, %%mm2\n\t" | |
22032 | "packuswb %%mm2, %%mm2\n\t" | |
22033 | "punpcklbw %%mm7, %%mm2\n\t" | |
22034 | "punpcklbw %%mm2, %%mm4\n\t" | |
22035 | "punpckhbw %%mm2, %%mm5\n\t" | |
22036 | "movq %%mm4, (%0)\n\t" | |
22037 | "movq %%mm5, 8(%0)\n\t" | |
22038 | "addl $16, %0\n\t" | |
22039 | "addl $8, %1\n\t" | |
22040 | "decl %2\n\t" | |
22041 | "jnz 1b\n\t" | |
22042 | "emms" | |
22043 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
22044 | : "0" (D), "1" (S), "2" (n) | |
22045 | : "memory"); | |
22046 | } | |
22047 | ||
22048 | static | |
22049 | void __mmx_yuy2_be_argb ( dfb_frame_t *frame ) | |
22050 | { | |
22051 | uint8_t *S = frame->vo_frame.base[0]; | |
22052 | uint8_t *D = frame->out_plane[0]; | |
22053 | int n = frame->area/4; | |
22054 | ||
22055 | __asm__ __volatile__( | |
22056 | "movq a8mask, %%mm6\n\t" | |
22057 | "pxor %%mm7, %%mm7\n\t" | |
22058 | ".align 16\n" | |
22059 | "1:\n\t" | |
22060 | "movq (%1), %%mm0\n\t" | |
22061 | "movq %%mm0, %%mm2\n\t" | |
22062 | "movq %%mm0, %%mm1\n\t" | |
22063 | "pand wmask, %%mm2\n\t" | |
22064 | "psrld $8, %%mm1\n\t" | |
22065 | "psubw proc_table, %%mm2\n\t" | |
22066 | "pand lmask, %%mm1\n\t" | |
22067 | "psllw $3, %%mm2\n\t" | |
22068 | "packssdw %%mm1, %%mm1\n\t" | |
22069 | "pmulhw proc_table+24, %%mm2\n\t" | |
22070 | "punpcklwd %%mm1, %%mm1\n\t" | |
22071 | "psrld $24, %%mm0\n\t" | |
22072 | "psubw proc_table+16, %%mm1\n\t" | |
22073 | "packssdw %%mm0, %%mm0\n\t" | |
22074 | "psllw $3, %%mm1\n\t" | |
22075 | "punpcklwd %%mm0, %%mm0\n\t" | |
22076 | "movq %%mm1, %%mm4\n\t" | |
22077 | "psubw proc_table+16, %%mm0\n\t" | |
22078 | "pmulhw proc_table+64, %%mm4\n\t" | |
22079 | "psllw $3, %%mm0\n\t" | |
22080 | "paddw %%mm2, %%mm4\n\t" | |
22081 | "movq %%mm0, %%mm3\n\t" | |
22082 | "packuswb %%mm4, %%mm4\n\t" | |
22083 | "pmulhw proc_table+40, %%mm3\n\t" | |
22084 | "paddw %%mm2, %%mm3\n\t" | |
22085 | "packuswb %%mm3, %%mm3\n\t" | |
22086 | "pmulhw proc_table+48, %%mm0\n\t" | |
22087 | "punpcklbw %%mm3, %%mm4\n\t" | |
22088 | "movq %%mm4, %%mm5\n\t" | |
22089 | "pmulhw proc_table+56, %%mm1\n\t" | |
22090 | "paddw %%mm1, %%mm0\n\t" | |
22091 | "paddw %%mm0, %%mm2\n\t" | |
22092 | "packuswb %%mm2, %%mm2\n\t" | |
22093 | "punpcklbw %%mm6, %%mm2\n\t" | |
22094 | "punpcklbw %%mm2, %%mm4\n\t" | |
22095 | "punpckhbw %%mm2, %%mm5\n\t" | |
22096 | "movq %%mm4, (%0)\n\t" | |
22097 | "movq %%mm5, 8(%0)\n\t" | |
22098 | "addl $16, %0\n\t" | |
22099 | "addl $8, %1\n\t" | |
22100 | "decl %2\n\t" | |
22101 | "jnz 1b\n\t" | |
22102 | "emms" | |
22103 | : "=&D" (D), "=&S" (S), "=&c" (n) | |
22104 | : "0" (D), "1" (S), "2" (n) | |
22105 | : "memory"); | |
22106 | } | |
22107 | ||
22108 | ||
22109 | ||
22110 | ||
22111 | ||
22112 | static | |
22113 | void __mmx_yv12_be_yuy2 ( dfb_frame_t *frame ) | |
22114 | { | |
22115 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22116 | uint8_t *Su = frame->vo_frame.base[1]; | |
22117 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22118 | uint8_t *D = frame->out_plane[0]; | |
22119 | int n = frame->height/2; | |
22120 | int set = frame->mixer_set; | |
22121 | ||
22122 | __asm__ __volatile__( | |
22123 | "pxor %%mm7, %%mm7\n\t" | |
22124 | "testb $7, %6\n\t" | |
22125 | "jz 4f\n\t" | |
22126 | ||
22127 | ".align 16\n" | |
22128 | "1:\n\t" | |
22129 | "movd (%1), %%mm0\n\t" | |
22130 | "movd (%1,%4), %%mm1\n\t" | |
22131 | "punpcklbw %%mm7, %%mm0\n\t" | |
22132 | "punpcklbw %%mm7, %%mm1\n\t" | |
22133 | "movd (%2), %%mm2\n\t" | |
22134 | "movd (%3), %%mm3\n\t" | |
22135 | "testb $3, %6\n\t" | |
22136 | "jz 2f\n\t" | |
22137 | "psubw proc_table, %%mm0\n\t" | |
22138 | "psubw proc_table, %%mm1\n\t" | |
22139 | "psllw $3, %%mm0\n\t" | |
22140 | "psllw $3, %%mm1\n\t" | |
22141 | "pmulhw proc_table+24, %%mm0\n\t" | |
22142 | "pmulhw proc_table+24, %%mm1\n\t" | |
22143 | "paddw proc_table+8, %%mm0\n\t" | |
22144 | "paddw proc_table+8, %%mm1\n\t" | |
22145 | ".align 4\n" | |
22146 | "2:\n\t" | |
22147 | "testb $4, %6\n\t" | |
22148 | "jz 3f\n\t" | |
22149 | "punpcklbw %%mm7, %%mm2\n\t" | |
22150 | "punpcklbw %%mm7, %%mm3\n\t" | |
22151 | "psubw proc_table+16, %%mm2\n\t" | |
22152 | "psubw proc_table+16, %%mm3\n\t" | |
22153 | "psllw $3, %%mm2\n\t" | |
22154 | "psllw $3, %%mm3\n\t" | |
22155 | "pmulhw proc_table+32, %%mm2\n\t" | |
22156 | "pmulhw proc_table+32, %%mm3\n\t" | |
22157 | "paddw proc_table+16, %%mm2\n\t" | |
22158 | "paddw proc_table+16, %%mm3\n\t" | |
22159 | "packuswb %%mm2, %%mm2\n\t" | |
22160 | "packuswb %%mm3, %%mm3\n\t" | |
22161 | ".align 8\n" | |
22162 | "3:\n\t" | |
22163 | "packuswb %%mm1, %%mm0\n\t" | |
22164 | "punpcklbw %%mm3, %%mm2\n\t" | |
22165 | "movq %%mm0, %%mm1\n\t" | |
22166 | "punpckhdq %%mm0, %%mm0\n\t" | |
22167 | "punpcklbw %%mm2, %%mm1\n\t" | |
22168 | "punpcklbw %%mm2, %%mm0\n\t" | |
22169 | "movq %%mm1, (%0)\n\t" | |
22170 | "movq %%mm0, (%0,%4,2)\n\t" | |
22171 | "addl $8, %0\n\t" | |
22172 | "addl $4, %1\n\t" | |
22173 | "addl $2, %2\n\t" | |
22174 | "addl $2, %3\n\t" | |
22175 | "decl %5\n\t" | |
22176 | "jnz 1b\n\t" | |
22177 | "movl %4, %5\n\t" | |
22178 | "shll $1, %5\n\t" | |
22179 | "addl %5, %0\n\t" | |
22180 | "addl %4, %1\n\t" | |
22181 | "shrl $3, %5\n\t" | |
22182 | "decl %7\n\t" | |
22183 | "jnz 1b\n\t" | |
22184 | "jmp 5f\n\t" | |
22185 | ||
22186 | ".align 16\n" | |
22187 | "4:\n" | |
22188 | "movd (%2), %%mm2\n\t" | |
22189 | "movd (%3), %%mm3\n\t" | |
22190 | "movd (%1), %%mm0\n\t" | |
22191 | "movd (%1,%4), %%mm1\n\t" | |
22192 | "punpcklbw %%mm3, %%mm2\n\t" | |
22193 | "punpcklbw %%mm2, %%mm0\n\t" | |
22194 | "punpcklbw %%mm2, %%mm1\n\t" | |
22195 | "movq %%mm0, (%0)\n\t" | |
22196 | "movq %%mm1, (%0,%4,2)\n\t" | |
22197 | "addl $8, %0\n\t" | |
22198 | "addl $4, %1\n\t" | |
22199 | "addl $2, %2\n\t" | |
22200 | "addl $2, %3\n\t" | |
22201 | "decl %5\n\t" | |
22202 | "jnz 4b\n\t" | |
22203 | "movl %4, %5\n\t" | |
22204 | "shll $1, %5\n\t" | |
22205 | "addl %5, %0\n\t" | |
22206 | "addl %4, %1\n\t" | |
22207 | "shrl $3, %5\n\t" | |
22208 | "decl %7\n\t" | |
22209 | "jnz 4b\n\t" | |
22210 | "5:\n\t" | |
22211 | "emms" | |
22212 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
22213 | : "q" (frame->width), "c" (frame->width/4), "m" (set), "m" (n), | |
22214 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
22215 | : "memory"); | |
22216 | } | |
22217 | ||
22218 | static | |
22219 | void __mmx_yv12_be_uyvy ( dfb_frame_t *frame ) | |
22220 | { | |
22221 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22222 | uint8_t *Su = frame->vo_frame.base[1]; | |
22223 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22224 | uint8_t *D = frame->out_plane[0]; | |
22225 | int n = frame->height/2; | |
22226 | int set = frame->mixer_set; | |
22227 | ||
22228 | __asm__ __volatile__( | |
22229 | "pxor %%mm7, %%mm7\n\t" | |
22230 | "testb $7, %6\n\t" | |
22231 | "jz 4f\n\t" | |
22232 | ||
22233 | ".align 16\n" | |
22234 | "1:\n\t" | |
22235 | "movd (%1), %%mm0\n\t" | |
22236 | "movd (%1,%4), %%mm1\n\t" | |
22237 | "punpcklbw %%mm7, %%mm0\n\t" | |
22238 | "punpcklbw %%mm7, %%mm1\n\t" | |
22239 | "movd (%2), %%mm2\n\t" | |
22240 | "movd (%3), %%mm3\n\t" | |
22241 | "testb $3, %6\n\t" | |
22242 | "jz 2f\n\t" | |
22243 | "psubw proc_table, %%mm0\n\t" | |
22244 | "psubw proc_table, %%mm1\n\t" | |
22245 | "psllw $3, %%mm0\n\t" | |
22246 | "psllw $3, %%mm1\n\t" | |
22247 | "pmulhw proc_table+24, %%mm0\n\t" | |
22248 | "pmulhw proc_table+24, %%mm1\n\t" | |
22249 | "paddw proc_table+8, %%mm0\n\t" | |
22250 | "paddw proc_table+8, %%mm1\n\t" | |
22251 | ".align 4\n" | |
22252 | "2:\n\t" | |
22253 | "testb $4, %6\n\t" | |
22254 | "jz 3f\n\t" | |
22255 | "punpcklbw %%mm7, %%mm2\n\t" | |
22256 | "punpcklbw %%mm7, %%mm3\n\t" | |
22257 | "psubw proc_table+16, %%mm2\n\t" | |
22258 | "psubw proc_table+16, %%mm3\n\t" | |
22259 | "psllw $3, %%mm2\n\t" | |
22260 | "psllw $3, %%mm3\n\t" | |
22261 | "pmulhw proc_table+32, %%mm2\n\t" | |
22262 | "pmulhw proc_table+32, %%mm3\n\t" | |
22263 | "paddw proc_table+16, %%mm2\n\t" | |
22264 | "paddw proc_table+16, %%mm3\n\t" | |
22265 | "packuswb %%mm2, %%mm2\n\t" | |
22266 | "packuswb %%mm3, %%mm3\n\t" | |
22267 | ".align 8\n" | |
22268 | "3:\n\t" | |
22269 | "packuswb %%mm1, %%mm0\n\t" | |
22270 | "punpcklbw %%mm3, %%mm2\n\t" | |
22271 | "movq %%mm2, %%mm3\n\t" | |
22272 | "punpcklbw %%mm0, %%mm3\n\t" | |
22273 | "punpckhdq %%mm0, %%mm0\n\t" | |
22274 | "punpcklbw %%mm0, %%mm2\n\t" | |
22275 | "movq %%mm3, (%0)\n\t" | |
22276 | "movq %%mm2, (%0,%4,2)\n\t" | |
22277 | "addl $8, %0\n\t" | |
22278 | "addl $4, %1\n\t" | |
22279 | "addl $2, %2\n\t" | |
22280 | "addl $2, %3\n\t" | |
22281 | "decl %5\n\t" | |
22282 | "jnz 1b\n\t" | |
22283 | "movl %4, %5\n\t" | |
22284 | "shll $1, %5\n\t" | |
22285 | "addl %5, %0\n\t" | |
22286 | "addl %4, %1\n\t" | |
22287 | "shrl $3, %5\n\t" | |
22288 | "decl %7\n\t" | |
22289 | "jnz 1b\n\t" | |
22290 | "jmp 5f\n\t" | |
22291 | ||
22292 | ".align 16\n" | |
22293 | "4:\n\t" | |
22294 | "movd (%2), %%mm2\n\t" | |
22295 | "movd (%3), %%mm3\n\t" | |
22296 | "movd (%1), %%mm0\n\t" | |
22297 | "movd (%1,%4), %%mm1\n\t" | |
22298 | "punpcklbw %%mm3, %%mm2\n\t" | |
22299 | "movq %%mm2, %%mm3\n\t" | |
22300 | "punpcklbw %%mm0, %%mm2\n\t" | |
22301 | "punpcklbw %%mm1, %%mm3\n\t" | |
22302 | "movq %%mm2, (%0)\n\t" | |
22303 | "movq %%mm3, (%0,%4,2)\n\t" | |
22304 | "addl $8, %0\n\t" | |
22305 | "addl $4, %1\n\t" | |
22306 | "addl $2, %2\n\t" | |
22307 | "addl $2, %3\n\t" | |
22308 | "decl %5\n\t" | |
22309 | "jnz 4b\n\t" | |
22310 | "movl %4, %5\n\t" | |
22311 | "shll $1, %5\n\t" | |
22312 | "addl %5, %0\n\t" | |
22313 | "addl %4, %1\n\t" | |
22314 | "shrl $3, %5\n\t" | |
22315 | "decl %7\n\t" | |
22316 | "jnz 4b\n\t" | |
22317 | "5:\n\t" | |
22318 | "emms" | |
22319 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
22320 | : "q" (frame->width), "c" (frame->width/4), "m" (set), "m" (n), | |
22321 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
22322 | : "memory"); | |
22323 | } | |
22324 | ||
22325 | static | |
22326 | void __mmx_yv12_be_yv12 ( dfb_frame_t *frame ) | |
22327 | { | |
22328 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22329 | uint8_t *Su = frame->vo_frame.base[1]; | |
22330 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22331 | uint8_t *Dy = frame->out_plane[0]; | |
22332 | uint8_t *Du = frame->out_plane[1]; | |
22333 | uint8_t *Dv = frame->out_plane[2]; | |
22334 | int set = frame->mixer_set; | |
22335 | ||
22336 | if (set & (MF_B | MF_C)) { | |
22337 | __asm__ __volatile__( | |
22338 | "movq proc_table, %%mm2\n\t" | |
22339 | "movq proc_table+24, %%mm3\n\t" | |
22340 | "movq proc_table+8, %%mm4\n\t" | |
22341 | "pxor %%mm7, %%mm7\n\t" | |
22342 | ".align 16\n" | |
22343 | "1:\n\t" | |
22344 | "movq (%1), %%mm0\n\t" | |
22345 | "movq %%mm0, %%mm1\n\t" | |
22346 | "punpcklbw %%mm7, %%mm0\n\t" | |
22347 | "punpckhbw %%mm7, %%mm1\n\t" | |
22348 | "psubw %%mm2, %%mm0\n\t" | |
22349 | "psubw %%mm2, %%mm1\n\t" | |
22350 | "psllw $3, %%mm0\n\t" | |
22351 | "pmulhw %%mm3, %%mm0\n\t" | |
22352 | "psllw $3, %%mm1\n\t" | |
22353 | "pmulhw %%mm3, %%mm1\n\t" | |
22354 | "paddw %%mm4, %%mm0\n\t" | |
22355 | "paddw %%mm4, %%mm1\n\t" | |
22356 | "packuswb %%mm1, %%mm0\n\t" | |
22357 | "movq %%mm0, (%0)\n\t" | |
22358 | "addl $8, %0\n\t" | |
22359 | "addl $8, %1\n\t" | |
22360 | "decl %2\n\t" | |
22361 | "jnz 1b\n\t" | |
22362 | "emms" | |
22363 | : "=&D" (Dy), "=&S" (Sy) | |
22364 | : "c" (frame->area/8), "0" (Dy), "1" (Sy) | |
22365 | : "memory"); | |
22366 | } | |
22367 | ||
22368 | if (set & MF_S) { | |
22369 | __asm__ __volatile__( | |
22370 | "movq proc_table+16, %%mm2\n\t" | |
22371 | "movq proc_table+32, %%mm3\n\t" | |
22372 | "pxor %%mm7, %%mm7\n\t" | |
22373 | ".align 16\n" | |
22374 | "1:\n\t" | |
22375 | "movd (%2), %%mm0\n\t" | |
22376 | "movd (%3), %%mm1\n\t" | |
22377 | "punpcklbw %%mm7, %%mm0\n\t" | |
22378 | "punpcklbw %%mm7, %%mm1\n\t" | |
22379 | "psubw %%mm2, %%mm0\n\t" | |
22380 | "psubw %%mm2, %%mm1\n\t" | |
22381 | "psllw $3, %%mm0\n\t" | |
22382 | "pmulhw %%mm3, %%mm0\n\t" | |
22383 | "psllw $3, %%mm1\n\t" | |
22384 | "pmulhw %%mm3, %%mm1\n\t" | |
22385 | "paddw %%mm2, %%mm0\n\t" | |
22386 | "paddw %%mm2, %%mm1\n\t" | |
22387 | "packuswb %%mm1, %%mm0\n\t" | |
22388 | "movd %%mm0, (%0)\n\t" | |
22389 | "punpckhdq %%mm0, %%mm0\n\t" | |
22390 | "movd %%mm0, (%1)\n\t" | |
22391 | "addl $4, %0\n\t" | |
22392 | "addl $4, %1\n\t" | |
22393 | "addl $4, %2\n\t" | |
22394 | "addl $4, %3\n\t" | |
22395 | "decl %4\n\t" | |
22396 | "jnz 1b\n\t" | |
22397 | "emms" | |
22398 | : "=&r" (Du), "=&r" (Dv), "=&r" (Su), "=&r" (Sv) | |
22399 | : "c" (frame->area/16), "0" (Du), "1" (Dv), "2" (Su), "3" (Sv) | |
22400 | : "memory"); | |
22401 | ||
22402 | if (frame->area & 8) { | |
22403 | *Du = proc_table.uv[*Du]; | |
22404 | *Dv = proc_table.uv[*Dv]; | |
22405 | } | |
22406 | } | |
22407 | } | |
22408 | ||
22409 | static | |
22410 | void __mmx_yv12_be_nv12 ( dfb_frame_t *frame ) | |
22411 | { | |
22412 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22413 | uint8_t *Su = frame->vo_frame.base[1]; | |
22414 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22415 | uint8_t *Dy = frame->out_plane[0]; | |
22416 | uint16_t *Duv = (uint16_t*) frame->out_plane[1]; | |
22417 | int set = frame->mixer_set; | |
22418 | ||
22419 | if (set & (MF_B | MF_C)) { | |
22420 | __asm__ __volatile__( | |
22421 | "movq proc_table, %%mm2\n\t" | |
22422 | "movq proc_table+24, %%mm3\n\t" | |
22423 | "movq proc_table+8, %%mm4\n\t" | |
22424 | "pxor %%mm7, %%mm7\n\t" | |
22425 | ".align 16\n" | |
22426 | "1:\n\t" | |
22427 | "movq (%1), %%mm0\n\t" | |
22428 | "movq %%mm0, %%mm1\n\t" | |
22429 | "punpcklbw %%mm7, %%mm0\n\t" | |
22430 | "punpckhbw %%mm7, %%mm1\n\t" | |
22431 | "psubw %%mm2, %%mm0\n\t" | |
22432 | "psubw %%mm2, %%mm1\n\t" | |
22433 | "psllw $3, %%mm0\n\t" | |
22434 | "pmulhw %%mm3, %%mm0\n\t" | |
22435 | "psllw $3, %%mm1\n\t" | |
22436 | "pmulhw %%mm3, %%mm1\n\t" | |
22437 | "paddw %%mm4, %%mm0\n\t" | |
22438 | "paddw %%mm4, %%mm1\n\t" | |
22439 | "packuswb %%mm1, %%mm0\n\t" | |
22440 | "movq %%mm0, (%0)\n\t" | |
22441 | "addl $8, %0\n\t" | |
22442 | "addl $8, %1\n\t" | |
22443 | "decl %2\n\t" | |
22444 | "jnz 1b\n\t" | |
22445 | "emms" | |
22446 | : "=&D" (Dy), "=&S" (Sy) | |
22447 | : "c" (frame->area/8), "0" (Dy), "1" (Sy) | |
22448 | : "memory"); | |
22449 | } | |
22450 | ||
22451 | if (set & MF_S) { | |
22452 | __asm__ __volatile__( | |
22453 | "movq proc_table+16, %%mm2\n\t" | |
22454 | "movq proc_table+32, %%mm3\n\t" | |
22455 | "pxor %%mm7, %%mm7\n\t" | |
22456 | ".align 16\n" | |
22457 | "1:\n\t" | |
22458 | "movd (%1), %%mm0\n\t" | |
22459 | "movd (%2), %%mm1\n\t" | |
22460 | "punpcklbw %%mm7, %%mm0\n\t" | |
22461 | "punpcklbw %%mm7, %%mm1\n\t" | |
22462 | "psubw %%mm2, %%mm0\n\t" | |
22463 | "psubw %%mm2, %%mm1\n\t" | |
22464 | "psllw $3, %%mm0\n\t" | |
22465 | "pmulhw %%mm3, %%mm0\n\t" | |
22466 | "psllw $3, %%mm1\n\t" | |
22467 | "pmulhw %%mm3, %%mm1\n\t" | |
22468 | "paddw %%mm2, %%mm0\n\t" | |
22469 | "paddw %%mm2, %%mm1\n\t" | |
22470 | "packuswb %%mm0, %%mm0\n\t" | |
22471 | "packuswb %%mm1, %%mm1\n\t" | |
22472 | "punpcklbw %%mm1, %%mm0\n\t" | |
22473 | "movq %%mm0, (%0)\n\t" | |
22474 | "addl $8, %0\n\t" | |
22475 | "addl $4, %1\n\t" | |
22476 | "addl $4, %2\n\t" | |
22477 | "decl %3\n\t" | |
22478 | "jnz 1b\n\t" | |
22479 | "emms" | |
22480 | : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) | |
22481 | : "c" (frame->area/16), "0" (Duv), "1" (Su), "2" (Sv) | |
22482 | : "memory"); | |
22483 | } | |
22484 | else { | |
22485 | __asm__ __volatile__( | |
22486 | ".align 16\n" | |
22487 | "1:\n\t" | |
22488 | "movd (%1), %%mm0\n\t" | |
22489 | "movd (%2), %%mm1\n\t" | |
22490 | "punpcklbw %%mm1, %%mm0\n\t" | |
22491 | "movq %%mm0, (%0)\n\t" | |
22492 | "addl $8, %0\n\t" | |
22493 | "addl $4, %1\n\t" | |
22494 | "addl $4, %2\n\t" | |
22495 | "decl %3\n\t" | |
22496 | "jnz 1b\n\t" | |
22497 | "emms" | |
22498 | : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) | |
22499 | : "c" (frame->area/16), "0" (Duv), "1" (Su), "2" (Sv) | |
22500 | : "memory"); | |
22501 | } | |
22502 | ||
22503 | if (frame->area & 8) | |
22504 | *Duv = proc_table.uv[*Su] | (proc_table.uv[*Sv] << 8); | |
22505 | } | |
22506 | ||
22507 | static | |
22508 | void __mmx_yv12_be_nv21 ( dfb_frame_t *frame ) | |
22509 | { | |
22510 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22511 | uint8_t *Su = frame->vo_frame.base[1]; | |
22512 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22513 | uint8_t *Dy = frame->out_plane[0]; | |
22514 | uint16_t *Dvu = (uint16_t*) frame->out_plane[1]; | |
22515 | int set = frame->mixer_set; | |
22516 | ||
22517 | if (set & (MF_B | MF_C)) { | |
22518 | __asm__ __volatile__( | |
22519 | "movq proc_table, %%mm2\n\t" | |
22520 | "movq proc_table+24, %%mm3\n\t" | |
22521 | "movq proc_table+8, %%mm4\n\t" | |
22522 | "pxor %%mm7, %%mm7\n\t" | |
22523 | ".align 16\n" | |
22524 | "1:\n\t" | |
22525 | "movq (%1), %%mm0\n\t" | |
22526 | "movq %%mm0, %%mm1\n\t" | |
22527 | "punpcklbw %%mm7, %%mm0\n\t" | |
22528 | "punpckhbw %%mm7, %%mm1\n\t" | |
22529 | "psubw %%mm2, %%mm0\n\t" | |
22530 | "psubw %%mm2, %%mm1\n\t" | |
22531 | "psllw $3, %%mm0\n\t" | |
22532 | "pmulhw %%mm3, %%mm0\n\t" | |
22533 | "psllw $3, %%mm1\n\t" | |
22534 | "pmulhw %%mm3, %%mm1\n\t" | |
22535 | "paddw %%mm4, %%mm0\n\t" | |
22536 | "paddw %%mm4, %%mm1\n\t" | |
22537 | "packuswb %%mm1, %%mm0\n\t" | |
22538 | "movq %%mm0, (%0)\n\t" | |
22539 | "addl $8, %0\n\t" | |
22540 | "addl $8, %1\n\t" | |
22541 | "decl %2\n\t" | |
22542 | "jnz 1b\n\t" | |
22543 | "emms" | |
22544 | : "=&D" (Dy), "=&S" (Sy) | |
22545 | : "c" (frame->area/8), "0" (Dy), "1" (Sy) | |
22546 | : "memory"); | |
22547 | } | |
22548 | ||
22549 | if (set & MF_S) { | |
22550 | __asm__ __volatile__( | |
22551 | "movq proc_table+16, %%mm2\n\t" | |
22552 | "movq proc_table+32, %%mm3\n\t" | |
22553 | "pxor %%mm7, %%mm7\n\t" | |
22554 | ".align 16\n" | |
22555 | "1:\n\t" | |
22556 | "movd (%1), %%mm0\n\t" | |
22557 | "movd (%2), %%mm1\n\t" | |
22558 | "punpcklbw %%mm7, %%mm0\n\t" | |
22559 | "punpcklbw %%mm7, %%mm1\n\t" | |
22560 | "psubw %%mm2, %%mm0\n\t" | |
22561 | "psubw %%mm2, %%mm1\n\t" | |
22562 | "psllw $3, %%mm0\n\t" | |
22563 | "pmulhw %%mm3, %%mm0\n\t" | |
22564 | "psllw $3, %%mm1\n\t" | |
22565 | "pmulhw %%mm3, %%mm1\n\t" | |
22566 | "paddw %%mm2, %%mm0\n\t" | |
22567 | "paddw %%mm2, %%mm1\n\t" | |
22568 | "packuswb %%mm0, %%mm0\n\t" | |
22569 | "packuswb %%mm1, %%mm1\n\t" | |
22570 | "punpcklbw %%mm0, %%mm1\n\t" | |
22571 | "movq %%mm1, (%0)\n\t" | |
22572 | "addl $8, %0\n\t" | |
22573 | "addl $4, %1\n\t" | |
22574 | "addl $4, %2\n\t" | |
22575 | "decl %3\n\t" | |
22576 | "jnz 1b\n\t" | |
22577 | "emms" | |
22578 | : "=&D" (Dvu), "=&r" (Su), "=&r" (Sv) | |
22579 | : "c" (frame->area/16), "0" (Dvu), "1" (Su), "2" (Sv) | |
22580 | : "memory"); | |
22581 | } | |
22582 | else { | |
22583 | __asm__ __volatile__( | |
22584 | ".align 16\n" | |
22585 | "1:\n\t" | |
22586 | "movd (%1), %%mm0\n\t" | |
22587 | "movd (%2), %%mm1\n\t" | |
22588 | "punpcklbw %%mm0, %%mm1\n\t" | |
22589 | "movq %%mm1, (%0)\n\t" | |
22590 | "addl $8, %0\n\t" | |
22591 | "addl $4, %1\n\t" | |
22592 | "addl $4, %2\n\t" | |
22593 | "decl %3\n\t" | |
22594 | "jnz 1b\n\t" | |
22595 | "emms" | |
22596 | : "=&D" (Dvu), "=&r" (Su), "=&r" (Sv) | |
22597 | : "c" (frame->area/16), "0" (Dvu), "1" (Su), "2" (Sv) | |
22598 | : "memory"); | |
22599 | } | |
22600 | ||
22601 | if (frame->area & 8) | |
22602 | *Dvu = proc_table.uv[*Sv] | (proc_table.uv[*Su] << 8); | |
22603 | } | |
22604 | ||
22605 | static | |
22606 | void __mmx_yv12_be_nv16 ( dfb_frame_t *frame ) | |
22607 | { | |
22608 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22609 | uint8_t *Su = frame->vo_frame.base[1]; | |
22610 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22611 | uint8_t *Dy = frame->out_plane[0]; | |
22612 | uint16_t *Duv = (uint16_t*) frame->out_plane[1]; | |
22613 | int set = frame->mixer_set; | |
22614 | ||
22615 | if (set & (MF_B | MF_C)) { | |
22616 | __asm__ __volatile__( | |
22617 | "movq proc_table, %%mm2\n\t" | |
22618 | "movq proc_table+24, %%mm3\n\t" | |
22619 | "movq proc_table+8, %%mm4\n\t" | |
22620 | "pxor %%mm7, %%mm7\n\t" | |
22621 | ".align 16\n" | |
22622 | "1:\n\t" | |
22623 | "movq (%1), %%mm0\n\t" | |
22624 | "movq %%mm0, %%mm1\n\t" | |
22625 | "punpcklbw %%mm7, %%mm0\n\t" | |
22626 | "punpckhbw %%mm7, %%mm1\n\t" | |
22627 | "psubw %%mm2, %%mm0\n\t" | |
22628 | "psubw %%mm2, %%mm1\n\t" | |
22629 | "psllw $3, %%mm0\n\t" | |
22630 | "pmulhw %%mm3, %%mm0\n\t" | |
22631 | "psllw $3, %%mm1\n\t" | |
22632 | "pmulhw %%mm3, %%mm1\n\t" | |
22633 | "paddw %%mm4, %%mm0\n\t" | |
22634 | "paddw %%mm4, %%mm1\n\t" | |
22635 | "packuswb %%mm1, %%mm0\n\t" | |
22636 | "movq %%mm0, (%0)\n\t" | |
22637 | "addl $8, %0\n\t" | |
22638 | "addl $8, %1\n\t" | |
22639 | "decl %2\n\t" | |
22640 | "jnz 1b\n\t" | |
22641 | "emms" | |
22642 | : "=&D" (Dy), "=&S" (Sy) | |
22643 | : "c" (frame->area/8), "0" (Dy), "1" (Sy) | |
22644 | : "memory"); | |
22645 | } | |
22646 | ||
22647 | if (set & MF_S) { | |
22648 | __asm__ __volatile__( | |
22649 | "movq proc_table+16, %%mm2\n\t" | |
22650 | "movq proc_table+32, %%mm3\n\t" | |
22651 | "pxor %%mm7, %%mm7\n\t" | |
22652 | ".align 16\n" | |
22653 | "1:\n\t" | |
22654 | "movd (%1), %%mm0\n\t" | |
22655 | "movd (%2), %%mm1\n\t" | |
22656 | "punpcklbw %%mm7, %%mm0\n\t" | |
22657 | "punpcklbw %%mm7, %%mm1\n\t" | |
22658 | "psubw %%mm2, %%mm0\n\t" | |
22659 | "psubw %%mm2, %%mm1\n\t" | |
22660 | "psllw $3, %%mm0\n\t" | |
22661 | "pmulhw %%mm3, %%mm0\n\t" | |
22662 | "psllw $3, %%mm1\n\t" | |
22663 | "pmulhw %%mm3, %%mm1\n\t" | |
22664 | "paddw %%mm2, %%mm0\n\t" | |
22665 | "paddw %%mm2, %%mm1\n\t" | |
22666 | "packuswb %%mm0, %%mm0\n\t" | |
22667 | "packuswb %%mm1, %%mm1\n\t" | |
22668 | "punpcklbw %%mm1, %%mm0\n\t" | |
22669 | "movq %%mm0, (%0)\n\t" | |
22670 | "movq %%mm0, (%0,%3)\n\t" | |
22671 | "addl $8, %0\n\t" | |
22672 | "addl $4, %1\n\t" | |
22673 | "addl $4, %2\n\t" | |
22674 | "decl %3\n\t" | |
22675 | "jnz 1b\n\t" | |
22676 | "testl $4, %3\n\t" | |
22677 | "jz 2f\n\t" | |
22678 | "movb (%1), %%cl\n\t" | |
22679 | "movb (%2), %%ch\n\t" | |
22680 | "movw %%cx, (%0)\n\t" | |
22681 | "movw %%cx, (%0,%3)\n\t" | |
22682 | "addl $2, %0\n\t" | |
22683 | "incl %1\n\t" | |
22684 | "incl %2\n\t" | |
22685 | "2:\n\t" | |
22686 | "addl %3, %0\n\t" | |
22687 | "movl %3, %4\n\t" | |
22688 | "shrl $3, %4\n\t" | |
22689 | "decl %5\n\t" | |
22690 | "jnz 1b\n\t" | |
22691 | "emms" | |
22692 | : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) | |
22693 | : "q" (frame->width), "c" (frame->width/8), "r" (frame->height/2), | |
22694 | "0" (Duv), "1" (Su), "2" (Sv) | |
22695 | : "memory"); | |
22696 | } | |
22697 | else { | |
22698 | __asm__ __volatile__( | |
22699 | ".align 16\n" | |
22700 | "1:\n\t" | |
22701 | "movd (%1), %%mm0\n\t" | |
22702 | "movd (%2), %%mm1\n\t" | |
22703 | "punpcklbw %%mm1, %%mm0\n\t" | |
22704 | "movq %%mm0, (%0)\n\t" | |
22705 | "movq %%mm0, (%0,%3)\n\t" | |
22706 | "addl $8, %0\n\t" | |
22707 | "addl $4, %1\n\t" | |
22708 | "addl $4, %2\n\t" | |
22709 | "decl %4\n\t" | |
22710 | "jnz 1b\n\t" | |
22711 | "testl $4, %3\n\t" | |
22712 | "jz 2f\n\t" | |
22713 | "movb (%1), %%cl\n\t" | |
22714 | "movb (%2), %%ch\n\t" | |
22715 | "movw %%cx, (%0)\n\t" | |
22716 | "movw %%cx, (%0,%3)\n\t" | |
22717 | "addl $2, %0\n\t" | |
22718 | "incl %1\n\t" | |
22719 | "incl %2\n\t" | |
22720 | "2:\n\t" | |
22721 | "addl %3, %0\n\t" | |
22722 | "movl %3, %4\n\t" | |
22723 | "shrl $3, %4\n\t" | |
22724 | "decl %5\n\t" | |
22725 | "jnz 1b\n\t" | |
22726 | "emms" | |
22727 | : "=&D" (Duv), "=&r" (Su), "=&r" (Sv) | |
22728 | : "q" (frame->width), "c" (frame->width/8), "r" (frame->height/2), | |
22729 | "0" (Duv), "1" (Su), "2" (Sv) | |
22730 | : "memory"); | |
22731 | } | |
22732 | } | |
22733 | ||
22734 | ||
22735 | ||
22736 | static | |
22737 | void __mmx_yv12_be_rgb332 ( dfb_frame_t *frame ) | |
22738 | { | |
22739 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22740 | uint8_t *Su = frame->vo_frame.base[1]; | |
22741 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22742 | uint8_t *D = frame->out_plane[0]; | |
22743 | int n = frame->height/2; | |
22744 | ||
22745 | __asm__ __volatile__( | |
22746 | "pxor %%mm7, %%mm7\n\t" | |
22747 | ".align 16\n" | |
22748 | "1:\n\t" | |
22749 | "movd (%1), %%mm3\n\t" | |
22750 | "punpcklbw %%mm7, %%mm3\n\t" | |
22751 | "psubw proc_table, %%mm3\n\t" | |
22752 | "psllw $3, %%mm3\n\t" | |
22753 | "pmulhw proc_table+24, %%mm3\n\t" | |
22754 | "movd (%1,%4), %%mm2\n\t" | |
22755 | "punpcklbw %%mm7, %%mm2\n\t" | |
22756 | "psubw proc_table, %%mm2\n\t" | |
22757 | "psllw $3, %%mm2\n\t" | |
22758 | "pmulhw proc_table+24, %%mm2\n\t" | |
22759 | "movd (%2), %%mm1\n\t" | |
22760 | "punpcklbw %%mm1, %%mm1\n\t" | |
22761 | "punpcklbw %%mm7, %%mm1\n\t" | |
22762 | "psubw proc_table+16, %%mm1\n\t" | |
22763 | "psllw $3, %%mm1\n\t" | |
22764 | "movd (%3), %%mm0\n\t" | |
22765 | "punpcklbw %%mm0, %%mm0\n\t" | |
22766 | "punpcklbw %%mm7, %%mm0\n\t" | |
22767 | "psubw proc_table+16, %%mm0\n\t" | |
22768 | "psllw $3, %%mm0\n\t" | |
22769 | "movq %%mm0, %%mm4\n\t" | |
22770 | "pmulhw proc_table+40, %%mm4\n\t" | |
22771 | "movq %%mm4, %%mm5\n\t" | |
22772 | "paddw %%mm3, %%mm4\n\t" | |
22773 | "paddw %%mm2, %%mm5\n\t" | |
22774 | "packuswb %%mm5, %%mm4\n\t" | |
22775 | "pand b3mask, %%mm4\n\t" | |
22776 | "movq %%mm1, %%mm5\n\t" | |
22777 | "pmulhw proc_table+64, %%mm5\n\t" | |
22778 | "movq %%mm5, %%mm6\n\t" | |
22779 | "paddw %%mm3, %%mm5\n\t" | |
22780 | "paddw %%mm2, %%mm6\n\t" | |
22781 | "packuswb %%mm6, %%mm5\n\t" | |
22782 | "pmulhw proc_table+48, %%mm0\n\t" | |
22783 | "pmulhw proc_table+56, %%mm1\n\t" | |
22784 | "paddw %%mm1, %%mm0\n\t" | |
22785 | "paddw %%mm0, %%mm3\n\t" | |
22786 | "paddw %%mm0, %%mm2\n\t" | |
22787 | "packuswb %%mm2, %%mm3\n\t" | |
22788 | "pand b3mask, %%mm3\n\t" | |
22789 | "movq %%mm4, %%mm0\n\t" | |
22790 | "punpcklbw %%mm7, %%mm0\n\t" | |
22791 | "movq %%mm5, %%mm1\n\t" | |
22792 | "punpcklbw %%mm7, %%mm1\n\t" | |
22793 | "psrlw $6, %%mm1\n\t" | |
22794 | "por %%mm1, %%mm0\n\t" | |
22795 | "movq %%mm3, %%mm1\n\t" | |
22796 | "punpcklbw %%mm7, %%mm1\n\t" | |
22797 | "psrlw $3, %%mm1\n\t" | |
22798 | "por %%mm1, %%mm0\n\t" | |
22799 | "packuswb %%mm0, %%mm0\n\t" | |
22800 | "movd %%mm0, (%0)\n\t" | |
22801 | "punpckhbw %%mm7, %%mm4\n\t" | |
22802 | "punpckhbw %%mm7, %%mm5\n\t" | |
22803 | "psrlw $6, %%mm5\n\t" | |
22804 | "por %%mm5, %%mm4\n\t" | |
22805 | "punpckhbw %%mm7, %%mm3\n\t" | |
22806 | "psrlw $3, %%mm3\n\t" | |
22807 | "por %%mm3, %%mm4\n\t" | |
22808 | "packuswb %%mm4, %%mm4\n\t" | |
22809 | "movd %%mm4, (%0,%4)\n\t" | |
22810 | "addl $4, %0\n\t" | |
22811 | "addl $4, %1\n\t" | |
22812 | "addl $2, %2\n\t" | |
22813 | "addl $2, %3\n\t" | |
22814 | "decl %5\n\t" | |
22815 | "jnz 1b\n\t" | |
22816 | "movl %4, %5\n\t" | |
22817 | "shrl $2, %5\n\t" | |
22818 | "addl %4, %0\n\t" | |
22819 | "addl %4, %1\n\t" | |
22820 | "decl %6\n\t" | |
22821 | "jnz 1b\n\t" | |
22822 | "emms" | |
22823 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
22824 | : "q" (frame->width), "c" (frame->width/4), "m" (n), | |
22825 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
22826 | : "memory"); | |
22827 | } | |
22828 | ||
22829 | static | |
22830 | void __mmx_yv12_be_argb1555 ( dfb_frame_t *frame ) | |
22831 | { | |
22832 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22833 | uint8_t *Su = frame->vo_frame.base[1]; | |
22834 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22835 | uint8_t *D = frame->out_plane[0]; | |
22836 | int n = frame->height/2; | |
22837 | ||
22838 | __asm__ __volatile__( | |
22839 | "pxor %%mm7, %%mm7\n\t" | |
22840 | ".align 16\n" | |
22841 | "1:\n\t" | |
22842 | "movd (%1), %%mm3\n\t" | |
22843 | "punpcklbw %%mm7, %%mm3\n\t" | |
22844 | "psubw proc_table, %%mm3\n\t" | |
22845 | "psllw $3, %%mm3\n\t" | |
22846 | "pmulhw proc_table+24, %%mm3\n\t" | |
22847 | "movd (%1,%4), %%mm2\n\t" | |
22848 | "punpcklbw %%mm7, %%mm2\n\t" | |
22849 | "psubw proc_table, %%mm2\n\t" | |
22850 | "psllw $3, %%mm2\n\t" | |
22851 | "pmulhw proc_table+24, %%mm2\n\t" | |
22852 | "movd (%2), %%mm1\n\t" | |
22853 | "punpcklbw %%mm1, %%mm1\n\t" | |
22854 | "punpcklbw %%mm7, %%mm1\n\t" | |
22855 | "psubw proc_table+16, %%mm1\n\t" | |
22856 | "psllw $3, %%mm1\n\t" | |
22857 | "movd (%3), %%mm0\n\t" | |
22858 | "punpcklbw %%mm0, %%mm0\n\t" | |
22859 | "punpcklbw %%mm7, %%mm0\n\t" | |
22860 | "psubw proc_table+16, %%mm0\n\t" | |
22861 | "psllw $3, %%mm0\n\t" | |
22862 | "movq %%mm0, %%mm4\n\t" | |
22863 | "pmulhw proc_table+40, %%mm4\n\t" | |
22864 | "movq %%mm4, %%mm5\n\t" | |
22865 | "paddw %%mm3, %%mm4\n\t" | |
22866 | "paddw %%mm2, %%mm5\n\t" | |
22867 | "packuswb %%mm5, %%mm4\n\t" | |
22868 | "pand b5mask, %%mm4\n\t" | |
22869 | "movq %%mm1, %%mm5\n\t" | |
22870 | "pmulhw proc_table+64, %%mm5\n\t" | |
22871 | "movq %%mm5, %%mm6\n\t" | |
22872 | "paddw %%mm3, %%mm5\n\t" | |
22873 | "paddw %%mm2, %%mm6\n\t" | |
22874 | "packuswb %%mm6, %%mm5\n\t" | |
22875 | "pmulhw proc_table+48, %%mm0\n\t" | |
22876 | "pmulhw proc_table+56, %%mm1\n\t" | |
22877 | "paddw %%mm1, %%mm0\n\t" | |
22878 | "paddw %%mm0, %%mm3\n\t" | |
22879 | "paddw %%mm0, %%mm2\n\t" | |
22880 | "packuswb %%mm2, %%mm3\n\t" | |
22881 | "pand b5mask, %%mm3\n\t" | |
22882 | "movq %%mm4, %%mm0\n\t" | |
22883 | "punpcklbw %%mm7, %%mm0\n\t" | |
22884 | "psllw $7, %%mm0\n\t" | |
22885 | "movq %%mm5, %%mm1\n\t" | |
22886 | "punpcklbw %%mm7, %%mm1\n\t" | |
22887 | "psrlw $3, %%mm1\n\t" | |
22888 | "por %%mm1, %%mm0\n\t" | |
22889 | "movq %%mm3, %%mm1\n\t" | |
22890 | "punpcklbw %%mm7, %%mm1\n\t" | |
22891 | "psllw $2, %%mm1\n\t" | |
22892 | "por %%mm1, %%mm0\n\t" | |
22893 | "por a1mask, %%mm0\n\t" | |
22894 | "movq %%mm0, (%0)\n\t" | |
22895 | "punpckhbw %%mm7, %%mm4\n\t" | |
22896 | "psllw $7, %%mm4\n\t" | |
22897 | "punpckhbw %%mm7, %%mm5\n\t" | |
22898 | "psrlw $3, %%mm5\n\t" | |
22899 | "por %%mm5, %%mm4\n\t" | |
22900 | "punpckhbw %%mm7, %%mm3\n\t" | |
22901 | "psllw $2, %%mm3\n\t" | |
22902 | "por %%mm3, %%mm4\n\t" | |
22903 | "por a1mask, %%mm4\n\t" | |
22904 | "movq %%mm4, (%0,%4,2)\n\t" | |
22905 | "addl $8, %0\n\t" | |
22906 | "addl $4, %1\n\t" | |
22907 | "addl $2, %2\n\t" | |
22908 | "addl $2, %3\n\t" | |
22909 | "decl %5\n\t" | |
22910 | "jnz 1b\n\t" | |
22911 | "movl %4, %5\n\t" | |
22912 | "shll $1, %5\n\t" | |
22913 | "addl %5, %0\n\t" | |
22914 | "addl %4, %1\n\t" | |
22915 | "shrl $3, %5\n\t" | |
22916 | "decl %6\n\t" | |
22917 | "jnz 1b\n\t" | |
22918 | "emms" | |
22919 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
22920 | : "q" (frame->width), "c" (frame->width/4), "m" (n), | |
22921 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
22922 | : "memory"); | |
22923 | } | |
22924 | ||
22925 | static | |
22926 | void __mmx_yv12_be_rgb16 ( dfb_frame_t *frame ) | |
22927 | { | |
22928 | uint8_t *Sy = frame->vo_frame.base[0]; | |
22929 | uint8_t *Su = frame->vo_frame.base[1]; | |
22930 | uint8_t *Sv = frame->vo_frame.base[2]; | |
22931 | uint8_t *D = frame->out_plane[0]; | |
22932 | int n = frame->height/2; | |
22933 | ||
22934 | __asm__ __volatile__( | |
22935 | "pxor %%mm7, %%mm7\n\t" | |
22936 | ".align 16\n" | |
22937 | "1:\n\t" | |
22938 | "movd (%1), %%mm3\n\t" | |
22939 | "punpcklbw %%mm7, %%mm3\n\t" | |
22940 | "psubw proc_table, %%mm3\n\t" | |
22941 | "psllw $3, %%mm3\n\t" | |
22942 | "pmulhw proc_table+24, %%mm3\n\t" | |
22943 | "movd (%1,%4), %%mm2\n\t" | |
22944 | "punpcklbw %%mm7, %%mm2\n\t" | |
22945 | "psubw proc_table, %%mm2\n\t" | |
22946 | "psllw $3, %%mm2\n\t" | |
22947 | "pmulhw proc_table+24, %%mm2\n\t" | |
22948 | "movd (%2), %%mm1\n\t" | |
22949 | "punpcklbw %%mm1, %%mm1\n\t" | |
22950 | "punpcklbw %%mm7, %%mm1\n\t" | |
22951 | "psubw proc_table+16, %%mm1\n\t" | |
22952 | "psllw $3, %%mm1\n\t" | |
22953 | "movd (%3), %%mm0\n\t" | |
22954 | "punpcklbw %%mm0, %%mm0\n\t" | |
22955 | "punpcklbw %%mm7, %%mm0\n\t" | |
22956 | "psubw proc_table+16, %%mm0\n\t" | |
22957 | "psllw $3, %%mm0\n\t" | |
22958 | "movq %%mm0, %%mm4\n\t" | |
22959 | "pmulhw proc_table+40, %%mm4\n\t" | |
22960 | "movq %%mm4, %%mm5\n\t" | |
22961 | "paddw %%mm3, %%mm4\n\t" | |
22962 | "paddw %%mm2, %%mm5\n\t" | |
22963 | "packuswb %%mm5, %%mm4\n\t" | |
22964 | "pand b5mask, %%mm4\n\t" | |
22965 | "movq %%mm1, %%mm5\n\t" | |
22966 | "pmulhw proc_table+64, %%mm5\n\t" | |
22967 | "movq %%mm5, %%mm6\n\t" | |
22968 | "paddw %%mm3, %%mm5\n\t" | |
22969 | "paddw %%mm2, %%mm6\n\t" | |
22970 | "packuswb %%mm6, %%mm5\n\t" | |
22971 | "pmulhw proc_table+48, %%mm0\n\t" | |
22972 | "pmulhw proc_table+56, %%mm1\n\t" | |
22973 | "paddw %%mm1, %%mm0\n\t" | |
22974 | "paddw %%mm0, %%mm3\n\t" | |
22975 | "paddw %%mm0, %%mm2\n\t" | |
22976 | "packuswb %%mm2, %%mm3\n\t" | |
22977 | "pand b6mask, %%mm3\n\t" | |
22978 | "movq %%mm4, %%mm0\n\t" | |
22979 | "punpcklbw %%mm7, %%mm0\n\t" | |
22980 | "psllw $8, %%mm0\n\t" | |
22981 | "movq %%mm5, %%mm1\n\t" | |
22982 | "punpcklbw %%mm7, %%mm1\n\t" | |
22983 | "psrlw $3, %%mm1\n\t" | |
22984 | "por %%mm1, %%mm0\n\t" | |
22985 | "movq %%mm3, %%mm1\n\t" | |
22986 | "punpcklbw %%mm7, %%mm1\n\t" | |
22987 | "psllw $3, %%mm1\n\t" | |
22988 | "por %%mm1, %%mm0\n\t" | |
22989 | "movq %%mm0, (%0)\n\t" | |
22990 | "punpckhbw %%mm7, %%mm4\n\t" | |
22991 | "psllw $8, %%mm4\n\t" | |
22992 | "punpckhbw %%mm7, %%mm5\n\t" | |
22993 | "psrlw $3, %%mm5\n\t" | |
22994 | "por %%mm5, %%mm4\n\t" | |
22995 | "punpckhbw %%mm7, %%mm3\n\t" | |
22996 | "psllw $3, %%mm3\n\t" | |
22997 | "por %%mm3, %%mm4\n\t" | |
22998 | "movq %%mm4, (%0,%4,2)\n\t" | |
22999 | "addl $8, %0\n\t" | |
23000 | "addl $4, %1\n\t" | |
23001 | "addl $2, %2\n\t" | |
23002 | "addl $2, %3\n\t" | |
23003 | "decl %5\n\t" | |
23004 | "jnz 1b\n\t" | |
23005 | "movl %4, %5\n\t" | |
23006 | "shll $1, %5\n\t" | |
23007 | "addl %5, %0\n\t" | |
23008 | "addl %4, %1\n\t" | |
23009 | "shrl $3, %5\n\t" | |
23010 | "decl %6\n\t" | |
23011 | "jnz 1b\n\t" | |
23012 | "emms" | |
23013 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
23014 | : "q" (frame->width), "c" (frame->width/4), "m" (n), | |
23015 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
23016 | : "memory"); | |
23017 | } | |
23018 | ||
23019 | static | |
23020 | void __mmx_yv12_be_rgb24 ( dfb_frame_t *frame ) | |
23021 | { | |
23022 | uint8_t *Sy = frame->vo_frame.base[0]; | |
23023 | uint8_t *Su = frame->vo_frame.base[1]; | |
23024 | uint8_t *Sv = frame->vo_frame.base[2]; | |
23025 | uint8_t *D = frame->out_plane[0]; | |
23026 | int l = frame->width/4; | |
23027 | int n = frame->height/2; | |
23028 | ||
23029 | __asm__ __volatile__( | |
23030 | "pxor %%mm7, %%mm7\n\t" | |
23031 | ".align 16\n" | |
23032 | "1:\n\t" | |
23033 | "movd (%1), %%mm3\n\t" | |
23034 | "punpcklbw %%mm7, %%mm3\n\t" | |
23035 | "psubw proc_table, %%mm3\n\t" | |
23036 | "psllw $3, %%mm3\n\t" | |
23037 | "pmulhw proc_table+24, %%mm3\n\t" | |
23038 | "movd (%1,%4), %%mm2\n\t" | |
23039 | "punpcklbw %%mm7, %%mm2\n\t" | |
23040 | "psubw proc_table, %%mm2\n\t" | |
23041 | "psllw $3, %%mm2\n\t" | |
23042 | "pmulhw proc_table+24, %%mm2\n\t" | |
23043 | "movd (%2), %%mm1\n\t" | |
23044 | "punpcklbw %%mm1, %%mm1\n\t" | |
23045 | "punpcklbw %%mm7, %%mm1\n\t" | |
23046 | "psubw proc_table+16, %%mm1\n\t" | |
23047 | "psllw $3, %%mm1\n\t" | |
23048 | "movd (%3), %%mm0\n\t" | |
23049 | "punpcklbw %%mm0, %%mm0\n\t" | |
23050 | "punpcklbw %%mm7, %%mm0\n\t" | |
23051 | "psubw proc_table+16, %%mm0\n\t" | |
23052 | "psllw $3, %%mm0\n\t" | |
23053 | "movq %%mm0, %%mm4\n\t" | |
23054 | "pmulhw proc_table+40, %%mm4\n\t" | |
23055 | "movq %%mm4, %%mm5\n\t" | |
23056 | "paddw %%mm3, %%mm4\n\t" | |
23057 | "paddw %%mm2, %%mm5\n\t" | |
23058 | "packuswb %%mm5, %%mm4\n\t" | |
23059 | "movq %%mm1, %%mm5\n\t" | |
23060 | "pmulhw proc_table+64, %%mm5\n\t" | |
23061 | "movq %%mm5, %%mm6\n\t" | |
23062 | "paddw %%mm3, %%mm5\n\t" | |
23063 | "paddw %%mm2, %%mm6\n\t" | |
23064 | "packuswb %%mm6, %%mm5\n\t" | |
23065 | "pmulhw proc_table+48, %%mm0\n\t" | |
23066 | "pmulhw proc_table+56, %%mm1\n\t" | |
23067 | "paddw %%mm1, %%mm0\n\t" | |
23068 | "paddw %%mm0, %%mm3\n\t" | |
23069 | "paddw %%mm0, %%mm2\n\t" | |
23070 | "packuswb %%mm2, %%mm3\n\t" | |
23071 | "movq %%mm5, %%mm0\n\t" | |
23072 | "punpcklbw %%mm3, %%mm0\n\t" | |
23073 | "movq %%mm0, %%mm2\n\t" | |
23074 | "movq %%mm5, %%mm1\n\t" | |
23075 | "punpcklbw %%mm4, %%mm1\n\t" | |
23076 | "psrld $8, %%mm1\n\t" | |
23077 | "punpcklwd %%mm1, %%mm0\n\t" | |
23078 | "movq %%mm0, %%mm6\n\t" | |
23079 | "psrlq $40, %%mm6\n\t" | |
23080 | "punpckhwd %%mm1, %%mm2\n\t" | |
23081 | "punpcklwd %%mm2, %%mm6\n\t" | |
23082 | "punpckldq %%mm6, %%mm0\n\t" | |
23083 | "movq %%mm0, (%0)\n\t" | |
23084 | "psrld $8, %%mm2\n\t" | |
23085 | "psrld $16, %%mm6\n\t" | |
23086 | "punpckhwd %%mm2, %%mm6\n\t" | |
23087 | "movd %%mm6, 8(%0)\n\t" | |
23088 | "movq %%mm5, %%mm0\n\t" | |
23089 | "punpckhbw %%mm3, %%mm0\n\t" | |
23090 | "movq %%mm0, %%mm2\n\t" | |
23091 | "punpckhbw %%mm4, %%mm5\n\t" | |
23092 | "psrld $8, %%mm5\n\t" | |
23093 | "punpcklwd %%mm5, %%mm0\n\t" | |
23094 | "movq %%mm0, %%mm6\n\t" | |
23095 | "psrlq $40, %%mm6\n\t" | |
23096 | "punpckhwd %%mm5, %%mm2\n\t" | |
23097 | "punpcklwd %%mm2, %%mm6\n\t" | |
23098 | "punpckldq %%mm6, %%mm0\n\t" | |
23099 | "movq %%mm0, (%0,%5)\n\t" | |
23100 | "psrld $8, %%mm2\n\t" | |
23101 | "psrld $16, %%mm6\n\t" | |
23102 | "punpckhwd %%mm2, %%mm6\n\t" | |
23103 | "movd %%mm6, 8(%0,%5)\n\t" | |
23104 | "addl $12, %0\n\t" | |
23105 | "addl $4, %1\n\t" | |
23106 | "addl $2, %2\n\t" | |
23107 | "addl $2, %3\n\t" | |
23108 | "decl %6\n\t" | |
23109 | "jnz 1b\n\t" | |
23110 | "movl %4, %6\n\t" | |
23111 | "shrl $2, %6\n\t" | |
23112 | "leal (%0,%5), %0\n\t" | |
23113 | "addl %4, %1\n\t" | |
23114 | "decl %7\n\t" | |
23115 | "jnz 1b\n\t" | |
23116 | "emms" | |
23117 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
23118 | : "q" (frame->width), "q" (frame->width*3), "m" (l), "m" (n), | |
23119 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
23120 | : "memory"); | |
23121 | } | |
23122 | ||
23123 | static | |
23124 | void __mmx_yv12_be_rgb32 ( dfb_frame_t *frame ) | |
23125 | { | |
23126 | uint8_t *Sy = frame->vo_frame.base[0]; | |
23127 | uint8_t *Su = frame->vo_frame.base[1]; | |
23128 | uint8_t *Sv = frame->vo_frame.base[2]; | |
23129 | uint8_t *D = frame->out_plane[0]; | |
23130 | int n = frame->height/2; | |
23131 | ||
23132 | __asm__ __volatile__( | |
23133 | "pxor %%mm7, %%mm7\n\t" | |
23134 | ".align 16\n" | |
23135 | "1:\n\t" | |
23136 | "movd (%1), %%mm3\n\t" | |
23137 | "punpcklbw %%mm7, %%mm3\n\t" | |
23138 | "psubw proc_table, %%mm3\n\t" | |
23139 | "psllw $3, %%mm3\n\t" | |
23140 | "pmulhw proc_table+24, %%mm3\n\t" | |
23141 | "movd (%1,%4), %%mm2\n\t" | |
23142 | "punpcklbw %%mm7, %%mm2\n\t" | |
23143 | "psubw proc_table, %%mm2\n\t" | |
23144 | "psllw $3, %%mm2\n\t" | |
23145 | "pmulhw proc_table+24, %%mm2\n\t" | |
23146 | "movd (%2), %%mm1\n\t" | |
23147 | "punpcklbw %%mm1, %%mm1\n\t" | |
23148 | "punpcklbw %%mm7, %%mm1\n\t" | |
23149 | "psubw proc_table+16, %%mm1\n\t" | |
23150 | "psllw $3, %%mm1\n\t" | |
23151 | "movd (%3), %%mm0\n\t" | |
23152 | "punpcklbw %%mm0, %%mm0\n\t" | |
23153 | "punpcklbw %%mm7, %%mm0\n\t" | |
23154 | "psubw proc_table+16, %%mm0\n\t" | |
23155 | "psllw $3, %%mm0\n\t" | |
23156 | "movq %%mm0, %%mm4\n\t" | |
23157 | "pmulhw proc_table+40, %%mm4\n\t" | |
23158 | "movq %%mm4, %%mm5\n\t" | |
23159 | "paddw %%mm3, %%mm4\n\t" | |
23160 | "paddw %%mm2, %%mm5\n\t" | |
23161 | "packuswb %%mm5, %%mm4\n\t" | |
23162 | "movq %%mm1, %%mm5\n\t" | |
23163 | "pmulhw proc_table+64, %%mm5\n\t" | |
23164 | "movq %%mm5, %%mm6\n\t" | |
23165 | "paddw %%mm3, %%mm5\n\t" | |
23166 | "paddw %%mm2, %%mm6\n\t" | |
23167 | "packuswb %%mm6, %%mm5\n\t" | |
23168 | "pmulhw proc_table+48, %%mm0\n\t" | |
23169 | "pmulhw proc_table+56, %%mm1\n\t" | |
23170 | "paddw %%mm1, %%mm0\n\t" | |
23171 | "paddw %%mm0, %%mm3\n\t" | |
23172 | "paddw %%mm0, %%mm2\n\t" | |
23173 | "packuswb %%mm2, %%mm3\n\t" | |
23174 | "movq %%mm4, %%mm0\n\t" | |
23175 | "punpcklbw %%mm7, %%mm0\n\t" | |
23176 | "movq %%mm5, %%mm1\n\t" | |
23177 | "punpcklbw %%mm3, %%mm1\n\t" | |
23178 | "movq %%mm1, %%mm2\n\t" | |
23179 | "punpcklwd %%mm0, %%mm2\n\t" | |
23180 | "movq %%mm2, (%0)\n\t" | |
23181 | "punpckhwd %%mm0, %%mm1\n\t" | |
23182 | "movq %%mm1, 8(%0)\n\t" | |
23183 | "punpckhbw %%mm7, %%mm4\n\t" | |
23184 | "punpckhbw %%mm3, %%mm5\n\t" | |
23185 | "movq %%mm5, %%mm0\n\t" | |
23186 | "punpcklwd %%mm4, %%mm0\n\t" | |
23187 | "movq %%mm0, (%0,%4,4)\n\t" | |
23188 | "punpckhwd %%mm4, %%mm5\n\t" | |
23189 | "movq %%mm5, 8(%0,%4,4)\n\t" | |
23190 | "addl $16, %0\n\t" | |
23191 | "addl $4, %1\n\t" | |
23192 | "addl $2, %2\n\t" | |
23193 | "addl $2, %3\n\t" | |
23194 | "decl %5\n\t" | |
23195 | "jnz 1b\n\t" | |
23196 | "movl %4, %5\n\t" | |
23197 | "shll $2, %5\n\t" | |
23198 | "addl %5, %0\n\t" | |
23199 | "addl %4, %1\n\t" | |
23200 | "shrl $4, %5\n\t" | |
23201 | "decl %6\n\t" | |
23202 | "jnz 1b\n\t" | |
23203 | "emms" | |
23204 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
23205 | : "q" (frame->width), "c" (frame->width/4), "m" (n), | |
23206 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
23207 | : "memory"); | |
23208 | } | |
23209 | ||
23210 | static | |
23211 | void __mmx_yv12_be_argb ( dfb_frame_t *frame ) | |
23212 | { | |
23213 | uint8_t *Sy = frame->vo_frame.base[0]; | |
23214 | uint8_t *Su = frame->vo_frame.base[1]; | |
23215 | uint8_t *Sv = frame->vo_frame.base[2]; | |
23216 | uint8_t *D = frame->out_plane[0]; | |
23217 | int n = frame->height/2; | |
23218 | ||
23219 | __asm__ __volatile__( | |
23220 | "pxor %%mm7, %%mm7\n\t" | |
23221 | ".align 16\n" | |
23222 | "1:\n\t" | |
23223 | "movd (%1), %%mm3\n\t" | |
23224 | "punpcklbw %%mm7, %%mm3\n\t" | |
23225 | "psubw proc_table, %%mm3\n\t" | |
23226 | "psllw $3, %%mm3\n\t" | |
23227 | "pmulhw proc_table+24, %%mm3\n\t" | |
23228 | "movd (%1,%4), %%mm2\n\t" | |
23229 | "punpcklbw %%mm7, %%mm2\n\t" | |
23230 | "psubw proc_table, %%mm2\n\t" | |
23231 | "psllw $3, %%mm2\n\t" | |
23232 | "pmulhw proc_table+24, %%mm2\n\t" | |
23233 | "movd (%2), %%mm1\n\t" | |
23234 | "punpcklbw %%mm1, %%mm1\n\t" | |
23235 | "punpcklbw %%mm7, %%mm1\n\t" | |
23236 | "psubw proc_table+16, %%mm1\n\t" | |
23237 | "psllw $3, %%mm1\n\t" | |
23238 | "movd (%3), %%mm0\n\t" | |
23239 | "punpcklbw %%mm0, %%mm0\n\t" | |
23240 | "punpcklbw %%mm7, %%mm0\n\t" | |
23241 | "psubw proc_table+16, %%mm0\n\t" | |
23242 | "psllw $3, %%mm0\n\t" | |
23243 | "movq %%mm0, %%mm4\n\t" | |
23244 | "pmulhw proc_table+40, %%mm4\n\t" | |
23245 | "movq %%mm4, %%mm5\n\t" | |
23246 | "paddw %%mm3, %%mm4\n\t" | |
23247 | "paddw %%mm2, %%mm5\n\t" | |
23248 | "packuswb %%mm5, %%mm4\n\t" | |
23249 | "movq %%mm1, %%mm5\n\t" | |
23250 | "pmulhw proc_table+64, %%mm5\n\t" | |
23251 | "movq %%mm5, %%mm6\n\t" | |
23252 | "paddw %%mm3, %%mm5\n\t" | |
23253 | "paddw %%mm2, %%mm6\n\t" | |
23254 | "packuswb %%mm6, %%mm5\n\t" | |
23255 | "pmulhw proc_table+48, %%mm0\n\t" | |
23256 | "pmulhw proc_table+56, %%mm1\n\t" | |
23257 | "paddw %%mm1, %%mm0\n\t" | |
23258 | "paddw %%mm0, %%mm3\n\t" | |
23259 | "paddw %%mm0, %%mm2\n\t" | |
23260 | "packuswb %%mm2, %%mm3\n\t" | |
23261 | "movq %%mm4, %%mm0\n\t" | |
23262 | "punpcklbw a8mask, %%mm0\n\t" | |
23263 | "movq %%mm5, %%mm1\n\t" | |
23264 | "punpcklbw %%mm3, %%mm1\n\t" | |
23265 | "movq %%mm1, %%mm2\n\t" | |
23266 | "punpcklwd %%mm0, %%mm2\n\t" | |
23267 | "movq %%mm2, (%0)\n\t" | |
23268 | "punpckhwd %%mm0, %%mm1\n\t" | |
23269 | "movq %%mm1, 8(%0)\n\t" | |
23270 | "punpckhbw a8mask, %%mm4\n\t" | |
23271 | "punpckhbw %%mm3, %%mm5\n\t" | |
23272 | "movq %%mm5, %%mm0\n\t" | |
23273 | "punpcklwd %%mm4, %%mm0\n\t" | |
23274 | "movq %%mm0, (%0,%4,4)\n\t" | |
23275 | "punpckhwd %%mm4, %%mm5\n\t" | |
23276 | "movq %%mm5, 8(%0,%4,4)\n\t" | |
23277 | "addl $16, %0\n\t" | |
23278 | "addl $4, %1\n\t" | |
23279 | "addl $2, %2\n\t" | |
23280 | "addl $2, %3\n\t" | |
23281 | "decl %5\n\t" | |
23282 | "jnz 1b\n\t" | |
23283 | "movl %4, %5\n\t" | |
23284 | "shll $2, %5\n\t" | |
23285 | "addl %5, %0\n\t" | |
23286 | "addl %4, %1\n\t" | |
23287 | "shrl $4, %5\n\t" | |
23288 | "decl %6\n\t" | |
23289 | "jnz 1b\n\t" | |
23290 | "emms" | |
23291 | : "=&D" (D), "=&r" (Sy), "=&r" (Su), "=&r" (Sv) | |
23292 | : "q" (frame->width), "c" (frame->width/4), "m" (n), | |
23293 | "0" (D), "1" (Sy), "2" (Su), "3" (Sv) | |
23294 | : "memory"); | |
23295 | } | |
23296 | ||
23297 | ||
23298 | ||
23299 | #undef PACCEL | |
23300 | # 163 "video_out_dfb.c" 2 | |
23301 | ||
23302 | ||
23303 | ||
23304 | static DVProcFunc ProcFuncs[2][21] = { | |
23305 | { | |
23306 | __generic_yuy2_be_rgb16, | |
23307 | __generic_yuy2_be_rgb16, | |
23308 | __generic_yuy2_be_rgb24, | |
23309 | __generic_yuy2_be_rgb32, | |
23310 | __generic_yuy2_be_rgb32, | |
23311 | ((void *)0), | |
23312 | __generic_yuy2_be_yuy2, | |
23313 | __generic_yuy2_be_rgb8, | |
23314 | __generic_yuy2_be_uyvy, | |
23315 | __generic_yuy2_be_yv12, | |
23316 | __generic_yuy2_be_yv12, | |
23317 | ((void *)0), | |
23318 | ((void *)0), | |
23319 | __generic_yuy2_be_rgb32, | |
23320 | ((void *)0), | |
23321 | __generic_yuy2_be_nv12, | |
23322 | __generic_yuy2_be_nv16, | |
23323 | __generic_yuy2_be_rgb16, | |
23324 | __generic_yuy2_be_rgb16, | |
23325 | __generic_yuy2_be_nv21 | |
23326 | }, | |
23327 | { | |
23328 | __generic_yv12_be_rgb16, | |
23329 | __generic_yv12_be_rgb16, | |
23330 | __generic_yv12_be_rgb24, | |
23331 | __generic_yv12_be_rgb32, | |
23332 | __generic_yv12_be_rgb32, | |
23333 | ((void *)0), | |
23334 | __generic_yv12_be_yuy2, | |
23335 | __generic_yv12_be_rgb8, | |
23336 | __generic_yv12_be_uyvy, | |
23337 | __generic_yv12_be_yv12, | |
23338 | __generic_yv12_be_yv12, | |
23339 | ((void *)0), | |
23340 | ((void *)0), | |
23341 | __generic_yv12_be_rgb32, | |
23342 | ((void *)0), | |
23343 | __generic_yv12_be_nv12, | |
23344 | __generic_yv12_be_nv16, | |
23345 | __generic_yv12_be_rgb16, | |
23346 | __generic_yv12_be_rgb16, | |
23347 | __generic_yv12_be_nv21 | |
23348 | } | |
23349 | }; | |
23350 | ||
23351 | ||
23352 | ||
23353 | ||
23354 | ||
23355 | ||
23356 | # 1 "video_out_dfb_blend.h" 1 | |
23357 | # 20 "video_out_dfb_blend.h" | |
23358 | #define PACCEL generic | |
23359 | ||
23360 | ||
23361 | ||
23362 | ||
23363 | ||
23364 | ||
23365 | #define W0(d) *((uint16_t*)(d)+0) | |
23366 | #define W1(d) *((uint16_t*)(d)+1) | |
23367 | ||
23368 | ||
23369 | ||
23370 | static | |
23371 | void __generic_blend_yuy2 ( DVBlender *blender, DVColor *color ) | |
23372 | { | |
23373 | uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; | |
23374 | uint32_t y = color->yuv.y; | |
23375 | uint32_t u = color->yuv.u << 8; | |
23376 | uint32_t v = color->yuv.v << 8; | |
23377 | int w = blender->len; | |
23378 | int n; | |
23379 | ||
23380 | if (color->yuv.a < 0xff) { | |
23381 | uint32_t a0 = (color->yuv.a << 16) / 0xff; | |
23382 | uint32_t a1 = 0x10000 - a0; | |
23383 | ||
23384 | y *= a0; | |
23385 | u *= a0; | |
23386 | v *= a0; | |
23387 | ||
23388 | if ((long)D & 2) { | |
23389 | *D = ((y + ((*D & 0x00ff) * a1)) >> 16) | | |
23390 | (((v + ((*D & 0xff00) * a1)) >> 16) & 0xff00); | |
23391 | D++; | |
23392 | w--; | |
23393 | } | |
23394 | ||
23395 | for (n = w/2; n--;) { | |
23396 | register uint32_t Dpix; | |
23397 | ||
23398 | ||
23399 | ||
23400 | ||
23401 | ||
23402 | ||
23403 | ||
23404 | Dpix = ((y + ((*(D+0) & 0x00ff) * a1)) >> 16); | |
23405 | Dpix |= ((u + ((*(D+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; | |
23406 | Dpix |= ((y + ((*(D+1) & 0x00ff) * a1)) ) & 0x00ff0000; | |
23407 | Dpix |= ((v + ((*(D+1) & 0xff00) * a1)) ) & 0xff000000; | |
23408 | ||
23409 | *((uint32_t*)D) = Dpix; | |
23410 | D += 2; | |
23411 | } | |
23412 | ||
23413 | if (w & 1) { | |
23414 | *D = ((y + ((*D & 0x00ff) * a1)) >> 16) | | |
23415 | (((u + ((*D & 0xff00) * a1)) >> 16) & 0xff00); | |
23416 | } | |
23417 | } | |
23418 | else { | |
23419 | uint32_t Dpix = (y << 0) | (u << (8 -8)) | | |
23420 | (y << 16) | (v << (24 -8)); | |
23421 | ||
23422 | if ((long)D & 2) { | |
23423 | *D++ = (y | v); | |
23424 | w--; | |
23425 | } | |
23426 | ||
23427 | for (n = w/2; n--;) { | |
23428 | *((uint32_t*)D) = Dpix; | |
23429 | D += 2; | |
23430 | } | |
23431 | ||
23432 | if (w & 1) | |
23433 | *D = (y | u); | |
23434 | } | |
23435 | } | |
23436 | ||
23437 | static | |
23438 | void __generic_blend_uyvy ( DVBlender *blender, DVColor *color ) | |
23439 | { | |
23440 | uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; | |
23441 | uint32_t y = color->yuv.y << 8; | |
23442 | uint32_t u = color->yuv.u; | |
23443 | uint32_t v = color->yuv.v; | |
23444 | int w = blender->len; | |
23445 | int n; | |
23446 | ||
23447 | if (color->yuv.a < 0xff) { | |
23448 | uint32_t a0 = (color->yuv.a << 16) / 0xff; | |
23449 | uint32_t a1 = 0x10000 - a0; | |
23450 | ||
23451 | y *= a0; | |
23452 | u *= a0; | |
23453 | v *= a0; | |
23454 | ||
23455 | if ((long)D & 2) { | |
23456 | *D = (((v + ((*D & 0x00ff) * a1)) >> 16) ) | | |
23457 | (((y + ((*D & 0xff00) * a1)) >> 16) & 0xff00); | |
23458 | D++; | |
23459 | w--; | |
23460 | } | |
23461 | ||
23462 | for (n = w/2; n--;) { | |
23463 | register uint32_t Dpix; | |
23464 | ||
23465 | ||
23466 | ||
23467 | ||
23468 | ||
23469 | ||
23470 | ||
23471 | Dpix = ((u + ((*(D+0) & 0x00ff) * a1)) >> 16); | |
23472 | Dpix |= ((y + ((*(D+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; | |
23473 | Dpix |= ((v + ((*(D+1) & 0x00ff) * a1)) ) & 0x00ff0000; | |
23474 | Dpix |= ((y + ((*(D+1) & 0xff00) * a1)) ) & 0xff000000; | |
23475 | ||
23476 | ||
23477 | *((uint32_t*)D) = Dpix; | |
23478 | D += 2; | |
23479 | } | |
23480 | ||
23481 | if (w & 1) { | |
23482 | *D = (((u + ((*D & 0x00ff) * a1)) >> 16) ) | | |
23483 | (((y + ((*D & 0xff00) * a1)) >> 16) & 0xff00); | |
23484 | } | |
23485 | } | |
23486 | else { | |
23487 | uint32_t Dpix = (u << 0) | (y << 0) | | |
23488 | (v << 16) | (y << 16); | |
23489 | ||
23490 | if ((long)D & 2) { | |
23491 | *D++ = (v | y); | |
23492 | w--; | |
23493 | } | |
23494 | ||
23495 | for (n = w/2; n--;) { | |
23496 | *((uint32_t*)D) = Dpix; | |
23497 | D += 2; | |
23498 | } | |
23499 | ||
23500 | if (w & 1) | |
23501 | *D = (u | y); | |
23502 | } | |
23503 | } | |
23504 | ||
23505 | static | |
23506 | void __generic_blend_yv12 ( DVBlender *blender, DVColor *color ) | |
23507 | { | |
23508 | uint8_t *Dy = blender->plane[0] + blender->x; | |
23509 | uint8_t *Du = blender->plane[1] + blender->x/2; | |
23510 | uint8_t *Dv = blender->plane[2] + blender->x/2; | |
23511 | uint32_t y = color->yuv.y; | |
23512 | uint32_t u = color->yuv.u; | |
23513 | uint32_t v = color->yuv.v; | |
23514 | int w = blender->len; | |
23515 | int n; | |
23516 | ||
23517 | if (color->yuv.a < 0xff) { | |
23518 | uint32_t a0 = (color->yuv.a << 16) / 0xff; | |
23519 | uint32_t a1 = 0x10000 - a0; | |
23520 | ||
23521 | y *= a0; | |
23522 | ||
23523 | for (n = w; n--;) { | |
23524 | *Dy = (y + (*Dy * a1)) >> 16; | |
23525 | Dy++; | |
23526 | } | |
23527 | ||
23528 | if (blender->y & 1) { | |
23529 | u *= a0; | |
23530 | v *= a0; | |
23531 | ||
23532 | for (n = w/2; n--;) { | |
23533 | *Du = (u + (*Du * a1)) >> 16; | |
23534 | Du++; | |
23535 | *Dv = (v + (*Dv * a1)) >> 16; | |
23536 | Dv++; | |
23537 | } | |
23538 | ||
23539 | if (w & 1) { | |
23540 | *Du = (u + (*Du * a1)) >> 16; | |
23541 | *Dv = (v + (*Dv * a1)) >> 16; | |
23542 | } | |
23543 | } | |
23544 | } | |
23545 | else { | |
23546 | memset( Dy, y, w ); | |
23547 | ||
23548 | if (blender->y & 1) { | |
23549 | memset( Du, u, (w+1)/2 ); | |
23550 | memset( Dv, v, (w+1)/2 ); | |
23551 | } | |
23552 | } | |
23553 | } | |
23554 | ||
23555 | static | |
23556 | void __generic_blend_nv12 ( DVBlender *blender, DVColor *color ) | |
23557 | { | |
23558 | uint8_t *Dy = blender->plane[0] + blender->x; | |
23559 | uint16_t *Duv = (uint16_t*) blender->plane[1] + blender->x/2; | |
23560 | uint32_t y = color->yuv.y; | |
23561 | uint32_t u = color->yuv.u; | |
23562 | uint32_t v = color->yuv.v << 8; | |
23563 | int w = blender->len; | |
23564 | int n; | |
23565 | ||
23566 | if (color->yuv.a < 0xff) { | |
23567 | uint32_t a0 = (color->yuv.a << 16) / 0xff; | |
23568 | uint32_t a1 = 0x10000 - a0; | |
23569 | ||
23570 | y *= a0; | |
23571 | ||
23572 | for (n = w; n--;) { | |
23573 | *Dy = (y + (*Dy * a1)) >> 16; | |
23574 | Dy++; | |
23575 | } | |
23576 | ||
23577 | if (blender->y & 1) { | |
23578 | u *= a0; | |
23579 | v *= a0; | |
23580 | ||
23581 | if ((long)Duv & 2) { | |
23582 | *Duv = (((u + ((*Duv & 0x00ff) * a1)) >> 16) ) | | |
23583 | (((v + ((*Duv & 0xff00) * a1)) >> 16) & 0xff00); | |
23584 | Duv++; | |
23585 | w -= 2; | |
23586 | } | |
23587 | ||
23588 | for (n = w/4; n--;) { | |
23589 | register uint32_t Dpix; | |
23590 | ||
23591 | Dpix = ((u + ((*((uint16_t*)(Duv)+0) & 0x00ff) * a1)) >> 16); | |
23592 | Dpix |= ((v + ((*((uint16_t*)(Duv)+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; | |
23593 | Dpix |= ((u + ((*((uint16_t*)(Duv)+1) & 0x00ff) * a1)) ) & 0x00ff0000; | |
23594 | Dpix |= ((v + ((*((uint16_t*)(Duv)+1) & 0xff00) * a1)) ) & 0xff000000; | |
23595 | ||
23596 | *((uint32_t*)Duv) = Dpix; | |
23597 | Duv += 2; | |
23598 | } | |
23599 | ||
23600 | if (w & 2) { | |
23601 | *Duv = (((u + ((*Duv & 0x00ff) * a1)) >> 16) ) | | |
23602 | (((v + ((*Duv & 0xff00) * a1)) >> 16) & 0xff00); | |
23603 | } | |
23604 | } | |
23605 | } | |
23606 | else { | |
23607 | memset( Dy, y, w ); | |
23608 | ||
23609 | if (blender->y & 1) { | |
23610 | register uint32_t Dpix = u | v | ((u|v) << 16); | |
23611 | ||
23612 | if ((long)Duv & 2) { | |
23613 | *Duv++ = Dpix; | |
23614 | w -= 2; | |
23615 | } | |
23616 | ||
23617 | for (n = w/4; n--;) { | |
23618 | *((uint32_t*)Duv) = Dpix; | |
23619 | Duv += 2; | |
23620 | } | |
23621 | ||
23622 | if (w & 2) | |
23623 | *Duv = Dpix; | |
23624 | } | |
23625 | } | |
23626 | } | |
23627 | ||
23628 | static | |
23629 | void __generic_blend_nv21 ( DVBlender *blender, DVColor *color ) | |
23630 | { | |
23631 | uint8_t *Dy = blender->plane[0] + blender->x; | |
23632 | uint16_t *Dvu = (uint16_t*) blender->plane[1] + blender->x/2; | |
23633 | uint32_t y = color->yuv.y; | |
23634 | uint32_t u = color->yuv.u << 8; | |
23635 | uint32_t v = color->yuv.v; | |
23636 | int w = blender->len; | |
23637 | int n; | |
23638 | ||
23639 | if (color->yuv.a < 0xff) { | |
23640 | uint32_t a0 = (color->yuv.a << 16) / 0xff; | |
23641 | uint32_t a1 = 0x10000 - a0; | |
23642 | ||
23643 | y *= a0; | |
23644 | ||
23645 | for (n = w; n--;) { | |
23646 | *Dy = (y + (*Dy * a1)) >> 16; | |
23647 | Dy++; | |
23648 | } | |
23649 | ||
23650 | if (blender->y & 1) { | |
23651 | u *= a0; | |
23652 | v *= a0; | |
23653 | ||
23654 | if ((long)Dvu & 2) { | |
23655 | *Dvu = (((v + ((*Dvu & 0x00ff) * a1)) >> 16) ) | | |
23656 | (((u + ((*Dvu & 0xff00) * a1)) >> 16) & 0xff00); | |
23657 | Dvu++; | |
23658 | w -= 2; | |
23659 | } | |
23660 | ||
23661 | for (n = w/4; n--;) { | |
23662 | register uint32_t Dpix; | |
23663 | ||
23664 | Dpix = ((v + ((*((uint16_t*)(Dvu)+0) & 0x00ff) * a1)) >> 16); | |
23665 | Dpix |= ((u + ((*((uint16_t*)(Dvu)+0) & 0xff00) * a1)) >> 16) & 0x0000ff00; | |
23666 | Dpix |= ((v + ((*((uint16_t*)(Dvu)+1) & 0x00ff) * a1)) ) & 0x00ff0000; | |
23667 | Dpix |= ((u + ((*((uint16_t*)(Dvu)+1) & 0xff00) * a1)) ) & 0xff000000; | |
23668 | ||
23669 | *((uint32_t*)Dvu) = Dpix; | |
23670 | Dvu += 2; | |
23671 | } | |
23672 | ||
23673 | if (w & 2) { | |
23674 | *Dvu = (((v + ((*Dvu & 0x00ff) * a1)) >> 16) ) | | |
23675 | (((u + ((*Dvu & 0xff00) * a1)) >> 16) & 0xff00); | |
23676 | } | |
23677 | } | |
23678 | } | |
23679 | else { | |
23680 | memset( Dy, y, w ); | |
23681 | ||
23682 | if (blender->y & 1) { | |
23683 | register uint32_t Dpix = u | v | ((u|v) << 16); | |
23684 | ||
23685 | if ((long)Dvu & 2) { | |
23686 | *Dvu++ = Dpix; | |
23687 | w -= 2; | |
23688 | } | |
23689 | ||
23690 | for (n = w/4; n--;) { | |
23691 | *((uint32_t*)Dvu) = Dpix; | |
23692 | Dvu += 2; | |
23693 | } | |
23694 | ||
23695 | if (w & 2) | |
23696 | *Dvu = Dpix; | |
23697 | } | |
23698 | } | |
23699 | } | |
23700 | ||
23701 | static | |
23702 | void __generic_blend_rgb332 ( DVBlender *blender, DVColor *color ) | |
23703 | { | |
23704 | uint8_t *D = blender->plane[0] + blender->x; | |
23705 | uint32_t r = (color->rgb.r & 0xe0); | |
23706 | uint32_t g = (color->rgb.g & 0xe0) >> 3; | |
23707 | uint32_t b = (color->rgb.b & 0xc0) >> 6; | |
23708 | int n = blender->len; | |
23709 | ||
23710 | if (color->rgb.a < 0xff) { | |
23711 | uint32_t a0 = (color->rgb.a << 16) / 0xff; | |
23712 | uint32_t a1 = 0x10000 - a0; | |
23713 | ||
23714 | r *= a0; | |
23715 | g *= a0; | |
23716 | b *= a0; | |
23717 | ||
23718 | while (n--) { | |
23719 | register uint32_t Dpix; | |
23720 | ||
23721 | Dpix = ((b + ((*D & 0x03) * a1)) >> 16); | |
23722 | Dpix |= ((g + ((*D & 0x1c) * a1)) >> 16) & 0x1c; | |
23723 | Dpix |= ((r + ((*D & 0xe0) * a1)) >> 16) & 0xe0; | |
23724 | ||
23725 | *D++ = Dpix; | |
23726 | } | |
23727 | } else | |
23728 | memset( D, (r | g | b), n ); | |
23729 | } | |
23730 | ||
23731 | static | |
23732 | void __generic_blend_argb2554 ( DVBlender *blender, DVColor *color ) | |
23733 | { | |
23734 | uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; | |
23735 | uint32_t a = (color->rgb.a & 0xc0) << 8; | |
23736 | uint32_t r = (color->rgb.r & 0xf8) << 6; | |
23737 | uint32_t g = (color->rgb.g & 0xf8) << 1; | |
23738 | uint32_t b = (color->rgb.b & 0xf0) >> 4; | |
23739 | int w = blender->len; | |
23740 | int n; | |
23741 | ||
23742 | if (color->rgb.a < 0xff) { | |
23743 | uint32_t a0 = (color->rgb.a << 16) / 0xff; | |
23744 | uint32_t a1 = 0x10000 - a0; | |
23745 | ||
23746 | a *= a0; | |
23747 | r *= a0; | |
23748 | g *= a0; | |
23749 | b *= a0; | |
23750 | ||
23751 | if ((long)D & 2) { | |
23752 | register uint32_t Dpix; | |
23753 | ||
23754 | Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); | |
23755 | Dpix |= ((g + ((*D & 0x01f0) * a1)) >> 16) & 0x01f0; | |
23756 | Dpix |= ((r + ((*D & 0x3e00) * a1)) >> 16) & 0x3e00; | |
23757 | Dpix |= ((a + ((*D & 0xc000) * a1)) >> 16) & 0xc000; | |
23758 | ||
23759 | *D++ = Dpix; | |
23760 | w--; | |
23761 | } | |
23762 | ||
23763 | for (n = w/2; n--;) { | |
23764 | register uint32_t Dpix; | |
23765 | ||
23766 | Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x000f) * a1)) >> 16); | |
23767 | Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x01f0) * a1)) >> 16) & 0x000001f0; | |
23768 | Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0x3e00) * a1)) >> 16) & 0x00003e00; | |
23769 | Dpix |= ((a + ((*((uint16_t*)(D)+0) & 0xc000) * a1)) >> 16) & 0x0000c000; | |
23770 | ||
23771 | Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x000f) * a1)) ) & 0x000f0000; | |
23772 | Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x01f0) * a1)) ) & 0x01f00000; | |
23773 | Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0x3e00) * a1)) ) & 0x3e000000; | |
23774 | Dpix |= ((a + ((*((uint16_t*)(D)+1) & 0xc000) * a1)) ) & 0xc0000000; | |
23775 | ||
23776 | *((uint32_t*)D) = Dpix; | |
23777 | D += 2; | |
23778 | } | |
23779 | ||
23780 | if (w & 1) { | |
23781 | register uint32_t Dpix; | |
23782 | ||
23783 | Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); | |
23784 | Dpix |= ((g + ((*D & 0x01f0) * a1)) >> 16) & 0x01f0; | |
23785 | Dpix |= ((r + ((*D & 0x3e00) * a1)) >> 16) & 0x3e00; | |
23786 | Dpix |= ((a + ((*D & 0xc000) * a1)) >> 16) & 0xc000; | |
23787 | ||
23788 | *D = Dpix; | |
23789 | } | |
23790 | } | |
23791 | else { | |
23792 | uint32_t Dpix = (a | r | g | b); | |
23793 | ||
23794 | Dpix |= Dpix << 16; | |
23795 | ||
23796 | if ((long)D & 2) { | |
23797 | *D++ = Dpix; | |
23798 | w--; | |
23799 | } | |
23800 | ||
23801 | for (n = w/2; n--;) { | |
23802 | *((uint32_t*)D) = Dpix; | |
23803 | D += 2; | |
23804 | } | |
23805 | ||
23806 | if (w & 1) | |
23807 | *D = Dpix; | |
23808 | } | |
23809 | } | |
23810 | ||
23811 | static | |
23812 | void __generic_blend_argb4444 ( DVBlender *blender, DVColor *color ) | |
23813 | { | |
23814 | uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; | |
23815 | uint32_t a = (color->rgb.a & 0xf0) << 8; | |
23816 | uint32_t r = (color->rgb.r & 0xf0) << 4; | |
23817 | uint32_t g = (color->rgb.g & 0xf0); | |
23818 | uint32_t b = (color->rgb.b & 0xf0) >> 4; | |
23819 | int w = blender->len; | |
23820 | int n; | |
23821 | ||
23822 | if (color->rgb.a < 0xff) { | |
23823 | uint32_t a0 = (color->rgb.a << 16) / 0xff; | |
23824 | uint32_t a1 = 0x10000 - a0; | |
23825 | ||
23826 | a *= a0; | |
23827 | r *= a0; | |
23828 | g *= a0; | |
23829 | b *= a0; | |
23830 | ||
23831 | if ((long)D & 2) { | |
23832 | register uint32_t Dpix; | |
23833 | ||
23834 | Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); | |
23835 | Dpix |= ((g + ((*D & 0x00f0) * a1)) >> 16) & 0x00f0; | |
23836 | Dpix |= ((r + ((*D & 0x0f00) * a1)) >> 16) & 0x0f00; | |
23837 | Dpix |= ((a + ((*D & 0xf000) * a1)) >> 16) & 0xf000; | |
23838 | ||
23839 | *D++ = Dpix; | |
23840 | w--; | |
23841 | } | |
23842 | ||
23843 | for (n = w/2; n--;) { | |
23844 | register uint32_t Dpix; | |
23845 | ||
23846 | Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x000f) * a1)) >> 16); | |
23847 | Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x00f0) * a1)) >> 16) & 0x000000f0; | |
23848 | Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0x0f00) * a1)) >> 16) & 0x00000f00; | |
23849 | Dpix |= ((a + ((*((uint16_t*)(D)+0) & 0xf000) * a1)) >> 16) & 0x0000f000; | |
23850 | ||
23851 | Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x000f) * a1)) ) & 0x000f0000; | |
23852 | Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x00f0) * a1)) ) & 0x00f00000; | |
23853 | Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0x0f00) * a1)) ) & 0x0f000000; | |
23854 | Dpix |= ((a + ((*((uint16_t*)(D)+1) & 0xf000) * a1)) ) & 0xf0000000; | |
23855 | ||
23856 | *((uint32_t*)D) = Dpix; | |
23857 | D += 2; | |
23858 | } | |
23859 | ||
23860 | if (w & 1) { | |
23861 | register uint32_t Dpix; | |
23862 | ||
23863 | Dpix = ((b + ((*D & 0x000f) * a1)) >> 16); | |
23864 | Dpix |= ((g + ((*D & 0x00f0) * a1)) >> 16) & 0x00f0; | |
23865 | Dpix |= ((r + ((*D & 0x0f00) * a1)) >> 16) & 0x0f00; | |
23866 | Dpix |= ((a + ((*D & 0xf000) * a1)) >> 16) & 0xf000; | |
23867 | ||
23868 | *D = Dpix; | |
23869 | } | |
23870 | } | |
23871 | else { | |
23872 | uint32_t Dpix = (a | r | g | b); | |
23873 | ||
23874 | Dpix |= Dpix << 16; | |
23875 | ||
23876 | if ((long)D & 2) { | |
23877 | *D++ = Dpix; | |
23878 | w--; | |
23879 | } | |
23880 | ||
23881 | for (n = w/2; n--;) { | |
23882 | *((uint32_t*)D) = Dpix; | |
23883 | D += 2; | |
23884 | } | |
23885 | ||
23886 | if (w & 1) | |
23887 | *D = Dpix; | |
23888 | } | |
23889 | } | |
23890 | ||
23891 | static | |
23892 | void __generic_blend_argb1555 ( DVBlender *blender, DVColor *color ) | |
23893 | { | |
23894 | uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; | |
23895 | uint32_t a = (color->rgb.a & 0x80) << 8; | |
23896 | uint32_t r = (color->rgb.r & 0xf8) << 7; | |
23897 | uint32_t g = (color->rgb.g & 0xf8) << 2; | |
23898 | uint32_t b = (color->rgb.b & 0xf8) >> 3; | |
23899 | int w = blender->len; | |
23900 | int n; | |
23901 | ||
23902 | if (color->rgb.a < 0xff) { | |
23903 | uint32_t a0 = (color->rgb.a << 16) / 0xff; | |
23904 | uint32_t a1 = 0x10000 - a0; | |
23905 | ||
23906 | r *= a0; | |
23907 | g *= a0; | |
23908 | b *= a0; | |
23909 | ||
23910 | if ((long)D & 2) { | |
23911 | register uint32_t Dpix; | |
23912 | ||
23913 | Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); | |
23914 | Dpix |= ((g + ((*D & 0x03e0) * a1)) >> 16) & 0x03e0; | |
23915 | Dpix |= ((r + ((*D & 0x7c00) * a1)) >> 16) & 0x7c00; | |
23916 | Dpix |= (a > 127) ? 0x8000 : (*D & 0x8000); | |
23917 | ||
23918 | *D++ = Dpix; | |
23919 | w--; | |
23920 | } | |
23921 | ||
23922 | for (n = w/2; n--;) { | |
23923 | register uint32_t Dpix; | |
23924 | ||
23925 | Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x001f) * a1)) >> 16); | |
23926 | Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x03e0) * a1)) >> 16) & 0x000003e0; | |
23927 | Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0x7c00) * a1)) >> 16) & 0x00007c00; | |
23928 | Dpix |= ((a > 127) ? 0x00008000 : ((*((uint16_t*)(D)+0) & 0x8000))); | |
23929 | ||
23930 | Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x001f) * a1)) ) & 0x001f0000; | |
23931 | Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x03e0) * a1)) ) & 0x03e00000; | |
23932 | Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0x7c00) * a1)) ) & 0x7c000000; | |
23933 | Dpix |= ((a > 127) ? 0x80000000 : ((*((uint16_t*)(D)+1) & 0x8000)<<16)); | |
23934 | ||
23935 | *((uint32_t*)D) = Dpix; | |
23936 | D += 2; | |
23937 | } | |
23938 | ||
23939 | if (w & 1) { | |
23940 | register uint32_t Dpix; | |
23941 | ||
23942 | Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); | |
23943 | Dpix |= ((g + ((*D & 0x03e0) * a1)) >> 16) & 0x03e0; | |
23944 | Dpix |= ((r + ((*D & 0x7c00) * a1)) >> 16) & 0x7c00; | |
23945 | Dpix |= ((a > 127) ? 0x8000 : (*D & 0x8000)); | |
23946 | ||
23947 | *D = Dpix; | |
23948 | } | |
23949 | } | |
23950 | else { | |
23951 | uint32_t Dpix = (a | r | g | b); | |
23952 | ||
23953 | Dpix |= Dpix << 16; | |
23954 | ||
23955 | if ((long)D & 2) { | |
23956 | *D++ = Dpix; | |
23957 | w--; | |
23958 | } | |
23959 | ||
23960 | for (n = w/2; n--;) { | |
23961 | *((uint32_t*)D) = Dpix; | |
23962 | D += 2; | |
23963 | } | |
23964 | ||
23965 | if (w & 1) | |
23966 | *D = Dpix; | |
23967 | } | |
23968 | } | |
23969 | ||
23970 | static | |
23971 | void __generic_blend_rgb16 ( DVBlender *blender, DVColor *color ) | |
23972 | { | |
23973 | uint16_t *D = (uint16_t*) blender->plane[0] + blender->x; | |
23974 | uint32_t r = (color->rgb.r & 0xf8) << 8; | |
23975 | uint32_t g = (color->rgb.g & 0xfc) << 3; | |
23976 | uint32_t b = (color->rgb.b & 0xf8) >> 3; | |
23977 | int w = blender->len; | |
23978 | int n; | |
23979 | ||
23980 | if (color->rgb.a < 0xff) { | |
23981 | uint32_t a0 = (color->rgb.a << 16) / 0xff; | |
23982 | uint32_t a1 = 0x10000 - a0; | |
23983 | ||
23984 | r *= a0; | |
23985 | g *= a0; | |
23986 | b *= a0; | |
23987 | ||
23988 | if ((long)D & 2) { | |
23989 | register uint32_t Dpix; | |
23990 | ||
23991 | Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); | |
23992 | Dpix |= ((g + ((*D & 0x07e0) * a1)) >> 16) & 0x07e0; | |
23993 | Dpix |= ((r + ((*D & 0xf800) * a1)) >> 16) & 0xf800; | |
23994 | ||
23995 | *D++ = Dpix; | |
23996 | w--; | |
23997 | } | |
23998 | ||
23999 | for (n = w/2; n--;) { | |
24000 | register uint32_t Dpix; | |
24001 | ||
24002 | Dpix = ((b + ((*((uint16_t*)(D)+0) & 0x001f) * a1)) >> 16); | |
24003 | Dpix |= ((g + ((*((uint16_t*)(D)+0) & 0x07e0) * a1)) >> 16) & 0x000007e0; | |
24004 | Dpix |= ((r + ((*((uint16_t*)(D)+0) & 0xf800) * a1)) >> 16) & 0x0000f800; | |
24005 | ||
24006 | Dpix |= ((b + ((*((uint16_t*)(D)+1) & 0x001f) * a1)) ) & 0x001f0000; | |
24007 | Dpix |= ((g + ((*((uint16_t*)(D)+1) & 0x07e0) * a1)) ) & 0x07e00000; | |
24008 | Dpix |= ((r + ((*((uint16_t*)(D)+1) & 0xf800) * a1)) ) & 0xf8000000; | |
24009 | ||
24010 | *((uint32_t*)D) = Dpix; | |
24011 | D += 2; | |
24012 | } | |
24013 | ||
24014 | if (w & 1) { | |
24015 | register uint32_t Dpix; | |
24016 | ||
24017 | Dpix = ((b + ((*D & 0x001f) * a1)) >> 16); | |
24018 | Dpix |= ((g + ((*D & 0x07e0) * a1)) >> 16) & 0x07e0; | |
24019 | Dpix |= ((r + ((*D & 0xf800) * a1)) >> 16) & 0xf800; | |
24020 | ||
24021 | *D = Dpix; | |
24022 | } | |
24023 | } | |
24024 | else { | |
24025 | uint32_t Dpix = (r | g | b); | |
24026 | ||
24027 | Dpix |= Dpix << 16; | |
24028 | ||
24029 | if ((long)D & 2) { | |
24030 | *D++ = Dpix; | |
24031 | w--; | |
24032 | } | |
24033 | ||
24034 | for (n = w/2; n--;) { | |
24035 | *((uint32_t*)D) = Dpix; | |
24036 | D += 2; | |
24037 | } | |
24038 | ||
24039 | if (w & 1) | |
24040 | *D = Dpix; | |
24041 | } | |
24042 | } | |
24043 | ||
24044 | static | |
24045 | void __generic_blend_rgb24 ( DVBlender *blender, DVColor *color ) | |
24046 | { | |
24047 | uint8_t *D = blender->plane[0] + blender->x*3; | |
24048 | uint32_t r = color->rgb.r; | |
24049 | uint32_t g = color->rgb.g; | |
24050 | uint32_t b = color->rgb.b; | |
24051 | int n = blender->len; | |
24052 | ||
24053 | if (color->rgb.a < 0xff) { | |
24054 | uint32_t a0 = (color->rgb.a << 16) / 0xff; | |
24055 | uint32_t a1 = 0x10000 - a0; | |
24056 | ||
24057 | r *= a0; | |
24058 | g *= a0; | |
24059 | b *= a0; | |
24060 | ||
24061 | while (n--) { | |
24062 | *(D+0) = (b + (*(D+0) * a1)) >> 16; | |
24063 | *(D+1) = (g + (*(D+1) * a1)) >> 16; | |
24064 | *(D+2) = (r + (*(D+2) * a1)) >> 16; | |
24065 | ||
24066 | D += 3; | |
24067 | } | |
24068 | } | |
24069 | else { | |
24070 | while (n--) { | |
24071 | *(D+0) = b; | |
24072 | *(D+1) = r; | |
24073 | *(D+2) = g; | |
24074 | ||
24075 | D += 3; | |
24076 | } | |
24077 | } | |
24078 | } | |
24079 | ||
24080 | static | |
24081 | void __generic_blend_rgb32 ( DVBlender *blender, DVColor *color ) | |
24082 | { | |
24083 | uint32_t *D = (uint32_t*) blender->plane[0] + blender->x; | |
24084 | uint32_t r = color->rgb.r; | |
24085 | uint32_t g = color->rgb.g; | |
24086 | uint32_t b = color->rgb.b; | |
24087 | int n = blender->len; | |
24088 | ||
24089 | if (color->rgb.a < 0xff) { | |
24090 | uint32_t a0 = (color->rgb.a << 16) / 0xff; | |
24091 | uint32_t a1 = 0x10000 - a0; | |
24092 | ||
24093 | r *= a0; | |
24094 | g *= a0; | |
24095 | b *= a0; | |
24096 | ||
24097 | while (n--) { | |
24098 | register uint32_t Dpix; | |
24099 | ||
24100 | Dpix = ((b + (((*D & 0x000000ff) ) * a1)) >> 16); | |
24101 | Dpix |= ((g + (((*D & 0x0000ff00) >> 8) * a1)) >> 8) & 0x0000ff00; | |
24102 | Dpix |= ((r + (((*D & 0x00ff0000) >> 16) * a1)) ) & 0x00ff0000; | |
24103 | ||
24104 | *D++ = Dpix; | |
24105 | } | |
24106 | } | |
24107 | else { | |
24108 | uint32_t Dpix = (r << 16) | (g << 8) | b; | |
24109 | ||
24110 | while (n--) | |
24111 | *D++ = Dpix; | |
24112 | } | |
24113 | } | |
24114 | ||
24115 | static | |
24116 | void __generic_blend_argb ( DVBlender *blender, DVColor *color ) | |
24117 | { | |
24118 | uint32_t *D = (uint32_t*) blender->plane[0] + blender->x; | |
24119 | uint32_t a = color->rgb.a; | |
24120 | uint32_t r = color->rgb.r; | |
24121 | uint32_t g = color->rgb.g; | |
24122 | uint32_t b = color->rgb.b; | |
24123 | int n = blender->len; | |
24124 | ||
24125 | if (a < 0xff) { | |
24126 | uint32_t a0 = (a << 16) / 0xff; | |
24127 | uint32_t a1 = 0x10000 - a0; | |
24128 | ||
24129 | a *= a0; | |
24130 | r *= a0; | |
24131 | g *= a0; | |
24132 | b *= a0; | |
24133 | ||
24134 | while (n--) { | |
24135 | register uint32_t Dpix; | |
24136 | ||
24137 | Dpix = ((b + (((*D & 0x000000ff) ) * a1)) >> 16); | |
24138 | Dpix |= ((g + (((*D & 0x0000ff00) >> 8) * a1)) >> 8) & 0x0000ff00; | |
24139 | Dpix |= ((r + (((*D & 0x00ff0000) >> 16) * a1)) ) & 0x00ff0000; | |
24140 | Dpix |= ((a + (((*D & 0xff000000) >> 24) * a1)) << 8) & 0xff000000; | |
24141 | ||
24142 | *D++ = Dpix; | |
24143 | } | |
24144 | } | |
24145 | else { | |
24146 | uint32_t Dpix = (a << 24) | (r << 16) | (g << 8) | b; | |
24147 | ||
24148 | while (n--) | |
24149 | *D++ = Dpix; | |
24150 | } | |
24151 | } | |
24152 | ||
24153 | ||
24154 | #undef PACCEL | |
24155 | # 219 "video_out_dfb.c" 2 | |
24156 | ||
24157 | ||
24158 | static DVBlendFunc BlendFuncs[21] = | |
24159 | { | |
24160 | __generic_blend_argb1555, | |
24161 | __generic_blend_rgb16, | |
24162 | __generic_blend_rgb24, | |
24163 | __generic_blend_rgb32, | |
24164 | __generic_blend_argb, | |
24165 | ((void *)0), | |
24166 | __generic_blend_yuy2, | |
24167 | __generic_blend_rgb332, | |
24168 | __generic_blend_uyvy, | |
24169 | __generic_blend_yv12, | |
24170 | __generic_blend_yv12, | |
24171 | ((void *)0), | |
24172 | ((void *)0), | |
24173 | __generic_blend_rgb32, | |
24174 | ((void *)0), | |
24175 | __generic_blend_nv12, | |
24176 | __generic_blend_nv12, | |
24177 | __generic_blend_argb2554, | |
24178 | __generic_blend_argb4444, | |
24179 | __generic_blend_nv21 | |
24180 | }; | |
24181 | ||
24182 | ||
24183 | ||
24184 | ||
24185 | ||
24186 | static void | |
24187 | vo_dfb_tables_regen( dfb_driver_t *this, | |
24188 | MixerFlags flags, | |
24189 | DFBSurfacePixelFormat format ) | |
24190 | { | |
24191 | const DVProcMatrix *m = &proc_matrices[this->config.proc_matrix]; | |
24192 | int lm_cfc; | |
24193 | int vr_cfc; | |
24194 | int vg_cfc; | |
24195 | int ug_cfc; | |
24196 | int ub_cfc; | |
24197 | int b = this->mixer.b; | |
24198 | int c = this->mixer.c; | |
24199 | int s = this->mixer.s; | |
24200 | bool clamp = (0); | |
24201 | int i; | |
24202 | ||
24203 | do {} while(0); | |
24204 | ||
24205 | if (flags & MF_B) { | |
24206 | if (this->mixer.b == 0) | |
24207 | this->mixer.set &= ~MF_B; | |
24208 | else | |
24209 | this->mixer.set |= MF_B; | |
24210 | } | |
24211 | ||
24212 | if (flags & MF_C) { | |
24213 | if (this->mixer.c == 128) | |
24214 | this->mixer.set &= ~MF_C; | |
24215 | else | |
24216 | this->mixer.set |= MF_C; | |
24217 | } | |
24218 | ||
24219 | if (flags & MF_S) { | |
24220 | if (this->mixer.s == 128) | |
24221 | this->mixer.set &= ~MF_S; | |
24222 | else | |
24223 | this->mixer.set |= MF_S; | |
24224 | } | |
24225 | ||
24226 | if (format != this->dest_format) | |
24227 | flags = MF_ALL; | |
24228 | ||
24229 | ||
24230 | lm_cfc = + 0x00002000 * 255 / (m->y.max - m->y.min ); | |
24231 | vr_cfc = + m->v_for_r * 255 / (m->uv.max - m->uv.min); | |
24232 | vg_cfc = - m->v_for_g * 255 / (m->uv.max - m->uv.min); | |
24233 | ug_cfc = - m->u_for_g * 255 / (m->uv.max - m->uv.min); | |
24234 | ub_cfc = + m->u_for_b * 255 / (m->uv.max - m->uv.min); | |
24235 | ||
24236 | switch (format) { | |
24237 | case DSPF_UYVY: | |
24238 | case DSPF_YUY2: | |
24239 | case DSPF_YV12: | |
24240 | case DSPF_I420: | |
24241 | case DSPF_NV12: | |
24242 | case DSPF_NV21: | |
24243 | case DSPF_NV16: | |
24244 | for (i = 0; i < 256; i++) { | |
24245 | int lm, uv; | |
24246 | ||
24247 | if (flags & (MF_B | MF_C)) { | |
24248 | lm = (((i)<(m->y.min)) ? (m->y.min) : (((i)>(m->y.max)) ? (m->y.max) : (i))); | |
24249 | lm = (((lm - m->y.off + b) * c) >> 7) + m->y.off; | |
24250 | proc_table.lm[i] = (((lm)<(0)) ? (0) : (((lm)>(0xff)) ? (0xff) : (lm))); | |
24251 | } | |
24252 | if (flags & MF_S) { | |
24253 | uv = (((i)<(m->uv.min)) ? (m->uv.min) : (((i)>(m->uv.max)) ? (m->uv.max) : (i))); | |
24254 | uv = (((uv - m->uv.off) * s) >> 7) + m->uv.off; | |
24255 | proc_table.uv[i] = (((uv)<(0)) ? (0) : (((uv)>(0xff)) ? (0xff) : (uv))); | |
24256 | } | |
24257 | } | |
24258 | break; | |
24259 | ||
24260 | default: | |
24261 | for (i = 0; i < 256; i++) { | |
24262 | int lm, uv, vr, vg, ug, ub; | |
24263 | ||
24264 | if (flags & (MF_B | MF_C)) { | |
24265 | lm = (((i)<(m->y.min)) ? (m->y.min) : (((i)>(m->y.max)) ? (m->y.max) : (i))); | |
24266 | lm = ((lm - m->y.off + b) * lm_cfc * c) >> 20; | |
24267 | proc_table.lm[i] = (((lm)<(0)) ? (0) : (((lm)>(0xff)) ? (0xff) : (lm))); | |
24268 | } | |
24269 | if (flags & MF_S) { | |
24270 | uv = (((i)<(m->uv.min)) ? (m->uv.min) : (((i)>(m->uv.max)) ? (m->uv.max) : (i))); | |
24271 | vr = ((uv - m->uv.off) * vr_cfc * s) >> 20; | |
24272 | vg = ((uv - m->uv.off) * vg_cfc * s) >> 20; | |
24273 | ug = ((uv - m->uv.off) * ug_cfc * s) >> 20; | |
24274 | ub = ((uv - m->uv.off) * ub_cfc * s) >> 20; | |
24275 | proc_table.vr[i] = vr; | |
24276 | proc_table.vg[i] = vg; | |
24277 | proc_table.ug[i] = ug; | |
24278 | proc_table.ub[i] = ub; | |
24279 | } | |
24280 | } | |
24281 | clamp = (this->dest_format != format); | |
24282 | break; | |
24283 | } | |
24284 | ||
24285 | ||
24286 | if (this->accel == 0x80000000) { | |
24287 | for (i = 0; i < 4; i++) { | |
24288 | proc_table.mmx.lm_sub[i] = m->y.off - b; | |
24289 | proc_table.mmx.lm_add[i] = m->y.off; | |
24290 | proc_table.mmx.uv_sub[i] = m->uv.off; | |
24291 | } | |
24292 | ||
24293 | switch (format) { | |
24294 | case DSPF_UYVY: | |
24295 | case DSPF_YUY2: | |
24296 | case DSPF_YV12: | |
24297 | case DSPF_I420: | |
24298 | case DSPF_NV12: | |
24299 | case DSPF_NV21: | |
24300 | case DSPF_NV16: | |
24301 | for (i = 0; i < 4; i++) { | |
24302 | proc_table.mmx.lm_cfc[i] = (0x2000 * c) >> 7; | |
24303 | proc_table.mmx.uv_cfc[i] = (0x2000 * s) >> 7; | |
24304 | } | |
24305 | break; | |
24306 | case DSPF_ARGB2554: | |
24307 | case DSPF_ARGB4444: | |
24308 | ||
24309 | break; | |
24310 | default: | |
24311 | for (i = 0; i < 4; i++) { | |
24312 | proc_table.mmx.lm_cfc[i] = (lm_cfc * c) >> 7; | |
24313 | proc_table.mmx.vr_cfc[i] = (vr_cfc * s) >> 7; | |
24314 | proc_table.mmx.vg_cfc[i] = (vg_cfc * s) >> 7; | |
24315 | proc_table.mmx.ug_cfc[i] = (ug_cfc * s) >> 7; | |
24316 | proc_table.mmx.ub_cfc[i] = (ub_cfc * s) >> 7; | |
24317 | } | |
24318 | clamp = (0); | |
24319 | break; | |
24320 | } | |
24321 | } | |
24322 | ||
24323 | ||
24324 | if (clamp) { | |
24325 | int uv_min, uv_max; | |
24326 | int r_min, r_max; | |
24327 | int g_min, g_max; | |
24328 | int b_min, b_max; | |
24329 | void *clamp_r; | |
24330 | void *clamp_g; | |
24331 | void *clamp_b; | |
24332 | uint32_t alpha; | |
24333 | int cpp; | |
24334 | ||
24335 | do {} while(0); | |
24336 | ||
24337 | uv_min = (m->uv.min - m->uv.off) * 255; | |
24338 | uv_max = (m->uv.max - m->uv.off) * 255; | |
24339 | ||
24340 | r_min = 0x00 + ((uv_min * vr_cfc) >> 20); | |
24341 | r_max = 0xff + ((uv_max * vr_cfc) >> 20); | |
24342 | g_min = 0x00 + ((uv_max * vg_cfc) >> 20) + ((uv_max * ug_cfc) >> 20); | |
24343 | g_max = 0xff + ((uv_min * vg_cfc) >> 20) + ((uv_min * ug_cfc) >> 20); | |
24344 | b_min = 0x00 + ((uv_min * ub_cfc) >> 20); | |
24345 | b_max = 0xff + ((uv_max * ub_cfc) >> 20); | |
24346 | ||
24347 | do {} while(0); | |
24348 | ||
24349 | ||
24350 | ||
24351 | ||
24352 | ||
24353 | cpp = (((format) & 0x00700000) >> 20); | |
24354 | ||
24355 | if ((((this->dest_format) & 0x00700000) >> 20) != cpp) { | |
24356 | void *clamp_buf; | |
24357 | int r_size; | |
24358 | int g_size; | |
24359 | int b_size; | |
24360 | int size; | |
24361 | ||
24362 | cpp = (cpp == 3) ? 1 : cpp; | |
24363 | ||
24364 | r_size = abs(r_min) + r_max + 1; | |
24365 | g_size = abs(g_min) + g_max + 1; | |
24366 | b_size = abs(b_min) + b_max + 1; | |
24367 | size = (r_size + g_size + b_size) * cpp; | |
24368 | ||
24369 | if (proc_table.clamp.buf) { | |
24370 | free( proc_table.clamp.buf ); | |
24371 | proc_table.clamp.buf = ((void *)0); | |
24372 | } | |
24373 | ||
24374 | clamp_buf = xine_xmalloc_aligned( 4, size, &proc_table.clamp.buf ); | |
24375 | if (!clamp_buf) { | |
24376 | do {} while(0); | |
24377 | do { fprintf(stderr, "abort: %s:%d: %s: Aborting.\n", "video_out_dfb.c", 440, __FUNCTION__); abort(); } while(0); | |
24378 | } | |
24379 | ||
24380 | proc_table.clamp.r = clamp_buf + abs(r_min) * cpp; | |
24381 | proc_table.clamp.g = clamp_buf + ( r_size + abs(g_min)) * cpp; | |
24382 | proc_table.clamp.b = clamp_buf + (g_size + r_size + abs(b_min)) * cpp; | |
24383 | } | |
24384 | ||
24385 | clamp_r = proc_table.clamp.r; | |
24386 | clamp_g = proc_table.clamp.g; | |
24387 | clamp_b = proc_table.clamp.b; | |
24388 | ||
24389 | switch (format) { | |
24390 | case DSPF_ARGB2554: | |
24391 | alpha = 0x0000c000; | |
24392 | break; | |
24393 | case DSPF_ARGB4444: | |
24394 | alpha = 0x0000f000; | |
24395 | break; | |
24396 | case DSPF_ARGB1555: | |
24397 | alpha = 0x00008000; | |
24398 | break; | |
24399 | case DSPF_ARGB: | |
24400 | alpha = 0xff000000; | |
24401 | break; | |
24402 | default: | |
24403 | alpha = 0; | |
24404 | break; | |
24405 | } | |
24406 | ||
24407 | switch (format) { | |
24408 | case DSPF_RGB332: | |
24409 | for (i = 1; i < 256; i++) { | |
24410 | ((uint8_t *)clamp_r)[i] = ((i & 0xe0)); | |
24411 | ((uint8_t *)clamp_g)[i] = ((i & 0xe0) >> 3); | |
24412 | ((uint8_t *)clamp_b)[i] = ((i & 0xc0) >> 6); | |
24413 | } | |
24414 | break; | |
24415 | case DSPF_ARGB2554: | |
24416 | for (i = 1; i < 256; i++) { | |
24417 | ((uint16_t*)clamp_r)[i] = ((i & 0xf8) << 6) | 0xc000; | |
24418 | ((uint16_t*)clamp_g)[i] = ((i & 0xf8) << 1); | |
24419 | ((uint16_t*)clamp_b)[i] = ((i & 0xf0) >> 4); | |
24420 | } | |
24421 | break; | |
24422 | case DSPF_ARGB4444: | |
24423 | for (i = 1; i < 256; i++) { | |
24424 | ((uint16_t*)clamp_r)[i] = ((i & 0xf0) << 4) | 0xf000; | |
24425 | ((uint16_t*)clamp_g)[i] = ((i & 0xf0)); | |
24426 | ((uint16_t*)clamp_b)[i] = ((i & 0xf0) >> 4); | |
24427 | } | |
24428 | break; | |
24429 | case DSPF_ARGB1555: | |
24430 | for (i = 1; i < 256; i++) { | |
24431 | ((uint16_t*)clamp_r)[i] = ((i & 0xf8) << 7) | 0x8000; | |
24432 | ((uint16_t*)clamp_g)[i] = ((i & 0xf8) << 2); | |
24433 | ((uint16_t*)clamp_b)[i] = ((i & 0xf8) >> 3); | |
24434 | } | |
24435 | break; | |
24436 | case DSPF_RGB16: | |
24437 | for (i = 1; i < 256; i++) { | |
24438 | ((uint16_t*)clamp_r)[i] = ((i & 0xf8) << 8); | |
24439 | ((uint16_t*)clamp_g)[i] = ((i & 0xfc) << 3); | |
24440 | ((uint16_t*)clamp_b)[i] = ((i & 0xf8) >> 3); | |
24441 | } | |
24442 | break; | |
24443 | case DSPF_RGB24: | |
24444 | for (i = 1; i < 256; i++) { | |
24445 | ((uint8_t *)clamp_r)[i] = i; | |
24446 | ((uint8_t *)clamp_g)[i] = i; | |
24447 | ((uint8_t *)clamp_b)[i] = i; | |
24448 | } | |
24449 | break; | |
24450 | case DSPF_RGB32: | |
24451 | case DSPF_ARGB: | |
24452 | case DSPF_AiRGB: | |
24453 | for (i = 1; i < 256; i++) { | |
24454 | ((uint32_t*)clamp_r)[i] = (i << 16) | alpha; | |
24455 | ((uint32_t*)clamp_g)[i] = (i << 8); | |
24456 | ((uint32_t*)clamp_b)[i] = i; | |
24457 | } | |
24458 | break; | |
24459 | default: | |
24460 | break; | |
24461 | } | |
24462 | ||
24463 | switch (cpp) { | |
24464 | case 1: | |
24465 | case 3: | |
24466 | memset( clamp_r + r_min, alpha, abs(r_min)+1 ); | |
24467 | memset( clamp_r + 256, *((uint8_t*)clamp_r+255), r_max-255 ); | |
24468 | memset( clamp_g + 256, *((uint8_t*)clamp_g+255), g_max-255 ); | |
24469 | memset( clamp_b + 256, *((uint8_t*)clamp_b+255), b_max-255 ); | |
24470 | break; | |
24471 | case 2: | |
24472 | for (i = r_min; i <= 0; i++) | |
24473 | ((uint16_t*)clamp_r)[i] = alpha; | |
24474 | for (i = 256; i <= r_max; i++) | |
24475 | ((uint16_t*)clamp_r)[i] = *((uint16_t*)clamp_r+255); | |
24476 | for (i = 256; i <= g_max; i++) | |
24477 | ((uint16_t*)clamp_g)[i] = *((uint16_t*)clamp_g+255); | |
24478 | for (i = 256; i <= b_max; i++) | |
24479 | ((uint16_t*)clamp_b)[i] = *((uint16_t*)clamp_b+255); | |
24480 | break; | |
24481 | case 4: | |
24482 | for (i = r_min; i <= 0; i++) | |
24483 | ((uint32_t*)clamp_r)[i] = alpha; | |
24484 | for (i = 256; i <= r_max; i++) | |
24485 | ((uint32_t*)clamp_r)[i] = *((uint32_t*)clamp_r+255); | |
24486 | for (i = 256; i <= g_max; i++) | |
24487 | ((uint32_t*)clamp_g)[i] = *((uint32_t*)clamp_g+255); | |
24488 | for (i = 256; i <= b_max; i++) | |
24489 | ((uint32_t*)clamp_b)[i] = *((uint32_t*)clamp_b+255); | |
24490 | break; | |
24491 | default: | |
24492 | break; | |
24493 | } | |
24494 | } | |
24495 | } | |
24496 | ||
24497 | static uint32_t | |
24498 | vo_dfb_get_capabilities( vo_driver_t *vo_driver ) | |
24499 | { | |
24500 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
24501 | uint32_t caps = 0x00000001 | 0x00000002; | |
24502 | ||
24503 | if (this->ovl) | |
24504 | caps |= 0x00000010; | |
24505 | ||
24506 | do {} while(0); | |
24507 | return caps; | |
24508 | } | |
24509 | ||
24510 | static void | |
24511 | vo_dfb_proc_frame( vo_frame_t *vo_frame ) | |
24512 | { | |
24513 | dfb_driver_t *this = (dfb_driver_t*) vo_frame->driver; | |
24514 | dfb_frame_t *frame = (dfb_frame_t*) vo_frame; | |
24515 | ||
24516 | do { if (!(frame->surface != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 579, __FUNCTION__, "frame->surface != NULL"); abort(); } } while(0); | |
24517 | ||
24518 | if (!frame->surface) | |
24519 | return; | |
24520 | ||
24521 | vo_frame->proc_called = 1; | |
24522 | ||
24523 | if (frame->proc_needed) { | |
24524 | DVProcFunc procf = ProcFuncs[frame->in_format][frame->out_format]; | |
24525 | ||
24526 | ; | |
24527 | ||
24528 | procf( frame ); | |
24529 | ||
24530 | (void) this;; | |
24531 | } | |
24532 | } | |
24533 | ||
24534 | static void | |
24535 | vo_dfb_frame_field( vo_frame_t *vo_frame, | |
24536 | int which_field ) | |
24537 | { | |
24538 | ||
24539 | } | |
24540 | ||
24541 | static void | |
24542 | vo_dfb_frame_dispose( vo_frame_t *vo_frame ) | |
24543 | { | |
24544 | dfb_frame_t *frame = (dfb_frame_t*) vo_frame; | |
24545 | ||
24546 | if (frame) { | |
24547 | if (frame->surface) | |
24548 | dfb_surface_unref( frame->surface ); | |
24549 | if (frame->chunk[0]) | |
24550 | free( frame->chunk[0] ); | |
24551 | if (frame->chunk[1]) | |
24552 | free( frame->chunk[1] ); | |
24553 | if (frame->chunk[2]) | |
24554 | free( frame->chunk[2] ); | |
24555 | free( frame ); | |
24556 | } | |
24557 | } | |
24558 | ||
24559 | static vo_frame_t* | |
24560 | vo_dfb_alloc_frame( vo_driver_t *vo_driver ) | |
24561 | { | |
24562 | dfb_frame_t *frame; | |
24563 | ||
24564 | frame = (dfb_frame_t*) xine_xmalloc( sizeof(dfb_frame_t) ); | |
24565 | if (!frame) { | |
24566 | do {} while(0); | |
24567 | return ((void *)0); | |
24568 | } | |
24569 | ||
24570 | pthread_mutex_init( &frame->vo_frame.mutex, ((void *)0) ); | |
24571 | ||
24572 | frame->vo_frame.proc_slice = ((void *)0); | |
24573 | frame->vo_frame.proc_frame = vo_dfb_proc_frame; | |
24574 | frame->vo_frame.field = vo_dfb_frame_field; | |
24575 | frame->vo_frame.dispose = vo_dfb_frame_dispose; | |
24576 | frame->vo_frame.driver = vo_driver; | |
24577 | ||
24578 | return (vo_frame_t*) frame; | |
24579 | } | |
24580 | ||
24581 | static inline void | |
24582 | vo_dfb_allocate_yuy2( dfb_frame_t *frame, | |
24583 | DFBSurfacePixelFormat dst_format ) | |
24584 | { | |
24585 | vo_frame_t *vo_frame = &frame->vo_frame; | |
24586 | ||
24587 | switch (dst_format) { | |
24588 | case DSPF_YUY2: | |
24589 | if (frame->mixer_set == MF_NONE) | |
24590 | frame->proc_needed = (0); | |
24591 | ||
24592 | case DSPF_UYVY: | |
24593 | case DSPF_ARGB2554: | |
24594 | case DSPF_ARGB4444: | |
24595 | case DSPF_ARGB1555: | |
24596 | case DSPF_RGB16: | |
24597 | vo_frame->pitches[0] = frame->out_pitch[0]; | |
24598 | vo_frame->base[0] = frame->out_plane[0]; | |
24599 | break; | |
24600 | default: | |
24601 | vo_frame->pitches[0] = frame->width * 2; | |
24602 | vo_frame->base[0] = xine_xmalloc_aligned( 16, | |
24603 | vo_frame->pitches[0]*frame->height, | |
24604 | &frame->chunk[0] ); | |
24605 | break; | |
24606 | } | |
24607 | } | |
24608 | ||
24609 | static inline void | |
24610 | vo_dfb_allocate_yv12( dfb_frame_t *frame, | |
24611 | DFBSurfacePixelFormat dst_format ) | |
24612 | { | |
24613 | vo_frame_t *vo_frame = &frame->vo_frame; | |
24614 | ||
24615 | switch (dst_format) { | |
24616 | case DSPF_YV12: | |
24617 | case DSPF_I420: | |
24618 | if (frame->mixer_set == MF_NONE) | |
24619 | frame->proc_needed = (0); | |
24620 | vo_frame->pitches[0] = frame->out_pitch[0]; | |
24621 | vo_frame->pitches[1] = frame->out_pitch[1]; | |
24622 | vo_frame->pitches[2] = frame->out_pitch[2]; | |
24623 | vo_frame->base[0] = frame->out_plane[0]; | |
24624 | vo_frame->base[1] = frame->out_plane[1]; | |
24625 | vo_frame->base[2] = frame->out_plane[2]; | |
24626 | break; | |
24627 | case DSPF_NV12: | |
24628 | case DSPF_NV21: | |
24629 | case DSPF_NV16: | |
24630 | vo_frame->pitches[0] = frame->out_pitch[0]; | |
24631 | vo_frame->pitches[1] = frame->width / 2; | |
24632 | vo_frame->pitches[2] = frame->width / 2; | |
24633 | vo_frame->base[0] = frame->out_plane[0]; | |
24634 | vo_frame->base[1] = xine_xmalloc_aligned( 16, | |
24635 | vo_frame->pitches[1]*(frame->height/2)+2, | |
24636 | &frame->chunk[1] ); | |
24637 | vo_frame->base[2] = xine_xmalloc_aligned( 16, | |
24638 | vo_frame->pitches[2]*(frame->height/2)+2, | |
24639 | &frame->chunk[2] ); | |
24640 | break; | |
24641 | default: | |
24642 | vo_frame->pitches[0] = frame->width; | |
24643 | vo_frame->pitches[1] = frame->width / 2; | |
24644 | vo_frame->pitches[2] = frame->width / 2; | |
24645 | vo_frame->base[0] = xine_xmalloc_aligned( 16, | |
24646 | vo_frame->pitches[0]*frame->height, | |
24647 | &frame->chunk[0] ); | |
24648 | vo_frame->base[1] = xine_xmalloc_aligned( 16, | |
24649 | vo_frame->pitches[1]*(frame->height/2)+2, | |
24650 | &frame->chunk[1] ); | |
24651 | vo_frame->base[2] = xine_xmalloc_aligned( 16, | |
24652 | vo_frame->pitches[2]*(frame->height/2)+2, | |
24653 | &frame->chunk[2] ); | |
24654 | break; | |
24655 | } | |
24656 | } | |
24657 | ||
24658 | static inline void | |
24659 | vo_dfb_notify_reformat( dfb_driver_t *this, | |
24660 | int width, | |
24661 | int height, | |
24662 | double ratio, | |
24663 | DFBSurfacePixelFormat format ) | |
24664 | { | |
24665 | DFBRectangle rect; | |
24666 | int src_width = (((width)>(2)) ? (width) : (2)); | |
24667 | int src_height = (((height)>(2)) ? (height) : (2)); | |
24668 | double src_ratio = this->output_ratio ? : ratio; | |
24669 | DFBSurfacePixelFormat dest_format = DSPF_UNKNOWN; | |
24670 | ||
24671 | if (this->aspect_ratio == 1) { | |
24672 | ||
24673 | src_ratio = (double) (width ? : 1) / | |
24674 | (double) (height ? : 1); | |
24675 | this->output_ratio = src_ratio; | |
24676 | } | |
24677 | ||
24678 | this->output_cb( this->output_cdata, src_width, src_height, | |
24679 | src_ratio ? : 1, format, &rect ); | |
24680 | ||
24681 | ||
24682 | this->dest->GetPixelFormat( this->dest, &dest_format ); | |
24683 | vo_dfb_tables_regen( this, MF_NONE, dest_format ); | |
24684 | this->dest_format = dest_format; | |
24685 | } | |
24686 | ||
24687 | static void | |
24688 | vo_dfb_update_frame_format( vo_driver_t *vo_driver, | |
24689 | vo_frame_t *vo_frame, | |
24690 | uint32_t width, | |
24691 | uint32_t height, | |
24692 | double ratio, | |
24693 | int format, | |
24694 | int flags ) | |
24695 | { | |
24696 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
24697 | dfb_frame_t *frame = (dfb_frame_t*) vo_frame; | |
24698 | int in_format; | |
24699 | int out_format; | |
24700 | ||
24701 | do { if (!(this->dest != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 764, __FUNCTION__, "this->dest != NULL"); abort(); } } while(0); | |
24702 | ||
24703 | if (!this->dest) | |
24704 | goto failure; | |
24705 | ||
24706 | width = (width > 8) ? ((width+3) & ~3) : 8; | |
24707 | height = (height > 2) ? ((height+1) & ~1) : 2; | |
24708 | in_format = (format == (('2'<<24)|('Y'<<16)|('U'<<8)|'Y')) ? 0 : 1; | |
24709 | out_format = (((this->dest_format) & 0x0000007F) ); | |
24710 | ||
24711 | if (frame->width != width || | |
24712 | frame->height != height || | |
24713 | frame->in_format != in_format || | |
24714 | frame->out_format != out_format || | |
24715 | frame->mixer_set != this->mixer.set) | |
24716 | { | |
24717 | SurfaceBuffer *buffer; | |
24718 | DFBSurfacePixelFormat frame_format; | |
24719 | DFBResult err; | |
24720 | ||
24721 | do {} while(0); | |
24722 | ||
24723 | frame_format = (in_format) ? DSPF_YV12 : DSPF_YUY2; | |
24724 | if (this->frame_format != frame_format || | |
24725 | this->frame_width != vo_frame->width || | |
24726 | this->frame_height != vo_frame->height) | |
24727 | { | |
24728 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: frame format changed to %dx%d %s\n", vo_frame->width, vo_frame->height, in_format ? "YV12" : "YUY2"); } } while(0); | |
24729 | ||
24730 | ||
24731 | ||
24732 | ||
24733 | vo_dfb_notify_reformat( this, vo_frame->width, vo_frame->height, | |
24734 | vo_frame->ratio, frame_format ); | |
24735 | out_format = (((this->dest_format) & 0x0000007F) ); | |
24736 | ||
24737 | this->frame_format = frame_format; | |
24738 | this->frame_width = vo_frame->width; | |
24739 | this->frame_height = vo_frame->height; | |
24740 | } | |
24741 | ||
24742 | if (!frame->surface) | |
24743 | err = dfb_surface_create( ((void *)0), width, height, this->dest_format, | |
24744 | CSP_SYSTEMONLY, DSCAPS_SYSTEMONLY, | |
24745 | ((void *)0), &frame->surface ); | |
24746 | else | |
24747 | err = dfb_surface_reformat( ((void *)0), frame->surface, | |
24748 | width, height, this->dest_format ); | |
24749 | ||
24750 | if (err != DFB_OK) { | |
24751 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: " "error creating/reformatting frame surface (%s)\n", DirectFBErrorString( err )); } } while(0); | |
24752 | ||
24753 | ||
24754 | ||
24755 | goto failure; | |
24756 | } | |
24757 | ||
24758 | if (frame->chunk[0]) | |
24759 | free( frame->chunk[0] ); | |
24760 | if (frame->chunk[1]) | |
24761 | free( frame->chunk[1] ); | |
24762 | if (frame->chunk[2]) | |
24763 | free( frame->chunk[2] ); | |
24764 | ||
24765 | frame->width = width; | |
24766 | frame->height = height; | |
24767 | frame->area = width * height; | |
24768 | frame->in_format = in_format; | |
24769 | frame->out_format = out_format; | |
24770 | frame->chunk[0] = ((void *)0); | |
24771 | frame->chunk[1] = ((void *)0); | |
24772 | frame->chunk[2] = ((void *)0); | |
24773 | frame->mixer_set = this->mixer.set; | |
24774 | frame->proc_needed = (!(0)); | |
24775 | ||
24776 | buffer = frame->surface->back_buffer; | |
24777 | ||
24778 | frame->out_pitch[0] = buffer->system.pitch; | |
24779 | frame->out_plane[0] = buffer->system.addr; | |
24780 | ||
24781 | switch (buffer->format) { | |
24782 | case DSPF_YV12: | |
24783 | frame->out_pitch[1] = frame->out_pitch[0] / 2; | |
24784 | frame->out_pitch[2] = frame->out_pitch[0] / 2; | |
24785 | frame->out_plane[2] = frame->out_plane[0] + | |
24786 | frame->out_pitch[0]*height; | |
24787 | frame->out_plane[1] = frame->out_plane[2] + | |
24788 | frame->out_pitch[2]*height/2; | |
24789 | break; | |
24790 | case DSPF_I420: | |
24791 | frame->out_pitch[1] = frame->out_pitch[0] / 2; | |
24792 | frame->out_pitch[2] = frame->out_pitch[0] / 2; | |
24793 | frame->out_plane[1] = frame->out_plane[0] + | |
24794 | frame->out_pitch[0]*height; | |
24795 | frame->out_plane[2] = frame->out_plane[1] + | |
24796 | frame->out_pitch[1]*height/2; | |
24797 | break; | |
24798 | case DSPF_NV12: | |
24799 | case DSPF_NV21: | |
24800 | case DSPF_NV16: | |
24801 | frame->out_pitch[1] = frame->out_pitch[0] & ~1; | |
24802 | frame->out_plane[1] = frame->out_plane[0] + | |
24803 | frame->out_pitch[0]*height; | |
24804 | break; | |
24805 | default: | |
24806 | break; | |
24807 | } | |
24808 | ||
24809 | switch (format) { | |
24810 | case (('2'<<24)|('Y'<<16)|('U'<<8)|'Y'): | |
24811 | vo_dfb_allocate_yuy2( frame, buffer->format ); | |
24812 | break; | |
24813 | case (('2'<<24)|('1'<<16)|('V'<<8)|'Y'): | |
24814 | default: | |
24815 | vo_dfb_allocate_yv12( frame, buffer->format ); | |
24816 | break; | |
24817 | } | |
24818 | } | |
24819 | ||
24820 | return; | |
24821 | ||
24822 | failure: | |
24823 | if (frame->surface) { | |
24824 | dfb_surface_unref( frame->surface ); | |
24825 | frame->surface = ((void *)0); | |
24826 | } | |
24827 | } | |
24828 | ||
24829 | ||
24830 | #define HILI(x) hili_ ##x | |
24831 | ||
24832 | ||
24833 | ||
24834 | ||
24835 | static void | |
24836 | vo_dfb_set_palette( dfb_driver_t *this, | |
24837 | vo_overlay_t *overlay, | |
24838 | DFBSurfacePixelFormat format ) | |
24839 | { | |
24840 | DVColor *palette; | |
24841 | uint8_t *clut; | |
24842 | uint8_t *trans; | |
24843 | int i; | |
24844 | ||
24845 | if (!overlay->rgb_clut) { | |
24846 | palette = (DVColor*) &overlay->color[0]; | |
24847 | clut = (uint8_t*) &overlay->color[0]; | |
24848 | trans = &overlay->trans[0]; | |
24849 | ||
24850 | switch (format) { | |
24851 | case DSPF_UYVY: | |
24852 | case DSPF_YUY2: | |
24853 | case DSPF_YV12: | |
24854 | case DSPF_I420: | |
24855 | case DSPF_NV12: | |
24856 | case DSPF_NV21: | |
24857 | case DSPF_NV16: | |
24858 | for (i = 0; i < 256; i++, clut += 4) { | |
24859 | int y, u, v; | |
24860 | ||
24861 | y = proc_table.lm[*(clut+2)]; | |
24862 | u = proc_table.uv[*(clut+0)]; | |
24863 | v = proc_table.uv[*(clut+1)]; | |
24864 | ||
24865 | palette[i].yuv.a = trans[i] * 255 / 15; | |
24866 | palette[i].yuv.y = y; | |
24867 | palette[i].yuv.u = u; | |
24868 | palette[i].yuv.v = v; | |
24869 | } | |
24870 | break; | |
24871 | ||
24872 | default: | |
24873 | for (i = 0; i < 256; i++, clut += 4) { | |
24874 | int y, u, v, r, g, b; | |
24875 | ||
24876 | y = proc_table.lm[*(clut+2)]; | |
24877 | u = *(clut+0); | |
24878 | v = *(clut+1); | |
24879 | r = y + proc_table.vr[v]; | |
24880 | g = y + proc_table.vg[v] + proc_table.ug[u]; | |
24881 | b = y + proc_table.ub[u]; | |
24882 | ||
24883 | palette[i].rgb.a = trans[i] * 255 / 15; | |
24884 | palette[i].rgb.r = (((r)<(0)) ? (0) : (((r)>(0xff)) ? (0xff) : (r))); | |
24885 | palette[i].rgb.g = (((g)<(0)) ? (0) : (((g)>(0xff)) ? (0xff) : (g))); | |
24886 | palette[i].rgb.b = (((b)<(0)) ? (0) : (((b)>(0xff)) ? (0xff) : (b))); | |
24887 | } | |
24888 | break; | |
24889 | } | |
24890 | ||
24891 | overlay->rgb_clut++; | |
24892 | } | |
24893 | ||
24894 | if (!overlay->hili_rgb_clut) { | |
24895 | palette = (DVColor*) &overlay->hili_color[0]; | |
24896 | clut = (uint8_t*) &overlay->hili_color[0]; | |
24897 | trans = &overlay->hili_trans[0]; | |
24898 | ||
24899 | switch (format) { | |
24900 | case DSPF_UYVY: | |
24901 | case DSPF_YUY2: | |
24902 | case DSPF_YV12: | |
24903 | case DSPF_I420: | |
24904 | case DSPF_NV12: | |
24905 | case DSPF_NV21: | |
24906 | case DSPF_NV16: | |
24907 | for (i = 0; i < 256; i++, clut += 4) { | |
24908 | int y, u, v; | |
24909 | ||
24910 | y = proc_table.lm[*(clut+2)]; | |
24911 | u = proc_table.uv[*(clut+0)]; | |
24912 | v = proc_table.uv[*(clut+1)]; | |
24913 | ||
24914 | palette[i].yuv.a = trans[i] * 255 / 15; | |
24915 | palette[i].yuv.y = y; | |
24916 | palette[i].yuv.u = u; | |
24917 | palette[i].yuv.v = v; | |
24918 | } | |
24919 | break; | |
24920 | ||
24921 | default: | |
24922 | for (i = 0; i < 256; i++, clut += 4) { | |
24923 | int y, u, v, r, g, b; | |
24924 | ||
24925 | y = proc_table.lm[*(clut+2)]; | |
24926 | u = *(clut+0); | |
24927 | v = *(clut+1); | |
24928 | r = y + proc_table.vr[v]; | |
24929 | g = y + proc_table.vg[v] + proc_table.ug[u]; | |
24930 | b = y + proc_table.ub[u]; | |
24931 | ||
24932 | palette[i].rgb.a = trans[i] * 255 / 15; | |
24933 | palette[i].rgb.r = (((r)<(0)) ? (0) : (((r)>(0xff)) ? (0xff) : (r))); | |
24934 | palette[i].rgb.g = (((g)<(0)) ? (0) : (((g)>(0xff)) ? (0xff) : (g))); | |
24935 | palette[i].rgb.b = (((b)<(0)) ? (0) : (((b)>(0xff)) ? (0xff) : (b))); | |
24936 | } | |
24937 | break; | |
24938 | } | |
24939 | ||
24940 | overlay->hili_rgb_clut++; | |
24941 | } | |
24942 | } | |
24943 | ||
24944 | static void | |
24945 | vo_dfb_overlay_begin( vo_driver_t *vo_driver, | |
24946 | vo_frame_t *vo_frame, | |
24947 | int changed ) | |
24948 | { | |
24949 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
24950 | ||
24951 | this->ovl_changed += changed; | |
24952 | ||
24953 | if (this->ovl) { | |
24954 | IDirectFBSurface_data *ovl_data = this->ovl_data; | |
24955 | int ovl_width = ovl_data->area.current.w; | |
24956 | int ovl_height = ovl_data->area.current.h; | |
24957 | ||
24958 | if (this->ovl_changed || | |
24959 | this->ovl_width != ovl_width || | |
24960 | this->ovl_height != ovl_height) | |
24961 | { | |
24962 | DFBColor color = { 0, 0, 0, 0 }; | |
24963 | DFBRectangle rect = ovl_data->area.current; | |
24964 | DFBRegion clip; | |
24965 | ||
24966 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: " "overlay changed, clearing subpicture surface\n"); } } while(0); | |
24967 | ||
24968 | ||
24969 | ||
24970 | dfb_region_from_rectangle( &clip, &rect ); | |
24971 | ||
24972 | dfb_state_set_destination( &this->state, ovl_data->surface ); | |
24973 | dfb_state_set_color( &this->state, &color ); | |
24974 | dfb_state_set_clip( &this->state, &clip ); | |
24975 | ||
24976 | dfb_gfxcard_fillrectangles( &rect, 1, &this->state ); | |
24977 | ||
24978 | this->ovl_width = ovl_width; | |
24979 | this->ovl_height = ovl_height; | |
24980 | if (!this->ovl_changed) | |
24981 | this->ovl_changed = 1; | |
24982 | } | |
24983 | } | |
24984 | } | |
24985 | ||
24986 | static void | |
24987 | vo_dfb_overlay_blend( vo_driver_t *vo_driver, | |
24988 | vo_frame_t *vo_frame, | |
24989 | vo_overlay_t *overlay ) | |
24990 | { | |
24991 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
24992 | dfb_frame_t *frame = (dfb_frame_t*) vo_frame; | |
24993 | bool use_ovl = (0); | |
24994 | int x = overlay->x; | |
24995 | int y = overlay->y; | |
24996 | DFBRegion clip; | |
24997 | DFBRegion subclip; | |
24998 | int i; | |
24999 | ||
25000 | do { if (!(frame->surface != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1063, __FUNCTION__, "frame->surface != NULL"); abort(); } } while(0); | |
25001 | do { if (!(overlay->rle != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1064, __FUNCTION__, "overlay->rle != NULL"); abort(); } } while(0); | |
25002 | ||
25003 | if (!frame->surface) | |
25004 | return; | |
25005 | ||
25006 | if (!overlay->rle) | |
25007 | return; | |
25008 | ||
25009 | if (this->ovl) { | |
25010 | use_ovl = (overlay->unscaled || | |
25011 | (vo_frame->width == this->ovl_data->area.wanted.w && | |
25012 | vo_frame->height == this->ovl_data->area.wanted.h)); | |
25013 | ||
25014 | } | |
25015 | ||
25016 | if (!overlay->rgb_clut || !overlay->hili_rgb_clut) { | |
25017 | do {} while(0); | |
25018 | vo_dfb_set_palette( this, overlay, | |
25019 | (!use_ovl) ? frame->surface->format | |
25020 | : this->ovl_data->surface->format ); | |
25021 | } | |
25022 | ||
25023 | ||
25024 | ||
25025 | ; | |
25026 | ||
25027 | subclip.x1 = x + overlay->hili_left; | |
25028 | subclip.y1 = y + overlay->hili_top; | |
25029 | subclip.x2 = x + overlay->hili_right; | |
25030 | subclip.y2 = y + overlay->hili_bottom; | |
25031 | ||
25032 | if (use_ovl) { | |
25033 | IDirectFBSurface_data *ovl_data = this->ovl_data; | |
25034 | int r = 0; | |
25035 | DFBRectangle rects[98]; | |
25036 | ||
25037 | if (!this->ovl_changed) | |
25038 | return; | |
25039 | ||
25040 | clip.x1 = ovl_data->area.wanted.x + (((x)>(0)) ? (x) : (0)); | |
25041 | clip.y1 = ovl_data->area.wanted.y + (((y)>(0)) ? (y) : (0)); | |
25042 | clip.x2 = clip.x1 + overlay->width - 1; | |
25043 | clip.y2 = clip.y1 + overlay->height - 1; | |
25044 | ||
25045 | if (!dfb_region_rectangle_intersect( &clip, | |
25046 | &ovl_data->area.current )) | |
25047 | return; | |
25048 | ||
25049 | dfb_state_set_destination( &this->state, ovl_data->surface ); | |
25050 | dfb_state_set_clip( &this->state, &clip ); | |
25051 | ||
25052 | for (i = 0; i < overlay->num_rle; i++) { | |
25053 | int index = overlay->rle[i].color; | |
25054 | int len = overlay->rle[i].len; | |
25055 | ||
25056 | while (len > 0) { | |
25057 | DVColor *palette = (DVColor*) &overlay->color[0]; | |
25058 | int width; | |
25059 | ||
25060 | if (len > overlay->width) { | |
25061 | width = overlay->width; | |
25062 | len -= overlay->width; | |
25063 | } else { | |
25064 | width = len; | |
25065 | len = 0; | |
25066 | } | |
25067 | ||
25068 | if (y >= subclip.y1 && y <= subclip.y2 && x <= subclip.x2) { | |
25069 | if (x < subclip.x1 && (x + width - 1) >= subclip.x1) { | |
25070 | width -= subclip.x1 - x; | |
25071 | len += subclip.x1 - x; | |
25072 | } else | |
25073 | if (x > subclip.x1) { | |
25074 | palette = (DVColor*) &overlay->hili_color[0]; | |
25075 | ||
25076 | if ((x + width - 1) > subclip.x2) { | |
25077 | width -= subclip.x2 - x; | |
25078 | len += subclip.x2 - x; | |
25079 | } | |
25080 | } | |
25081 | } | |
25082 | ||
25083 | if (palette[index].rgb.a) { | |
25084 | rects[r].x = x; | |
25085 | rects[r].y = y; | |
25086 | rects[r].w = width; | |
25087 | rects[r].h = 1; | |
25088 | r++; | |
25089 | ||
25090 | dfb_state_set_color( &this->state, | |
25091 | (DFBColor*) &palette[index] ); | |
25092 | ||
25093 | if (this->state.modified & SMF_COLOR || | |
25094 | r == (sizeof(rects)/sizeof(rects[0]))) | |
25095 | { | |
25096 | dfb_gfxcard_fillrectangles( &rects[0], r, | |
25097 | &this->state ); | |
25098 | r = 0; | |
25099 | } | |
25100 | } | |
25101 | ||
25102 | x += width; | |
25103 | if (x >= (overlay->x + overlay->width)) { | |
25104 | x = overlay->x; | |
25105 | y++; | |
25106 | } | |
25107 | } | |
25108 | } | |
25109 | ||
25110 | if (r) | |
25111 | dfb_gfxcard_fillrectangles( &rects[0], r, &this->state ); | |
25112 | } | |
25113 | else { | |
25114 | DVBlendFunc blendf = BlendFuncs[frame->out_format]; | |
25115 | DVBlender blender; | |
25116 | ||
25117 | if (x >= frame->width || y >= frame->height) | |
25118 | return; | |
25119 | ||
25120 | clip.x2 = clip.x1 = (((x)>(0)) ? (x) : (0)); | |
25121 | clip.y2 = clip.y1 = (((y)>(0)) ? (y) : (0)); | |
25122 | clip.x2 += (((overlay->width)<(2)) ? (2) : (((overlay->width)>(frame->width - clip.x1)) ? (frame->width - clip.x1) : (overlay->width))) - 1; | |
25123 | clip.y2 += (((overlay->height)<(2)) ? (2) : (((overlay->height)>(frame->height - clip.y1)) ? (frame->height - clip.y1) : (overlay->height))) - 1; | |
25124 | ||
25125 | blender.plane[0] = frame->out_plane[0]; | |
25126 | blender.plane[1] = frame->out_plane[1]; | |
25127 | blender.plane[2] = frame->out_plane[2]; | |
25128 | blender.pitch[0] = frame->out_pitch[0]; | |
25129 | blender.pitch[1] = frame->out_pitch[1]; | |
25130 | blender.pitch[2] = frame->out_pitch[2]; | |
25131 | blender.period[0] = 0; | |
25132 | blender.period[1] = 0; | |
25133 | ||
25134 | blender.plane[0] += clip.y1 * blender.pitch[0]; | |
25135 | ||
25136 | switch (frame->surface->format) { | |
25137 | case DSPF_NV16: | |
25138 | blender.plane[1] += clip.y1 * blender.pitch[1]; | |
25139 | blender.period[0] = 0xffffffff; | |
25140 | break; | |
25141 | case DSPF_YV12: | |
25142 | case DSPF_I420: | |
25143 | blender.plane[2] += clip.y1/2 * blender.pitch[2]; | |
25144 | blender.period[1] = 0x00000001; | |
25145 | ||
25146 | case DSPF_NV12: | |
25147 | case DSPF_NV21: | |
25148 | blender.plane[1] += clip.y1/2 * blender.pitch[1]; | |
25149 | blender.period[0] = 0x00000001; | |
25150 | break; | |
25151 | default: | |
25152 | break; | |
25153 | } | |
25154 | ||
25155 | for (i = 0; i < overlay->num_rle; i++) { | |
25156 | int index = overlay->rle[i].color; | |
25157 | int len = overlay->rle[i].len; | |
25158 | ||
25159 | while (len > 0) { | |
25160 | DVColor *palette = (DVColor*) &overlay->color[0]; | |
25161 | int width; | |
25162 | ||
25163 | if (len > overlay->width) { | |
25164 | width = overlay->width; | |
25165 | len -= overlay->width; | |
25166 | } else { | |
25167 | width = len; | |
25168 | len = 0; | |
25169 | } | |
25170 | ||
25171 | if (y >= subclip.y1 && y <= subclip.y2 && x <= subclip.x2) { | |
25172 | if (x < subclip.x1 && (x + width - 1) >= subclip.x1) { | |
25173 | width -= subclip.x1 - x; | |
25174 | len += subclip.x1 - x; | |
25175 | } else | |
25176 | if (x > subclip.x1) { | |
25177 | palette = (DVColor*) &overlay->hili_color[0]; | |
25178 | ||
25179 | if ((x + width - 1) > subclip.x2) { | |
25180 | width -= subclip.x2 - x; | |
25181 | len += subclip.x2 - x; | |
25182 | } | |
25183 | } | |
25184 | } | |
25185 | ||
25186 | if (palette[index].rgb.a) { | |
25187 | if (y >= clip.y1 && x >= clip.x1 && x <= clip.x2) { | |
25188 | blender.x = x; | |
25189 | blender.y = y; | |
25190 | blender.len = (((width)<(clip.x2 - x + 1)) ? (width) : (clip.x2 - x + 1)); | |
25191 | if (blender.len > 0) | |
25192 | blendf( &blender, &palette[index] ); | |
25193 | } | |
25194 | } | |
25195 | ||
25196 | x += width; | |
25197 | if (x >= (overlay->x + overlay->width)) { | |
25198 | x = overlay->x; | |
25199 | if (++y > clip.y2) | |
25200 | goto end; | |
25201 | ||
25202 | if (y > clip.y1) { | |
25203 | blender.plane[0] += blender.pitch[0]; | |
25204 | if (y & blender.period[0]) | |
25205 | blender.plane[1] += blender.pitch[1]; | |
25206 | if (y & blender.period[1]) | |
25207 | blender.plane[2] += blender.pitch[2]; | |
25208 | } | |
25209 | } | |
25210 | } | |
25211 | } | |
25212 | } | |
25213 | ||
25214 | end: | |
25215 | (void) this;; | |
25216 | } | |
25217 | ||
25218 | static void | |
25219 | vo_dfb_overlay_end( vo_driver_t *vo_driver, | |
25220 | vo_frame_t *vo_frame ) | |
25221 | { | |
25222 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
25223 | ||
25224 | if (this->ovl && this->ovl_changed) { | |
25225 | if (this->ovl_data->caps & DSCAPS_FLIPPING) | |
25226 | this->ovl->Flip( this->ovl, ((void *)0), DSFLIP_ONSYNC ); | |
25227 | dfb_state_set_destination( &this->state, this->dest_data->surface ); | |
25228 | } | |
25229 | ||
25230 | this->ovl_changed = 0; | |
25231 | } | |
25232 | ||
25233 | static int | |
25234 | vo_dfb_redraw_needed( vo_driver_t *vo_driver ) | |
25235 | { | |
25236 | return 0; | |
25237 | } | |
25238 | ||
25239 | static void | |
25240 | vo_dfb_display_frame( vo_driver_t *vo_driver, | |
25241 | vo_frame_t *vo_frame ) | |
25242 | { | |
25243 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
25244 | dfb_frame_t *frame = (dfb_frame_t*) vo_frame; | |
25245 | DFBRectangle dst_rect = { 0, 0, 0, 0 }; | |
25246 | DFBRectangle src_rect = { 0, 0, }; | |
25247 | double src_ratio; | |
25248 | ||
25249 | do { if (!(frame->surface != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1312, __FUNCTION__, "frame->surface != NULL"); abort(); } } while(0); | |
25250 | ||
25251 | if (!frame->surface) | |
25252 | goto failure; | |
25253 | ||
25254 | src_rect.w = (((vo_frame->width)>(2)) ? (vo_frame->width) : (2)); | |
25255 | src_rect.h = (((vo_frame->height)>(2)) ? (vo_frame->height) : (2)); | |
25256 | src_ratio = this->output_ratio ? : vo_frame->ratio; | |
25257 | ||
25258 | this->output_cb( this->output_cdata, src_rect.w, src_rect.h, | |
25259 | src_ratio ? : 1.0, this->frame_format, &dst_rect ); | |
25260 | ||
25261 | dst_rect.x += this->dest_data->area.wanted.x; | |
25262 | dst_rect.y += this->dest_data->area.wanted.y; | |
25263 | ||
25264 | if (dst_rect.w < 1 || dst_rect.h < 1) | |
25265 | dst_rect = this->dest_data->area.wanted; | |
25266 | ||
25267 | if (!dfb_rectangle_intersect( &dst_rect, | |
25268 | &this->dest_data->area.current )) | |
25269 | goto failure; | |
25270 | ||
25271 | this->state.clip.x1 = dst_rect.x; | |
25272 | this->state.clip.x2 = dst_rect.x + dst_rect.w - 1; | |
25273 | this->state.clip.y1 = dst_rect.y; | |
25274 | this->state.clip.y2 = dst_rect.y + dst_rect.h - 1; | |
25275 | this->state.source = frame->surface; | |
25276 | this->state.modified |= (SMF_CLIP | SMF_SOURCE); | |
25277 | ||
25278 | if (this->deinterlace) { | |
25279 | frame->surface->field = this->deinterlace - 1; | |
25280 | do { do { do {} while (0); do {} while (0); } while (0); if ((DSBLIT_DEINTERLACE) != (&this->state)->blittingflags) { (&this->state)->blittingflags = (DSBLIT_DEINTERLACE); (&this->state)->modified |= SMF_BLITTING_FLAGS; } } while (0); | |
25281 | } else | |
25282 | do { do { do {} while (0); do {} while (0); } while (0); if ((DSBLIT_NOFX) != (&this->state)->blittingflags) { (&this->state)->blittingflags = (DSBLIT_NOFX); (&this->state)->modified |= SMF_BLITTING_FLAGS; } } while (0); | |
25283 | ||
25284 | if (dst_rect.w == src_rect.w && dst_rect.h == src_rect.h) | |
25285 | dfb_gfxcard_blit( &src_rect, dst_rect.x, dst_rect.y, &this->state ); | |
25286 | else | |
25287 | dfb_gfxcard_stretchblit( &src_rect, &dst_rect, &this->state ); | |
25288 | ||
25289 | if (this->frame_cb) | |
25290 | this->frame_cb( this->frame_cdata ); | |
25291 | ||
25292 | failure: | |
25293 | vo_frame->free( vo_frame ); | |
25294 | } | |
25295 | ||
25296 | static int | |
25297 | vo_dfb_get_property( vo_driver_t *vo_driver, | |
25298 | int property ) | |
25299 | { | |
25300 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
25301 | ||
25302 | switch (property) { | |
25303 | case 0: | |
25304 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: interlaced is %i\n", this->deinterlace); } } while(0); | |
25305 | ||
25306 | ||
25307 | return this->deinterlace; | |
25308 | ||
25309 | case 1: | |
25310 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: aspect ratio is %i (%.4f)\n", this->aspect_ratio, this->output_ratio); } } while(0); | |
25311 | ||
25312 | ||
25313 | return this->aspect_ratio; | |
25314 | ||
25315 | case 5: | |
25316 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: brightness is %i\n", this->mixer.b); } } while(0); | |
25317 | ||
25318 | ||
25319 | return this->mixer.b; | |
25320 | ||
25321 | case 4: | |
25322 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: contrast is %i\n", this->mixer.c); } } while(0); | |
25323 | ||
25324 | ||
25325 | return this->mixer.c; | |
25326 | ||
25327 | case 3: | |
25328 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: saturation is %i\n", this->mixer.s); } } while(0); | |
25329 | ||
25330 | return this->mixer.s; | |
25331 | ||
25332 | case 11: | |
25333 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: maximum number of frames is %i\n", this->config.max_num_frames); } } while(0); | |
25334 | ||
25335 | ||
25336 | return this->config.max_num_frames; | |
25337 | ||
25338 | case 15: | |
25339 | if (this->ovl || this->dest) { | |
25340 | IDirectFBSurface_data *data = this->ovl_data ? : this->dest_data; | |
25341 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: window width is %i\n", data->area.wanted.w); } } while(0); | |
25342 | ||
25343 | ||
25344 | return data->area.wanted.w; | |
25345 | } | |
25346 | break; | |
25347 | ||
25348 | case 16: | |
25349 | if (this->ovl || this->dest) { | |
25350 | IDirectFBSurface_data *data = this->ovl_data ? : this->dest_data; | |
25351 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: window height is %i\n", data->area.wanted.h); } } while(0); | |
25352 | ||
25353 | ||
25354 | return data->area.wanted.h; | |
25355 | } | |
25356 | break; | |
25357 | ||
25358 | default: | |
25359 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: tried to get unsupported property %i\n", property); } } while(0); | |
25360 | ||
25361 | ||
25362 | break; | |
25363 | } | |
25364 | ||
25365 | return 0; | |
25366 | } | |
25367 | ||
25368 | static inline void | |
25369 | vo_dfb_set_output_ratio( dfb_driver_t *this, | |
25370 | int ratio ) | |
25371 | { | |
25372 | double frame_width = (this->frame_width ? : 1); | |
25373 | double frame_height = (this->frame_height ? : 1); | |
25374 | ||
25375 | switch (ratio) { | |
25376 | case 0: | |
25377 | this->output_ratio = 0.0; | |
25378 | break; | |
25379 | case 1: | |
25380 | this->output_ratio = frame_width/frame_height; | |
25381 | break; | |
25382 | case 2: | |
25383 | this->output_ratio = 4.0/3.0; | |
25384 | break; | |
25385 | case 3: | |
25386 | this->output_ratio = 16.0/9.0; | |
25387 | break; | |
25388 | case 4: | |
25389 | this->output_ratio = 2.0; | |
25390 | break; | |
25391 | default: | |
25392 | this->output_ratio = (double)(ratio >> 16) / | |
25393 | (double)(ratio & 0xffff); | |
25394 | break; | |
25395 | } | |
25396 | } | |
25397 | ||
25398 | static int | |
25399 | vo_dfb_set_property( vo_driver_t *vo_driver, | |
25400 | int property, | |
25401 | int value ) | |
25402 | { | |
25403 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
25404 | ||
25405 | switch (property) { | |
25406 | case 0: | |
25407 | if (value >= 0 && value <= 2) { | |
25408 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting deinterlacing to %i\n", value); } } while(0); | |
25409 | ||
25410 | ||
25411 | this->deinterlace = value; | |
25412 | } | |
25413 | break; | |
25414 | ||
25415 | case 1: | |
25416 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting aspect ratio to %i\n", value); } } while(0); | |
25417 | ||
25418 | ||
25419 | vo_dfb_set_output_ratio( this, value ); | |
25420 | this->aspect_ratio = value; | |
25421 | break; | |
25422 | ||
25423 | case 5: | |
25424 | if (value >= -128 && value <= 127) { | |
25425 | if (this->mixer.b != value) { | |
25426 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting brightness to %i\n", value); } } while(0); | |
25427 | ||
25428 | ||
25429 | this->mixer.b = value; | |
25430 | vo_dfb_tables_regen( this, MF_B, this->dest_format ); | |
25431 | } | |
25432 | } | |
25433 | break; | |
25434 | ||
25435 | case 4: | |
25436 | if (value >= 0 && value <= 255) { | |
25437 | if (this->mixer.c != value ) { | |
25438 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting contrast to %i\n", value); } } while(0); | |
25439 | ||
25440 | ||
25441 | this->mixer.c = value; | |
25442 | vo_dfb_tables_regen( this, MF_C, this->dest_format ); | |
25443 | } | |
25444 | } | |
25445 | break; | |
25446 | ||
25447 | case 3: | |
25448 | if (value >= 0 && value <= 255) { | |
25449 | if (this->mixer.s != value) { | |
25450 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: setting saturation to %i\n", value); } } while(0); | |
25451 | ||
25452 | ||
25453 | this->mixer.s = value; | |
25454 | vo_dfb_tables_regen( this, MF_S, this->dest_format ); | |
25455 | } | |
25456 | } | |
25457 | break; | |
25458 | ||
25459 | default: | |
25460 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: tried to set unsupported property %i\n", property); } } while(0); | |
25461 | ||
25462 | ||
25463 | break; | |
25464 | } | |
25465 | ||
25466 | return value; | |
25467 | } | |
25468 | ||
25469 | static void | |
25470 | vo_dfb_get_property_min_max( vo_driver_t *vo_driver, | |
25471 | int property, | |
25472 | int *min, | |
25473 | int *max ) | |
25474 | { | |
25475 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
25476 | ||
25477 | switch (property) { | |
25478 | case 0: | |
25479 | *min = 0; | |
25480 | *max = +2; | |
25481 | break; | |
25482 | ||
25483 | case 1: | |
25484 | *min = 0; | |
25485 | *max = +0xffffffff; | |
25486 | break; | |
25487 | ||
25488 | case 5: | |
25489 | *min = -128; | |
25490 | *max = +127; | |
25491 | break; | |
25492 | ||
25493 | case 4: | |
25494 | *min = 0; | |
25495 | *max = 255; | |
25496 | break; | |
25497 | ||
25498 | case 3: | |
25499 | *min = 0; | |
25500 | *max = 255; | |
25501 | break; | |
25502 | ||
25503 | default: | |
25504 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: requested min/max for unsupported property %i\n", property); } } while(0); | |
25505 | ||
25506 | ||
25507 | *min = 0; | |
25508 | *max = 0; | |
25509 | break; | |
25510 | } | |
25511 | } | |
25512 | ||
25513 | static bool | |
25514 | vo_dfb_set_destination( dfb_driver_t *this, | |
25515 | IDirectFBSurface *destination ) | |
25516 | { | |
25517 | struct DFBPixelFormatName { DFBSurfacePixelFormat format; const char *name; } format_names[] = { { DSPF_ARGB1555, "ARGB1555" }, { DSPF_RGB16, "RGB16" }, { DSPF_RGB24, "RGB24" }, { DSPF_RGB32, "RGB32" }, { DSPF_ARGB, "ARGB" }, { DSPF_A8, "A8" }, { DSPF_YUY2, "YUY2" }, { DSPF_RGB332, "RGB332" }, { DSPF_UYVY, "UYVY" }, { DSPF_I420, "I420" }, { DSPF_YV12, "YV12" }, { DSPF_LUT8, "LUT8" }, { DSPF_ALUT44, "ALUT44" }, { DSPF_AiRGB, "AiRGB" }, { DSPF_A1, "A1" }, { DSPF_NV12, "NV12" }, { DSPF_NV16, "NV16" }, { DSPF_ARGB2554, "ARGB2554" }, { DSPF_ARGB4444, "ARGB4444" }, { DSPF_NV21, "NV21" }, { DSPF_AYUV, "AYUV" }, { DSPF_UNKNOWN, "UNKNOWN" } };; | |
25518 | DFBSurfacePixelFormat format = DSPF_UNKNOWN; | |
25519 | DFBResult err; | |
25520 | ||
25521 | if (this->dest) { | |
25522 | this->dest->Release( this->dest ); | |
25523 | this->dest = ((void *)0); | |
25524 | this->dest_data = ((void *)0); | |
25525 | } | |
25526 | ||
25527 | if (!destination->priv) { | |
25528 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: got a dead destination surface!!!\n"); } } while(0); | |
25529 | ||
25530 | return (0); | |
25531 | } | |
25532 | ||
25533 | err = destination->GetPixelFormat( destination, &format ); | |
25534 | if (err != DFB_OK) { | |
25535 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: " "IDirectFBSurface::GetPixelFormat() returned \"%s\"!!\n", DirectFBErrorString( err )); } } while(0); | |
25536 | ||
25537 | ||
25538 | ||
25539 | return (0); | |
25540 | } | |
25541 | ||
25542 | if (!ProcFuncs[0][(((format) & 0x0000007F) )] || | |
25543 | !ProcFuncs[1][(((format) & 0x0000007F) )]) | |
25544 | { | |
25545 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: " "unsupported destination surface format (%s)\n", format_names[(((format) & 0x0000007F) )].name); } } while(0); | |
25546 | ||
25547 | ||
25548 | ||
25549 | return (0); | |
25550 | } | |
25551 | ||
25552 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: destination surface is %s\n", format_names[(((format) & 0x0000007F) )].name); } } while(0); | |
25553 | ||
25554 | ||
25555 | ||
25556 | destination->AddRef( destination ); | |
25557 | this->dest = destination; | |
25558 | this->dest_data = (IDirectFBSurface_data*) destination->priv; | |
25559 | dfb_state_set_destination( &this->state, this->dest_data->surface ); | |
25560 | ||
25561 | vo_dfb_tables_regen( this, MF_NONE, format ); | |
25562 | this->dest_format = format; | |
25563 | ||
25564 | return (!(0)); | |
25565 | } | |
25566 | ||
25567 | static bool | |
25568 | vo_dfb_set_subpicture( dfb_driver_t *this, | |
25569 | IDirectFBSurface *subpicture ) | |
25570 | { | |
25571 | struct DFBPixelFormatName { DFBSurfacePixelFormat format; const char *name; } format_names[] = { { DSPF_ARGB1555, "ARGB1555" }, { DSPF_RGB16, "RGB16" }, { DSPF_RGB24, "RGB24" }, { DSPF_RGB32, "RGB32" }, { DSPF_ARGB, "ARGB" }, { DSPF_A8, "A8" }, { DSPF_YUY2, "YUY2" }, { DSPF_RGB332, "RGB332" }, { DSPF_UYVY, "UYVY" }, { DSPF_I420, "I420" }, { DSPF_YV12, "YV12" }, { DSPF_LUT8, "LUT8" }, { DSPF_ALUT44, "ALUT44" }, { DSPF_AiRGB, "AiRGB" }, { DSPF_A1, "A1" }, { DSPF_NV12, "NV12" }, { DSPF_NV16, "NV16" }, { DSPF_ARGB2554, "ARGB2554" }, { DSPF_ARGB4444, "ARGB4444" }, { DSPF_NV21, "NV21" }, { DSPF_AYUV, "AYUV" }, { DSPF_UNKNOWN, "UNKNOWN" } };; | |
25572 | DFBSurfacePixelFormat format = DSPF_UNKNOWN; | |
25573 | DFBResult err; | |
25574 | ||
25575 | if (this->ovl) { | |
25576 | this->ovl->Release( this->ovl ); | |
25577 | this->ovl = ((void *)0); | |
25578 | this->ovl_data = ((void *)0); | |
25579 | } | |
25580 | ||
25581 | if (!subpicture->priv) { | |
25582 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: got a dead subpicture surface!!!\n"); } } while(0); | |
25583 | ||
25584 | return (0); | |
25585 | } | |
25586 | ||
25587 | err = subpicture->GetPixelFormat( subpicture, &format ); | |
25588 | if (err != DFB_OK) { | |
25589 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: " "IDirectFBSurface::GetPixelFormat() returned \"%s\"!!\n", DirectFBErrorString( err )); } } while(0); | |
25590 | ||
25591 | ||
25592 | ||
25593 | return (0); | |
25594 | } | |
25595 | ||
25596 | if ((((format) & 0x40000000) >> 30)) { | |
25597 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: " "indexed formats not yet supported for subpicture!!\n"); } } while(0); | |
25598 | ||
25599 | ||
25600 | return (0); | |
25601 | } | |
25602 | ||
25603 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: subpicture surface is %s\n", format_names[(((format) & 0x0000007F) )].name); } } while(0); | |
25604 | ||
25605 | ||
25606 | ||
25607 | subpicture->AddRef( subpicture ); | |
25608 | this->ovl = subpicture; | |
25609 | this->ovl_data = (IDirectFBSurface_data*) subpicture->priv; | |
25610 | this->ovl_width = -1; | |
25611 | this->ovl_height = -1; | |
25612 | ||
25613 | return (!(0)); | |
25614 | } | |
25615 | ||
25616 | static int | |
25617 | vo_dfb_gui_data_exchange( vo_driver_t *vo_driver, | |
25618 | int data_type, | |
25619 | void *data ) | |
25620 | { | |
25621 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
25622 | ||
25623 | switch (data_type) { | |
25624 | ||
25625 | case 2: | |
25626 | if (data) { | |
25627 | IDirectFBSurface *surface = (IDirectFBSurface*) data; | |
25628 | ||
25629 | if (surface != this->dest) | |
25630 | return vo_dfb_set_destination( this, surface ); | |
25631 | return 1; | |
25632 | } | |
25633 | break; | |
25634 | ||
25635 | ||
25636 | case 8: | |
25637 | if (data) { | |
25638 | dfb_visual_t *visual = (dfb_visual_t*) data; | |
25639 | ||
25640 | if (!visual->output_cb || !visual->destination) | |
25641 | return 0; | |
25642 | ||
25643 | this->output_cb = visual->output_cb; | |
25644 | this->output_cdata = visual->output_cdata; | |
25645 | this->frame_cb = visual->frame_cb; | |
25646 | this->frame_cdata = visual->frame_cdata; | |
25647 | ||
25648 | if (visual->destination != this->dest) { | |
25649 | if (!vo_dfb_set_destination( this, visual->destination )) | |
25650 | return 0; | |
25651 | } | |
25652 | ||
25653 | if (!visual->subpicture) { | |
25654 | if (this->ovl) | |
25655 | this->ovl->Release( this->ovl ); | |
25656 | this->ovl = ((void *)0); | |
25657 | this->ovl_data = ((void *)0); | |
25658 | } else | |
25659 | if (visual->subpicture != this->ovl) { | |
25660 | if (!vo_dfb_set_subpicture( this, visual->subpicture )) | |
25661 | return 0; | |
25662 | } | |
25663 | ||
25664 | return 1; | |
25665 | } | |
25666 | break; | |
25667 | ||
25668 | ||
25669 | case 4: | |
25670 | if (data) { | |
25671 | this->frame_cb = ((dfb_framecallback_t*)data)->frame_cb; | |
25672 | this->frame_cdata = ((dfb_framecallback_t*)data)->cdata; | |
25673 | } else { | |
25674 | this->frame_cb = ((void *)0); | |
25675 | this->frame_cdata = ((void *)0); | |
25676 | } | |
25677 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: %s DVFrameCallback\n", (this->frame_cb) ? "registered new" : "unregistered"); } } while(0); | |
25678 | ||
25679 | ||
25680 | return 1; | |
25681 | ||
25682 | default: | |
25683 | do { if((this->xine) && (this->xine)->verbosity >= 2){ xine_log(this->xine, 2, "video_out_dfb: unknown data type %i", data_type); } } while(0); | |
25684 | ||
25685 | break; | |
25686 | } | |
25687 | ||
25688 | return 0; | |
25689 | } | |
25690 | ||
25691 | static void | |
25692 | vo_dfb_dispose( vo_driver_t *vo_driver ) | |
25693 | { | |
25694 | dfb_driver_t *this = (dfb_driver_t*) vo_driver; | |
25695 | ||
25696 | if (this) { | |
25697 | if (proc_table.clamp.buf) | |
25698 | free( proc_table.clamp.buf ); | |
25699 | if (this->dest) | |
25700 | this->dest->Release( this->dest ); | |
25701 | if (this->ovl) | |
25702 | this->ovl->Release( this->ovl ); | |
25703 | dfb_state_set_destination( &this->state, ((void *)0) ); | |
25704 | this->state.source = ((void *)0); | |
25705 | dfb_state_destroy( &this->state ); | |
25706 | free( this ); | |
25707 | } | |
25708 | } | |
25709 | ||
25710 | static void | |
25711 | vo_dfb_init_config( dfb_driver_t *this ) | |
25712 | { | |
25713 | config_values_t *config = this->xine->config; | |
25714 | static const char *matrices_enum[(sizeof(proc_matrices)/sizeof(DVProcMatrix))]; | |
25715 | int i; | |
25716 | ||
25717 | for (i = 0; i < (sizeof(proc_matrices)/sizeof(DVProcMatrix)); i++) | |
25718 | matrices_enum[i] = proc_matrices[i].name; | |
25719 | ||
25720 | this->config.max_num_frames = config->register_num( config, | |
25721 | "video.dfb.max_num_frames", 15, | |
25722 | "Maximum number of allocated frames (at least 5)", | |
25723 | ((void *)0), 10, ((void *)0), ((void *)0) ); | |
25724 | ||
25725 | this->config.proc_matrix = config->register_enum( config, | |
25726 | "video.dfb.conversion_matrix", 0, | |
25727 | (char**) &matrices_enum[0], | |
25728 | "Select the conversion matrix", | |
25729 | ((void *)0), 10, ((void *)0), ((void *)0) ); | |
25730 | ||
25731 | ||
25732 | this->config.enable_mmx = config->register_bool( config, | |
25733 | "video.dfb.enable_mmx", 1, | |
25734 | "Enable MMX when available", | |
25735 | ((void *)0), 10, ((void *)0),((void *)0) ); | |
25736 | ||
25737 | } | |
25738 | ||
25739 | static vo_driver_t* | |
25740 | open_plugin( video_driver_class_t *vo_class, | |
25741 | const void *vo_visual ) | |
25742 | { | |
25743 | dfb_driver_class_t *class = (dfb_driver_class_t*) vo_class; | |
25744 | dfb_visual_t *visual = (dfb_visual_t*) vo_visual; | |
25745 | dfb_driver_t *this = ((void *)0); | |
25746 | ||
25747 | do { if (!(visual != ((void *)0))) { fprintf(stderr, "assert: %s:%d: %s: Assertion `%s' failed.\n", "video_out_dfb.c", 1810, __FUNCTION__, "visual != NULL"); abort(); } } while(0); | |
25748 | ||
25749 | if (!visual->output_cb) | |
25750 | return ((void *)0); | |
25751 | ||
25752 | this = (dfb_driver_t*) xine_xmalloc( sizeof(dfb_driver_t) ); | |
25753 | if (!this) { | |
25754 | do {} while(0); | |
25755 | return ((void *)0); | |
25756 | } | |
25757 | ||
25758 | this->vo_driver.get_capabilities = vo_dfb_get_capabilities; | |
25759 | this->vo_driver.alloc_frame = vo_dfb_alloc_frame; | |
25760 | this->vo_driver.update_frame_format = vo_dfb_update_frame_format; | |
25761 | this->vo_driver.overlay_begin = vo_dfb_overlay_begin; | |
25762 | this->vo_driver.overlay_blend = vo_dfb_overlay_blend; | |
25763 | this->vo_driver.overlay_end = vo_dfb_overlay_end; | |
25764 | this->vo_driver.display_frame = vo_dfb_display_frame; | |
25765 | this->vo_driver.get_property = vo_dfb_get_property; | |
25766 | this->vo_driver.set_property = vo_dfb_set_property; | |
25767 | this->vo_driver.get_property_min_max = vo_dfb_get_property_min_max; | |
25768 | this->vo_driver.gui_data_exchange = vo_dfb_gui_data_exchange; | |
25769 | this->vo_driver.redraw_needed = vo_dfb_redraw_needed; | |
25770 | this->vo_driver.dispose = vo_dfb_dispose; | |
25771 | this->xine = class->xine; | |
25772 | ||
25773 | vo_dfb_init_config( this ); | |
25774 | ||
25775 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: using %s conversion matrix\n", proc_matrices[this->config.proc_matrix].name); } } while(0); | |
25776 | ||
25777 | ||
25778 | ||
25779 | ||
25780 | if ((xine_mm_accel() & 0x80000000) == 0x80000000) { | |
25781 | if (this->config.enable_mmx) { | |
25782 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: MMX detected and enabled\n"); } } while(0); | |
25783 | ||
25784 | this->accel = 0x80000000; | |
25785 | ||
25786 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_YUY2) & 0x0000007F) )] = __mmx_yuy2_be_yuy2; | |
25787 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_UYVY) & 0x0000007F) )] = __mmx_yuy2_be_uyvy; | |
25788 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_YV12) & 0x0000007F) )] = __mmx_yuy2_be_yv12; | |
25789 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_I420) & 0x0000007F) )] = __mmx_yuy2_be_yv12; | |
25790 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_NV12) & 0x0000007F) )] = __mmx_yuy2_be_nv12; | |
25791 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_NV21) & 0x0000007F) )] = __mmx_yuy2_be_nv21; | |
25792 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_NV16) & 0x0000007F) )] = __mmx_yuy2_be_nv16; | |
25793 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB332) & 0x0000007F) )] = __mmx_yuy2_be_rgb332; | |
25794 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_ARGB1555) & 0x0000007F) )] = __mmx_yuy2_be_argb1555; | |
25795 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB16) & 0x0000007F) )] = __mmx_yuy2_be_rgb16; | |
25796 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB24) & 0x0000007F) )] = __mmx_yuy2_be_rgb24; | |
25797 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_RGB32) & 0x0000007F) )] = __mmx_yuy2_be_rgb32; | |
25798 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_ARGB) & 0x0000007F) )] = __mmx_yuy2_be_argb; | |
25799 | ProcFuncs[("yuy2"=="yuy2")?0:1][(((DSPF_AiRGB) & 0x0000007F) )] = __mmx_yuy2_be_rgb32; | |
25800 | ||
25801 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_YUY2) & 0x0000007F) )] = __mmx_yv12_be_yuy2; | |
25802 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_UYVY) & 0x0000007F) )] = __mmx_yv12_be_uyvy; | |
25803 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_YV12) & 0x0000007F) )] = __mmx_yv12_be_yv12; | |
25804 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_I420) & 0x0000007F) )] = __mmx_yv12_be_yv12; | |
25805 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_NV12) & 0x0000007F) )] = __mmx_yv12_be_nv12; | |
25806 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_NV21) & 0x0000007F) )] = __mmx_yv12_be_nv21; | |
25807 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_NV16) & 0x0000007F) )] = __mmx_yv12_be_nv16; | |
25808 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB332) & 0x0000007F) )] = __mmx_yv12_be_rgb332; | |
25809 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_ARGB1555) & 0x0000007F) )] = __mmx_yv12_be_argb1555; | |
25810 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB16) & 0x0000007F) )] = __mmx_yv12_be_rgb16; | |
25811 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB24) & 0x0000007F) )] = __mmx_yv12_be_rgb24; | |
25812 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_RGB32) & 0x0000007F) )] = __mmx_yv12_be_rgb32; | |
25813 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_ARGB) & 0x0000007F) )] = __mmx_yv12_be_argb; | |
25814 | ProcFuncs[("yv12"=="yuy2")?0:1][(((DSPF_AiRGB) & 0x0000007F) )] = __mmx_yv12_be_rgb32; | |
25815 | } else | |
25816 | do { if((this->xine) && (this->xine)->verbosity >= 1){ xine_log(this->xine, 2, "video_out_dfb: MMX detected but disabled\n"); } } while(0); | |
25817 | ||
25818 | } | |
25819 | ||
25820 | ||
25821 | dfb_state_init( &this->state, ((void *)0) ); | |
25822 | ||
25823 | this->mixer.b = 0; | |
25824 | this->mixer.c = +128; | |
25825 | this->mixer.s = +128; | |
25826 | this->mixer.set = MF_NONE; | |
25827 | ||
25828 | memset( &proc_table, 0, sizeof(proc_table) ); | |
25829 | ||
25830 | if (visual->destination) { | |
25831 | if (!vo_dfb_set_destination( this, visual->destination )) { | |
25832 | free( this ); | |
25833 | return ((void *)0); | |
25834 | } | |
25835 | } | |
25836 | ||
25837 | if (visual->subpicture) | |
25838 | vo_dfb_set_subpicture( this, visual->subpicture ); | |
25839 | ||
25840 | this->output_cb = visual->output_cb; | |
25841 | this->output_cdata = visual->output_cdata; | |
25842 | this->frame_cb = visual->frame_cb; | |
25843 | this->frame_cdata = visual->frame_cdata; | |
25844 | ||
25845 | return (vo_driver_t*) this; | |
25846 | } | |
25847 | ||
25848 | static char* | |
25849 | get_identifier( video_driver_class_t *vo_class ) | |
25850 | { | |
25851 | return "DFB"; | |
25852 | } | |
25853 | ||
25854 | static char* | |
25855 | get_description( video_driver_class_t *vo_class) | |
25856 | { | |
25857 | return "generic DirectFB video output driver"; | |
25858 | } | |
25859 | ||
25860 | static void | |
25861 | dispose_class( video_driver_class_t *vo_class ) | |
25862 | { | |
25863 | free( vo_class ); | |
25864 | } | |
25865 | ||
25866 | static void* | |
25867 | init_class( xine_t *xine, | |
25868 | void *vo_visual ) | |
25869 | { | |
25870 | dfb_driver_class_t *class; | |
25871 | const char *error; | |
25872 | ||
25873 | if (!vo_visual) { | |
25874 | do { if((xine) && (xine)->verbosity >= 2){ xine_log(xine, 2, "video_out_dfb: got a null visual!\n"); } } while(0); | |
25875 | ||
25876 | return ((void *)0); | |
25877 | } | |
25878 | ||
25879 | error = DirectFBCheckVersion( (0), | |
25880 | (9), | |
25881 | (25) ); | |
25882 | if (error) { | |
25883 | fprintf( stderr, "video_out_dfb: %s !!!\n", error ); | |
25884 | return ((void *)0); | |
25885 | } | |
25886 | ||
25887 | class = (dfb_driver_class_t*) xine_xmalloc( sizeof(dfb_driver_class_t) ); | |
25888 | if (!class) { | |
25889 | do {} while(0); | |
25890 | return ((void *)0); | |
25891 | } | |
25892 | ||
25893 | class->vo_class.open_plugin = open_plugin; | |
25894 | class->vo_class.get_identifier = get_identifier; | |
25895 | class->vo_class.get_description = get_description; | |
25896 | class->vo_class.dispose = dispose_class; | |
25897 | class->xine = xine; | |
25898 | ||
25899 | return class; | |
25900 | } | |
25901 | ||
25902 | static vo_info_t vo_info_dfb = { | |
25903 | 8, | |
25904 | 5 | |
25905 | }; | |
25906 | ||
25907 | ||
25908 | plugin_info_t xine_plugin_info[] = { | |
25909 | ||
25910 | { 7, 21, "DFB", | |
25911 | 1*10000+1*100+4, &vo_info_dfb, init_class }, | |
25912 | { 0, 0, "", 0, ((void *)0), ((void *)0) } | |
25913 | }; |