FreeBSD/Linux Kernel Cross Reference
sys/scsi/scsi_worm.h
1 #ifndef _SCSI_SCSI_WORM_H
2 #define _SCSI_SCSI_WORM_H
3
4 #define PAGE_HEADERLEN 2
5
6 /*
7 * Opcodes
8 */
9
10 #define REZERO_UNIT 0x01 /* re-init; XXX belongs to scsi_all? */
11 #define SYNCHRONIZE_CACHE 0x35 /* flush write buffer, close wr chn */
12 #define FIRST_WRITEABLE_ADDR 0xe2 /* return first available LBA */
13 #define RESERVE_TRACK 0xe4 /* reserve a track for later write */
14 #define READ_TRACK_INFORMATION 0xe5 /* get info for a particular track */
15 #define WRITE_TRACK 0xe6 /* open the write channel */
16 #define LOAD_UNLOAD 0xe7 /* resembles part of START_STOP */
17 #define FIXATION 0xe9 /* write leadin/leadout */
18
19 struct scsi_rezero_unit
20 {
21 u_char op_code;
22 u_char byte2;
23 u_char reserved[3];
24 u_char control;
25 };
26
27 struct scsi_synchronize_cache
28 {
29 u_char op_code;
30 u_char byte2;
31 u_char reserved[7];
32 u_char control;
33 };
34
35 /* struct scsi_first_writeable_address; */
36
37 struct scsi_reserve_track
38 {
39 u_char op_code;
40 u_char byte2;
41 u_char reserved[3];
42 u_char reserve_length_3; /* MSB */
43 u_char reserve_length_2;
44 u_char reserve_length_1;
45 u_char reserve_length_0; /* LSB */
46 u_char control;
47 };
48
49 /* struct scsi_read_track_information; */
50
51 struct scsi_write_track
52 {
53 u_char op_code;
54 u_char byte2;
55 u_char reserved[3];
56 u_char track_number; /* 0 means: use next available */
57 u_char mode;
58 #define WORM_TRACK_MODE_RAW 0x08
59 #define WORM_TRACK_MODE_AUDIO 0x04
60 #define WORM_TRACK_MODE_MODE1 0x01 /* also audio with preemphasis */
61 #define WORM_TRACK_MODE_MODE2 0x02
62 u_char transfer_length_1; /* number of blocks to transfer, MSB */
63 u_char transfer_length_0; /* LSB */
64 u_char control;
65 #define WORM_TRACK_CONTROL_MIX 0x40 /* mixed mode blocks */
66 };
67
68 struct scsi_load_unload
69 {
70 u_char op_code;
71 u_char byte2;
72 u_char reserved[6];
73 u_char load;
74 #define WORM_LOAD_MEDIUM 0x01
75 u_char control;
76 };
77
78 struct scsi_fixation
79 {
80 u_char op_code;
81 u_char byte2;
82 u_char reserved[6];
83 u_char action;
84 #define WORM_FIXATION_ONP 0x08 /* open next program area (new session) */
85 #define WORM_TOC_TYPE_AUDIO 0x00
86 #define WORM_TOC_TYPE_CDROM 0x01
87 #define WORM_TOC_TYPE_CDROM_1 0x02 /* CD-ROM, first track mode 1 (?) */
88 #define WORM_TOC_TYPE_CDROM_2 0x03 /* CD-ROM, first track mode 2 */
89 #define WORM_TOC_TYPE_CDI 0x04
90 u_char control;
91 };
92
93 #endif /* _SCSI_SCSI_WORM_H */
Cache object: 9365b14c0ce969edf64bc2bd34cdb243
|