diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-12-06 23:51:34 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1997-12-06 23:51:34 +0000 |
commit | 230e5ab6a084ed50470f101934782dbf54b0d06b (patch) | |
tree | 5dd821c8d33f450470588e7a543f74bf74306e9e /include/linux/nbd.h | |
parent | c9b1c8a64c6444d189856f1e26bdcb8b4cd0113a (diff) |
Merge with Linux 2.1.67.
Diffstat (limited to 'include/linux/nbd.h')
-rw-r--r-- | include/linux/nbd.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/include/linux/nbd.h b/include/linux/nbd.h new file mode 100644 index 000000000..d2d613c50 --- /dev/null +++ b/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 |