1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPILINUX_NBD_H 8 #define _UAPILINUX_NBD_H 9 #include <linux/types.h> 10 #define NBD_SET_SOCK _IO(0xab, 0) 11 #define NBD_SET_BLKSIZE _IO(0xab, 1) 12 #define NBD_SET_SIZE _IO(0xab, 2) 13 #define NBD_DO_IT _IO(0xab, 3) 14 #define NBD_CLEAR_SOCK _IO(0xab, 4) 15 #define NBD_CLEAR_QUE _IO(0xab, 5) 16 #define NBD_PRINT_DEBUG _IO(0xab, 6) 17 #define NBD_SET_SIZE_BLOCKS _IO(0xab, 7) 18 #define NBD_DISCONNECT _IO(0xab, 8) 19 #define NBD_SET_TIMEOUT _IO(0xab, 9) 20 #define NBD_SET_FLAGS _IO(0xab, 10) 21 enum { 22 NBD_CMD_READ = 0, 23 NBD_CMD_WRITE = 1, 24 NBD_CMD_DISC = 2, 25 NBD_CMD_FLUSH = 3, 26 NBD_CMD_TRIM = 4, 27 NBD_CMD_WRITE_ZEROES = 6, 28 }; 29 #define NBD_FLAG_HAS_FLAGS (1 << 0) 30 #define NBD_FLAG_READ_ONLY (1 << 1) 31 #define NBD_FLAG_SEND_FLUSH (1 << 2) 32 #define NBD_FLAG_SEND_FUA (1 << 3) 33 #define NBD_FLAG_ROTATIONAL (1 << 4) 34 #define NBD_FLAG_SEND_TRIM (1 << 5) 35 #define NBD_FLAG_SEND_WRITE_ZEROES (1 << 6) 36 #define NBD_FLAG_CAN_MULTI_CONN (1 << 8) 37 #define NBD_CMD_FLAG_FUA (1 << 16) 38 #define NBD_CMD_FLAG_NO_HOLE (1 << 17) 39 #define NBD_CFLAG_DESTROY_ON_DISCONNECT (1 << 0) 40 #define NBD_CFLAG_DISCONNECT_ON_CLOSE (1 << 1) 41 #define NBD_REQUEST_MAGIC 0x25609513 42 #define NBD_REPLY_MAGIC 0x67446698 43 struct nbd_request { 44 __be32 magic; 45 __be32 type; 46 union { 47 __be64 cookie; 48 char handle[8]; 49 }; 50 __be64 from; 51 __be32 len; 52 } __attribute__((packed)); 53 struct nbd_reply { 54 __be32 magic; 55 __be32 error; 56 union { 57 __be64 cookie; 58 char handle[8]; 59 }; 60 }; 61 #endif 62