/* See LICENSE file for copyright and license details. */ #include #include #include #include #include #include #include #include "util.h" enum { CDROM_EJECT = 0x5309, CDROM_CLOSE_TRAY = 0x5319, }; static void usage(void) { eprintf("usage: %s [-t] [devname]\n", argv0); } int main(int argc, char *argv[]) { int fd, out; char *cdrom = "/dev/sr0"; int tflag = 0; ARGBEGIN { case 't': tflag = 1; break; default: usage(); } ARGEND; if (argc > 1) usage(); else if (argc == 1) cdrom = argv[0]; fd = open(cdrom, O_RDONLY | O_NONBLOCK); if (fd < 0) eprintf("open %s:", cdrom); if (tflag) { if (ioctl(fd, CDROM_CLOSE_TRAY, &out) < 0) eprintf("ioctl:"); } else { if (ioctl(fd, CDROM_EJECT, &out) < 0) eprintf("ioctl:"); } close(fd); return 0; }