/*
* This file has been modified for the cdrkit suite.
*
* The behaviour and appearence of the program code below can differ to a major
* extent from the version distributed by the original author(s).
*
* For details, see Changelog file distributed with the cdrkit package. If you
* received this file from another source then ask the distributing person for
* a log of modifications.
*
*/
/* @(#)mycdrom.h 1.10 06/05/07 Copyright 1998,1999 Heiko Eissfeldt, Copyright 2005-2006 J. Schilling */
#if defined(__linux__)
# include <linux/cdrom.h>
#else
# if defined HAVE_SYS_CDIO_H
# include <sys/cdio.h>
# if defined(__FreeBSD__) && __FreeBSD__ >= 2
# include <osreldate.h>
# endif
# if defined HAVE_SYS_CDRIO_H /* Was: if __FreeBSD_version >= 400014 */
# include <sys/cdrio.h>
# endif
# if (defined (__sun) && defined (SVR4))
# if 0
/* just for info */
/* Sun has this cdda reading ioctl: CDROMCDDA */
/*
* Definition of CD-DA structure
*/
struct cdrom_cdda {
unsigned int cdda_addr;
unsigned int cdda_length;
caddr_t cdda_data;
unsigned char cdda_subcode;
};
/*
To get the subcode information related to CD-DA data, the following values are
appropriate for the cdda_subcode field:
CDROM_DA_NO_SUBCODE
CD-DA data with no subcode.
CDROM_DA_SUBQ
CD-DA data with sub Q code.
CDROM_DA_ALL_SUBCODE
CD-DA data with all subcode.
CDROM_DA_SUBCODE_ONLY
All subcode only.
To allocate the memory related to CD-DA and/or subcode data, the following
values are appropriate for each data block transferred:
CD-DA data with no subcode
2352 bytes
CD-DA data with sub Q code
2368 bytes
CD-DA data with all subcode
2448 bytes
All subcode only
96 bytes
*/
# endif /* if 0 */
# else /* not Sun SVR4 */
# if defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined __DragonFly__ || defined __OpenBSD__
# if (defined(__FreeBSD__) && __FreeBSD_version < 228000) || !defined(CDIOCREADAUDIO)
/*
* FreeBSD_version >= 501112 has no CDIOCREADAUDIO but uses pread()
*/
# if !(defined(__FreeBSD__) && __FreeBSD_version >= 501112)
# undef HAVE_IOCTL_INTERFACE
# endif
# endif /* __FreeBSD_version < 228000 || !CDIOCREADAUDIO */
#ifdef HAVE_IOCTL_INTERFACE
#define CDROM_LBA CD_LBA_FORMAT
#define CDROM_MSF CD_MSF_FORMAT
#define CDROM_DATA_TRACK 0x04
#define CDROM_LEADOUT 0xAA
#define CDROMSTOP CDIOCSTOP
#define CDROMSTART CDIOCSTART
#define CDROMREADTOCHDR CDIOREADTOCHEADER
#define CDROMREADTOCENTRY CDIOREADTOCENTRY
#define CDROMPLAYMSF CDIOCPLAYMSF
#define CDROMREADAUDIO CDIOCREADAUDIO
#define CDROM_GET_MCN CDIOCREADSUBCHANNEL
#define CDROMSUBCHNL CDIOCREADSUBCHANNEL
#ifndef CDIOREADTOCENTRY
#define CDIOREADTOCENTRY CDIOREADTOCENTRYS
#endif
#define cdrom_tochdr ioc_toc_header
#define cdth_trk0 starting_track
#define cdth_trk1 ending_track
#define cdrom_tocentry ioc_read_toc_single_entry
#define cdte_track track
#define cdte_format address_format
#define cdte_adr entry.addr_type
#define cdte_ctrl entry.control
#define cdte_addr entry.addr
#define cdrom_read_audio ioc_read_audio
#define addr_format address_format
#define buff buffer
#define cdrom_msf ioc_play_msf
#define cdmsf_min0 start_m
#define cdmsf_sec0 start_s
#define cdmsf_frame0 start_f
#define cdmsf_min1 end_m
#define cdmsf_sec1 end_s
#define cdmsf_frame1 end_f
#define cdrom_subchnl ioc_read_subchannel
#define cdsc_audiostatus data->header.audio_status
#define cdsc_format data->what.position.data_format
#define cdsc_adr data->what.position.addr_type
#define cdsc_ctrl data->what.position.control
#define cdsc_trk data->what.position.track_number
#define cdsc_ind data->what.position.index_number
#define cdsc_absaddr data->what.position.absaddr
#define cdsc_reladdr data->what.position.reladdr
# endif /* HAVE_IOCTL_INTERFACE */
# else /* not *BSD */
# undef HAVE_IOCTL_INTERFACE
# endif /* not *BSD */
# endif /* not SUN SVR4 */
# else /* HAVE_SYS_CDIO_H */
# if defined HAVE_SUNDEV_SRREG_H
# include <sundev/srreg.h>
# if !defined CDROMCDDA
# undef HAVE_IOCTL_INTERFACE
# endif
# else
# undef HAVE_IOCTL_INTERFACE
# endif
# endif /* not HAVE_SYS_CDIO_H */
#endif /* not linux */