]> git.wh0rd.org - ICEs.git/blob - 169513/video_out_dfb.i.0
initial import
[ICEs.git] / 169513 / video_out_dfb.i.0
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 };