patch-2.1.67 linux/include/linux/nbd.h
Next file: linux/include/linux/nfsd/nfsfh.h
Previous file: linux/include/linux/major.h
Back to the patch index
Back to the overall index
- Lines: 75
- Date:
Sat Nov 29 10:33:21 1997
- Orig file:
v2.1.66/linux/include/linux/nbd.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.1.66/linux/include/linux/nbd.h linux/include/linux/nbd.h
@@ -0,0 +1,74 @@
+#ifndef LINUX_NBD_H
+#define LINUX_NBD_H
+
+#include <linux/ioctl.h>
+#include <asm/types.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 )
+
+#ifdef MAJOR_NR
+
+#include <linux/locks.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)
+{
+#ifdef PARANOIA
+ requests_out++;
+#endif
+ if (end_that_request_first( req, !req->errors, "nbd" ))
+ return;
+ end_that_request_last( req );
+}
+
+#define MAX_NBD 128
+#endif
+
+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 */
+ struct request *head; /* Requests are added here... */
+ struct request *tail;
+};
+
+/* This now IS in some kind of include file... */
+
+#define NBD_REQUEST_MAGIC 0x12560953
+#define NBD_REPLY_MAGIC 0x96744668
+#define LO_MAGIC 0x68797548
+
+struct nbd_request {
+ __u32 magic;
+ __u32 from;
+ __u32 len;
+ char handle[8];
+ __u32 type; /* == READ || == WRITE */
+};
+
+struct nbd_reply {
+ __u32 magic;
+ char handle[8]; /* handle you got from request */
+ __u32 error; /* 0 = ok, else error */
+};
+#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov