Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #include <stdio.h>
  2 #include <sys/ioctl.h>
  3 #include <sys/time.h>
  4 
  5 #include <asm/types.h>
  6 #include "videodev2.h"
  7 
  8 #include "struct-dump.h"
  9 #include "struct-v4l2.h"
 10 
 11 /* ---------------------------------------------------------------------- */
 12 
 13 char *desc_v4l2_field[] = {
 14         [V4L2_FIELD_ANY]        = "ANY",
 15         [V4L2_FIELD_NONE]       = "NONE",
 16         [V4L2_FIELD_TOP]        = "TOP",
 17         [V4L2_FIELD_BOTTOM]     = "BOTTOM",
 18         [V4L2_FIELD_INTERLACED] = "INTERLACED",
 19         [V4L2_FIELD_SEQ_TB]     = "SEQ_TB",
 20         [V4L2_FIELD_SEQ_BT]     = "SEQ_BT",
 21         [V4L2_FIELD_ALTERNATE]  = "ALTERNATE",
 22 };
 23 
 24 char *desc_v4l2_buf_type[] = {
 25         [V4L2_BUF_TYPE_VIDEO_CAPTURE] = "VIDEO_CAPTURE",
 26         [V4L2_BUF_TYPE_VIDEO_OUTPUT]  = "VIDEO_OUTPUT",
 27         [V4L2_BUF_TYPE_VIDEO_OVERLAY] = "VIDEO_OVERLAY",
 28         [V4L2_BUF_TYPE_VBI_CAPTURE]   = "VBI_CAPTURE",
 29         [V4L2_BUF_TYPE_VBI_OUTPUT]    = "VBI_OUTPUT",
 30         [V4L2_BUF_TYPE_PRIVATE]       = "PRIVATE",
 31 };
 32 
 33 char *desc_v4l2_ctrl_type[] = {
 34         [V4L2_CTRL_TYPE_INTEGER] = "INTEGER",
 35         [V4L2_CTRL_TYPE_BOOLEAN] = "BOOLEAN",
 36         [V4L2_CTRL_TYPE_MENU]    = "MENU",
 37         [V4L2_CTRL_TYPE_BUTTON]  = "BUTTON",
 38 };
 39 
 40 char *desc_v4l2_tuner_type[] = {
 41         [V4L2_TUNER_RADIO]     = "RADIO",
 42         [V4L2_TUNER_ANALOG_TV] = "ANALOG_TV",
 43 };
 44 
 45 char *desc_v4l2_memory[] = {
 46         [V4L2_MEMORY_MMAP]    = "MMAP",
 47         [V4L2_MEMORY_USERPTR] = "USERPTR",
 48         [V4L2_MEMORY_OVERLAY] = "OVERLAY",
 49 };
 50 
 51 char *desc_v4l2_colorspace[] = {
 52         [V4L2_COLORSPACE_SMPTE170M]     = "SMPTE170M",
 53         [V4L2_COLORSPACE_SMPTE240M]     = "SMPTE240M",
 54         [V4L2_COLORSPACE_REC709]        = "REC709",
 55         [V4L2_COLORSPACE_BT878]         = "BT878",
 56         [V4L2_COLORSPACE_470_SYSTEM_M]  = "470_SYSTEM_M",
 57         [V4L2_COLORSPACE_470_SYSTEM_BG] = "470_SYSTEM_BG",
 58         [V4L2_COLORSPACE_JPEG]          = "JPEG",
 59         [V4L2_COLORSPACE_SRGB]          = "SRGB",
 60 };
 61 
 62 char *bits_capabilities[32] = {
 63         "VIDEO_CAPTURE", "VIDEO_OUTPUT", "VIDEO_OVERLAY", "",
 64         "VBI_CAPTURE", "VBI_OUTPUT",   "?","?",
 65         "RDS_CAPTURE", "?", "?", "?",
 66         "?", "?", "?", "?",
 67         "TUNER", "AUDIO", "?", "?",
 68         "?", "?", "?", "?",
 69         "READWRITE", "ASYNCIO", "STREAMING", "?",
 70 };
 71 
 72 char *bits_standard[64] = {
 73         "PAL_B",      "PAL_B1",      "PAL_G",   "PAL_H",
 74         "PAL_I",      "PAL_D",       "PAL_D1",  "PAL_K",
 75         "PAL_M",      "PAL_N",       "PAL_Nc",  "PAL_60",
 76         "NTSC_M",     "NTSC_M_JP",   "?", "?",
 77         "SECAM_B",    "SECAM_D",     "SECAM_G", "SECAM_H",
 78         "SECAM_K",    "SECAM_K1",    "SECAM_L", "?"
 79         "ATSC_8_VSB", "ATSC_16_VSB",
 80 };
 81 
 82 char *bits_buf_flags[32] = {
 83         "MAPPED",
 84         "QUEUED",
 85         "DONE",
 86         "KEYFRAME",
 87         "PFRAME",
 88         "BFRAME",
 89         "?", "?",
 90         "TIMECODE",
 91 };
 92 
 93 char *bits_fbuf_cap[32] = {
 94         "EXTERNOVERLAY",
 95         "CHROMAKEY",
 96         "LIST_CLIPPING",
 97         "BITMAP_CLIPPING",
 98 };
 99 
100 char *bits_fbuf_flags[32] = {
101         "PRIMARY",
102         "OVERLAY",
103         "CHROMAKEY",
104 };
105 
106 char *desc_input_type[32] = {
107         [ V4L2_INPUT_TYPE_TUNER ]  = "TUNER",
108         [ V4L2_INPUT_TYPE_CAMERA ] = "CAMERA",
109 };
110 
111 char *bits_input_status[32] = {
112         "NO_POWER", "NO_SIGNAL", "NO_COLOR", "?",
113         "?","?","?","?",
114         "NO_H_LOCK", "COLOR_KILL", "?", "?",
115         "?","?","?","?",
116         "NO_SYNC", "NO_EQU", "NO_CARRIER", "?",
117         "?","?","?","?",
118         "MACROVISION", "NO_ACCESS", "VTR", "?",
119         "?","?","?","?",
120 };
121 
122 char *bits_tuner_cap[32] = {
123         "LOW", "NORM", "?", "?",
124         "STEREO", "LANG2", "LANG1", "?",
125 };
126 
127 char *bits_tuner_rx[32] = {
128         "MONO",
129         "STEREO",
130         "LANG2",
131         "LANG1",
132 };
133 
134 char *desc_tuner2_mode[] = {
135         [ V4L2_TUNER_MODE_MONO ]   = "MONO",
136         [ V4L2_TUNER_MODE_STEREO ] = "STEREO",
137         [ V4L2_TUNER_MODE_LANG2 ]  = "LANG2",
138         [ V4L2_TUNER_MODE_LANG1 ]  = "LANG1",
139 };
140 
141 /* ---------------------------------------------------------------------- */
142 
143 struct struct_desc desc_v4l2_rect[] = {{
144         .type   = SINT32,
145         .name   = "left",
146 },{
147         .type   = SINT32,
148         .name   = "top",
149 },{
150         .type   = SINT32,
151         .name   = "width",
152 },{
153         .type   = SINT32,
154         .name   = "height",
155 },{
156         /* end of list */
157 }};
158 
159 struct struct_desc desc_v4l2_fract[] = {{
160         .type   = UINT32,
161         .name   = "numerator",
162 },{
163         .type   = UINT32,
164         .name   = "denominator",
165 },{
166         /* end of list */
167 }};
168 
169 struct struct_desc desc_v4l2_capability[] = {{
170         .type   = STRING,
171         .name   = "driver",
172         .length = 16,
173 },{
174         .type   = STRING,
175         .name   = "card",
176         .length = 32,
177 },{
178         .type   = STRING,
179         .name   = "bus_info",
180         .length = 32,
181 },{
182         .type   = VER,
183         .name   = "version",
184 },{
185         .type   = BITS32,
186         .name   = "capabilities",
187         .bits   = bits_capabilities,
188 },{
189         /* end of list */
190 }};
191 
192 struct struct_desc desc_v4l2_pix_format[] = {{
193         .type   = UINT32,
194         .name   = "width",
195 },{
196         .type   = UINT32,
197         .name   = "height",
198 },{
199         .type   = FOURCC,
200         .name   = "pixelformat",
201 },{
202         .type   = ENUM32,
203         .name   = "field",
204         .enums  = desc_v4l2_field,
205         .length = sizeof(desc_v4l2_field) / sizeof(char*),
206 },{
207         .type   = UINT32,
208         .name   = "bytesperline",
209 },{
210         .type   = UINT32,
211         .name   = "sizeimage",
212 },{
213         .type   = ENUM32,
214         .name   = "colorspace",
215         .enums  = desc_v4l2_colorspace,
216         .length = sizeof(desc_v4l2_colorspace) / sizeof(char*),
217 },{
218         .type   = UINT32,
219         .name   = "priv",
220 },{
221         /* end of list */
222 }};
223 
224 struct struct_desc desc_v4l2_fmtdesc[] = {{
225         .type   = UINT32,
226         .name   = "index",
227 },{
228         .type   = ENUM32,
229         .name   = "type",
230         .enums  = desc_v4l2_buf_type,
231         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
232 },{
233         .type   = UINT32,
234         .name   = "flags",
235 },{
236         .type   = STRING,
237         .name   = "description",
238         .length = 32,
239 },{
240         .type   = FOURCC,
241         .name   = "pixelformat",
242 },{
243         /* end of list */
244 }};
245 
246 struct struct_desc desc_v4l2_timecode[] = {{
247         .type   = UINT32,
248         .name   = "type",
249 },{
250         .type   = UINT32,
251         .name   = "flags",
252 },{
253         .type   = UINT8,
254         .name   = "frames",
255 },{
256         .type   = UINT8,
257         .name   = "seconds",
258 },{
259         .type   = UINT8,
260         .name   = "minutes",
261 },{
262         .type   = UINT8,
263         .name   = "hours",
264 },{
265         .type   = STRING,
266         .name   = "userbits",
267         .length = 4,
268 },{
269         /* end of list */
270 }};
271 
272 struct struct_desc desc_v4l2_compression[] = {{
273         .type   = UINT32,
274         .name   = "quality",
275 },{
276         .type   = UINT32,
277         .name   = "keyframerate",
278 },{
279         .type   = UINT32,
280         .name   = "pframerate",
281 },{
282         /* end of list */
283 }};
284 
285 struct struct_desc desc_v4l2_jpegcompression[] = {{
286         .type   = SINT32,
287         .name   = "quality",
288 },{
289         .type   = SINT32,
290         .name   = "APPn",
291 },{
292         .type   = SINT32,
293         .name   = "APP_len",
294 },{
295         .type   = STRING,
296         .name   = "APP_data",
297         .length = 60,
298 },{
299         .type   = SINT32,
300         .name   = "COM_len",
301 },{
302         .type   = STRING,
303         .name   = "COM_data",
304         .length = 60,
305 },{
306         .type   = UINT32,
307         .name   = "jpeg_markers",
308 },{
309         /* end of list */
310 }};
311 
312 struct struct_desc desc_v4l2_requestbuffers[] = {{
313         .type   = UINT32,
314         .name   = "count",
315 },{
316         .type   = ENUM32,
317         .name   = "type",
318         .enums  = desc_v4l2_buf_type,
319         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
320 },{
321         .type   = ENUM32,
322         .name   = "memory",
323         .enums  = desc_v4l2_memory,
324         .length = sizeof(desc_v4l2_memory) / sizeof(char*),
325 },{
326         /* end of list */
327 }};
328 
329 struct struct_desc desc_v4l2_buffer[] = {{
330         .type   = UINT32,
331         .name   = "index",
332 },{
333         .type   = ENUM32,
334         .name   = "type",
335         .enums  = desc_v4l2_buf_type,
336         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
337 },{
338         .type   = UINT32,
339         .name   = "bytesused",
340 },{
341         .type   = BITS32,
342         .name   = "flags",
343         .bits   = bits_buf_flags,
344 },{
345         .type   = ENUM32,
346         .name   = "field",
347         .enums  = desc_v4l2_field,
348         .length = sizeof(desc_v4l2_field) / sizeof(char*),
349 },{
350         .type   = STRUCT,
351         .name   = "timestamp",
352         .desc   = desc_timeval,
353         .length = sizeof(struct timeval),
354 },{
355         .type   = STRUCT,
356         .name   = "timecode",
357         .desc   = desc_v4l2_timecode,
358         .length = sizeof(struct v4l2_timecode),
359 },{
360         .type   = UINT32,
361         .name   = "sequence",
362 },{
363         .type   = ENUM32,
364         .name   = "memory",
365         .enums  = desc_v4l2_memory,
366         .length = sizeof(desc_v4l2_memory) / sizeof(char*),
367 },{
368         /* FIXME ... */
369         /* end of list */
370 }};
371 
372 struct struct_desc desc_v4l2_framebuffer[] = {{
373         .type   = BITS32,
374         .name   = "capability",
375         .bits   = bits_fbuf_cap,
376 },{
377         .type   = BITS32,
378         .name   = "flags",
379         .bits   = bits_fbuf_flags,
380 },{
381         .type   = PTR,
382         .name   = "base",
383 },{
384         .type   = STRUCT,
385         .name   = "fmt",
386         .desc   = desc_v4l2_pix_format,
387         .length = sizeof(struct v4l2_pix_format),
388 },{
389         /* end of list */
390 }};
391 
392 struct struct_desc desc_v4l2_clip[] = {{
393         .type   = STRUCT,
394         .name   = "c",
395         .desc   = desc_v4l2_rect,
396         .length = sizeof(struct v4l2_rect),
397 },{
398         /* end of list */
399 }};
400 
401 struct struct_desc desc_v4l2_window[] = {{
402         .type   = STRUCT,
403         .name   = "w",
404         .desc   = desc_v4l2_rect,
405         .length = sizeof(struct v4l2_rect),
406 },{
407         .type   = ENUM32,
408         .name   = "field",
409         .enums  = desc_v4l2_field,
410         .length = sizeof(desc_v4l2_field) / sizeof(char*),
411 },{
412         .type   = UINT32,
413         .name   = "chromakey",
414 },{
415         .type   = PTR,
416         .name   = "clips",
417 },{
418         .type   = UINT32,
419         .name   = "clipcount",
420 },{
421         .type   = PTR,
422         .name   = "bitmap",
423 },{
424         /* end of list */
425 }};
426 
427 struct struct_desc desc_v4l2_captureparm[] = {{
428         .type   = UINT32,
429         .name   = "capability",
430 },{
431         .type   = UINT32,
432         .name   = "capturemode",
433 },{
434         .type   = STRUCT,
435         .name   = "timeperframe",
436         .desc   = desc_v4l2_fract,
437         .length = sizeof(struct v4l2_fract),
438 },{
439         .type   = UINT32,
440         .name   = "extendedmode",
441 },{
442         .type   = UINT32,
443         .name   = "readbuffers",
444 },{
445         /* end of list */
446 }};
447 
448 struct struct_desc desc_v4l2_outputparm[] = {{
449         .type   = UINT32,
450         .name   = "capability",
451 },{
452         .type   = UINT32,
453         .name   = "outputmode",
454 },{
455         .type   = STRUCT,
456         .name   = "timeperframe",
457         .desc   = desc_v4l2_fract,
458         .length = sizeof(struct v4l2_fract),
459 },{
460         .type   = UINT32,
461         .name   = "extendedmode",
462 },{
463         .type   = UINT32,
464         .name   = "writebuffers",
465 },{
466         /* end of list */
467 }};
468 
469 struct struct_desc desc_v4l2_cropcap[] = {{
470         .type   = ENUM32,
471         .name   = "type",
472         .enums  = desc_v4l2_buf_type,
473         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
474 },{
475         .type   = STRUCT,
476         .name   = "bounds",
477         .desc   = desc_v4l2_rect,
478         .length = sizeof(struct v4l2_rect),
479 },{
480         .type   = STRUCT,
481         .name   = "defrect",
482         .desc   = desc_v4l2_rect,
483         .length = sizeof(struct v4l2_rect),
484 },{
485         .type   = STRUCT,
486         .name   = "pixelaspect",
487         .desc   = desc_v4l2_fract,
488         .length = sizeof(struct v4l2_fract),
489 },{
490         /* end of list */
491 }};
492 
493 struct struct_desc desc_v4l2_crop[] = {{
494         .type   = ENUM32,
495         .name   = "type",
496         .enums  = desc_v4l2_buf_type,
497         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
498 },{
499         .type   = STRUCT,
500         .name   = "c",
501         .desc   = desc_v4l2_rect,
502         .length = sizeof(struct v4l2_rect),
503 },{
504         /* end of list */
505 }};
506 
507 struct struct_desc desc_v4l2_standard[] = {{
508         .type   = UINT32,
509         .name   = "index",
510 },{
511         .type   = BITS64,
512         .name   = "id",
513         .bits   = bits_standard,
514 },{
515         .type   = STRING,
516         .name   = "name",
517         .length = 24,
518 },{
519         .type   = STRUCT,
520         .name   = "frameperiod",
521         .desc   = desc_v4l2_fract,
522         .length = sizeof(struct v4l2_fract),
523 },{
524         .type   = UINT32,
525         .name   = "framelines",
526 },{
527         /* end of list */
528 }};
529 
530 struct struct_desc desc_v4l2_input[] = {{
531         .type   = UINT32,
532         .name   = "index",
533 },{
534         .type   = STRING,
535         .name   = "name",
536         .length = 32,
537 },{
538         .type   = ENUM32,
539         .name   = "type",
540         .enums  = desc_input_type,
541         .length = sizeof(desc_input_type) / sizeof(char*),
542 },{
543         .type   = UINT32,
544         .name   = "audioset",
545 },{
546         .type   = UINT32,
547         .name   = "tuner",
548 },{
549         .type   = BITS64,
550         .name   = "std",
551         .bits   = bits_standard
552 },{
553         .type   = BITS32,
554         .name   = "status",
555         .bits   = bits_input_status,
556 },{
557         /* end of list */
558 }};
559 
560 struct struct_desc desc_v4l2_output[] = {{
561         .type   = UINT32,
562         .name   = "index",
563 },{
564         .type   = STRING,
565         .name   = "name",
566         .length = 32,
567 },{
568         .type   = UINT32,
569         .name   = "type",
570 },{
571         .type   = UINT32,
572         .name   = "audioset",
573 },{
574         .type   = UINT32,
575         .name   = "modulator",
576 },{
577         .type   = BITS64,
578         .name   = "std",
579         .bits   = bits_standard
580 },{
581         /* end of list */
582 }};
583 
584 struct struct_desc desc_v4l2_control[] = {{
585         .type   = UINT32,
586         .name   = "id",
587 },{
588         .type   = SINT32,
589         .name   = "value",
590 },{
591         /* end of list */
592 }};
593 
594 struct struct_desc desc_v4l2_queryctrl[] = {{
595         .type   = UINT32,
596         .name   = "id",
597 },{
598         .type   = ENUM32,
599         .name   = "type",
600         .enums  = desc_v4l2_ctrl_type,
601         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
602 },{
603         .type   = STRING,
604         .name   = "name",
605         .length = 32,
606 },{
607         .type   = SINT32,
608         .name   = "minimum",
609 },{
610         .type   = SINT32,
611         .name   = "maximum",
612 },{
613         .type   = SINT32,
614         .name   = "step",
615 },{
616         .type   = SINT32,
617         .name   = "default_value",
618 },{
619         .type   = UINT32,
620         .name   = "flags",
621 },{
622         /* end of list */
623 }};
624 
625 struct struct_desc desc_v4l2_querymenu[] = {{
626         .type   = UINT32,
627         .name   = "id",
628 },{
629         .type   = UINT32,
630         .name   = "index",
631 },{
632         .type   = STRING,
633         .name   = "name",
634         .length = 32,
635 },{
636         .type   = UINT32,
637         .name   = "reserved",
638 },{
639         /* end of list */
640 }};
641 
642 struct struct_desc desc_v4l2_tuner[] = {{
643         .type   = UINT32,
644         .name   = "index",
645 },{
646         .type   = STRING,
647         .name   = "name",
648         .length = 32,
649 },{
650         .type   = ENUM32,
651         .name   = "type",
652         .enums  = desc_v4l2_tuner_type,
653         .length = sizeof(desc_v4l2_tuner_type) / sizeof(char*),
654 },{
655         .type   = BITS32,
656         .name   = "capability",
657         .bits   = bits_tuner_cap,
658 },{
659         .type   = UINT32,
660         .name   = "rangelow",
661 },{
662         .type   = UINT32,
663         .name   = "rangehigh",
664 },{
665         .type   = BITS32,
666         .name   = "rxsubchans",
667         .bits   = bits_tuner_rx,
668 },{
669         .type   = ENUM32,
670         .name   = "audmode",
671         .enums  = desc_tuner2_mode,
672         .length = sizeof(desc_tuner2_mode) / sizeof(char*),
673 },{
674         .type   = SINT32,
675         .name   = "signal",
676 },{
677         .type   = SINT32,
678         .name   = "afc",
679 },{
680         /* end of list */
681 }};
682 
683 struct struct_desc desc_v4l2_modulator[] = {{
684         .type   = UINT32,
685         .name   = "index",
686 },{
687         .type   = STRING,
688         .name   = "name",
689         .length = 32,
690 },{
691         .type   = UINT32,
692         .name   = "capability",
693 },{
694         .type   = UINT32,
695         .name   = "rangelow",
696 },{
697         .type   = UINT32,
698         .name   = "rangehigh",
699 },{
700         .type   = UINT32,
701         .name   = "txsubchans",
702 },{
703         /* end of list */
704 }};
705 
706 struct struct_desc desc_v4l2_frequency[] = {{
707         .type   = UINT32,
708         .name   = "tuner",
709 },{
710         .type   = ENUM32,
711         .name   = "type",
712         .enums  = desc_v4l2_tuner_type,
713         .length = sizeof(desc_v4l2_tuner_type) / sizeof(char*),
714 },{
715         .type   = UINT32,
716         .name   = "frequency",
717 },{
718         /* end of list */
719 }};
720 
721 struct struct_desc desc_v4l2_audio[] = {{
722         .type   = UINT32,
723         .name   = "index",
724 },{
725         .type   = STRING,
726         .name   = "name",
727         .length = 32,
728 },{
729         .type   = UINT32,
730         .name   = "capability",
731 },{
732         .type   = UINT32,
733         .name   = "mode",
734 },{
735         /* end of list */
736 }};
737 
738 struct struct_desc desc_v4l2_audioout[] = {{
739         .type   = UINT32,
740         .name   = "index",
741 },{
742         .type   = STRING,
743         .name   = "name",
744         .length = 32,
745 },{
746         .type   = UINT32,
747         .name   = "capability",
748 },{
749         .type   = UINT32,
750         .name   = "mode",
751 },{
752         /* end of list */
753 }};
754 
755 struct struct_desc desc_v4l2_vbi_format[] = {{
756         .type   = UINT32,
757         .name   = "sampling_rate",
758 },{
759         .type   = UINT32,
760         .name   = "offset",
761 },{
762         .type   = UINT32,
763         .name   = "samples_per_line",
764 },{
765         .type   = FOURCC,
766         .name   = "sample_format",
767 },{
768         .type   = UINT32,
769         .name   = "start[0]",
770 },{
771         .type   = UINT32,
772         .name   = "start[1]",
773 },{
774         .type   = UINT32,
775         .name   = "count[0]",
776 },{
777         .type   = UINT32,
778         .name   = "count[1]",
779 },{
780         .type   = UINT32,
781         .name   = "flags",
782 },{
783         /* end of list */
784 }};
785 
786 struct struct_desc desc_v4l2_format[] = {{
787         .type   = ENUM32,
788         .name   = "type",
789         .enums  = desc_v4l2_buf_type,
790         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
791 },{
792         .type   = UNION,
793         .name   = "fmt",
794         .u = {{
795                 .value = V4L2_BUF_TYPE_VIDEO_CAPTURE,
796                 .name  = "pix",
797                 .desc  = desc_v4l2_pix_format,
798         },{
799                 .value = V4L2_BUF_TYPE_VIDEO_OVERLAY,
800                 .name  = "win",
801                 .desc  = desc_v4l2_window,
802         },{
803                 .value = V4L2_BUF_TYPE_VBI_CAPTURE,
804                 .name  = "vbi",
805                 .desc  = desc_v4l2_vbi_format,
806         },{
807                 /* end of list */
808         }},
809 },{
810         /* end of list */
811 }};
812 
813 struct struct_desc desc_v4l2_streamparm[] = {{
814         .type   = ENUM32,
815         .name   = "type",
816         .enums  = desc_v4l2_buf_type,
817         .length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
818 },{
819         /* FIXME ... */
820         /* end of list */
821 }};
822 
823 struct struct_desc desc_v4l2_std_id[] = {{
824         .type   = BITS64,
825         .name   = "std",
826         .bits   = bits_standard,
827 },{
828         /* end of list */
829 }};
830 
831 /* ---------------------------------------------------------------------- */
832 
833 struct ioctl_desc ioctls_v4l2[256] = {
834         [_IOC_NR(VIDIOC_QUERYCAP)] = {
835                 .name = "VIDIOC_QUERYCAP",
836                 .desc = desc_v4l2_capability,
837         },
838         [_IOC_NR(VIDIOC_ENUM_FMT)] = {
839                 .name = "VIDIOC_ENUM_FMT",
840                 .desc = desc_v4l2_fmtdesc,
841         },
842         [_IOC_NR(VIDIOC_G_FMT)] = {
843                 .name = "VIDIOC_G_FMT",
844                 .desc = desc_v4l2_format,
845         },
846         [_IOC_NR(VIDIOC_S_FMT)] = {
847                 .name = "VIDIOC_S_FMT",
848                 .desc = desc_v4l2_format,
849         },
850 #if 0
851         [_IOC_NR(VIDIOC_G_COMP)] = {
852                 .name = "VIDIOC_G_COMP",
853                 .desc = desc_v4l2_compression,
854         },
855         [_IOC_NR(VIDIOC_S_COMP)] = {
856                 .name = "VIDIOC_S_COMP",
857                 .desc = desc_v4l2_compression,
858         },
859 #endif
860         [_IOC_NR(VIDIOC_REQBUFS)] = {
861                 .name = "VIDIOC_REQBUFS",
862                 .desc = desc_v4l2_requestbuffers,
863         },
864         [_IOC_NR(VIDIOC_QUERYBUF)] = {
865                 .name = "VIDIOC_QUERYBUF",
866                 .desc = desc_v4l2_buffer,
867         },
868         [_IOC_NR(VIDIOC_G_FBUF)] = {
869                 .name = "VIDIOC_G_FBUF",
870                 .desc = desc_v4l2_framebuffer,
871         },
872         [_IOC_NR(VIDIOC_S_FBUF)] = {
873                 .name = "VIDIOC_S_FBUF",
874                 .desc = desc_v4l2_framebuffer,
875         },
876         [_IOC_NR(VIDIOC_OVERLAY)] = {
877                 .name = "VIDIOC_OVERLAY",
878                 .desc = desc_int,
879         },
880         [_IOC_NR(VIDIOC_QBUF)] = {
881                 .name = "VIDIOC_QBUF",
882                 .desc = desc_v4l2_buffer,
883         },
884         [_IOC_NR(VIDIOC_DQBUF)] = {
885                 .name = "VIDIOC_DQBUF",
886                 .desc = desc_v4l2_buffer,
887         },
888         [_IOC_NR(VIDIOC_STREAMON)] = {
889                 .name = "VIDIOC_STREAMON",
890                 .desc = desc_int,
891         },
892         [_IOC_NR(VIDIOC_STREAMOFF)] = {
893                 .name = "VIDIOC_STREAMOFF",
894                 .desc = desc_int,
895         },
896         [_IOC_NR(VIDIOC_G_PARM)] = {
897                 .name = "VIDIOC_G_PARM",
898                 .desc = desc_v4l2_streamparm,
899         },
900         [_IOC_NR(VIDIOC_S_PARM)] = {
901                 .name = "VIDIOC_S_PARM",
902                 .desc = desc_v4l2_streamparm,
903         },
904         [_IOC_NR(VIDIOC_G_STD)] = {
905                 .name = "VIDIOC_G_STD",
906                 .desc = desc_v4l2_std_id,
907         },
908         [_IOC_NR(VIDIOC_S_STD)] = {
909                 .name = "VIDIOC_S_STD",
910                 .desc = desc_v4l2_std_id,
911         },
912         [_IOC_NR(VIDIOC_ENUMSTD)] = {
913                 .name = "VIDIOC_ENUMSTD",
914                 .desc = desc_v4l2_standard,
915         },
916         [_IOC_NR(VIDIOC_ENUMINPUT)] = {
917                 .name = "VIDIOC_ENUMINPUT",
918                 .desc = desc_v4l2_input,
919         },
920         [_IOC_NR(VIDIOC_G_CTRL)] = {
921                 .name = "VIDIOC_G_CTRL",
922                 .desc = desc_v4l2_control,
923         },
924         [_IOC_NR(VIDIOC_S_CTRL)] = {
925                 .name = "VIDIOC_S_CTRL",
926                 .desc = desc_v4l2_control,
927         },
928         [_IOC_NR(VIDIOC_G_TUNER)] = {
929                 .name = "VIDIOC_G_TUNER",
930                 .desc = desc_v4l2_tuner,
931         },
932         [_IOC_NR(VIDIOC_S_TUNER)] = {
933                 .name = "VIDIOC_S_TUNER",
934                 .desc = desc_v4l2_tuner,
935         },
936         [_IOC_NR(VIDIOC_G_AUDIO)] = {
937                 .name = "VIDIOC_G_AUDIO",
938                 .desc = desc_v4l2_audio,
939         },
940         [_IOC_NR(VIDIOC_S_AUDIO)] = {
941                 .name = "VIDIOC_S_AUDIO",
942                 .desc = desc_v4l2_audio,
943         },
944         [_IOC_NR(VIDIOC_QUERYCTRL)] = {
945                 .name = "VIDIOC_QUERYCTRL",
946                 .desc = desc_v4l2_queryctrl,
947         },
948         [_IOC_NR(VIDIOC_QUERYMENU)] = {
949                 .name = "VIDIOC_QUERYMENU",
950                 .desc = desc_v4l2_querymenu,
951         },
952         [_IOC_NR(VIDIOC_G_INPUT)] = {
953                 .name = "VIDIOC_G_INPUT",
954                 .desc = desc_int,
955         },
956         [_IOC_NR(VIDIOC_S_INPUT)] = {
957                 .name = "VIDIOC_S_INPUT",
958                 .desc = desc_int,
959         },
960         [_IOC_NR(VIDIOC_G_OUTPUT)] = {
961                 .name = "VIDIOC_G_OUTPUT",
962                 .desc = desc_int,
963         },
964         [_IOC_NR(VIDIOC_S_OUTPUT)] = {
965                 .name = "VIDIOC_S_OUTPUT",
966                 .desc = desc_int,
967         },
968         [_IOC_NR(VIDIOC_ENUMOUTPUT)] = {
969                 .name = "VIDIOC_ENUMOUTPUT",
970                 .desc = desc_v4l2_output,
971         },
972         [_IOC_NR(VIDIOC_G_AUDOUT)] = {
973                 .name = "VIDIOC_G_AUDOUT",
974                 .desc = desc_v4l2_audioout,
975         },
976         [_IOC_NR(VIDIOC_S_AUDOUT)] = {
977                 .name = "VIDIOC_S_AUDOUT",
978                 .desc = desc_v4l2_audioout,
979         },
980         [_IOC_NR(VIDIOC_G_MODULATOR)] = {
981                 .name = "VIDIOC_G_MODULATOR",
982                 .desc = desc_v4l2_modulator,
983         },
984         [_IOC_NR(VIDIOC_S_MODULATOR)] = {
985                 .name = "VIDIOC_S_MODULATOR",
986                 .desc = desc_v4l2_modulator,
987         },
988         [_IOC_NR(VIDIOC_G_FREQUENCY)] = {
989                 .name = "VIDIOC_G_FREQUENCY",
990                 .desc = desc_v4l2_frequency,
991         },
992         [_IOC_NR(VIDIOC_S_FREQUENCY)] = {
993                 .name = "VIDIOC_S_FREQUENCY",
994                 .desc = desc_v4l2_frequency,
995         },
996         [_IOC_NR(VIDIOC_CROPCAP)] = {
997                 .name = "VIDIOC_CROPCAP",
998                 .desc = desc_v4l2_cropcap,
999         },
1000         [_IOC_NR(VIDIOC_G_CROP)] = {
1001                 .name = "VIDIOC_G_CROP",
1002                 .desc = desc_v4l2_crop,
1003         },
1004         [_IOC_NR(VIDIOC_S_CROP)] = {
1005                 .name = "VIDIOC_S_CROP",
1006                 .desc = desc_v4l2_crop,
1007         },
1008         [_IOC_NR(VIDIOC_G_JPEGCOMP)] = {
1009                 .name = "VIDIOC_G_JPEGCOMP",
1010                 .desc = desc_v4l2_jpegcompression,
1011         },
1012         [_IOC_NR(VIDIOC_S_JPEGCOMP)] = {
1013                 .name = "VIDIOC_S_JPEGCOMP",
1014                 .desc = desc_v4l2_jpegcompression,
1015         },
1016         [_IOC_NR(VIDIOC_QUERYSTD)] = {
1017                 .name = "VIDIOC_QUERYSTD",
1018                 .desc = desc_v4l2_std_id,
1019         },
1020         [_IOC_NR(VIDIOC_TRY_FMT)] = {
1021                 .name = "VIDIOC_TRY_FMT",
1022                 .desc = desc_v4l2_format,
1023         },
1024 };
1025 
1026 /* ---------------------------------------------------------------------- */
1027 /*
1028  * Local variables:
1029  * c-basic-offset: 8
1030  * End:
1031  */
1032 
  This page was automatically generated by the LXR engine.