X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=include%2Fntos%2Fcdrom.h;h=032bf4417d5df98a62c21490af782242ef4ecc60;hb=dfe4490844ac51a998fc38afaca3b3a067ef4d7b;hp=1c6937f1313ca6cb61b3af3dffd2588b14ee9ad2;hpb=4ff2e132cd27e187dffb796aaa479dc70adbff1c;p=reactos.git 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;