From dfe4490844ac51a998fc38afaca3b3a067ef4d7b Mon Sep 17 00:00:00 2001 From: short <> Date: Wed, 6 Nov 2002 22:38:25 +0000 Subject: [PATCH] +TOC_DATA_TRACK +TOC_LAST_TRACK Commented TRACK_DATA and CDROM_TOC --- include/ntos/cdrom.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/include/ntos/cdrom.h b/include/ntos/cdrom.h index 1c6937f..032bf44 100644 --- a/include/ntos/cdrom.h +++ b/include/ntos/cdrom.h @@ -28,19 +28,22 @@ #define MAXIMUM_NUMBER_TRACKS 100 #define MAXIMUM_CDROM_SIZE 804 +#define TOC_DATA_TRACK 0x04 /* TRACK_DATA.Control */ +#define TOC_LAST_TRACK 0xAA /* TRACK_DATA.TrackNumber */ + typedef struct _TRACK_DATA { UCHAR Reserved; - UCHAR Control : 4; - UCHAR Adr : 4; - UCHAR TrackNumber; + UCHAR Control : 4; /* bitfield; 0 || TOC_DATA_TRACK */ + UCHAR Adr : 4; /* Q-subchannel info */ + UCHAR TrackNumber; /* CDROM_TOC.FirstTrack or TOC_LAST_TRACK on last+1 track CDROM_TOC.TrackData[CDROM_TOC.LastTrack-1] */ UCHAR Reserved1; - UCHAR Address[4]; + UCHAR Address[4]; /* big-endian LBA address for TOC_DATA_TRACK; MSF (sometimes BCD-MSF) for audio */ } TRACK_DATA, *PTRACK_DATA; typedef struct _CDROM_TOC { - UCHAR Length[2]; - UCHAR FirstTrack; - UCHAR LastTrack; + UCHAR Length[2]; /* <='sizeof(CDROM_TOC)-2' or less; it does not count 'Length' itself; little-endian */ + UCHAR FirstTrack; /* based anywhere */ + UCHAR LastTrack; /* last TrackData has TOC_LAST_TRACK; 'LastTrack-FirstTrack+1' is the count */ TRACK_DATA TrackData[MAXIMUM_NUMBER_TRACKS]; } CDROM_TOC, *PCDROM_TOC; -- 1.8.3.1