summaryrefslogtreecommitdiff
path: root/system/vhba-module
diff options
context:
space:
mode:
Diffstat (limited to 'system/vhba-module')
-rw-r--r--system/vhba-module/README4
-rw-r--r--system/vhba-module/doinst.sh2
-rw-r--r--system/vhba-module/slack-desc19
-rw-r--r--system/vhba-module/vhba-module.SlackBuild73
-rw-r--r--system/vhba-module/vhba-module.info10
-rw-r--r--system/vhba-module/vhba-update_to_svn.diff85
6 files changed, 193 insertions, 0 deletions
diff --git a/system/vhba-module/README b/system/vhba-module/README
new file mode 100644
index 0000000000..1c7ddd2b4d
--- /dev/null
+++ b/system/vhba-module/README
@@ -0,0 +1,4 @@
+This is VHBA (Virtual SCSI Host Bus adapter), a Linux kernel module which
+acts as a low-level SCSI driver and which provides the SCSI layer with a
+virtual SCSI adapter which can have multiple virtual devices. It is part
+of the userspace-cdemu suite, a free GPL CD/DVD-ROM device emulator for linux.
diff --git a/system/vhba-module/doinst.sh b/system/vhba-module/doinst.sh
new file mode 100644
index 0000000000..f61efdf685
--- /dev/null
+++ b/system/vhba-module/doinst.sh
@@ -0,0 +1,2 @@
+chroot . /sbin/depmod -a
+
diff --git a/system/vhba-module/slack-desc b/system/vhba-module/slack-desc
new file mode 100644
index 0000000000..ab38030776
--- /dev/null
+++ b/system/vhba-module/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------|
+vhba-module: vhba-module (virtual scsi host bus adapter module)
+vhba-module:
+vhba-module: This is VHBA (Virtual SCSI Host Bus adapter), a Linux kernel
+vhba-module: module which acts as a low-level SCSI driver and which provides
+vhba-module: the SCSI layer with a virtual SCSI adapter which can have
+vhba-module: multiple virtual devices. It is part of the userspace-cdemu
+vhba-module: suite, a free, GPL CD/DVD-ROM device emulator for linux.
+vhba-module:
+vhba-module: Homepage: http://cdemu.sourceforge.net/pkg_vhba.php
+vhba-module:
+vhba-module:
diff --git a/system/vhba-module/vhba-module.SlackBuild b/system/vhba-module/vhba-module.SlackBuild
new file mode 100644
index 0000000000..7d8e33450d
--- /dev/null
+++ b/system/vhba-module/vhba-module.SlackBuild
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+# Slackware build script for vhba-module
+
+# Copyright 2008-2009 Heinz Wiesinger <pprkut@liwjatan.at>
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PRGNAM=vhba-module
+SRC_VERSION=1.2.1
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+KERNEL=${KERNEL:-$(uname -r)}
+VERSION=${SRC_VERSION}_$(echo $KERNEL | tr - _)
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=${PKG:-$TMP/package-$PRGNAM}
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$SRC_VERSION
+tar xvf $CWD/$PRGNAM-$SRC_VERSION.tar.bz2
+cd $PRGNAM-$SRC_VERSION
+chown -R root:root .
+chmod -R u+w,go+r-w,a-s .
+
+# Bring vhba.c up to date with the svn repo copy
+patch -p1 < $CWD/vhba-update_to_svn.diff
+
+make KERNELRELEASE=$KERNEL
+
+mkdir -p $PKG/lib/modules/$KERNEL/extra
+install -m 0644 vhba.ko $PKG/lib/modules/$KERNEL/extra/
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/system/vhba-module/vhba-module.info b/system/vhba-module/vhba-module.info
new file mode 100644
index 0000000000..c62c6b3391
--- /dev/null
+++ b/system/vhba-module/vhba-module.info
@@ -0,0 +1,10 @@
+PRGNAM="vhba-module"
+VERSION="1.2.1"
+HOMEPAGE="http://cdemu.sourceforge.net/pkg_vhba.php"
+DOWNLOAD="http://downloads.sourceforge.net/cdemu/vhba-module-1.2.1.tar.bz2"
+MD5SUM="a3b6ad798f2b72ef599df797ef79e5ec"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Niklas 'Nille' Åkerström"
+EMAIL="nille.kungen[AT]gmail.com"
+APPROVED="rworkman"
diff --git a/system/vhba-module/vhba-update_to_svn.diff b/system/vhba-module/vhba-update_to_svn.diff
new file mode 100644
index 0000000000..41591380ea
--- /dev/null
+++ b/system/vhba-module/vhba-update_to_svn.diff
@@ -0,0 +1,85 @@
+diff -Nur vhba-module-1.2.1.orig//kat/have_scsi_macros.c vhba-module-1.2.1/kat/have_scsi_macros.c
+--- vhba-module-1.2.1.orig//kat/have_scsi_macros.c 2009-01-17 17:21:16.000000000 -0600
++++ vhba-module-1.2.1/kat/have_scsi_macros.c 2010-06-30 23:41:37.203194236 -0500
+@@ -1,4 +1,3 @@
+-#include <linux/autoconf.h>
+ #include <scsi/scsi_cmnd.h>
+
+ void testfunc (void);
+diff -Nur vhba-module-1.2.1.orig//kat/scatterlist_has_page_link.c vhba-module-1.2.1/kat/scatterlist_has_page_link.c
+--- vhba-module-1.2.1.orig//kat/scatterlist_has_page_link.c 2009-01-17 17:21:16.000000000 -0600
++++ vhba-module-1.2.1/kat/scatterlist_has_page_link.c 2010-06-30 23:40:49.982069552 -0500
+@@ -1,4 +1,3 @@
+-#include <linux/autoconf.h>
+ #include <linux/scatterlist.h>
+
+ /* Note: scatterlist.page_link is used in kernel (2.6.24 <= version < X) */
+diff -Nur vhba-module-1.2.1.orig//vhba.c vhba-module-1.2.1/vhba.c
+--- vhba-module-1.2.1.orig//vhba.c 2009-01-17 17:21:16.000000000 -0600
++++ vhba-module-1.2.1/vhba.c 2010-06-30 23:40:14.430097774 -0500
+@@ -1,7 +1,7 @@
+ /*
+ * vhba.c
+ *
+- * Copyright (C) 2007 Chia-I Wu <b90201047 AT ntu DOT edu DOT tw>
++ * Copyright (C) 2007-2010 Chia-I Wu <b90201047 AT ntu DOT edu DOT tw>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+@@ -26,6 +26,10 @@
+ #include <linux/platform_device.h>
+ #include <linux/miscdevice.h>
+ #include <linux/poll.h>
++#include <linux/slab.h>
++#ifdef CONFIG_COMPAT
++#include <linux/compat.h>
++#endif
+ #include <asm/uaccess.h>
+ #include <scsi/scsi.h>
+ #include <scsi/scsi_host.h>
+@@ -52,7 +56,7 @@
+ dev_warn(&(scmd)->device->sdev_gendev, fmt, ##a)
+
+
+-#define VHBA_MAX_SECTORS_PER_IO 128
++#define VHBA_MAX_SECTORS_PER_IO 256
+ #define VHBA_MAX_ID 32
+ #define VHBA_CAN_QUEUE 32
+ #define VHBA_INVALID_ID VHBA_MAX_ID
+@@ -671,7 +675,7 @@
+ return ret;
+ }
+
+-static int vhba_ctl_ioctl (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
++static long vhba_ctl_ioctl (struct file *file, unsigned int cmd, unsigned long arg)
+ {
+ struct vhba_device *vdev = file->private_data;
+ struct vhba_host *vhost;
+@@ -704,6 +708,15 @@
+ return -ENOTTY;
+ }
+
++#ifdef CONFIG_COMPAT
++static long vhba_ctl_compat_ioctl (struct file *file, unsigned int cmd, unsigned long arg)
++{
++ unsigned long compat_arg = (unsigned long)compat_ptr(arg);
++
++ return vhba_ctl_ioctl(file, cmd, compat_arg);
++}
++#endif
++
+ static unsigned int vhba_ctl_poll(struct file *file, poll_table *wait)
+ {
+ struct vhba_device *vdev = file->private_data;
+@@ -781,7 +794,10 @@
+ .read = vhba_ctl_read,
+ .write = vhba_ctl_write,
+ .poll = vhba_ctl_poll,
+- .ioctl = vhba_ctl_ioctl,
++ .unlocked_ioctl = vhba_ctl_ioctl,
++#ifdef CONFIG_COMPAT
++ .compat_ioctl = vhba_ctl_compat_ioctl,
++#endif
+ };
+
+ static struct miscdevice vhba_miscdev = {