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