|
|
1.1 root 1: /*
2: *
3: * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE
4: * -------------------- ----- ----------------------
5: * CURRENT PATCH LEVEL: 1 00098
6: * -------------------- ----- ----------------------
7: *
8: * 16 Feb 93 Julian Elischer ADDED for SCSI system
9: */
10: /* Shared between kernel & process */
11:
12: struct cd_toc_entry {
13: u_char :8;
14: u_char control:4;
15: u_char addr_type:4;
16: u_char track;
17: u_char :8;
18: u_char addr[4];
19: };
20:
21: struct cd_sub_channel_header {
22: u_char :8;
23: u_char audio_status;
24: #define CD_AS_AUDIO_INVALID 0x00
25: #define CD_AS_PLAY_IN_PROGRESS 0x11
26: #define CD_AS_PLAY_PAUSED 0x12
27: #define CD_AS_PLAY_COMPLETED 0x13
28: #define CD_AS_PLAY_ERROR 0x14
29: #define CD_AS_NO_STATUS 0x15
30: u_char data_len[2];
31: };
32:
33: struct cd_sub_channel_position_data {
34: u_char data_format;
35: u_char control:4;
36: u_char addr_type:4;
37: u_char track_number;
38: u_char index_number;
39: u_char absaddr[4];
40: u_char reladdr[4];
41: };
42:
43: struct cd_sub_channel_media_catalog {
44: u_char data_format;
45: u_char :8;
46: u_char :8;
47: u_char :8;
48: u_char :7;
49: u_char mc_valid:1;
50: u_char mc_number[15];
51: };
52:
53: struct cd_sub_channel_track_info {
54: u_char data_format;
55: u_char :8;
56: u_char track_number;
57: u_char :8;
58: u_char :7;
59: u_char ti_valid:1;
60: u_char ti_number[15];
61: };
62:
63: struct cd_sub_channel_info {
64: struct cd_sub_channel_header header;
65: union {
66: struct cd_sub_channel_position_data position;
67: struct cd_sub_channel_media_catalog media_catalog;
68: struct cd_sub_channel_track_info track_info;
69: } what;
70: };
71:
72: /***************************************************************\
73: * Ioctls for the CD drive *
74: \***************************************************************/
75: struct ioc_play_track
76: {
77: u_char start_track;
78: u_char start_index;
79: u_char end_track;
80: u_char end_index;
81: };
82:
83: #define CDIOCPLAYTRACKS _IOW('c',1,struct ioc_play_track)
84: struct ioc_play_blocks
85: {
86: int blk;
87: int len;
88: };
89: #define CDIOCPLAYBLOCKS _IOW('c',2,struct ioc_play_blocks)
90:
91: struct ioc_read_subchannel {
92: u_char address_format;
93: #define CD_LBA_FORMAT 1
94: #define CD_MSF_FORMAT 2
95: u_char data_format;
96: #define CD_SUBQ_DATA 0
97: #define CD_CURRENT_POSITION 1
98: #define CD_MEDIA_CATALOG 2
99: #define CD_TRACK_INFO 3
100: u_char track;
101: int data_len;
102: struct cd_sub_channel_info *data;
103: };
104: #define CDIOCREADSUBCHANNEL _IOWR('c', 3 , struct ioc_read_subchannel )
105:
106:
107: struct ioc_toc_header {
108: u_short len;
109: u_char starting_track;
110: u_char ending_track;
111: };
112:
113: #define CDIOREADTOCHEADER _IOR('c',4,struct ioc_toc_header)
114:
115: struct ioc_read_toc_entry {
116: u_char address_format;
117: u_char starting_track;
118: u_short data_len;
119: struct cd_toc_entry *data;
120: };
121: #define CDIOREADTOCENTRYS _IOWR('c',5,struct ioc_read_toc_entry)
122:
123: struct ioc_patch
124: {
125: u_char patch[4]; /* one for each channel */
126: };
127: #define CDIOCSETPATCH _IOW('c',9,struct ioc_patch)
128: struct ioc_vol
129: {
130: u_char vol[4]; /* one for each channel */
131: };
132: #define CDIOCGETVOL _IOR('c',10,struct ioc_vol)
133: #define CDIOCSETVOL _IOW('c',11,struct ioc_vol)
134: #define CDIOCSETMONO _IO('c',12)
135: #define CDIOCSETSTERIO _IO('c',13)
136: #define CDIOCSETMUTE _IO('c',14)
137: #define CDIOCSETLEFT _IO('c',15)
138: #define CDIOCSETRIGHT _IO('c',16)
139: #define CDIOCSETDEBUG _IO('c',17)
140: #define CDIOCCLRDEBUG _IO('c',18)
141: #define CDIOCPAUSE _IO('c',19)
142: #define CDIOCRESUME _IO('c',20)
143: #define CDIOCRESET _IO('c',21)
144: #define CDIOCSTART _IO('c',22)
145: #define CDIOCSTOP _IO('c',23)
146: #define CDIOCEJECT _IO('c',24)
147:
148:
149:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.