From 956a84f73a91386e46b4f512bc2f7223f3f6cb9c Mon Sep 17 00:00:00 2001 From: Liu Bo Date: Wed, 12 Feb 2020 15:03:26 -0800 Subject: [PATCH] vhost_user_fs: add necessary structs for map/unmap requests This is adding some structures with which we will talk with guest kernel on map/unmap requests. Signed-off-by: Liu Bo --- vhost_user_fs/src/fuse.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/vhost_user_fs/src/fuse.rs b/vhost_user_fs/src/fuse.rs index 991226cf4..d7c47ef27 100644 --- a/vhost_user_fs/src/fuse.rs +++ b/vhost_user_fs/src/fuse.rs @@ -513,6 +513,9 @@ pub enum Opcode { Readdirplus = 44, Rename2 = 45, Lseek = 46, + CopyFileRange = 47, + SetupMapping = 48, + RemoveMapping = 49, } #[repr(u32)] @@ -1045,3 +1048,39 @@ pub struct LseekOut { pub offset: u64, } unsafe impl ByteValued for LseekOut {} + +bitflags! { + pub struct SetupmappingFlags: u64 { + const WRITE = 0x1; + const READ = 0x2; + } +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct SetupmappingIn { + pub fh: u64, + pub foffset: u64, + pub len: u64, + pub flags: u64, + pub moffset: u64, +} + +unsafe impl ByteValued for SetupmappingIn {} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct RemovemappingIn { + pub count: u32, +} + +unsafe impl ByteValued for RemovemappingIn {} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct RemovemappingOne { + pub moffset: u64, + pub len: u64, +} + +unsafe impl ByteValued for RemovemappingOne {}