diff options
Diffstat (limited to 'usr.sbin/burncd/burncd.c')
-rw-r--r-- | usr.sbin/burncd/burncd.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/usr.sbin/burncd/burncd.c b/usr.sbin/burncd/burncd.c index ea36208..660e28b 100644 --- a/usr.sbin/burncd/burncd.c +++ b/usr.sbin/burncd/burncd.c @@ -101,13 +101,6 @@ main(int argc, char **argv) err_set_exit(cleanup); for (arg = 0; arg < argc; arg++) { - if (!strcmp(argv[arg], "blank")) { - if (!quiet) - fprintf(stderr, "blanking CD, please wait..\n"); - if (ioctl(fd, CDRIOCBLANK) < 0) - err(EX_IOERR, "ioctl(CDRIOCBLANK)"); - continue; - } if (!strcmp(argv[arg], "fixate")) { if (!quiet) fprintf(stderr, "fixating CD, please wait..\n"); @@ -115,6 +108,25 @@ main(int argc, char **argv) err(EX_IOERR, "ioctl(CDRIOCCLOSEDISK)"); break; } + if (!strcmp(argv[arg], "msinfo")) { + struct ioc_read_toc_single_entry entry; + + bzero(&entry, sizeof(struct ioc_read_toc_single_entry)); + entry.address_format = CD_LBA_FORMAT; + if (ioctl(fd, CDIOREADTOCENTRY, &entry) < 0) + err(EX_IOERR, "ioctl(CDIOREADTOCENTRY)"); + if (ioctl(fd, CDRIOCNEXTWRITEABLEADDR, &addr) < 0) + err(EX_IOERR, "ioctl(CDRIOCNEXTWRITEABLEADDR)"); + fprintf(stderr, "%d, %d\n", entry.entry.addr.lba, addr); + break; + } + if (!strcmp(argv[arg], "blank")) { + if (!quiet) + fprintf(stderr, "blanking CD, please wait..\n"); + if (ioctl(fd, CDRIOCBLANK) < 0) + err(EX_IOERR, "ioctl(CDRIOCBLANK)"); + continue; + } if (!strcmp(argv[arg], "audio") || !strcmp(argv[arg], "raw")) { track.test_write = test_write; track.track_type = CDR_DB_RAW; |