openbsd-ports/audio/workman/patches/patch-plat_freebsd_c

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;
}