From 25062ba061871945759b3baa833fe64969383e40 Mon Sep 17 00:00:00 2001 From: rgrimes Date: Sat, 12 Jun 1993 14:58:17 +0000 Subject: Initial import, 0.1 + pk 0.2.4-B1 --- sys/sys/cdio.h | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 sys/sys/cdio.h (limited to 'sys/sys/cdio.h') diff --git a/sys/sys/cdio.h b/sys/sys/cdio.h new file mode 100644 index 0000000..0bd4ea7 --- /dev/null +++ b/sys/sys/cdio.h @@ -0,0 +1,149 @@ +/* + * + * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE + * -------------------- ----- ---------------------- + * CURRENT PATCH LEVEL: 1 00098 + * -------------------- ----- ---------------------- + * + * 16 Feb 93 Julian Elischer ADDED for SCSI system + */ +/* Shared between kernel & process */ + +struct cd_toc_entry { + u_char :8; + u_char control:4; + u_char addr_type:4; + u_char track; + u_char :8; + u_char addr[4]; +}; + +struct cd_sub_channel_header { + u_char :8; + u_char audio_status; +#define CD_AS_AUDIO_INVALID 0x00 +#define CD_AS_PLAY_IN_PROGRESS 0x11 +#define CD_AS_PLAY_PAUSED 0x12 +#define CD_AS_PLAY_COMPLETED 0x13 +#define CD_AS_PLAY_ERROR 0x14 +#define CD_AS_NO_STATUS 0x15 + u_char data_len[2]; +}; + +struct cd_sub_channel_position_data { + u_char data_format; + u_char control:4; + u_char addr_type:4; + u_char track_number; + u_char index_number; + u_char absaddr[4]; + u_char reladdr[4]; +}; + +struct cd_sub_channel_media_catalog { + u_char data_format; + u_char :8; + u_char :8; + u_char :8; + u_char :7; + u_char mc_valid:1; + u_char mc_number[15]; +}; + +struct cd_sub_channel_track_info { + u_char data_format; + u_char :8; + u_char track_number; + u_char :8; + u_char :7; + u_char ti_valid:1; + u_char ti_number[15]; +}; + +struct cd_sub_channel_info { + struct cd_sub_channel_header header; + union { + struct cd_sub_channel_position_data position; + struct cd_sub_channel_media_catalog media_catalog; + struct cd_sub_channel_track_info track_info; + } what; +}; + +/***************************************************************\ +* Ioctls for the CD drive * +\***************************************************************/ +struct ioc_play_track +{ + u_char start_track; + u_char start_index; + u_char end_track; + u_char end_index; +}; + +#define CDIOCPLAYTRACKS _IOW('c',1,struct ioc_play_track) +struct ioc_play_blocks +{ + int blk; + int len; +}; +#define CDIOCPLAYBLOCKS _IOW('c',2,struct ioc_play_blocks) + +struct ioc_read_subchannel { + u_char address_format; +#define CD_LBA_FORMAT 1 +#define CD_MSF_FORMAT 2 + u_char data_format; +#define CD_SUBQ_DATA 0 +#define CD_CURRENT_POSITION 1 +#define CD_MEDIA_CATALOG 2 +#define CD_TRACK_INFO 3 + u_char track; + int data_len; + struct cd_sub_channel_info *data; +}; +#define CDIOCREADSUBCHANNEL _IOWR('c', 3 , struct ioc_read_subchannel ) + + +struct ioc_toc_header { + u_short len; + u_char starting_track; + u_char ending_track; +}; + +#define CDIOREADTOCHEADER _IOR('c',4,struct ioc_toc_header) + +struct ioc_read_toc_entry { + u_char address_format; + u_char starting_track; + u_short data_len; + struct cd_toc_entry *data; +}; +#define CDIOREADTOCENTRYS _IOWR('c',5,struct ioc_read_toc_entry) + +struct ioc_patch +{ + u_char patch[4]; /* one for each channel */ +}; +#define CDIOCSETPATCH _IOW('c',9,struct ioc_patch) +struct ioc_vol +{ + u_char vol[4]; /* one for each channel */ +}; +#define CDIOCGETVOL _IOR('c',10,struct ioc_vol) +#define CDIOCSETVOL _IOW('c',11,struct ioc_vol) +#define CDIOCSETMONO _IO('c',12) +#define CDIOCSETSTERIO _IO('c',13) +#define CDIOCSETMUTE _IO('c',14) +#define CDIOCSETLEFT _IO('c',15) +#define CDIOCSETRIGHT _IO('c',16) +#define CDIOCSETDEBUG _IO('c',17) +#define CDIOCCLRDEBUG _IO('c',18) +#define CDIOCPAUSE _IO('c',19) +#define CDIOCRESUME _IO('c',20) +#define CDIOCRESET _IO('c',21) +#define CDIOCSTART _IO('c',22) +#define CDIOCSTOP _IO('c',23) +#define CDIOCEJECT _IO('c',24) + + + -- cgit v1.1