mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-24 00:45:52 +00: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
@ -359,6 +359,7 @@
|
||||
SUBDIR += napshare
|
||||
SUBDIR += nast
|
||||
SUBDIR += nat
|
||||
SUBDIR += nbd-server
|
||||
SUBDIR += nbtscan
|
||||
SUBDIR += nc
|
||||
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…
Reference in New Issue
Block a user