static unsigned int cd_mrw_w;
/* media info */
+static unsigned int cd_media;
static unsigned int cd_media_cd_rom;
static unsigned int cd_media_cd_r;
static unsigned int cd_media_cd_rw;
return 0;
}
+static int cd_media_compat(struct udev *udev, int fd)
+{
+ if (ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT) != CDS_DISC_OK) {
+ info(udev, "CDROM_DRIVE_STATUS != CDS_DISC_OK\n");
+ return -1;
+ }
+ cd_media = 1;
+ return 0;
+}
+
static int cd_inquiry(struct udev *udev, int fd) {
struct scsi_cmd sc;
unsigned char inq[128];
return -1;
}
+ cd_media = 1;
+
switch (cur_profile) {
case 0x03:
case 0x04:
goto exit;
}
- /* check drive */
+ /* check for media */
+ if (cd_media_compat(udev, fd) < 0)
+ goto print;
+
+ /* check if drive talks MMC */
if (cd_inquiry(udev, fd) < 0)
goto print;
if (cd_mrw_w)
printf("ID_CDROM_MRW_W=1\n");
+ if (cd_media)
+ printf("ID_CDROM_MEDIA=1\n");
if (cd_media_mo)
printf("ID_CDROM_MEDIA_MO=1\n");
if (cd_media_mrw)