From d7b0a90eacc5a4ec5886f50018679782efcd2a7b Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 27 Mar 2012 17:47:40 +0200 Subject: eject: new auto_eject code from Fedora Signed-off-by: Karel Zak --- misc-utils/eject.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'misc-utils/eject.c') diff --git a/misc-utils/eject.c b/misc-utils/eject.c index c37930177..a0f409fe9 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")); } /* -- cgit v1.2.3-55-g7522