52 #ifdef WORDS_BIGENDIAN
53 # if !defined(__LITTLE_ENDIAN_BITFIELD) && !defined(__BIG_ENDIAN_BITFIELD)
54 # define __MMC_BIG_ENDIAN_BITFIELD
57 # if !defined(__LITTLE_ENDIAN_BITFIELD) && !defined(__BIG_ENDIAN_BITFIELD)
58 # define __MMC_LITTLE_ENDIAN_BITFIELD
70 #if defined(__MMC_BIG_ENDIAN_BITFIELD)
78 #if defined(__MMC_BIG_ENDIAN_BITFIELD)
337 #define CDIO_MMC_GPCMD_READ_DISC_INFO CDIO_MMC_GPCMD_READ_DISC_INFORMATION
338 #define CDIO_MMC_GPCMD_READ_DISC_STRUCTURE CDIO_MMC_GPMD_READ_DVD_STRUCTURE
453 #define MAX_CDB_LEN 12
493 #define SCSI_MMC_HAS_DIR_NONE 1
509 #define CDIO_MMC_SET_COMMAND(cdb, command) \
512 #define CDIO_MMC_SET_READ_TYPE(cdb, sector_type) \
513 cdb[1] = (sector_type << 2)
515 #define CDIO_MMC_GETPOS_LEN16(p, pos) \
516 (p[pos]<<8) + p[pos+1]
518 #define CDIO_MMC_GET_LEN16(p) \
521 #define CDIO_MMC_GET_LEN32(p) \
522 (p[0] << 24) + (p[1] << 16) + (p[2] << 8) + p[3];
524 #define CDIO_MMC_SET_LEN16(cdb, pos, len) \
525 cdb[pos ] = (len >> 8) & 0xff; \
526 cdb[pos+1] = (len ) & 0xff
528 #define CDIO_MMC_SET_READ_LBA(cdb, lba) \
529 cdb[2] = (lba >> 24) & 0xff; \
530 cdb[3] = (lba >> 16) & 0xff; \
531 cdb[4] = (lba >> 8) & 0xff; \
532 cdb[5] = (lba ) & 0xff
534 #define CDIO_MMC_SET_START_TRACK(cdb, command) \
537 #define CDIO_MMC_SET_READ_LENGTH24(cdb, len) \
538 cdb[6] = (len >> 16) & 0xff; \
539 cdb[7] = (len >> 8) & 0xff; \
540 cdb[8] = (len ) & 0xff
542 #define CDIO_MMC_SET_READ_LENGTH16(cdb, len) \
543 CDIO_MMC_SET_LEN16(cdb, 7, len)
545 #define CDIO_MMC_SET_READ_LENGTH8(cdb, len) \
546 cdb[8] = (len ) & 0xff
548 #define CDIO_MMC_MCSB_ALL_HEADERS 0xf
550 #define CDIO_MMC_SET_MAIN_CHANNEL_SELECTION_BITS(cdb, val) \
727 uint16_t i_blocksize,
735 lsn_t i_lsn,
int read_sector_type,
780 const mmc_cdb_t *p_cdb,
unsigned int i_cdb,
808 uint16_t i_blocksize);
841 #ifndef DO_NOT_WANT_OLD_MMC_COMPATIBILITY
842 #define CDIO_MMC_GPCMD_START_STOP CDIO_MMC_GPCMD_START_STOP_UNIT
843 #define CDIO_MMC_GPCMD_ALLOW_MEDIUM_REMOVAL \
844 CDIO_MMC_GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL
uint8_t fruc
Definition: mmc.h:102
The top-level header for CD audio-related libcdio calls. These control playing of the CD-ROM through ...
Definitions for DVD access.
uint8_t asc
Definition: mmc.h:100
cdio_mmc_feature_interface_t
Definition: mmc.h:439
#define MAX_CDB_LEN
Definition: mmc.h:453
char * mmc_get_mcn(const CdIo_t *p_cdio)
Common type definitions used pervasively in libcdio.
driver_return_code_t mmc_read_data_sectors(CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, uint16_t i_blocksize, uint32_t i_blocks)
uint8_t address
Definition: mmc.h:501
cdio_mmc_feature_profile_t debug_cdio_mmc_feature_profile
#define PRAGMA_END_PACKED
Definition: types.h:168
uint8_t selection
Definition: mmc.h:344
lsn_t mmc_get_disc_last_lsn(const CdIo_t *p_cdio)
cdio_mmc_feature_t
Definition: mmc.h:380
driver_return_code_t
Definition: device.h:219
cdio_mmc_level_t mmc_get_drive_mmc_cap(CdIo_t *p_cdio)
driver_return_code_t mmc_audio_get_volume(CdIo_t *p_cdio, mmc_audio_volume_t *p_volume)
uint8_t information[4]
Definition: mmc.h:97
cdio_mmc_get_conf_t
Definition: mmc.h:366
struct mmc_feature_list_header_s cdio_mmc_feature_list_header_t
Format of header block in data returned from an MMC GET_CONFIGURATION command.
int32_t lsn_t
Definition: types.h:265
uint8_t segment_number
Definition: mmc.h:77
#define PRAGMA_BEGIN_PACKED
Definition: types.h:167
driver_return_code_t mmc_audio_read_subchannel(CdIo_t *p_cdio, cdio_subchannel_t *p_subchannel)
int mmc_last_cmd_sense(const CdIo_t *p_cdio, cdio_mmc_request_sense_t **pp_sense)
uint8_t format
Definition: mmc.h:500
int mmc_get_blocksize(CdIo_t *p_cdio)
cdio_mmc_feature_profile_t
Definition: mmc_util.h:36
cdio_mmc_read_cd_type_t debug_cdio_mmc_read_cd_type
uint8_t track_t
Definition: types.h:275
mmc_audio_volume_entry_t port[4]
Definition: mmc.h:355
uint8_t sense_key
Definition: mmc.h:88
cdio_mmc_sense_key_t
Definition: mmc.h:111
uint8_t asb[46]
Definition: mmc.h:104
struct cdio_mmc_request_sense cdio_mmc_request_sense_t
cdio_mmc_read_sub_state_t debug_cdio_mmc_read_sub_state
int mmc_get_media_changed(const CdIo_t *p_cdio)
uint8_t abs_addr[4]
Definition: mmc.h:505
uint8_t track
Definition: mmc.h:503
uint8_t field[MAX_CDB_LEN]
Definition: mmc.h:460
uint8_t control
Definition: mmc.h:502
enum mmc_direction_s cdio_mmc_direction_t
const char * mmc_cmd2str(uint8_t command)
uint8_t reserved
Definition: mmc.h:497
uint8_t error_code
Definition: mmc.h:74
uint8_t rel_addr[4]
Definition: mmc.h:506
cdio_mmc_read_disc_info_datatype_t
Definition: mmc.h:330
cdio_mmc_readtoc_t
Definition: mmc.h:303
cdio_mmc_mode_page_t debug_cdio_mmc_mode_page
driver_return_code_t mmc_read_sectors(const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, int read_sector_type, uint32_t i_blocks)
uint8_t filemark
Definition: mmc.h:94
cdio_mmc_gpcmd_t debug_cdio_mmc_gpcmd
cdio_mmc_read_sub_state_t
Definition: mmc.h:277
uint8_t eom
Definition: mmc.h:91
struct mmc_cdb_s mmc_cdb_t
A Command Descriptor Block (CDB) used in sending MMC commands.
cdio_mmc_read_cd_type_t
Definition: mmc.h:291
The top-level header for libcdio: the CD Input and Control library. Applications include this for any...
uint8_t ili
Definition: mmc.h:90
struct mmc_subchannel_s cdio_mmc_subchannel_t
uint8_t reserved1
Definition: mmc.h:89
driver_return_code_t mmc_set_blocksize(const CdIo_t *p_cdio, uint16_t i_blocksize)
int mmc_get_tray_status(const CdIo_t *p_cdio)
uint8_t command_info[4]
Definition: mmc.h:99
driver_return_code_t mmc_run_cmd_len(const CdIo_t *p_cdio, unsigned int i_timeout_ms, const mmc_cdb_t *p_cdb, unsigned int i_cdb, cdio_mmc_direction_t e_direction, unsigned int i_buf, void *p_buf)
Structure to return CD vendor, model, and revision-level strings obtained via the INQUIRY command...
Definition: device.h:122
cdio_mmc_feature_interface_t debug_cdio_mmc_feature_interface
struct _CdIo CdIo_t
Definition: cdio.h:46
uint8_t audio_status
Definition: mmc.h:498
driver_return_code_t mmc_run_cmd(const CdIo_t *p_cdio, unsigned int i_timeout_ms, const mmc_cdb_t *p_cdb, cdio_mmc_direction_t e_direction, unsigned int i_buf, void *p_buf)
uint8_t volume
Definition: mmc.h:345
uint8_t ascq
Definition: mmc.h:101
A Command Descriptor Block (CDB) used in sending MMC commands.
Definition: mmc.h:459
const char * mmc_audio_state2str(uint8_t i_audio_state)
bool_3way_t
Definition: types.h:235
uint8_t sks[3]
Definition: mmc.h:103
cdio_mmc_get_conf_t debug_cdio_mmc_get_conf
cdio_mmc_level_t
Definition: mmc.h:628
bool mmc_get_hwinfo(const CdIo_t *p_cdio, cdio_hwinfo_t *p_hw_info)
#define GNUC_PACKED
Definition: types.h:151
Multimedia Command (MMC) "helper" routines that don't depend on anything other than headers...
driver_return_code_t mmc_isrc_track_read_subchannel(CdIo_t *p_cdio, const track_t track, char *p_isrc)
mmc_direction_s
Definition: mmc.h:482
discmode_t
Definition: disc.h:36
discmode_t mmc_get_discmode(const CdIo_t *p_cdio)
uint8_t mmc_get_cmd_len(uint8_t mmc_cmd)
discmode_t mmc_get_dvd_struct_physical(const CdIo_t *p_cdio, cdio_dvd_struct_t *s)
uint16_t data_length
Definition: mmc.h:499
uint8_t valid
Definition: mmc.h:75
uint8_t additional_sense_len
Definition: mmc.h:98
cdio_mmc_gpcmd_t
The opcode-portion (generic packet commands) of an MMC command.
Definition: mmc.h:138
uint8_t index
Definition: mmc.h:504
cdio_mmc_mode_page_t
Definition: mmc.h:315
cdio_mmc_feature_t debug_cdio_mmc_feature
bool_3way_t mmc_have_interface(CdIo_t *p_cdio, cdio_mmc_feature_interface_t e_interface)
cdio_mmc_readtoc_t debug_cdio_mmc_readtoc