Develop and Download Open Source Software

Browse CVS Repository

Contents of /enbanfukusyaya/EnbanKensa/common/struct.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.5 - (show annotations) (download) (as text)
Sun May 8 04:44:25 2011 UTC (12 years, 11 months ago) by bananajinn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +1 -1 lines
File MIME type: text/x-chdr
*** empty log message ***

1 #ifndef __STRUCT_H__
2 #define __STRUCT_H__
3
4 /*
5 * cdrecord/cdrtools ŽQĆ
6 * http://www.fokus.fhg.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
7 */
8
9 #include "aspi.h"
10
11 #if defined(WIN32) || defined(__i386__) || defined(__x86_64__)
12 #define BIT_FIELDS_LTOH /* Intel */
13 #endif
14
15 struct _MODEPAGE_HEADER {
16 #ifdef BIT_FIELDS_LTOH
17 BYTE p_code : 6;
18 BYTE res : 1;
19 BYTE parsave : 1;
20 BYTE p_len;
21 #else
22 BYTE parsave : 1;
23 BYTE res : 1;
24 BYTE p_code : 6;
25 BYTE p_len;
26 #endif
27 };
28
29 struct _MODEPAGE01 { /* Error Recovery Parameters */
30 #ifdef BIT_FIELDS_LTOH
31 struct _MODEPAGE_HEADER header;
32 BYTE disa_correction : 1; /* Byte 2 */
33 BYTE term_on_rec_err : 1;
34 BYTE report_rec_err : 1;
35 BYTE en_early_corr : 1;
36 BYTE read_continuous : 1;
37 BYTE tranfer_block : 1;
38 BYTE en_auto_reall_r : 1;
39 BYTE en_auto_reall_w : 1; /* Byte 2 */
40 BYTE rd_retry_count; /* Byte 3 */
41 BYTE correction_span;
42 BYTE head_offset_count;
43 BYTE data_strobe_offset;
44 BYTE res;
45 BYTE wr_retry_count;
46 BYTE res_tape[2];
47 BYTE recov_timelim[2];
48 #else
49 struct _MODEPAGE_HEADER header;
50 BYTE en_auto_reall_w : 1; /* Byte 2 */
51 BYTE en_auto_reall_r : 1;
52 BYTE tranfer_block : 1;
53 BYTE read_continuous : 1;
54 BYTE en_early_corr : 1;
55 BYTE report_rec_err : 1;
56 BYTE term_on_rec_err : 1;
57 BYTE disa_correction : 1; /* Byte 2 */
58 BYTE rd_retry_count; /* Byte 3 */
59 BYTE correction_span;
60 BYTE head_offset_count;
61 BYTE data_strobe_offset;
62 BYTE res;
63 BYTE wr_retry_count;
64 BYTE res_tape[2];
65 BYTE recov_timelim[2];
66 #endif
67 };
68
69 struct _MODEPAGE05 { /* Write Parameters */
70 #ifdef BIT_FIELDS_LTOH
71 struct _MODEPAGE_HEADER header;
72 BYTE write_type : 4; /* Session write type (PACKET/TAO...)*/
73 BYTE test_write : 1; /* Do not actually write data */
74 BYTE LS_V : 1; /* Link size valid */
75 BYTE BUFE : 1; /* Enable Bufunderrun free rec. */
76 BYTE res_2_7 : 1;
77 BYTE track_mode : 4; /* Track mode (Q-sub control nibble) */
78 BYTE copy : 1; /* 1st higher gen of copy prot track ~*/
79 BYTE fp : 1; /* Fixed packed (if in packet mode) */
80 BYTE multi_session : 2; /* Multi session write type */
81 BYTE dbtype : 4; /* Data block type */
82 BYTE res_4 : 4; /* Reserved */
83 BYTE link_size; /* Link Size (default is 7) */
84 BYTE res_6; /* Reserved */
85 BYTE host_appl_code : 6; /* Host application code of disc */
86 BYTE res_7 : 2; /* Reserved */
87 BYTE session_format; /* Session format (DA/CDI/XA) */
88 BYTE res_9; /* Reserved */
89 BYTE packet_size[4]; /* # of user datablocks/fixed packet */
90 BYTE audio_pause_len[2]; /* # of blocks where index is zero */
91 BYTE mc_val; /* MCN valid */
92 BYTE media_cat_number[13]; /* Media catalog Number (MCN) */
93 BYTE res_30_31[2];
94 BYTE tc_val; /* ISRC valid */
95 BYTE ISRC[12]; /* ISRC for this track */
96 BYTE res_45_47;
97 BYTE sub_header[4];
98 BYTE vendor_uniq[4];
99 #else
100 struct _MODEPAGE_HEADER header;
101 BYTE res_2_7 : 1;
102 BYTE BUFE : 1; /* Enable Bufunderrun free rec. */
103 BYTE LS_V : 1; /* Link size valid */
104 BYTE test_write : 1; /* Do not actually write data */
105 BYTE write_type : 4; /* Session write type (PACKET/TAO...)*/
106 BYTE multi_session : 2; /* Multi session write type */
107 BYTE fp : 1; /* Fixed packed (if in packet mode) */
108 BYTE copy : 1; /* 1st higher gen of copy prot track ~*/
109 BYTE track_mode : 4; /* Track mode (Q-sub control nibble) */
110 BYTE res_4 : 4; /* Reserved */
111 BYTE dbtype : 4; /* Data block type */
112 BYTE link_size; /* Link Size (default is 7) */
113 BYTE res_6; /* Reserved */
114 BYTE res_7 : 2; /* Reserved */
115 BYTE host_appl_code : 6; /* Host application code of disc */
116 BYTE session_format; /* Session format (DA/CDI/XA) */
117 BYTE res_9; /* Reserved */
118 BYTE packet_size[4]; /* # of user datablocks/fixed packet */
119 BYTE audio_pause_len[2]; /* # of blocks where index is zero */
120 BYTE mc_val; /* MCN valid */
121 BYTE media_cat_number[13]; /* Media catalog Number (MCN) */
122 BYTE res_30_31[2];
123 BYTE tc_val; /* ISRC valid */
124 BYTE ISRC[12]; /* ISRC for this track */
125 BYTE res_45_47;
126 BYTE sub_header[4];
127 BYTE vendor_uniq[4];
128 #endif
129 };
130
131 /* write_type */
132 #define MP05WT_PACKET 0
133 #define MP05WT_TAO 1
134 #define MP05WT_SAO 2
135 #define MP05WT_RAW 3
136 /* track_mode */
137 #define MP05TM_AUDIO 0
138 #define MP05TM_DATA 4
139 #define MP05TM_DATAINC 5
140 /* dbtype */
141 #define MP05DBT_CDDA_2352 0
142 #define MP05DBT_CDDA_2368 1
143 #define MP05DBT_CDDA_2448 2
144 #define MP05DBT_RAW 3
145 #define MP05DBT_MODE1 8
146 #define MP05DBT_MODE2 9
147 #define MP05DBT_XA1_2048 10
148 #define MP05DBT_XA1_2056 11
149 #define MP05DBT_XA2 12
150 #define MP05DBT_MIX 13
151 /* session_format */
152 #define MP05SF_CDDA_CDROM 0x00
153 #define MP05SF_CDI 0x10
154 #define MP05SF_CDROM_XA 0x20
155
156
157
158 struct _WRITESPEED_PERFOMANCE {
159 BYTE res0; /* Reserved */
160 BYTE rot_ctl_sel : 2; /* Rotational control selected */
161 BYTE res_1_27 : 6; /* Reserved */
162 BYTE wr_speed_supp[2]; /* Supported write speed */
163 };
164
165 struct _MODEPAGE2A { /* Mechanical Status */
166 #ifdef BIT_FIELDS_LTOH
167 struct _MODEPAGE_HEADER header;
168 BYTE cd_r_read : 1; /* Reads CD-R media */
169 BYTE cd_rw_read : 1; /* Reads CD-RW media */
170 BYTE method2 : 1; /* Reads fixed packet method2 media */
171 BYTE dvd_rom_read : 1; /* Reads DVD ROM media */
172 BYTE dvd_r_read : 1; /* Reads DVD-R media */
173 BYTE dvd_ram_read : 1; /* Reads DVD-RAM media */
174 BYTE res_2_67 : 2; /* Reserved */
175
176 BYTE cd_r_write : 1; /* Supports writing CD-R media */
177 BYTE cd_rw_write : 1; /* Supports writing CD-RW media */
178 BYTE test_write : 1; /* Supports emulation write */
179 BYTE res_3_3 : 1; /* Reserved */
180 BYTE dvd_r_write : 1; /* Supports writing DVD-R media */
181 BYTE dvd_ram_write : 1; /* Supports writing DVD-RAM media */
182 BYTE res_3_67 : 2; /* Reserved */
183
184 BYTE audio_play : 1; /* Supports Audio play operation */
185 BYTE composite : 1; /* Deliveres composite A/V stream */
186 BYTE digital_port_2 : 1; /* Supports digital output on port 2 */
187 BYTE digital_port_1 : 1; /* Supports digital output on port 1 */
188 BYTE mode_2_form_1 : 1; /* Reads Mode-2 form 1 media (XA) */
189 BYTE mode_2_form_2 : 1; /* Reads Mode-2 form 2 media */
190 BYTE multi_session : 1; /* Reads multi-session media */
191 BYTE BUF : 1; /* Supports Buffer under. free rec. */
192
193 BYTE cd_da_supported : 1; /* Reads audio data with READ CD cmd */
194 BYTE cd_da_accurate : 1; /* READ CD data stream is accurate */
195 BYTE rw_supported : 1; /* Reads R-W sub channel information */
196 BYTE rw_deint_corr : 1; /* Reads de-interleved R-W sub chan */
197 BYTE c2_pointers : 1; /* Supports C2 error pointers */
198 BYTE ISRC : 1; /* Reads ISRC information */
199 BYTE UPC : 1; /* Reads media catalog number (UPC) */
200 BYTE read_bar_code : 1; /* Supports reading bar codes */
201
202 BYTE lock : 1; /* PREVENT/ALLOW may lock media */
203 BYTE lock_state : 1; /* Lock state 0=unlocked 1=locked */
204 BYTE prevent_jumper : 1; /* State of prev/allow jumper 0=pres */
205 BYTE eject : 1; /* Ejects disc/cartr with STOP LoEj */
206 BYTE res_6_4 : 1; /* Reserved */
207 BYTE loading_type : 3; /* Loading mechanism type */
208
209 BYTE sep_chan_vol : 1; /* Vol controls each channel separat */
210 BYTE sep_chan_mute : 1; /* Mute controls each channel separat*/
211 BYTE disc_present_rep: 1; /* Changer supports disc present rep */
212 BYTE sw_slot_sel : 1; /* Load empty slot in changer */
213 BYTE side_change : 1; /* Side change capable */
214 BYTE pw_in_lead_in : 1; /* Reads raw P-W sucode from lead in */
215 BYTE res_7 : 2; /* Reserved */
216
217 BYTE max_read_speed[2]; /* Max. read speed in KB/s */
218 BYTE num_vol_levels[2]; /* # of supported volume levels */
219 BYTE buffer_size[2]; /* Buffer size for the data in KB */
220 BYTE cur_read_speed[2]; /* Current read speed in KB/s */
221 BYTE res_16; /* Reserved */
222 BYTE res_17_0 : 1; /* Reserved */
223 BYTE BCK : 1; /* Data valid on falling edge of BCK */
224 BYTE RCK : 1; /* Set: HIGH high LRCK=left channel */
225 BYTE LSBF : 1; /* Set: LSB first Clear: MSB first */
226 BYTE length : 2; /* 0=32BCKs 1=16BCKs 2=24BCKs 3=24I2c*/
227 BYTE res_17 : 2; /* Reserved */
228 BYTE max_write_speed[2]; /* Max. write speed supported in KB/s*/
229 BYTE cur_write_speed[2]; /* Current write speed in KB/s */
230
231 /* Byte 22 ... Only in MMC-2 */
232 BYTE copy_man_rev[2]; /* Copy management revision supported*/
233 BYTE res_24; /* Reserved */
234 BYTE res_25; /* Reserved */
235
236 /* Byte 26 ... Only in MMC-3 */
237 BYTE res_26; /* Reserved */
238 BYTE res_27_27 : 6; /* Reserved */
239 BYTE rot_ctl_sel : 2; /* Rotational control selected */
240 BYTE v3_cur_write_speed[2]; /* Current write speed in KB/s */
241 BYTE num_wr_speed_des[2]; /* # of wr speed perf descr. tables */
242 struct _WRITESPEED_PERFOMANCE wr_speed_des[1]; /* wr speed performance descriptor */
243 /* Actually more (num_wr_speed_des) */
244 #else
245 struct _MODEPAGE_HEADER header;
246 BYTE res_2_67 : 2; /* Reserved */
247 BYTE dvd_ram_read : 1; /* Reads DVD-RAM media */
248 BYTE dvd_r_read : 1; /* Reads DVD-R media */
249 BYTE dvd_rom_read : 1; /* Reads DVD ROM media */
250 BYTE method2 : 1; /* Reads fixed packet method2 media */
251 BYTE cd_rw_read : 1; /* Reads CD-RW media */
252 BYTE cd_r_read : 1; /* Reads CD-R media */
253
254 BYTE res_3_67 : 2; /* Reserved */
255 BYTE dvd_ram_write : 1; /* Supports writing DVD-RAM media */
256 BYTE dvd_r_write : 1; /* Supports writing DVD-R media */
257 BYTE res_3_3 : 1; /* Reserved */
258 BYTE test_write : 1; /* Supports emulation write */
259 BYTE cd_rw_write : 1; /* Supports writing CD-RW media */
260 BYTE cd_r_write : 1; /* Supports writing CD-R media */
261
262 BYTE BUF : 1; /* Supports Buffer under. free rec. */
263 BYTE multi_session : 1; /* Reads multi-session media */
264 BYTE mode_2_form_2 : 1; /* Reads Mode-2 form 2 media */
265 BYTE mode_2_form_1 : 1; /* Reads Mode-2 form 1 media (XA) */
266 BYTE digital_port_1 : 1; /* Supports digital output on port 1 */
267 BYTE digital_port_2 : 1; /* Supports digital output on port 2 */
268 BYTE composite : 1; /* Deliveres composite A/V stream */
269 BYTE audio_play : 1; /* Supports Audio play operation */
270
271 BYTE read_bar_code : 1; /* Supports reading bar codes */
272 BYTE UPC : 1; /* Reads media catalog number (UPC) */
273 BYTE ISRC : 1; /* Reads ISRC information */
274 BYTE c2_pointers : 1; /* Supports C2 error pointers */
275 BYTE rw_deint_corr : 1; /* Reads de-interleved R-W sub chan */
276 BYTE rw_supported : 1; /* Reads R-W sub channel information */
277 BYTE cd_da_accurate : 1; /* READ CD data stream is accurate */
278 BYTE cd_da_supported : 1; /* Reads audio data with READ CD cmd */
279
280 BYTE loading_type : 3; /* Loading mechanism type */
281 BYTE res_6_4 : 1; /* Reserved */
282 BYTE eject : 1; /* Ejects disc/cartr with STOP LoEj */
283 BYTE prevent_jumper : 1; /* State of prev/allow jumper 0=pres */
284 BYTE lock_state : 1; /* Lock state 0=unlocked 1=locked */
285 BYTE lock : 1; /* PREVENT/ALLOW may lock media */
286
287 BYTE res_7 : 2; /* Reserved */
288 BYTE pw_in_lead_in : 1; /* Reads raw P-W sucode from lead in */
289 BYTE side_change : 1; /* Side change capable */
290 BYTE sw_slot_sel : 1; /* Load empty slot in changer */
291 BYTE disc_present_rep: 1; /* Changer supports disc present rep */
292 BYTE sep_chan_mute : 1; /* Mute controls each channel separat*/
293 BYTE sep_chan_vol : 1; /* Vol controls each channel separat */
294
295 BYTE max_read_speed[2]; /* Max. read speed in KB/s */
296 BYTE num_vol_levels[2]; /* # of supported volume levels */
297 BYTE buffer_size[2]; /* Buffer size for the data in KB */
298 BYTE cur_read_speed[2]; /* Current read speed in KB/s */
299 BYTE res_16; /* Reserved */
300 BYTE res_17 : 2; /* Reserved */
301 BYTE length : 2; /* 0=32BCKs 1=16BCKs 2=24BCKs 3=24I2c*/
302 BYTE LSBF : 1; /* Set: LSB first Clear: MSB first */
303 BYTE RCK : 1; /* Set: HIGH high LRCK=left channel */
304 BYTE BCK : 1; /* Data valid on falling edge of BCK */
305 BYTE res_17_0 : 1; /* Reserved */
306 BYTE max_write_speed[2]; /* Max. write speed supported in KB/s*/
307 BYTE cur_write_speed[2]; /* Current write speed in KB/s */
308
309 /* Byte 22 ... Only in MMC-2 */
310 BYTE copy_man_rev[2]; /* Copy management revision supported*/
311 BYTE res_24; /* Reserved */
312 BYTE res_25; /* Reserved */
313
314 /* Byte 26 ... Only in MMC-3 */
315 BYTE res_26; /* Reserved */
316 BYTE rot_ctl_sel : 2; /* Rotational control selected */
317 BYTE res_27_27 : 6; /* Reserved */
318 BYTE v3_cur_write_speed[2]; /* Current write speed in KB/s */
319 BYTE num_wr_speed_des[2]; /* # of wr speed perf descr. tables */
320 struct _WRITESPEED_PERFOMANCE wr_speed_des[1]; /* wr speed performance descriptor */
321 /* Actually more (num_wr_speed_des) */
322 #endif
323 };
324
325 struct _OPCTABLE {
326 BYTE opc_speed[2];
327 BYTE opc_val[6];
328 };
329
330 struct _DISCINFO {
331 #ifdef BIT_FIELDS_LTOH
332 BYTE data_len[2]; /* Data len without this info */
333 BYTE disc_status : 2; /* Status of the disc */
334 BYTE sess_status : 2; /* Status of last session */
335 BYTE erasable : 1; /* disc is erasable */
336 BYTE res2 : 3; /* Reserved */
337 BYTE first_track; /* # of first track on disc */
338 BYTE numsess_lsb; /* # of sessions */
339 BYTE first_track_ls_lsb; /* First track in last sessaion */
340 BYTE last_track_ls_lsb; /* Last track in last sessaion */
341 BYTE bgformat_stat : 2; /* B.G. format status */
342 BYTE dbit : 1; /* dirty bit */
343 BYTE res7_3 : 1; /* Reserved */
344 BYTE dac_v : 1; /* disc application code valid */
345 BYTE uru : 1; /* This is an unrestricted disc */
346 BYTE dbc_v : 1; /* disc bar code valid */
347 BYTE did_v : 1; /* disc id valid */
348 BYTE disc_type; /* disc type */
349 BYTE numsess_msb; /* # of session(high byte) */
350 BYTE first_track_ls_msb; /* First track in last session(high byte) */
351 BYTE last_track_ls_msb; /* Last track in last session(high byte) */
352 BYTE disc_id[4]; /* disc identification */
353 BYTE last_lead_in[4]; /* Last session lead in time */
354 BYTE last_lead_out[4]; /* Last session lead out time */
355 BYTE disc_barcode[8]; /* disc bar code */
356 BYTE disc_app_code; /* disc application code */
357 BYTE num_opc_entries; /* # of OPC table entries */
358 struct _OPCTABLE opc_table[1]; /* OPC table */
359 #else
360 BYTE data_len[2]; /* Data len without this info */
361 BYTE res2 : 3; /* Reserved */
362 BYTE erasable : 1; /* disc is erasable */
363 BYTE sess_status : 2; /* Status of last session */
364 BYTE disc_status : 2; /* Status of the disc */
365 BYTE first_track; /* # of first track on disc */
366 BYTE numsess_lsb; /* # of sessions */
367 BYTE first_track_ls_lsb; /* First track in last sessaion */
368 BYTE last_track_ls_lsb; /* Last track in last sessaion */
369 BYTE did_v : 1; /* disc id valid */
370 BYTE dbc_v : 1; /* disc bar code valid */
371 BYTE uru : 1; /* This is an unrestricted disc */
372 BYTE dac_v : 1; /* disc application code valid */
373 BYTE res7_3 : 1; /* Reserved */
374 BYTE dbit : 1; /* dirty bit */
375 BYTE bgformat_stat : 2; /* B.G. format status */
376 BYTE disc_type; /* disc type */
377 BYTE numsess_msb; /* # of session(high byte) */
378 BYTE first_track_ls_msb; /* First track in last session(high byte) */
379 BYTE last_track_ls_msb; /* Last track in last session(high byte) */
380 BYTE disc_id[4]; /* disc identification */
381 BYTE last_lead_in[4]; /* Last session lead in time */
382 BYTE last_lead_out[4]; /* Last session lead out time */
383 BYTE disc_barcode[8]; /* disc bar code */
384 BYTE disc_app_code; /* disc application code */
385 BYTE num_opc_entries; /* # of OPC table entries */
386 struct _OPCTABLE opc_table[1]; /* OPC table */
387 #endif
388 };
389
390 /* disc_type */
391 #define DISCTYPE_CDDA_DATA 0x00
392 #define DISCTYPE_CDI 0x10
393 #define DISCTYPE_CDROM_XA 0x20
394 /* disc_status */
395 #define DISCSTAT_EMPTY 0
396 #define DISCSTAT_INCOMPLETE 1
397 #define DISCSTAT_COMPLETE 2
398 #define DISCSTAT_OTHER 3 /* non-write protected Random Writable media */
399 /* sess_status */
400 #define SESSSTAT_EMPTY 0
401 #define SESSSTAT_INCOMPLETE 1
402 #define SESSSTAT_COMPLETE 3
403 /* bgformat_stat */
404 #define BGFSTAT_NOTFORMATTED 0
405 #define BGFSTAT_INACTIVE 1
406 #define BGFSTAT_ACTIVE 2
407 #define BGFSTAT_COMPLETED 3
408
409
410 struct _TRACKINFO {
411 #ifdef BIT_FIELDS_LTOH
412 BYTE data_len[2]; /* Data len without this info */
413 BYTE track_number_lsb; /* Track number for this info */
414 BYTE session_number_lsb; /* Session number for this info */
415 BYTE res4; /* Reserved */
416 BYTE track_mode : 4; /* Track mode (Q-sub control) */
417 BYTE copy : 1; /* This track is a higher copy */
418 BYTE damage : 1; /* if 1 & nwa_valid 0: inc track*/
419 BYTE res5_67 : 2; /* Reserved */
420 BYTE data_mode : 4; /* Data mode of this track */
421 BYTE fp : 1; /* This is a fixed packet track */
422 BYTE packet : 1; /* This track is in packet mode */
423 BYTE blank : 1; /* This is an invisible track */
424 BYTE rt : 1; /* This is a reserved track */
425 BYTE nwa_valid : 1; /* Next writable addr valid */
426 BYTE lra_valid : 1; /* Last recorded addr valid */
427 BYTE res7_16 : 6; /* Reserved */
428 BYTE track_start[4]; /* Track start address */
429 BYTE next_writable_addr[4]; /* Next writable address */
430 BYTE free_blocks[4]; /* Free usr blocks in this track*/
431 BYTE packet_size[4]; /* Packet size if in fixed mode */
432 BYTE track_size[4]; /* # of user data blocks in trk */
433 BYTE last_rec_addr[4]; /* Last recorded addr */
434 BYTE track_number_msb; /* Track number for this info(high byte) */
435 BYTE session_number_msb; /* Session number for this info(high byte) */
436 BYTE res[2]; /* Reserved */
437 #else
438 BYTE data_len[2]; /* Data len without this info */
439 BYTE track_number_lsb; /* Track number for this info */
440 BYTE session_number_lsb; /* Session number for this info */
441 BYTE res4; /* Reserved */
442 BYTE res5_67 : 2; /* Reserved */
443 BYTE damage : 1; /* if 1 & nwa_valid 0: inc track*/
444 BYTE copy : 1; /* This track is a higher copy */
445 BYTE track_mode : 4; /* Track mode (Q-sub control) */
446 BYTE rt : 1; /* This is a reserved track */
447 BYTE blank : 1; /* This is an invisible track */
448 BYTE packet : 1; /* This track is in packet mode */
449 BYTE fp : 1; /* This is a fixed packet track */
450 BYTE data_mode : 4; /* Data mode of this track */
451 BYTE res7_16 : 6; /* Reserved */
452 BYTE lra_valid : 1; /* Last recorded addr valid */
453 BYTE nwa_valid : 1; /* Next writable addr valid */
454 BYTE track_start[4]; /* Track start address */
455 BYTE next_writable_addr[4]; /* Next writable address */
456 BYTE free_blocks[4]; /* Free usr blocks in this track*/
457 BYTE packet_size[4]; /* Packet size if in fixed mode */
458 BYTE track_size[4]; /* # of user data blocks in trk */
459 BYTE last_rec_addr[4]; /* Last recorded addr */
460 BYTE track_number_msb; /* Track number for this info(high byte) */
461 BYTE session_number_msb; /* Session number for this info(high byte) */
462 BYTE res[2]; /* Reserved */
463 #endif
464 };
465
466
467 struct _FEATURE_HEADER { /* for GET CONFIGURATION */
468 BYTE data_len[4];
469 BYTE res45[2];
470 BYTE cur_profile[2];
471 };
472
473
474
475 struct _FORMATLIST_HEADER {
476 #ifdef BIT_FIELDS_LTOH
477 BYTE res1; /* Reserved */
478 BYTE vs : 1; /* Vendor Specific */
479 BYTE immed : 1; /* Immediate */
480 BYTE tryout : 1;
481 BYTE ip : 1; /* Initialization Pattern */
482 BYTE stpf : 1; /* Stop format */
483 BYTE dcrt : 1; /* Disable Certification */
484 BYTE dpry : 1; /* Disable Primary */
485 BYTE fov : 1; /* Format option valid */
486 BYTE fmtdesc_len[2]; /* Format descriptor length */
487 #else
488 BYTE res1; /* Reserved */
489 BYTE fov : 1; /* Format option valid */
490 BYTE dpry : 1; /* Disable Primary */
491 BYTE dcrt : 1; /* Disable Certification */
492 BYTE stpf : 1; /* Stop format */
493 BYTE ip : 1; /* Initialization Pattern */
494 BYTE tryout : 1;
495 BYTE immed : 1; /* Immediate */
496 BYTE vs : 1; /* Vendor Specific */
497 BYTE fmtdesc_len[2]; /* Format descriptor length */
498 #endif
499 };
500
501 struct _CDRW_FORMATDESC {
502 #ifdef BIT_FIELDS_LTOH
503 BYTE res0_61 : 6; /* Reserved */
504 BYTE grow : 1; /* Grow session */
505 BYTE session : 1; /* New session */
506 BYTE res1_3[3]; /* Reserved */
507 BYTE format_size[4]; /* Format size */
508 #else
509 BYTE session : 1; /* New session */
510 BYTE grow : 1; /* Grow session */
511 BYTE res0_61 : 6; /* Reserved */
512 BYTE res1_3[3]; /* Reserved */
513 BYTE format_size[4]; /* Format size */
514 #endif
515 };
516
517 struct _FORMATDESC {
518 #ifdef BIT_FIELDS_LTOH
519 BYTE num_blocks[4]; /* # of blocks */
520 BYTE res4_21 : 2; /* Reserved */
521 BYTE format_type : 6; /* Format type */
522 BYTE param[3]; /* Parameter */
523 #else
524 BYTE num_blocks[4]; /* # of blocks */
525 BYTE format_type : 6; /* Format type */
526 BYTE res4_21 : 2; /* Reserved */
527 BYTE param[3]; /* Parameter */
528 #endif
529 };
530 /* format_type */
531 #define FDFT_FULL 0x10
532 #define FDFT_GROW 0x11
533 #define FDFT_ADD 0x12
534 #define FDFT_QUICKGROW 0x13
535 #define FDFT_QUICKADD 0x14
536 #define FDFT_QUICK 0x15
537 #define FDFT_CDMRW 0x24
538 #define FDFT_DVDPRW 0x26
539
540
541 /* for READ FORMAT CAPACITIES */
542 struct _FORMATCAPA_HEADER {
543 BYTE res[3]; /* Reserved */
544 BYTE list_len; /* Capacity list length */
545 };
546
547 struct _FORMATCURMAXDESC {
548 #ifdef BIT_FIELDS_LTOH
549 BYTE num_blocks[4]; /* # of blocks */
550 BYTE desc_type : 2; /* Descriptor type */
551 BYTE res4_72 : 6; /* Reserved */
552 BYTE param[3]; /* Parameter */
553 #else
554 BYTE num_blocks[4]; /* # of blocks */
555 BYTE res4_72 : 6; /* Reserved */
556 BYTE desc_type : 2; /* Descriptor type */
557 BYTE param[3]; /* Parameter */
558 #endif
559 };
560
561
562 struct _PERFORMANCEDESC {
563 #ifdef BIT_FIELDS_LTOH
564 BYTE mrw : 1; /* Mix read write */
565 BYTE exact : 1; /* Exact */
566 BYTE rdd : 1; /* Restore drive default */
567 BYTE wrc : 2; /* Write rotation control */
568 BYTE res0_75 : 3; /* Reserved */
569 BYTE res13[3]; /* Reserved */
570 BYTE start_lba[4]; /* Start LBA */
571 BYTE end_lba[4]; /* End LBA */
572 BYTE read_size[4]; /* Read size */
573 BYTE read_time[4]; /* Read time */
574 BYTE write_size[4]; /* Write size */
575 BYTE write_time[4]; /* Write time */
576 #else
577 BYTE res0_75 : 3; /* Reserved */
578 BYTE wrc : 2; /* Write rotation control */
579 BYTE rdd : 1; /* Restore drive default */
580 BYTE exact : 1; /* Exact */
581 BYTE mrw : 1; /* Mix read write */
582 BYTE res13[3]; /* Reserved */
583 BYTE start_lba[4]; /* Start LBA */
584 BYTE end_lba[4]; /* End LBA */
585 BYTE read_size[4]; /* Read size */
586 BYTE read_time[4]; /* Read time */
587 BYTE write_size[4]; /* Write size */
588 BYTE write_time[4]; /* Write time */
589 #endif
590 };
591
592
593 struct _TOCHEADER {
594 BYTE len[2];
595 BYTE first;
596 BYTE last;
597 };
598
599 struct _FULLTOCDESC {
600 BYTE sess_num;
601 #ifdef BIT_FIELDS_LTOH
602 BYTE control : 4;
603 BYTE adr : 4;
604 #else
605 BYTE adr : 4;
606 BYTE control : 4;
607 #endif
608 BYTE track;
609 BYTE point;
610 BYTE amin;
611 BYTE asec;
612 BYTE aframe;
613 BYTE res7;
614 BYTE pmin;
615 BYTE psec;
616 BYTE pframe;
617 };
618
619
620 struct _CUESHEET {
621 BYTE ctladr; /* CTL/ADR for this track */
622 BYTE tno; /* This track number */
623 BYTE index; /* Index within this track */
624 BYTE dataform; /* Data form */
625 BYTE scms; /* Serial copy management */
626 BYTE min; /* Absolute time minutes */
627 BYTE sec; /* Absolute time seconds */
628 BYTE frame; /* Absolute time frames */
629 };
630
631 #define CSCTL_AUDIO 0x00
632 #define CSCTL_DATA 0x40
633 #define CSADR_NORMAL 0x01
634 #define CSADR_MCN 0x02
635 #define CSADR_ISRC 0x03
636
637
638
639 /* ƒfƒBƒXƒNƒ^ƒCƒv */
640 #define DT_UNKNOWN 0x0000 /* –˘’mƒfƒBƒXƒN */
641 #define DT_CDROM 0x0008 /* CD-ROM */
642 #define DT_CDR 0x0009 /* CD-R */
643 #define DT_CDRW 0x000a /* CD-RW */
644 #define DT_DVDROM 0x0010 /* DVD-ROM */
645 #define DT_DVDR 0x0011 /* DVD-R */
646 #define DT_DVDRAM 0x0012 /* DVD-RAM */
647 #define DT_DVDRWO 0x0013 /* DVD-RW(ƒtƒH[ƒ}ƒbƒgĎ) */
648 #define DT_DVDRWS 0x0014 /* DVD-RW(ƒV[ƒPƒ“ƒVƒƒƒ‹‹L˜^) */
649 #define DT_DVDPRW 0x001A /* DVD+RW */
650 #define DT_DVDPR 0x001B /* DVD+R */
651
652 #define DT_CD_FAMILY(d) (d==DT_CDROM||d==DT_CDR||d==DT_CDRW)
653 #define DT_DVD_FAMILY(d) (d>=DT_DVDROM)
654 #define DT_WRITABLE(d) \
655 (d==DT_CDR||d==DT_CDRW||\
656 d==DT_DVDR||d==DT_DVDRWO||d==DT_DVDRWS||d==DT_DVDPRW||d==DT_DVDPR)
657
658 #endif /* !__STRUCT_H__ */

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26