79 lines
1.9 KiB
Plaintext
79 lines
1.9 KiB
Plaintext
$OpenBSD: patch-plat_freebsd_c,v 1.2 2005/09/05 13:37:20 espie Exp $
|
|
--- plat_freebsd.c.orig Mon Feb 20 18:29:55 1995
|
|
+++ plat_freebsd.c Mon Sep 5 15:29:27 2005
|
|
@@ -5,10 +5,13 @@
|
|
*
|
|
* Todd Pfaff, 3/20/94
|
|
*
|
|
+ * 11/26/95: Modified to work under FreeBSD 2.x
|
|
+ * by Donald Burr <d_burr@ix.netcom.com>
|
|
+ *
|
|
*/
|
|
static char *ident = "@(#)plat_freebsd.c 1.2 2/20/95";
|
|
|
|
-#if defined(__FreeBSD__) || defined(__NetBSD__)
|
|
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
|
|
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
@@ -30,13 +33,16 @@ static char *ident = "@(#)plat_freebsd.c
|
|
#include "/sys/scsi/scsi_all.h"
|
|
#include "/sys/scsi/scsi_cd.h"
|
|
#else
|
|
+/*
|
|
#include <scsi/scsi_all.h>
|
|
#include <scsi/scsi_cd.h>
|
|
+*/
|
|
+#include <sys/scsiio.h>
|
|
#endif
|
|
|
|
#include "struct.h"
|
|
|
|
-#define DEFAULT_CD_DEVICE "/dev/rcd0d"
|
|
+#define DEFAULT_CD_DEVICE "/dev/rcd0c"
|
|
|
|
void *malloc();
|
|
|
|
@@ -163,7 +169,7 @@ gen_get_drive_status(d, oldmode, mode, p
|
|
}
|
|
|
|
if (ioctl(d->fd, CDIOCREADSUBCHANNEL, &sc)) {
|
|
-#ifdef __NetBSD__
|
|
+#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
|
/* we need to release the device so the kernel will notice
|
|
reloaded media */
|
|
(void) close(d->fd);
|
|
@@ -261,6 +267,9 @@ gen_set_volume(d, left, right)
|
|
|
|
bzero((char *)&vol, sizeof(vol));
|
|
|
|
+#define LEFT_PORT 0
|
|
+#define RIGHT_PORT 1
|
|
+
|
|
vol.vol[LEFT_PORT] = left;
|
|
vol.vol[RIGHT_PORT] = right;
|
|
|
|
@@ -345,14 +354,20 @@ gen_eject(d)
|
|
if (fstatfs(stbuf.st_rdev, &buf) == 0)
|
|
return (-3);
|
|
|
|
-#ifdef __NetBSD__
|
|
+#if defined(__NetBSD__) || defined(__FreeBSD__)
|
|
rval = ioctl(d->fd, CDIOCALLOW);
|
|
if (rval == 0)
|
|
#endif
|
|
rval = ioctl(d->fd, CDIOCEJECT);
|
|
-#ifdef __NetBSD__
|
|
+#if defined(__NetBSD__) || defined(__FreeBSD__)
|
|
if (rval == 0)
|
|
rval = ioctl(d->fd, CDIOCPREVENT);
|
|
+#endif
|
|
+#if defined(__OpenBSD__)
|
|
+ if (rval == 0) {
|
|
+ (void) close(d->fd);
|
|
+ d->fd = -1;
|
|
+ }
|
|
#endif
|
|
return rval;
|
|
}
|