mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
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>
This commit is contained in:
parent
224bfadf53
commit
695db4a30d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=96889
7 changed files with 154 additions and 0 deletions
|
@ -359,6 +359,7 @@
|
||||||
SUBDIR += napshare
|
SUBDIR += napshare
|
||||||
SUBDIR += nast
|
SUBDIR += nast
|
||||||
SUBDIR += nat
|
SUBDIR += nat
|
||||||
|
SUBDIR += nbd-server
|
||||||
SUBDIR += nbtscan
|
SUBDIR += nbtscan
|
||||||
SUBDIR += nc
|
SUBDIR += nc
|
||||||
SUBDIR += nc6
|
SUBDIR += nc6
|
||||||
|
|
27
net/nbd-server/Makefile
Normal file
27
net/nbd-server/Makefile
Normal file
|
@ -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>
|
1
net/nbd-server/distinfo
Normal file
1
net/nbd-server/distinfo
Normal file
|
@ -0,0 +1 @@
|
||||||
|
MD5 (nbd-2.6.0.tar.gz) = 97ee3120f321628b86f5c0fe77f89255
|
106
net/nbd-server/files/nbd.h
Normal file
106
net/nbd-server/files/nbd.h
Normal file
|
@ -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
|
11
net/nbd-server/files/patch-include
Normal file
11
net/nbd-server/files/patch-include
Normal file
|
@ -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>
|
7
net/nbd-server/pkg-descr
Normal file
7
net/nbd-server/pkg-descr
Normal file
|
@ -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
|
1
net/nbd-server/pkg-plist
Normal file
1
net/nbd-server/pkg-plist
Normal file
|
@ -0,0 +1 @@
|
||||||
|
bin/nbd-server
|
Loading…
Add table
Reference in a new issue