Annotation of sys/compat/linux/linux_cdrom.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: linux_cdrom.h,v 1.2 1997/12/10 00:01:40 provos Exp $ */
2: /*
3: * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
4: * All rights reserved.
5: *
6: * Redistribution and use in source and binary forms, with or without
7: * modification, are permitted provided that the following conditions
8: * are met:
9: * 1. Redistributions of source code must retain the above copyright
10: * notice, this list of conditions and the following disclaimer.
11: * 2. Redistributions in binary form must reproduce the above copyright
12: * notice, this list of conditions and the following disclaimer in the
13: * documentation and/or other materials provided with the distribution.
14: * 3. All advertising materials mentioning features or use of this software
15: * must display the following acknowledgement:
16: * This product includes software developed by Niels Provos.
17: * 4. The name of the author may not be used to endorse or promote products
18: * derived from this software without specific prior written permission.
19: *
20: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30: */
31:
32: struct linux_cdrom_blk
33: {
34: unsigned from;
35: unsigned short len;
36: };
37:
38:
39: struct linux_cdrom_msf
40: {
41: u_char cdmsf_min0; /* start */
42: u_char cdmsf_sec0;
43: u_char cdmsf_frame0;
44: u_char cdmsf_min1; /* end */
45: u_char cdmsf_sec1;
46: u_char cdmsf_frame1;
47: };
48:
49: struct linux_cdrom_ti
50: {
51: u_char cdti_trk0; /* start */
52: u_char cdti_ind0;
53: u_char cdti_trk1; /* end */
54: u_char cdti_ind1;
55: };
56:
57: struct linux_cdrom_tochdr
58: {
59: u_char cdth_trk0; /* start */
60: u_char cdth_trk1; /* end */
61: };
62:
63: struct linux_cdrom_msf0
64: {
65: u_char minute;
66: u_char second;
67: u_char frame;
68: };
69:
70: union linux_cdrom_addr
71: {
72: struct linux_cdrom_msf0 msf;
73: int lba;
74: };
75:
76: struct linux_cdrom_tocentry
77: {
78: u_char cdte_track;
79: u_char cdte_adr :4;
80: u_char cdte_ctrl :4;
81: u_char cdte_format;
82: union linux_cdrom_addr cdte_addr;
83: u_char cdte_datamode;
84: };
85:
86: #define LINUX_CDROM_LBA 0x01
87: #define LINUX_CDROM_MSF 0x02
88:
89: #define LINUX_CDROM_DATA_TRACK 0x04
90:
91: #define LINUX_CDROM_LEADOUT 0xAA
92:
93: struct linux_cdrom_subchnl
94: {
95: u_char cdsc_format;
96: u_char cdsc_audiostatus;
97: u_char cdsc_adr: 4;
98: u_char cdsc_ctrl: 4;
99: u_char cdsc_trk;
100: u_char cdsc_ind;
101: union linux_cdrom_addr cdsc_absaddr;
102: union linux_cdrom_addr cdsc_reladdr;
103: };
104:
105: struct linux_cdrom_mcn {
106: u_char medium_catalog_number[14];
107: };
108:
109:
110: struct linux_cdrom_volctrl
111: {
112: u_char channel0;
113: u_char channel1;
114: u_char channel2;
115: u_char channel3;
116: };
117:
118: struct linux_cdrom_read
119: {
120: int cdread_lba;
121: caddr_t cdread_bufaddr;
122: int cdread_buflen;
123: };
124:
125: #define LINUX_CDROMPAUSE 0x5301
126: #define LINUX_CDROMRESUME 0x5302
127: #define LINUX_CDROMPLAYMSF 0x5303
128: #define LINUX_CDROMPLAYTRKIND 0x5304
129:
130: #define LINUX_CDROMREADTOCHDR 0x5305
131: #define LINUX_CDROMREADTOCENTRY 0x5306
132:
133: #define LINUX_CDROMSTOP 0x5307
134: #define LINUX_CDROMSTART 0x5308
135:
136: #define LINUX_CDROMEJECT 0x5309
137:
138: #define LINUX_CDROMVOLCTRL 0x530a
139:
140: #define LINUX_CDROMSUBCHNL 0x530b
141:
142: #define LINUX_CDROMREADMODE2 0x530c
143: #define LINUX_CDROMREADMODE1 0x530d
144: #define LINUX_CDROMREADAUDIO 0x530e
145:
146: #define LINUX_CDROMEJECT_SW 0x530f
147:
148: #define LINUX_CDROMMULTISESSION 0x5310
149:
150: #define LINUX_CDROM_GET_UPC 0x5311
151:
152: #define LINUX_CDROMRESET 0x5312
153: #define LINUX_CDROMVOLREAD 0x5313
154:
155: #define LINUX_CDROMPLAYBLK 0x5317
CVSweb