From: Karel Zak Date: Tue, 27 Mar 2012 15:47:40 +0000 (+0200) Subject: eject: new auto_eject code from Fedora X-Git-Tag: v2.22-rc1~555^2~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d7b0a90eacc5a4ec5886f50018679782efcd2a7b;p=thirdparty%2Futil-linux.git eject: new auto_eject code from Fedora Signed-off-by: Karel Zak --- diff --git a/misc-utils/eject.c b/misc-utils/eject.c index c37930177a..a0f409fe99 100644 --- a/misc-utils/eject.c +++ b/misc-utils/eject.c @@ -303,8 +303,18 @@ static char *find_device(const char *name) /* Set or clear auto-eject mode. */ static void auto_eject(int fd, int on) { - if (ioctl(fd, CDROMEJECT_SW, on) != 0) - err(EXIT_FAILURE, _("CD-ROM auto-eject command failed")); + int status = -1; + +#if defined(CDROM_SET_OPTIONS) && defined(CDROM_CLEAR_OPTIONS) + if (on) + status = ioctl(fd, CDROM_SET_OPTIONS, CDO_AUTO_EJECT); + else + status = ioctl(fd, CDROM_CLEAR_OPTIONS, CDO_AUTO_EJECT); +#else + errno = ENOSYS; +#endif + if (status < 0) + err(EXIT_FAILURE,_("CD-ROM auto-eject command failed")); } /*