struct packet_command
{ unsignedchar cmd[CDROM_PACKET_SIZE]; unsignedchar *buffer; unsignedint buflen; int stat; struct scsi_sense_hdr *sshdr; unsignedchar data_direction; int quiet; int timeout; void *reserved[1];
};
/* * _OLD will use PIO transfer on atapi devices, _BPC_* will use DMA
*/ #define CDDA_OLD 0 /* old style */ #define CDDA_BPC_SINGLE 1 /* single frame block pc */ #define CDDA_BPC_FULL 2 /* multi frame block pc */
/* Uniform cdrom data structures for cdrom.c */ struct cdrom_device_info { conststruct cdrom_device_ops *ops; /* link to device_ops */ struct list_head list; /* linked list of all device_info */ struct gendisk *disk; /* matching block layer disk */ void *handle; /* driver-dependent data */ /* specifications */ int mask; /* mask of capability: disables them */ int speed; /* maximum speed for reading data */ int capacity; /* number of discs in jukebox */ /* device-related storage */ unsignedint options : 30; /* options flags */ unsigned mc_flags : 2; /* media change buffer flags */ unsignedint vfs_events; /* cached events for vfs path */ unsignedint ioctl_events; /* cached events for ioctl path */ int use_count; /* number of times device opened */ char name[20]; /* name of the device type */ /* per-device flags */
__u8 sanyo_slot : 2; /* Sanyo 3 CD changer support */
__u8 keeplocked : 1; /* CDROM_LOCKDOOR status */
__u8 reserved : 5; /* not used yet */ int cdda_method; /* see flags */
__u8 last_sense;
__u8 media_written; /* dirty flag, DVD+RW bookkeeping */ unsignedshort mmc3_profile; /* current MMC3 profile */ int mrw_mode_page; bool opened_for_data;
__s64 last_media_change_ms;
};
struct cdrom_device_ops { /* routines */ int (*open) (struct cdrom_device_info *, int); void (*release) (struct cdrom_device_info *); int (*drive_status) (struct cdrom_device_info *, int); unsignedint (*check_events) (struct cdrom_device_info *cdi, unsignedint clearing, int slot); int (*tray_move) (struct cdrom_device_info *, int); int (*lock_door) (struct cdrom_device_info *, int); int (*select_speed) (struct cdrom_device_info *, unsignedlong); int (*get_last_session) (struct cdrom_device_info *, struct cdrom_multisession *); int (*get_mcn) (struct cdrom_device_info *, struct cdrom_mcn *); /* hard reset device */ int (*reset) (struct cdrom_device_info *); /* play stuff */ int (*audio_ioctl) (struct cdrom_device_info *,unsignedint, void *);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.