stable_fs/runtime/
types.rsuse bitflags::bitflags;
use serde::{Deserialize, Serialize};
#[derive(Copy, Clone, Debug)]
pub struct FdStat {
pub flags: FdFlags,
pub rights_base: u64,
pub rights_inheriting: u64,
}
impl Default for FdStat {
fn default() -> Self {
Self {
flags: FdFlags::empty(),
rights_base: (1 << 27) - 1, rights_inheriting: (1 << 27) - 1,
}
}
}
#[derive(Clone, Copy, Debug)]
pub enum Whence {
SET,
CUR,
END,
}
#[derive(Clone, Copy, Debug)]
pub enum ChunkSize {
CHUNK4K = 4096,
CHUNK8K = 8192,
CHUNK16K = 16384,
CHUNK32K = 32768,
CHUNK64K = 65536,
}
impl ChunkSize {
pub const VALUES: [Self; 5] = [
Self::CHUNK4K,
Self::CHUNK8K,
Self::CHUNK16K,
Self::CHUNK32K,
Self::CHUNK64K,
];
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum ChunkType {
V1 = 1,
V2 = 2,
}
bitflags! {
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct FdFlags: u16 {
const APPEND = 1;
const DSYNC = 2;
const NONBLOCK = 4;
const RSYNC = 8;
const SYNC = 16;
}
}
bitflags! {
pub struct OpenFlags: u16 {
const CREATE = 1;
const DIRECTORY = 2;
const EXCLUSIVE = 4;
const TRUNCATE = 8;
}
}
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct DstBuf {
pub buf: *mut u8,
pub len: usize,
}
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct SrcBuf {
pub buf: *const u8,
pub len: usize,
}
pub type SrcIoVec<'a> = &'a [SrcBuf];
pub type DstIoVec<'a> = &'a [DstBuf];