|
|
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.