00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef LINUX_NBD_H
00016 #define LINUX_NBD_H
00017
00018
00019
00020 #define NBD_SET_SOCK _IO( 0xab, 0 )
00021 #define NBD_SET_BLKSIZE _IO( 0xab, 1 )
00022 #define NBD_SET_SIZE _IO( 0xab, 2 )
00023 #define NBD_DO_IT _IO( 0xab, 3 )
00024 #define NBD_CLEAR_SOCK _IO( 0xab, 4 )
00025 #define NBD_CLEAR_QUE _IO( 0xab, 5 )
00026 #define NBD_PRINT_DEBUG _IO( 0xab, 6 )
00027 #define NBD_SET_SIZE_BLOCKS _IO( 0xab, 7 )
00028 #define NBD_DISCONNECT _IO( 0xab, 8 )
00029 #define NBD_SET_TIMEOUT _IO( 0xab, 9 )
00030
00031 enum {
00032 NBD_CMD_READ = 0,
00033 NBD_CMD_WRITE = 1,
00034 NBD_CMD_DISC = 2
00035 };
00036
00037 #define nbd_cmd(req) ((req)->cmd[0])
00038
00039
00040
00041
00042
00043 #define NBD_REQUEST_MAGIC 0x25609513
00044 #define NBD_REPLY_MAGIC 0x67446698
00045
00046
00047
00048
00049
00050
00051 struct nbd_request {
00052 __be32 magic;
00053 __be32 type;
00054 char handle[8];
00055 __be64 from;
00056 __be32 len;
00057 } __attribute__ ((packed));
00058
00059
00060
00061
00062
00063 struct nbd_reply {
00064 __be32 magic;
00065 __be32 error;
00066 char handle[8];
00067 };
00068 #endif