]>
Commit | Line | Data |
---|---|---|
1 | #ifndef _VTX_H | |
2 | #define _VTX_H | |
3 | ||
4 | /* | |
5 | * Teletext (=Videotext) hardware decoders using interface /dev/vtx | |
6 | * Do not confuse with drivers using /dev/vbi which decode videotext by software | |
7 | * | |
8 | * Videotext IOCTLs changed in order to use _IO() macros defined in <linux/ioctl.h>, | |
9 | * unused tuner IOCTLs cleaned up by | |
10 | * Michael Geng <linux@MichaelGeng.de> | |
11 | * | |
12 | * Copyright (c) 1994-97 Martin Buck <martin-2.buck@student.uni-ulm.de> | |
13 | * Read COPYING for more information | |
14 | * | |
15 | */ | |
16 | ||
17 | ||
18 | /* | |
19 | * Videotext ioctls | |
20 | */ | |
21 | #define VTXIOCGETINFO _IOR (0x81, 1, vtx_info_t) | |
22 | #define VTXIOCCLRPAGE _IOW (0x81, 2, vtx_pagereq_t) | |
23 | #define VTXIOCCLRFOUND _IOW (0x81, 3, vtx_pagereq_t) | |
24 | #define VTXIOCPAGEREQ _IOW (0x81, 4, vtx_pagereq_t) | |
25 | #define VTXIOCGETSTAT _IOW (0x81, 5, vtx_pagereq_t) | |
26 | #define VTXIOCGETPAGE _IOW (0x81, 6, vtx_pagereq_t) | |
27 | #define VTXIOCSTOPDAU _IOW (0x81, 7, vtx_pagereq_t) | |
28 | #define VTXIOCPUTPAGE _IO (0x81, 8) | |
29 | #define VTXIOCSETDISP _IO (0x81, 9) | |
30 | #define VTXIOCPUTSTAT _IO (0x81, 10) | |
31 | #define VTXIOCCLRCACHE _IO (0x81, 11) | |
32 | #define VTXIOCSETVIRT _IOW (0x81, 12, long) | |
33 | ||
34 | /* for compatibility, will go away some day */ | |
35 | #define VTXIOCGETINFO_OLD 0x7101 /* get version of driver & capabilities of vtx-chipset */ | |
36 | #define VTXIOCCLRPAGE_OLD 0x7102 /* clear page-buffer */ | |
37 | #define VTXIOCCLRFOUND_OLD 0x7103 /* clear bits indicating that page was found */ | |
38 | #define VTXIOCPAGEREQ_OLD 0x7104 /* search for page */ | |
39 | #define VTXIOCGETSTAT_OLD 0x7105 /* get status of page-buffer */ | |
40 | #define VTXIOCGETPAGE_OLD 0x7106 /* get contents of page-buffer */ | |
41 | #define VTXIOCSTOPDAU_OLD 0x7107 /* stop data acquisition unit */ | |
42 | #define VTXIOCPUTPAGE_OLD 0x7108 /* display page on TV-screen */ | |
43 | #define VTXIOCSETDISP_OLD 0x7109 /* set TV-mode */ | |
44 | #define VTXIOCPUTSTAT_OLD 0x710a /* set status of TV-output-buffer */ | |
45 | #define VTXIOCCLRCACHE_OLD 0x710b /* clear cache on VTX-interface (if avail.) */ | |
46 | #define VTXIOCSETVIRT_OLD 0x710c /* turn on virtual mode (this disables TV-display) */ | |
47 | ||
48 | /* | |
49 | * Definitions for VTXIOCGETINFO | |
50 | */ | |
51 | ||
52 | #define SAA5243 0 | |
53 | #define SAA5246 1 | |
54 | #define SAA5249 2 | |
55 | #define SAA5248 3 | |
56 | #define XSTV5346 4 | |
57 | ||
58 | typedef struct { | |
59 | int version_major, version_minor; /* version of driver; if version_major changes, driver */ | |
60 | /* is not backward compatible!!! CHECK THIS!!! */ | |
61 | int numpages; /* number of page-buffers of vtx-chipset */ | |
62 | int cct_type; /* type of vtx-chipset (SAA5243, SAA5246, SAA5248 or | |
63 | * SAA5249) */ | |
64 | } | |
65 | vtx_info_t; | |
66 | ||
67 | ||
68 | /* | |
69 | * Definitions for VTXIOC{CLRPAGE,CLRFOUND,PAGEREQ,GETSTAT,GETPAGE,STOPDAU,PUTPAGE,SETDISP} | |
70 | */ | |
71 | ||
72 | #define MIN_UNIT (1<<0) | |
73 | #define MIN_TEN (1<<1) | |
74 | #define HR_UNIT (1<<2) | |
75 | #define HR_TEN (1<<3) | |
76 | #define PG_UNIT (1<<4) | |
77 | #define PG_TEN (1<<5) | |
78 | #define PG_HUND (1<<6) | |
79 | #define PGMASK_MAX (1<<7) | |
80 | #define PGMASK_PAGE (PG_HUND | PG_TEN | PG_UNIT) | |
81 | #define PGMASK_HOUR (HR_TEN | HR_UNIT) | |
82 | #define PGMASK_MINUTE (MIN_TEN | MIN_UNIT) | |
83 | ||
84 | typedef struct | |
85 | { | |
86 | int page; /* number of requested page (hexadecimal) */ | |
87 | int hour; /* requested hour (hexadecimal) */ | |
88 | int minute; /* requested minute (hexadecimal) */ | |
89 | int pagemask; /* mask defining which values of the above are set */ | |
90 | int pgbuf; /* buffer where page will be stored */ | |
91 | int start; /* start of requested part of page */ | |
92 | int end; /* end of requested part of page */ | |
93 | void __user *buffer; /* pointer to beginning of destination buffer */ | |
94 | } | |
95 | vtx_pagereq_t; | |
96 | ||
97 | ||
98 | /* | |
99 | * Definitions for VTXIOC{GETSTAT,PUTSTAT} | |
100 | */ | |
101 | ||
102 | #define VTX_PAGESIZE (40 * 24) | |
103 | #define VTX_VIRTUALSIZE (40 * 49) | |
104 | ||
105 | typedef struct | |
106 | { | |
107 | int pagenum; /* number of page (hexadecimal) */ | |
108 | int hour; /* hour (hexadecimal) */ | |
109 | int minute; /* minute (hexadecimal) */ | |
110 | int charset; /* national charset */ | |
111 | unsigned delete : 1; /* delete page (C4) */ | |
112 | unsigned headline : 1; /* insert headline (C5) */ | |
113 | unsigned subtitle : 1; /* insert subtitle (C6) */ | |
114 | unsigned supp_header : 1; /* suppress header (C7) */ | |
115 | unsigned update : 1; /* update page (C8) */ | |
116 | unsigned inter_seq : 1; /* interrupted sequence (C9) */ | |
117 | unsigned dis_disp : 1; /* disable/suppress display (C10) */ | |
118 | unsigned serial : 1; /* serial mode (C11) */ | |
119 | unsigned notfound : 1; /* /FOUND */ | |
120 | unsigned pblf : 1; /* PBLF */ | |
121 | unsigned hamming : 1; /* hamming-error occurred */ | |
122 | } | |
123 | vtx_pageinfo_t; | |
124 | ||
125 | #endif /* _VTX_H */ |