summaryrefslogtreecommitdiff
path: root/sys/dev/ic/mfi.c
diff options
context:
space:
mode:
authorMarco Peereboom <marco@cvs.openbsd.org>2006-04-06 20:22:54 +0000
committerMarco Peereboom <marco@cvs.openbsd.org>2006-04-06 20:22:54 +0000
commitbc1b7398df8a7ea1465bb2d937936f2f61bfa17d (patch)
treee43250a9e6ba246bca8a10f355fdc5b49402ad0c /sys/dev/ic/mfi.c
parentbbeda6bf986fefcbbe1725898f924bffd03492e7 (diff)
Add skeleton driver for MegaRAID SAS.
Diffstat (limited to 'sys/dev/ic/mfi.c')
-rw-r--r--sys/dev/ic/mfi.c104
1 files changed, 104 insertions, 0 deletions
diff --git a/sys/dev/ic/mfi.c b/sys/dev/ic/mfi.c
new file mode 100644
index 00000000000..2ba693fc522
--- /dev/null
+++ b/sys/dev/ic/mfi.c
@@ -0,0 +1,104 @@
+/* $OpenBSD: mfi.c,v 1.1 2006/04/06 20:22:53 marco Exp $ */
+/*
+ * Copyright (c) 2006 Marco Peereboom <marco@peereboom.us>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "bio.h"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/buf.h>
+#include <sys/ioctl.h>
+#include <sys/device.h>
+#include <sys/kernel.h>
+#include <sys/malloc.h>
+#include <sys/proc.h>
+#include <sys/lock.h>
+
+#include <machine/bus.h>
+
+#include <scsi/scsi_all.h>
+#include <scsi/scsi_disk.h>
+#include <scsi/scsiconf.h>
+
+#include <dev/ic/mfireg.h>
+#include <dev/ic/mfivar.h>
+
+#if NBIO > 0
+#include <dev/biovar.h>
+#endif
+
+struct cfdriver mfi_cd = {
+ NULL, "mfi", DV_DULL
+};
+
+int mfi_scsi_cmd(struct scsi_xfer *);
+int mfi_scsi_ioctl(struct scsi_link *, u_long, caddr_t, int, struct proc *);
+void mfiminphys(struct buf *bp);
+
+struct scsi_adapter mfi_switch = {
+ mfi_scsi_cmd, mfiminphys, 0, 0, mfi_scsi_ioctl
+};
+
+struct scsi_device mfi_dev = {
+ NULL, NULL, NULL, NULL
+};
+
+void
+mfiminphys(struct buf *bp)
+{
+#define MFI_MAXFER 4096
+ if (bp->b_bcount > MFI_MAXFER)
+ bp->b_bcount = MFI_MAXFER;
+ minphys(bp);
+}
+
+int
+mfi_attach(struct mfi_softc *sc)
+{
+ return (1);
+}
+
+int
+mfi_intr(void *v)
+{
+ return (0); /* XXX unclaimed */
+}
+
+int
+mfi_scsi_ioctl(struct scsi_link *link, u_long cmd, caddr_t addr, int flag,
+ struct proc *p)
+{
+#if 0
+ struct ami_softc *sc = (struct ami_softc *)link->adapter_softc;
+
+ if (sc->sc_ioctl)
+ return (sc->sc_ioctl(link->adapter_softc, cmd, addr));
+ else
+ return (ENOTTY);
+#endif
+ return (ENOTTY);
+}
+
+int
+mfi_scsi_cmd(struct scsi_xfer *xs)
+{
+#if 0
+ struct scsi_link *link = xs->sc_link;
+ struct ami_softc *sc = link->adapter_softc;
+ struct device *dev = link->device_softc;
+#endif
+ return (0);
+}