aboutsummaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1994-11-07 09:14:57 +0800
committergibbs <gibbs@FreeBSD.org>1994-11-07 09:14:57 +0800
commitab8a64c8fc2cc67a5f7982703b4e74ec047edd3c (patch)
tree59d7291ce30f79061b84f397c22b512c60edaf6c /audio
parentaefcba8063b28c2e773d497db507f1d83b6cea76 (diff)
downloadfreebsd-ports-graphics-ab8a64c8fc2cc67a5f7982703b4e74ec047edd3c.tar.gz
freebsd-ports-graphics-ab8a64c8fc2cc67a5f7982703b4e74ec047edd3c.tar.zst
freebsd-ports-graphics-ab8a64c8fc2cc67a5f7982703b4e74ec047edd3c.zip
Make the eject function work. This requires using the CDIOCALLOW ioctl
before the CDIOCEJECT ioctl otherwise the media is still locked when you attempt the eject. The previous code may have worked on drives that did not support the media lock feature.
Diffstat (limited to 'audio')
-rw-r--r--audio/xcdplayer/files/cdrom_freebsd.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/audio/xcdplayer/files/cdrom_freebsd.c b/audio/xcdplayer/files/cdrom_freebsd.c
index c65d2571b18..d723b81b36a 100644
--- a/audio/xcdplayer/files/cdrom_freebsd.c
+++ b/audio/xcdplayer/files/cdrom_freebsd.c
@@ -174,6 +174,11 @@ cdrom_eject() {
if (cdrom_fd == -1)
return(-1);
+ if (ioctl(cdrom_fd, CDIOCALLOW) == -1) {
+ perror("ioctl(cdromallow)");
+ return(-1);
+ }
+
if (ioctl(cdrom_fd, CDIOCEJECT) == -1) {
perror("ioctl(cdromeject)");
return(-1);