aboutsummaryrefslogtreecommitdiff
path: root/net/nbd-server
diff options
context:
space:
mode:
authorErwin Lansing <erwin@FreeBSD.org>2003-12-29 15:19:45 +0000
committerErwin Lansing <erwin@FreeBSD.org>2003-12-29 15:19:45 +0000
commit695db4a30d3c2024d29105dbc92add758597e10e (patch)
tree18f4fdf17f5d4a1474c65d7ff6f9dac6ce2b13f0 /net/nbd-server
parent224bfadf53d552588119ad981144624ec9a9a957 (diff)
downloadports-695db4a30d3c2024d29105dbc92add758597e10e.tar.gz
ports-695db4a30d3c2024d29105dbc92add758597e10e.zip
Notes
Diffstat (limited to 'net/nbd-server')
-rw-r--r--net/nbd-server/Makefile27
-rw-r--r--net/nbd-server/distinfo1
-rw-r--r--net/nbd-server/files/nbd.h106
-rw-r--r--net/nbd-server/files/patch-include11
-rw-r--r--net/nbd-server/pkg-descr7
-rw-r--r--net/nbd-server/pkg-plist1
6 files changed, 153 insertions, 0 deletions
diff --git a/net/nbd-server/Makefile b/net/nbd-server/Makefile
new file mode 100644
index 000000000000..a42eb4c96ace
--- /dev/null
+++ b/net/nbd-server/Makefile
@@ -0,0 +1,27 @@
+# New ports collection makefile for: nbd-server
+# Date created: 14 december 2003
+# Whom: Christian Laursen <xi@borderworlds.dk>
+#
+# $FreeBSD$
+#
+
+PORTNAME= nbd-server
+PORTVERSION= 2.6.0
+CATEGORIES= net
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR= nbd
+DISTNAME= nbd-${PORTVERSION}
+
+MAINTAINER= xi@borderworlds.dk
+COMMENT= A server for the linux network block device (nbd)
+
+WRKSRC= ${WRKDIR}/nbd-2.6
+
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --prefix=${PREFIX}
+USE_GMAKE= yes
+
+post-extract:
+ ${CP} ${FILESDIR}/nbd.h ${WRKSRC}
+
+.include <bsd.port.mk>
diff --git a/net/nbd-server/distinfo b/net/nbd-server/distinfo
new file mode 100644
index 000000000000..6d4391bb5599
--- /dev/null
+++ b/net/nbd-server/distinfo
@@ -0,0 +1 @@
+MD5 (nbd-2.6.0.tar.gz) = 97ee3120f321628b86f5c0fe77f89255
diff --git a/net/nbd-server/files/nbd.h b/net/nbd-server/files/nbd.h
new file mode 100644
index 000000000000..bf276f36d2c6
--- /dev/null
+++ b/net/nbd-server/files/nbd.h
@@ -0,0 +1,106 @@
+/*
+ * 1999 Copyright (C) Pavel Machek, pavel@ucw.cz. This code is GPL.
+ * 1999/11/04 Copyright (C) 1999 VMware, Inc. (Regis "HPReg" Duchesne)
+ * Made nbd_end_request() use the io_request_lock
+ * 2001 Copyright (C) Steven Whitehouse
+ * New nbd_end_request() for compatibility with new linux block
+ * layer code.
+ */
+
+#ifndef LINUX_NBD_H
+#define LINUX_NBD_H
+
+#define NBD_SET_SOCK _IO( 0xab, 0 )
+#define NBD_SET_BLKSIZE _IO( 0xab, 1 )
+#define NBD_SET_SIZE _IO( 0xab, 2 )
+#define NBD_DO_IT _IO( 0xab, 3 )
+#define NBD_CLEAR_SOCK _IO( 0xab, 4 )
+#define NBD_CLEAR_QUE _IO( 0xab, 5 )
+#define NBD_PRINT_DEBUG _IO( 0xab, 6 )
+#define NBD_SET_SIZE_BLOCKS _IO( 0xab, 7 )
+#define NBD_DISCONNECT _IO( 0xab, 8 )
+
+#ifdef MAJOR_NR
+
+#include <linux/locks.h>
+#include <asm/semaphore.h>
+
+#define LOCAL_END_REQUEST
+
+#include <linux/blk.h>
+
+#ifdef PARANOIA
+extern int requests_in;
+extern int requests_out;
+#endif
+
+static void
+nbd_end_request(struct request *req)
+{
+ struct buffer_head *bh;
+ unsigned nsect;
+ unsigned long flags;
+ int uptodate = (req->errors == 0) ? 1 : 0;
+
+#ifdef PARANOIA
+ requests_out++;
+#endif
+ spin_lock_irqsave(&io_request_lock, flags);
+ while((bh = req->bh) != NULL) {
+ nsect = bh->b_size >> 9;
+ blk_finished_io(nsect);
+ req->bh = bh->b_reqnext;
+ bh->b_reqnext = NULL;
+ bh->b_end_io(bh, uptodate);
+ }
+ blkdev_release_request(req);
+ spin_unlock_irqrestore(&io_request_lock, flags);
+}
+
+#define MAX_NBD 128
+
+struct nbd_device {
+ int refcnt;
+ int flags;
+ int harderror; /* Code of hard error */
+#define NBD_READ_ONLY 0x0001
+#define NBD_WRITE_NOCHK 0x0002
+ struct socket * sock;
+ struct file * file; /* If == NULL, device is not ready, yet */
+ int magic; /* FIXME: not if debugging is off */
+ spinlock_t queue_lock;
+ struct list_head queue_head; /* Requests are added here... */
+ struct semaphore tx_lock;
+};
+#endif
+
+/* This now IS in some kind of include file... */
+
+/* These are send over network in request/reply magic field */
+
+#define NBD_REQUEST_MAGIC 0x25609513
+#define NBD_REPLY_MAGIC 0x67446698
+/* Do *not* use magics: 0x12560953 0x96744668. */
+
+/*
+ * This is packet used for communication between client and
+ * server. All data are in network byte order.
+ */
+struct nbd_request {
+ u32 magic;
+ u32 type; /* == READ || == WRITE */
+ char handle[8];
+ u64 from;
+ u32 len;
+}
+#ifdef __GNUC__
+ __attribute__ ((packed))
+#endif
+;
+
+struct nbd_reply {
+ u32 magic;
+ u32 error; /* 0 = ok, else error */
+ char handle[8]; /* handle you got from request */
+};
+#endif
diff --git a/net/nbd-server/files/patch-include b/net/nbd-server/files/patch-include
new file mode 100644
index 000000000000..90e84a80acc4
--- /dev/null
+++ b/net/nbd-server/files/patch-include
@@ -0,0 +1,11 @@
+diff -urN nbd-2.6.orig/nbd-server.c nbd-2.6/nbd-server.c
+--- nbd-2.6.orig/nbd-server.c Thu Oct 16 15:08:17 2003
++++ nbd-server.c Sun Dec 14 23:48:10 2003
+@@ -53,6 +53,7 @@
+ #include <sys/stat.h>
+ #include <sys/wait.h> /* wait */
+ #include <sys/ioctl.h>
++#include <sys/param.h>
+ #include <sys/mount.h> /* For BLKGETSIZE */
+ #include <signal.h> /* sigaction */
+ #include <netinet/tcp.h>
diff --git a/net/nbd-server/pkg-descr b/net/nbd-server/pkg-descr
new file mode 100644
index 000000000000..2c38a7f929e1
--- /dev/null
+++ b/net/nbd-server/pkg-descr
@@ -0,0 +1,7 @@
+This is a server for the linux network block device (nbd). It allows linux to
+use a partition or a file over the network as a regular block device.
+
+WWW: http://nbd.sourceforge.net/
+
+- Christian
+xi@borderworlds.dk
diff --git a/net/nbd-server/pkg-plist b/net/nbd-server/pkg-plist
new file mode 100644
index 000000000000..aebf9657f509
--- /dev/null
+++ b/net/nbd-server/pkg-plist
@@ -0,0 +1 @@
+bin/nbd-server