/* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */ /* * Copyright (C) 2020 Google, Inc * Copyright (C) 2020 Palmer Dabbelt */ #ifndef _LINUX_DM_USER_H #define _LINUX_DM_USER_H #include /* * dm-user proxies device mapper ops between the kernel and userspace. It's * essentially just an RPC mechanism: all kernel calls create a request, * userspace handles that with a response. Userspace obtains requests via * read() and provides responses via write(). * * See Documentation/block/dm-user.rst for more information. */ #define DM_USER_REQ_MAP_READ 0 #define DM_USER_REQ_MAP_WRITE 1 #define DM_USER_REQ_MAP_FLUSH 2 #define DM_USER_REQ_MAP_DISCARD 3 #define DM_USER_REQ_MAP_SECURE_ERASE 4 #define DM_USER_REQ_MAP_WRITE_SAME 5 #define DM_USER_REQ_MAP_WRITE_ZEROES 6 #define DM_USER_REQ_MAP_ZONE_OPEN 7 #define DM_USER_REQ_MAP_ZONE_CLOSE 8 #define DM_USER_REQ_MAP_ZONE_FINISH 9 #define DM_USER_REQ_MAP_ZONE_APPEND 10 #define DM_USER_REQ_MAP_ZONE_RESET 11 #define DM_USER_REQ_MAP_ZONE_RESET_ALL 12 #define DM_USER_REQ_MAP_FLAG_FAILFAST_DEV 0x00001 #define DM_USER_REQ_MAP_FLAG_FAILFAST_TRANSPORT 0x00002 #define DM_USER_REQ_MAP_FLAG_FAILFAST_DRIVER 0x00004 #define DM_USER_REQ_MAP_FLAG_SYNC 0x00008 #define DM_USER_REQ_MAP_FLAG_META 0x00010 #define DM_USER_REQ_MAP_FLAG_PRIO 0x00020 #define DM_USER_REQ_MAP_FLAG_NOMERGE 0x00040 #define DM_USER_REQ_MAP_FLAG_IDLE 0x00080 #define DM_USER_REQ_MAP_FLAG_INTEGRITY 0x00100 #define DM_USER_REQ_MAP_FLAG_FUA 0x00200 #define DM_USER_REQ_MAP_FLAG_PREFLUSH 0x00400 #define DM_USER_REQ_MAP_FLAG_RAHEAD 0x00800 #define DM_USER_REQ_MAP_FLAG_BACKGROUND 0x01000 #define DM_USER_REQ_MAP_FLAG_NOWAIT 0x02000 #define DM_USER_REQ_MAP_FLAG_CGROUP_PUNT 0x04000 #define DM_USER_REQ_MAP_FLAG_NOUNMAP 0x08000 #define DM_USER_REQ_MAP_FLAG_HIPRI 0x10000 #define DM_USER_REQ_MAP_FLAG_DRV 0x20000 #define DM_USER_REQ_MAP_FLAG_SWAP 0x40000 #define DM_USER_RESP_SUCCESS 0 #define DM_USER_RESP_ERROR 1 #define DM_USER_RESP_UNSUPPORTED 2 struct dm_user_message { __u64 seq; __u64 type; __u64 flags; __u64 sector; __u64 len; __u8 buf[]; }; #endif