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