diff options
author | erwin <erwin@FreeBSD.org> | 2003-12-29 15:19:45 +0000 |
---|---|---|
committer | erwin <erwin@FreeBSD.org> | 2003-12-29 15:19:45 +0000 |
commit | 39dc72bbabd9a8484e2197ff8ce9c25eb6c45884 (patch) | |
tree | c7b2792acd18d8740cfc78610841c24c6066a81a /net | |
parent | 5aa40e4faa4b2d7f5dab97a6ca5e4d413c4616c1 (diff) | |
download | FreeBSD-ports-39dc72bbabd9a8484e2197ff8ce9c25eb6c45884.zip FreeBSD-ports-39dc72bbabd9a8484e2197ff8ce9c25eb6c45884.tar.gz |
Add nbd-server 2.6.0,
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.
PR: 60242
Submitted by: Christian Laursen <xi@borderworlds.dk>
Diffstat (limited to 'net')
-rw-r--r-- | net/Makefile | 1 | ||||
-rw-r--r-- | net/nbd-server/Makefile | 27 | ||||
-rw-r--r-- | net/nbd-server/distinfo | 1 | ||||
-rw-r--r-- | net/nbd-server/files/nbd.h | 106 | ||||
-rw-r--r-- | net/nbd-server/files/patch-include | 11 | ||||
-rw-r--r-- | net/nbd-server/pkg-descr | 7 | ||||
-rw-r--r-- | net/nbd-server/pkg-plist | 1 |
7 files changed, 154 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile index 2a6250d..86cf048 100644 --- a/net/Makefile +++ b/net/Makefile @@ -359,6 +359,7 @@ SUBDIR += napshare SUBDIR += nast SUBDIR += nat + SUBDIR += nbd-server SUBDIR += nbtscan SUBDIR += nc SUBDIR += nc6 diff --git a/net/nbd-server/Makefile b/net/nbd-server/Makefile new file mode 100644 index 0000000..a42eb4c9 --- /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 0000000..6d4391b --- /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 0000000..bf276f3 --- /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 0000000..90e84a8 --- /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 0000000..2c38a7f --- /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 0000000..aebf965 --- /dev/null +++ b/net/nbd-server/pkg-plist @@ -0,0 +1 @@ +bin/nbd-server |