home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License"). You may not use this file except in compliance with the
- * License. Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- *
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
- /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
- /*
- * The NEXTSTEP Software License Agreement specifies the terms
- * and conditions for redistribution.
- */
-
- #ifndef _SYS_CDIO_H_
- #define _SYS_CDIO_H_
-
- /* Shared between kernel & process */
-
- struct cd_toc_entry {
- u_char nothing1;
- u_char control:4;
- u_char addr_type:4;
- u_char track;
- u_char nothing2;
- u_char addr[4];
- };
-
- struct cd_sub_channel_header {
- u_char nothing1;
- 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 nothing1;
- u_char nothing2;
- u_char nothing3;
- 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 nothing1;
- u_char track_number;
- u_char nothing2;
- 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 CDIOCSETSTEREO _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)
- #define CDIOCALLOW _IO('c', 25)
- #define CDIOCPREVENT _IO('c', 26)
-
- struct ioc_play_msf {
- u_char start_m;
- u_char start_s;
- u_char start_f;
- u_char end_m;
- u_char end_s;
- u_char end_f;
- };
- #define CDIOCPLAYMSF _IOW('c', 25, struct ioc_play_msf)
-
- #endif /* !_SYS_CDIO_H_ */
-