| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 */ |