From 5541cc32144dbf69bfc2c723ccb07621287b936e Mon Sep 17 00:00:00 2001 From: Mark Poliakov Date: Thu, 20 Jul 2023 12:00:22 +0300 Subject: [PATCH] Implement mount/unmount --- src/error.rs | 1 + src/io.rs | 16 ++++++++++++++++ src/syscall.rs | 3 +++ 3 files changed, 20 insertions(+) diff --git a/src/error.rs b/src/error.rs index 93ca077b..ed429c09 100644 --- a/src/error.rs +++ b/src/error.rs @@ -10,6 +10,7 @@ primitive_enum!(pub enum Error: u32 { IsADirectory = 7, InvalidFile = 8, NotImplemented = 9, + NotADirectory = 10, }); pub trait FromSyscallResult: Sized { diff --git a/src/io.rs b/src/io.rs index 96777568..3f0ffd86 100644 --- a/src/io.rs +++ b/src/io.rs @@ -1,11 +1,27 @@ use core::fmt; #[derive(Clone, Copy, PartialEq, Debug, PartialOrd, Ord, Eq)] +#[repr(transparent)] pub struct RawFd(pub u32); #[derive(Clone, Copy, PartialEq, Eq)] +#[repr(transparent)] pub struct OpenFlags(pub u32); +#[derive(Clone, Debug)] +#[repr(C)] +pub struct MountOptions { + pub source: Option<&'static str>, + pub filesystem: Option<&'static str>, + pub target: &'static str, +} + +#[derive(Clone, Debug)] +#[repr(C)] +pub struct UnmountOptions { + pub mountpoint: &'static str, +} + const O_READ: u32 = 1 << 0; const O_WRITE: u32 = 1 << 1; diff --git a/src/syscall.rs b/src/syscall.rs index afc51da5..51a41033 100644 --- a/src/syscall.rs +++ b/src/syscall.rs @@ -10,5 +10,8 @@ primitive_enum!(pub enum SyscallFunction: usize { Open = 7, Close = 8, + Mount = 101, + Unmount = 102, + DebugTrace = 128, });