blob: 3b743930819d7d3f6868e6d1d8cb55f651fd2bb7 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPILINUX_NBD_H
20#define _UAPILINUX_NBD_H
21#include <linux/types.h>
Tao Baod7db5942015-01-28 10:07:51 -080022#define NBD_SET_SOCK _IO(0xab, 0)
Tao Baod7db5942015-01-28 10:07:51 -080023#define NBD_SET_BLKSIZE _IO(0xab, 1)
24#define NBD_SET_SIZE _IO(0xab, 2)
25#define NBD_DO_IT _IO(0xab, 3)
26#define NBD_CLEAR_SOCK _IO(0xab, 4)
Tao Baod7db5942015-01-28 10:07:51 -080027#define NBD_CLEAR_QUE _IO(0xab, 5)
28#define NBD_PRINT_DEBUG _IO(0xab, 6)
29#define NBD_SET_SIZE_BLOCKS _IO(0xab, 7)
30#define NBD_DISCONNECT _IO(0xab, 8)
Tao Baod7db5942015-01-28 10:07:51 -080031#define NBD_SET_TIMEOUT _IO(0xab, 9)
32#define NBD_SET_FLAGS _IO(0xab, 10)
Ben Cheng655a7c02013-10-16 16:09:24 -070033enum {
Tao Baod7db5942015-01-28 10:07:51 -080034 NBD_CMD_READ = 0,
Tao Baod7db5942015-01-28 10:07:51 -080035 NBD_CMD_WRITE = 1,
36 NBD_CMD_DISC = 2,
37 NBD_CMD_FLUSH = 3,
38 NBD_CMD_TRIM = 4
Ben Cheng655a7c02013-10-16 16:09:24 -070039};
40#define NBD_FLAG_HAS_FLAGS (1 << 0)
41#define NBD_FLAG_READ_ONLY (1 << 1)
42#define NBD_FLAG_SEND_FLUSH (1 << 2)
Christopher Ferris1308ad32017-11-14 17:32:13 -080043#define NBD_FLAG_SEND_FUA (1 << 3)
Ben Cheng655a7c02013-10-16 16:09:24 -070044#define NBD_FLAG_SEND_TRIM (1 << 5)
Christopher Ferris48af7cb2017-02-21 12:35:09 -080045#define NBD_FLAG_CAN_MULTI_CONN (1 << 8)
Christopher Ferris1308ad32017-11-14 17:32:13 -080046#define NBD_CMD_FLAG_FUA (1 << 16)
Christopher Ferris525ce912017-07-26 13:12:53 -070047#define NBD_CFLAG_DESTROY_ON_DISCONNECT (1 << 0)
Christopher Ferris9ce28842018-10-25 12:11:39 -070048#define NBD_CFLAG_DISCONNECT_ON_CLOSE (1 << 1)
Ben Cheng655a7c02013-10-16 16:09:24 -070049#define NBD_REQUEST_MAGIC 0x25609513
50#define NBD_REPLY_MAGIC 0x67446698
Christopher Ferris48af7cb2017-02-21 12:35:09 -080051struct nbd_request {
Tao Baod7db5942015-01-28 10:07:51 -080052 __be32 magic;
53 __be32 type;
54 char handle[8];
Christopher Ferris48af7cb2017-02-21 12:35:09 -080055 __be64 from;
Tao Baod7db5942015-01-28 10:07:51 -080056 __be32 len;
Ben Cheng655a7c02013-10-16 16:09:24 -070057} __attribute__((packed));
58struct nbd_reply {
Christopher Ferris48af7cb2017-02-21 12:35:09 -080059 __be32 magic;
Tao Baod7db5942015-01-28 10:07:51 -080060 __be32 error;
61 char handle[8];
Ben Cheng655a7c02013-10-16 16:09:24 -070062};
Christopher Ferris48af7cb2017-02-21 12:35:09 -080063#endif