diff --git a/include/cdio/cdda.h b/include/cdio/cdda.h index b311ab52..855a91c4 100644 --- a/include/cdio/cdda.h +++ b/include/cdio/cdda.h @@ -1,7 +1,7 @@ /* - $Id: cdda.h,v 1.24 2005/10/12 11:26:06 rocky Exp $ + $Id: cdda.h,v 1.25 2006/01/14 09:44:53 rocky Exp $ - Copyright (C) 2004, 2005 Rocky Bernstein + Copyright (C) 2004, 2005, 2006 Rocky Bernstein Copyright (C) 2001 Xiph.org and Heiko Eissfeldt heiko@escape.colossus.de @@ -133,7 +133,7 @@ struct cdrom_drive_s { }; -/*! An enumeration for some of the CDDA_TEST_* #defines below. This +/*! An enumeration for some of the CDDA_TEST_* \#defines below. This isn't really an enumeration one would really use in a program. The enumeration is created be helpful in debuggers where wants just to refer to the CDDA_TEST_ names and get something. diff --git a/include/cdio/device.h b/include/cdio/device.h index 07470ed4..b875dbdf 100644 --- a/include/cdio/device.h +++ b/include/cdio/device.h @@ -1,7 +1,7 @@ /* -*- c -*- - $Id: device.h,v 1.27 2005/11/29 07:16:33 rocky Exp $ + $Id: device.h,v 1.28 2006/01/14 09:44:53 rocky Exp $ - Copyright (C) 2005 Rocky Bernstein + Copyright (C) 2005, 2006 Rocky Bernstein This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -36,84 +36,84 @@ extern "C" { typedef uint32_t cdio_drive_misc_cap_t; /*! - \brief Drive types returned by cdio_get_drive_cap() - + \brief Drive capability bits returned by cdio_get_drive_cap() NOTE: Setting a bit here means the presence of a capability. */ -#define CDIO_DRIVE_CAP_ERROR 0x40000 /**< Error */ -#define CDIO_DRIVE_CAP_UNKNOWN 0x80000 /**< Dunno. It can be on if we + /** Miscellaneous capabilities. */ + typedef enum { + CDIO_DRIVE_CAP_ERROR = 0x40000, /**< Error */ + CDIO_DRIVE_CAP_UNKNOWN = 0x80000, /**< Dunno. It can be on if we have only partial information or are not completely certain - */ - -#define CDIO_DRIVE_CAP_MISC_CLOSE_TRAY 0x00001 /**< caddy systems can't - close... */ -#define CDIO_DRIVE_CAP_MISC_EJECT 0x00002 /**< but can eject. */ -#define CDIO_DRIVE_CAP_MISC_LOCK 0x00004 /**< disable manual eject */ -#define CDIO_DRIVE_CAP_MISC_SELECT_SPEED 0x00008 /**< programmable speed */ -#define CDIO_DRIVE_CAP_MISC_SELECT_DISC 0x00010 /**< select disc from + */ + CDIO_DRIVE_CAP_MISC_CLOSE_TRAY = 0x00001, /**< caddy systems can't + close... */ + CDIO_DRIVE_CAP_MISC_EJECT = 0x00002, /**< but can eject. */ + CDIO_DRIVE_CAP_MISC_LOCK = 0x00004, /**< disable manual eject */ + CDIO_DRIVE_CAP_MISC_SELECT_SPEED = 0x00008, /**< programmable speed */ + CDIO_DRIVE_CAP_MISC_SELECT_DISC = 0x00010, /**< select disc from juke-box */ -#define CDIO_DRIVE_CAP_MISC_MULTI_SESSION 0x00020 /**< read sessions>1 */ -#define CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED 0x00080 /**< media changed */ -#define CDIO_DRIVE_CAP_MISC_RESET 0x00100 /**< hard reset device */ -#define CDIO_DRIVE_CAP_MISC_FILE 0x20000 /**< drive is really a file, - i.e a CD file image */ + CDIO_DRIVE_CAP_MISC_MULTI_SESSION= 0x00020, /**< read sessions>1 */ + CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED= 0x00080, /**< media changed */ + CDIO_DRIVE_CAP_MISC_RESET = 0x00100, /**< hard reset device */ + CDIO_DRIVE_CAP_MISC_FILE = 0x20000 /**< drive is really a file, + i.e a CD file image */ + } cdio_drive_cap_misc_t; /*! Reading masks.. */ -#define CDIO_DRIVE_CAP_READ_AUDIO 0x00001 /**< drive can play CD audio */ -#define CDIO_DRIVE_CAP_READ_CD_DA 0x00002 /**< drive can read CD-DA */ -#define CDIO_DRIVE_CAP_READ_CD_G 0x00004 /**< drive can read CD+G */ -#define CDIO_DRIVE_CAP_READ_CD_R 0x00008 /**< drive can read CD-R */ -#define CDIO_DRIVE_CAP_READ_CD_RW 0x00010 /**< drive can read CD-RW */ -#define CDIO_DRIVE_CAP_READ_DVD_R 0x00020 /**< drive can read DVD-R */ -#define CDIO_DRIVE_CAP_READ_DVD_PR 0x00040 /**< drive can read DVD+R */ -#define CDIO_DRIVE_CAP_READ_DVD_RAM 0x00080 /**< drive can read DVD-RAM */ -#define CDIO_DRIVE_CAP_READ_DVD_ROM 0x00100 /**< drive can read DVD-ROM */ -#define CDIO_DRIVE_CAP_READ_DVD_RW 0x00200 /**< drive can read DVD-RW */ -#define CDIO_DRIVE_CAP_READ_DVD_RPW 0x00400 /**< drive can read DVD+RW */ -#define CDIO_DRIVE_CAP_READ_C2_ERRS 0x00800 /**< has C2 error correction */ -#define CDIO_DRIVE_CAP_READ_MODE2_FORM1 0x01000 /**< can read mode 2 form 1 */ -#define CDIO_DRIVE_CAP_READ_MODE2_FORM2 0x02000 /**< can read mode 2 form 2 */ -#define CDIO_DRIVE_CAP_READ_MCN 0x04000 /**< can read MCN */ -#define CDIO_DRIVE_CAP_READ_ISRC 0x08000 /**< can read ISRC */ + typedef enum { + CDIO_DRIVE_CAP_READ_AUDIO = 0x00001, /**< drive can play CD audio */ + CDIO_DRIVE_CAP_READ_CD_DA = 0x00002, /**< drive can read CD-DA */ + CDIO_DRIVE_CAP_READ_CD_G = 0x00004, /**< drive can read CD+G */ + CDIO_DRIVE_CAP_READ_CD_R = 0x00008, /**< drive can read CD-R */ + CDIO_DRIVE_CAP_READ_CD_RW = 0x00010, /**< drive can read CD-RW */ + CDIO_DRIVE_CAP_READ_DVD_R = 0x00020, /**< drive can read DVD-R */ + CDIO_DRIVE_CAP_READ_DVD_PR = 0x00040, /**< drive can read DVD+R */ + CDIO_DRIVE_CAP_READ_DVD_RAM = 0x00080, /**< drive can read DVD-RAM */ + CDIO_DRIVE_CAP_READ_DVD_ROM = 0x00100, /**< drive can read DVD-ROM */ + CDIO_DRIVE_CAP_READ_DVD_RW = 0x00200, /**< drive can read DVD-RW */ + CDIO_DRIVE_CAP_READ_DVD_RPW = 0x00400, /**< drive can read DVD+RW */ + CDIO_DRIVE_CAP_READ_C2_ERRS = 0x00800, /**< has C2 error correction */ + CDIO_DRIVE_CAP_READ_MODE2_FORM1 = 0x01000, /**< can read mode 2 form 1 */ + CDIO_DRIVE_CAP_READ_MODE2_FORM2 = 0x02000, /**< can read mode 2 form 2 */ + CDIO_DRIVE_CAP_READ_MCN = 0x04000, /**< can read MCN */ + CDIO_DRIVE_CAP_READ_ISRC = 0x08000 /**< can read ISRC */ + } cdio_drive_cap_read_t; /*! Writing masks.. */ -#define CDIO_DRIVE_CAP_WRITE_CD_R 0x00001 /**< drive can write CD-R */ -#define CDIO_DRIVE_CAP_WRITE_CD_RW 0x00002 /**< drive can write CD-R */ -#define CDIO_DRIVE_CAP_WRITE_DVD_R 0x00004 /**< drive can write DVD-R */ -#define CDIO_DRIVE_CAP_WRITE_DVD_PR 0x00008 /**< drive can write DVD+R */ -#define CDIO_DRIVE_CAP_WRITE_DVD_RAM 0x00010 /**< drive can write DVD-RAM */ -#define CDIO_DRIVE_CAP_WRITE_DVD_RW 0x00020 /**< drive can write DVD-RW */ -#define CDIO_DRIVE_CAP_WRITE_DVD_RPW 0x00040 /**< drive can write DVD+RW */ -#define CDIO_DRIVE_CAP_WRITE_MT_RAINIER 0x00080 /**< Mount Rainier */ -#define CDIO_DRIVE_CAP_WRITE_BURN_PROOF 0x00100 /**< burn proof */ + typedef enum { + CDIO_DRIVE_CAP_WRITE_CD_R = 0x00001, /**< drive can write CD-R */ + CDIO_DRIVE_CAP_WRITE_CD_RW = 0x00002, /**< drive can write CD-RW */ + CDIO_DRIVE_CAP_WRITE_DVD_R = 0x00004, /**< drive can write DVD-R */ + CDIO_DRIVE_CAP_WRITE_DVD_PR = 0x00008, /**< drive can write DVD+R */ + CDIO_DRIVE_CAP_WRITE_DVD_RAM = 0x00010, /**< drive can write DVD-RAM */ + CDIO_DRIVE_CAP_WRITE_DVD_RW = 0x00020, /**< drive can write DVD-RW */ + CDIO_DRIVE_CAP_WRITE_DVD_RPW = 0x00040, /**< drive can write DVD+RW */ + CDIO_DRIVE_CAP_WRITE_MT_RAINIER = 0x00080, /**< Mount Rainier */ + CDIO_DRIVE_CAP_WRITE_BURN_PROOF = 0x00100, /**< burn proof */ + CDIO_DRIVE_CAP_WRITE_CD = + (CDIO_DRIVE_CAP_WRITE_CD_R | CDIO_DRIVE_CAP_WRITE_CD_RW), + /**< Has some sort of CD writer ability */ -/**< Masks derived from above... */ -#define CDIO_DRIVE_CAP_WRITE_CD ( \ - CDIO_DRIVE_CAP_WRITE_CD_R \ - | CDIO_DRIVE_CAP_WRITE_CD_RW \ - ) -/**< Has some sort of CD writer ability */ - -/**< Masks derived from above... */ -#define CDIO_DRIVE_CAP_WRITE_DVD ( \ - CDIO_DRIVE_CAP_WRITE_DVD_R \ - | CDIO_DRIVE_CAP_WRITE_DVD_PR \ - | CDIO_DRIVE_CAP_WRITE_DVD_RAM \ - | CDIO_DRIVE_CAP_WRITE_DVD_RW \ - | CDIO_DRIVE_CAP_WRITE_DVD_RPW \ - ) -/**< Has some sort of DVD writer ability */ - -#define CDIO_DRIVE_CAP_WRITE \ - (CDIO_DRIVE_CAP_WRITE_CD | CDIO_DRIVE_CAP_WRITE_DVD) -/**< Has some sort of DVD or CD writing ability */ + CDIO_DRIVE_CAP_WRITE_DVD = + (CDIO_DRIVE_CAP_WRITE_DVD_R | CDIO_DRIVE_CAP_WRITE_DVD_PR + | CDIO_DRIVE_CAP_WRITE_DVD_RAM | CDIO_DRIVE_CAP_WRITE_DVD_RW + | CDIO_DRIVE_CAP_WRITE_DVD_RPW ), + /**< Has some sort of DVD writer ability */ + CDIO_DRIVE_CAP_WRITE = + (CDIO_DRIVE_CAP_WRITE_CD | CDIO_DRIVE_CAP_WRITE_DVD) + /**< Has some sort of DVD or CD writing ability */ + } cdio_drive_cap_write_t; + /*! Size of fields returned by an INQUIRY command */ -#define CDIO_MMC_HW_VENDOR_LEN 8 /**< length of vendor field */ -#define CDIO_MMC_HW_MODEL_LEN 16 /**< length of model field */ -#define CDIO_MMC_HW_REVISION_LEN 4 /**< length of revision field */ + typedef enum { + CDIO_MMC_HW_VENDOR_LEN = 8, /**< length of vendor field */ + CDIO_MMC_HW_MODEL_LEN = 16, /**< length of model field */ + CDIO_MMC_HW_REVISION_LEN = 4 /**< length of revision field */ + } cdio_mmc_hw_len_t; + /*! \brief Structure to return CD vendor, model, and revision-level strings obtained via the INQUIRY command */ @@ -124,12 +124,15 @@ extern "C" { char psz_revision[CDIO_MMC_HW_REVISION_LEN+1]; } cdio_hwinfo_t; - /**! Flags specifying the category of device to open or is opened. */ -#define CDIO_SRC_IS_DISK_IMAGE_MASK 0x0001 /**< Read source is a CD image. */ -#define CDIO_SRC_IS_DEVICE_MASK 0x0002 /**< Read source is a CD device. */ -#define CDIO_SRC_IS_SCSI_MASK 0x0004 /**< Read source SCSI device. */ -#define CDIO_SRC_IS_NATIVE_MASK 0x0008 + /** Flags specifying the category of device to open or is opened. */ + typedef enum { + CDIO_SRC_IS_DISK_IMAGE_MASK = 0x0001, /**< Read source is a CD image. */ + CDIO_SRC_IS_DEVICE_MASK = 0x0002, /**< Read source is a CD device. */ + CDIO_SRC_IS_SCSI_MASK = 0x0004, /**< Read source SCSI device. */ + CDIO_SRC_IS_NATIVE_MASK = 0x0008 + } cdio_src_category_mask_t; + /** The driver_id_t enumerations may be used to tag a specific driver * that is opened or is desired to be opened. Note that this is @@ -920,4 +923,15 @@ extern "C" { } #endif /* __cplusplus */ +/** The below variables are trickery to force the above enum symbol + values to be recorded in debug symbol tables. They are used to + allow one to refer to the enumeration value names in the typedefs + above in a debugger and debugger expressions. +*/ +extern cdio_drive_cap_misc_t debug_cdio_drive_cap_misc; +extern cdio_drive_cap_read_t debug_cdio_drive_cap_read_t; +extern cdio_drive_cap_write_t debug_drive_cap_write_t; +extern cdio_mmc_hw_len_t debug_cdio_mmc_hw_len; +extern cdio_src_category_mask_t debug_cdio_src_category_mask; + #endif /* __CDIO_DEVICE_H__ */ diff --git a/include/cdio/ecma_167.h b/include/cdio/ecma_167.h index 7e4aca6b..cb9e240b 100644 --- a/include/cdio/ecma_167.h +++ b/include/cdio/ecma_167.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2005 Rocky Bernstein + Copyright (c) 2005, 2006 Rocky Bernstein Copyright (c) 2001-2002 Ben Fennema This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -55,7 +55,7 @@ #include /** - Imagine the below enum values as #define'd values rather than + Imagine the below enum values as \#define'd values rather than distinct values of an enum. */ typedef enum { @@ -150,7 +150,7 @@ typedef struct udf_timestamp_s udf_timestamp_t; /** Type and Time Zone (ECMA 167r3 1/7.3.1) - Imagine the below enum values as #define'd values rather than + Imagine the below enum values as \#define'd values rather than distinct values of an enum. */ typedef enum { @@ -582,7 +582,7 @@ typedef struct udf_fileid_desc_s udf_fileid_desc_t; /** File Characteristics (ECMA 167r3 4/14.4.3) - Imagine the below enumeration values are #defines to be used in a + Imagine the below enumeration values are \#defines to be used in a bitmask rather than distinct values of an enum. */ typedef enum { @@ -629,7 +629,7 @@ typedef struct udf_icbtag_s udf_icbtag_t; /** File Type (ECMA 167r3 4/14.6.6) - Imagine the below enum values as #define'd values rather than + Imagine the below enum values as \#define'd values rather than distinct values of an enum. */ typedef enum { diff --git a/include/cdio/iso9660.h b/include/cdio/iso9660.h index b6f865cc..55aae7d4 100644 --- a/include/cdio/iso9660.h +++ b/include/cdio/iso9660.h @@ -1,8 +1,8 @@ /* - $Id: iso9660.h,v 1.79 2005/11/06 19:15:43 rocky Exp $ + $Id: iso9660.h,v 1.80 2006/01/14 09:44:53 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel - Copyright (C) 2003, 2004, 2005 Rocky Bernstein + Copyright (C) 2003, 2004, 2005, 2006 Rocky Bernstein See also iso9660.h by Eric Youngdale (1993). @@ -76,7 +76,7 @@ typedef char dchar_t; /*! See section 7.4.1 */ /*! The below isn't really an enumeration one would really use in a program; things are done this way so that in a debugger one can to refer to the enumeration value names such as in a debugger - expression and get something. With the more common a #define + expression and get something. With the more common a \#define mechanism, the name/value assocation is lost at run time. */ extern enum iso_enum1_s { @@ -507,7 +507,7 @@ struct iso9660_stat_s { /* big endian!! */ of extensions we allow, eg. Joliet, Rock Ridge, etc. */ typedef uint8_t iso_extension_mask_t; -/*! An enumeration for some of the ISO_EXTENSION_* #defines below. This isn't +/*! An enumeration for some of the ISO_EXTENSION_* \#defines below. This isn't really an enumeration one would really use in a program it is here to be helpful in debuggers where wants just to refer to the ISO_EXTENSION_*_ names and get something. diff --git a/include/cdio/read.h b/include/cdio/read.h index e9fe9829..ce426657 100644 --- a/include/cdio/read.h +++ b/include/cdio/read.h @@ -1,7 +1,7 @@ /* -*- c -*- - $Id: read.h,v 1.7 2005/11/10 00:44:40 rocky Exp $ + $Id: read.h,v 1.8 2006/01/14 09:44:53 rocky Exp $ - Copyright (C) 2005 Rocky Bernstein + Copyright (C) 2005, 2006 Rocky Bernstein This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -186,6 +186,7 @@ extern "C" { /*! Reads a number of sectors (AKA blocks). + @param p_cdio cdio object @param p_buf place to read data into. The caller should make sure this location is large enough. See below for size information. @param read_mode the kind of "mode" to use in reading. diff --git a/include/cdio/rock.h b/include/cdio/rock.h index 2460d932..8711d4d8 100644 --- a/include/cdio/rock.h +++ b/include/cdio/rock.h @@ -1,7 +1,7 @@ /* - $Id: rock.h,v 1.13 2005/11/06 20:02:39 rocky Exp $ + $Id: rock.h,v 1.14 2006/01/14 09:44:53 rocky Exp $ - Copyright (C) 2005 Rocky Bernstein + Copyright (C) 2005, 2006 Rocky Bernstein See also rock.c by Eric Youngdale (1993) from GNU/Linux This is Copyright 1993 Yggdrasil Computing, Incorporated @@ -47,7 +47,7 @@ extern "C" { #define S_ISLNK(st_mode) ((((st_mode)) & 0170000) == (0010000)) #endif -/*! An enumeration for some of the ISO_ROCK_* #defines below. This isn't +/*! An enumeration for some of the ISO_ROCK_* \#defines below. This isn't really an enumeration one would really use in a program it is to be helpful in debuggers where wants just to refer to the ISO_ROCK_* names and get something. @@ -375,7 +375,7 @@ const char *iso9660_get_rock_attr_str(posix_mode_t st_mode); /** These variables are not used, but are defined to facilatate debugging by letting us use enumerations values (which also correspond to - #define's inside a debugged program. + \#define's inside a debugged program. */ extern iso_rock_nm_flag_t iso_rock_nm_flag; extern iso_rock_sl_flag_t iso_rock_sl_flag; diff --git a/include/cdio/sector.h b/include/cdio/sector.h index f6f43b33..0239c8f9 100644 --- a/include/cdio/sector.h +++ b/include/cdio/sector.h @@ -1,8 +1,8 @@ /* - $Id: sector.h,v 1.36 2005/03/06 11:21:52 rocky Exp $ + $Id: sector.h,v 1.37 2006/01/14 09:44:53 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel - Copyright (C) 2003, 2004, 2005 Rocky Bernstein + Copyright (C) 2003, 2004, 2005, 2006 Rocky Bernstein This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -90,7 +90,7 @@ #define CDIO_PREGAP_SECTORS 150 #define CDIO_POSTGAP_SECTORS 150 - /*! An enumeration for some of the CDIO_CD #defines below. This isn't + /*! An enumeration for some of the CDIO_CD \#defines below. This isn't really an enumeration one would really use in a program it is to be helpful in debuggers where wants just to refer to the CDIO_CD_ names and get something. @@ -171,7 +171,7 @@ {0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0}; */ - /*! An enumeration for some of the M2*_SECTOR_SIZE #defines + /*! An enumeration for some of the M2*_SECTOR_SIZE \#defines below. This isn't really an enumeration one would really use in a program it is to be helpful in debuggers where wants just to refer to the M2*_SECTOR_SIZE names and get something. diff --git a/include/cdio/track.h b/include/cdio/track.h index 0cbc80d4..535f2019 100644 --- a/include/cdio/track.h +++ b/include/cdio/track.h @@ -1,7 +1,7 @@ /* -*- c -*- - $Id: track.h,v 1.9 2005/10/26 23:55:02 rocky Exp $ + $Id: track.h,v 1.10 2006/01/14 09:44:53 rocky Exp $ - Copyright (C) 2005 Rocky Bernstein + Copyright (C) 2005, 2006 Rocky Bernstein This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -76,7 +76,7 @@ extern "C" { */ } track_flags_t; - /*! An enumeration for some of the CDIO_CDROM_* #defines below. This + /*! An enumeration for some of the CDIO_CDROM_* \#defines below. This isn't really an enumeration one would really use in a program; it is to be helpful in debuggers where wants just to refer to the CDIO_CDROM_* names and get something. diff --git a/include/cdio/udf.h b/include/cdio/udf.h index 1774d5c3..8507e7c5 100644 --- a/include/cdio/udf.h +++ b/include/cdio/udf.h @@ -1,6 +1,6 @@ /* - $Id: udf.h,v 1.19 2005/11/06 19:26:12 rocky Exp $ - Copyright (C) 2005 Rocky Bernstein + $Id: udf.h,v 1.20 2006/01/14 09:44:53 rocky Exp $ + Copyright (C) 2005, 2006 Rocky Bernstein This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ typedef struct udf_file_s udf_file_t; typedef struct udf_dirent_s udf_dirent_t; /** - Imagine the below a #define'd value rather than distinct values of + Imagine the below a \#define'd value rather than distinct values of an enum. */ typedef enum { diff --git a/include/cdio/xa.h b/include/cdio/xa.h index b1257050..bbdd6f0d 100644 --- a/include/cdio/xa.h +++ b/include/cdio/xa.h @@ -1,8 +1,8 @@ /* - $Id: xa.h,v 1.17 2005/11/06 00:39:37 rocky Exp $ + $Id: xa.h,v 1.18 2006/01/14 09:44:53 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel - Copyright (C) 2003, 2004, 2005 Rocky Bernstein + Copyright (C) 2003, 2004, 2005, 2006 Rocky Bernstein See also iso9660.h by Eric Youngdale (1993) and in cdrtools. These are @@ -40,74 +40,43 @@ extern "C" { #endif /* __cplusplus */ -/*! An enumeration for some of the XA_* #defines below. This isn't - really an enumeration one would really use in a program it is to - be helpful in debuggers where wants just to refer to the XA_* - names and get something. -*/ -extern enum cdio_xa_enums { - ISO_XA_MARKER_OFFSET = 1024, - XA_PERM_RSYS = 0x0001, /**< System Group Read */ - XA_PERM_XSYS = 0x0004, /**< System Group Execute */ - - XA_PERM_RUSR = 0x0010, /**< User (owner) Read */ - XA_PERM_XUSR = 0x0040, /**< User (owner) Execute */ - - XA_PERM_RGRP = 0x0100, /**< Group Read */ - XA_PERM_XGRP = 0x0400, /**< Group Execute */ - - XA_PERM_ROTH = 0x1000, /**< Other (world) Read */ - XA_PERM_XOTH = 0x4000, /**< Other (world) Execute */ - + /*! An enumeration for some of the XA_* \#defines below. This isn't + really an enumeration one would really use in a program it is to + be helpful in debuggers where wants just to refer to the XA_* + names and get something. + */ + typedef enum { + ISO_XA_MARKER_OFFSET = 1024, + XA_PERM_RSYS = 0x0001, /**< System Group Read */ + XA_PERM_XSYS = 0x0004, /**< System Group Execute */ + + XA_PERM_RUSR = 0x0010, /**< User (owner) Read */ + XA_PERM_XUSR = 0x0040, /**< User (owner) Execute */ + + XA_PERM_RGRP = 0x0100, /**< Group Read */ + XA_PERM_XGRP = 0x0400, /**< Group Execute */ + + XA_PERM_ROTH = 0x1000, /**< Other (world) Read */ + XA_PERM_XOTH = 0x4000, /**< Other (world) Execute */ + XA_ATTR_MODE2FORM1 = (1 << 11), XA_ATTR_MODE2FORM2 = (1 << 12), XA_ATTR_INTERLEAVED = (1 << 13), XA_ATTR_CDDA = (1 << 14), XA_ATTR_DIRECTORY = (1 << 15), - + XA_PERM_ALL_READ = (XA_PERM_RUSR | XA_PERM_RSYS | XA_PERM_RGRP), XA_PERM_ALL_EXEC = (XA_PERM_XUSR | XA_PERM_XSYS | XA_PERM_XGRP), XA_PERM_ALL_ALL = (XA_PERM_ALL_READ | XA_PERM_ALL_EXEC), - + XA_FORM1_DIR = (XA_ATTR_DIRECTORY | XA_ATTR_MODE2FORM1 | XA_PERM_ALL_ALL), XA_FORM1_FILE = (XA_ATTR_MODE2FORM1 | XA_PERM_ALL_ALL), XA_FORM2_FILE = (XA_ATTR_MODE2FORM2 | XA_PERM_ALL_ALL) - -} cdio_xa_enums; - + } xa_misc_enum_t; extern const char ISO_XA_MARKER_STRING[sizeof("CD-XA001")-1]; #define ISO_XA_MARKER_STRING "CD-XA001" -#define ISO_XA_MARKER_OFFSET 1024 - -/*! XA attribute definitions */ -#define XA_PERM_RSYS 0x0001 /**< System Group Read */ -#define XA_PERM_XSYS 0x0004 /**< System Group Execute */ - -#define XA_PERM_RUSR 0x0010 /**< User (owner) Read */ -#define XA_PERM_XUSR 0x0040 /**< User (owner) Execute */ - -#define XA_PERM_RGRP 0x0100 /**< Group Read */ -#define XA_PERM_XGRP 0x0400 /**< Group Execute */ - -#define XA_PERM_ROTH 0x1000 /**< Other (world) Read */ -#define XA_PERM_XOTH 0x4000 /**< Other (world) Execute */ - -#define XA_ATTR_MODE2FORM1 (1 << 11) -#define XA_ATTR_MODE2FORM2 (1 << 12) -#define XA_ATTR_INTERLEAVED (1 << 13) -#define XA_ATTR_CDDA (1 << 14) -#define XA_ATTR_DIRECTORY (1 << 15) - -/* some aggregations */ -#define XA_PERM_ALL_READ (XA_PERM_RUSR | XA_PERM_RSYS | XA_PERM_RGRP) -#define XA_PERM_ALL_EXEC (XA_PERM_XUSR | XA_PERM_XSYS | XA_PERM_XGRP) -#define XA_PERM_ALL_ALL (XA_PERM_ALL_READ | XA_PERM_ALL_EXEC) - -#define XA_FORM1_DIR (XA_ATTR_DIRECTORY | XA_ATTR_MODE2FORM1 | XA_PERM_ALL_ALL) -#define XA_FORM1_FILE (XA_ATTR_MODE2FORM1 | XA_PERM_ALL_ALL) -#define XA_FORM2_FILE (XA_ATTR_MODE2FORM2 | XA_PERM_ALL_ALL) /*! \brief "Extended Architecture" according to the Philips Yellow Book. @@ -190,6 +159,15 @@ iso9660_xa_init (iso9660_xa_t *_xa, uint16_t uid, uint16_t gid, uint16_t attr, #ifdef __cplusplus } + +/** The below variables are trickery to force the above enum symbol + values to be recorded in debug symbol tables. They are used to + allow one to refer to the enumeration value names in the typedefs + above in a debugger and debugger expressions. +*/ +extern xa_misc_enum_t debugger_xa_misc_enum; + + #endif /* __cplusplus */ #endif /* __CDIO_XA_H__ */