Annotation of sys/compat/linux/linux_cdrom.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: linux_cdrom.h,v 1.2 1997/12/10 00:01:40 provos Exp $ */
! 2: /*
! 3: * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
! 4: * All rights reserved.
! 5: *
! 6: * Redistribution and use in source and binary forms, with or without
! 7: * modification, are permitted provided that the following conditions
! 8: * are met:
! 9: * 1. Redistributions of source code must retain the above copyright
! 10: * notice, this list of conditions and the following disclaimer.
! 11: * 2. Redistributions in binary form must reproduce the above copyright
! 12: * notice, this list of conditions and the following disclaimer in the
! 13: * documentation and/or other materials provided with the distribution.
! 14: * 3. All advertising materials mentioning features or use of this software
! 15: * must display the following acknowledgement:
! 16: * This product includes software developed by Niels Provos.
! 17: * 4. The name of the author may not be used to endorse or promote products
! 18: * derived from this software without specific prior written permission.
! 19: *
! 20: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
! 21: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! 22: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
! 23: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
! 24: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
! 25: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
! 26: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
! 27: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
! 28: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
! 29: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
! 30: */
! 31:
! 32: struct linux_cdrom_blk
! 33: {
! 34: unsigned from;
! 35: unsigned short len;
! 36: };
! 37:
! 38:
! 39: struct linux_cdrom_msf
! 40: {
! 41: u_char cdmsf_min0; /* start */
! 42: u_char cdmsf_sec0;
! 43: u_char cdmsf_frame0;
! 44: u_char cdmsf_min1; /* end */
! 45: u_char cdmsf_sec1;
! 46: u_char cdmsf_frame1;
! 47: };
! 48:
! 49: struct linux_cdrom_ti
! 50: {
! 51: u_char cdti_trk0; /* start */
! 52: u_char cdti_ind0;
! 53: u_char cdti_trk1; /* end */
! 54: u_char cdti_ind1;
! 55: };
! 56:
! 57: struct linux_cdrom_tochdr
! 58: {
! 59: u_char cdth_trk0; /* start */
! 60: u_char cdth_trk1; /* end */
! 61: };
! 62:
! 63: struct linux_cdrom_msf0
! 64: {
! 65: u_char minute;
! 66: u_char second;
! 67: u_char frame;
! 68: };
! 69:
! 70: union linux_cdrom_addr
! 71: {
! 72: struct linux_cdrom_msf0 msf;
! 73: int lba;
! 74: };
! 75:
! 76: struct linux_cdrom_tocentry
! 77: {
! 78: u_char cdte_track;
! 79: u_char cdte_adr :4;
! 80: u_char cdte_ctrl :4;
! 81: u_char cdte_format;
! 82: union linux_cdrom_addr cdte_addr;
! 83: u_char cdte_datamode;
! 84: };
! 85:
! 86: #define LINUX_CDROM_LBA 0x01
! 87: #define LINUX_CDROM_MSF 0x02
! 88:
! 89: #define LINUX_CDROM_DATA_TRACK 0x04
! 90:
! 91: #define LINUX_CDROM_LEADOUT 0xAA
! 92:
! 93: struct linux_cdrom_subchnl
! 94: {
! 95: u_char cdsc_format;
! 96: u_char cdsc_audiostatus;
! 97: u_char cdsc_adr: 4;
! 98: u_char cdsc_ctrl: 4;
! 99: u_char cdsc_trk;
! 100: u_char cdsc_ind;
! 101: union linux_cdrom_addr cdsc_absaddr;
! 102: union linux_cdrom_addr cdsc_reladdr;
! 103: };
! 104:
! 105: struct linux_cdrom_mcn {
! 106: u_char medium_catalog_number[14];
! 107: };
! 108:
! 109:
! 110: struct linux_cdrom_volctrl
! 111: {
! 112: u_char channel0;
! 113: u_char channel1;
! 114: u_char channel2;
! 115: u_char channel3;
! 116: };
! 117:
! 118: struct linux_cdrom_read
! 119: {
! 120: int cdread_lba;
! 121: caddr_t cdread_bufaddr;
! 122: int cdread_buflen;
! 123: };
! 124:
! 125: #define LINUX_CDROMPAUSE 0x5301
! 126: #define LINUX_CDROMRESUME 0x5302
! 127: #define LINUX_CDROMPLAYMSF 0x5303
! 128: #define LINUX_CDROMPLAYTRKIND 0x5304
! 129:
! 130: #define LINUX_CDROMREADTOCHDR 0x5305
! 131: #define LINUX_CDROMREADTOCENTRY 0x5306
! 132:
! 133: #define LINUX_CDROMSTOP 0x5307
! 134: #define LINUX_CDROMSTART 0x5308
! 135:
! 136: #define LINUX_CDROMEJECT 0x5309
! 137:
! 138: #define LINUX_CDROMVOLCTRL 0x530a
! 139:
! 140: #define LINUX_CDROMSUBCHNL 0x530b
! 141:
! 142: #define LINUX_CDROMREADMODE2 0x530c
! 143: #define LINUX_CDROMREADMODE1 0x530d
! 144: #define LINUX_CDROMREADAUDIO 0x530e
! 145:
! 146: #define LINUX_CDROMEJECT_SW 0x530f
! 147:
! 148: #define LINUX_CDROMMULTISESSION 0x5310
! 149:
! 150: #define LINUX_CDROM_GET_UPC 0x5311
! 151:
! 152: #define LINUX_CDROMRESET 0x5312
! 153: #define LINUX_CDROMVOLREAD 0x5313
! 154:
! 155: #define LINUX_CDROMPLAYBLK 0x5317
CVSweb