Add permissions to the filesystem, preliminary permissions to the syscalls
This commit is contained in:
+4
-1
@@ -28,7 +28,10 @@ impl DerefMut for Event {
|
||||
#[derive(Copy, Clone, Debug, Default)]
|
||||
#[repr(packed)]
|
||||
pub struct Packet {
|
||||
pub id: usize,
|
||||
pub id: u64,
|
||||
pub pid: usize,
|
||||
pub uid: u32,
|
||||
pub gid: u32,
|
||||
pub a: usize,
|
||||
pub b: usize,
|
||||
pub c: usize,
|
||||
|
||||
+16
@@ -86,10 +86,18 @@ pub fn getcwd(buf: &mut [u8]) -> Result<usize> {
|
||||
unsafe { syscall2(SYS_GETCWD, buf.as_mut_ptr() as usize, buf.len()) }
|
||||
}
|
||||
|
||||
pub fn getgid() -> Result<usize> {
|
||||
unsafe { syscall0(SYS_GETGID) }
|
||||
}
|
||||
|
||||
pub fn getpid() -> Result<usize> {
|
||||
unsafe { syscall0(SYS_GETPID) }
|
||||
}
|
||||
|
||||
pub fn getuid() -> Result<usize> {
|
||||
unsafe { syscall0(SYS_GETUID) }
|
||||
}
|
||||
|
||||
pub unsafe fn iopl(level: usize) -> Result<usize> {
|
||||
syscall1(SYS_IOPL, level)
|
||||
}
|
||||
@@ -142,6 +150,14 @@ pub fn rmdir(path: &str) -> Result<usize> {
|
||||
unsafe { syscall2(SYS_RMDIR, path.as_ptr() as usize, path.len()) }
|
||||
}
|
||||
|
||||
pub fn setgid(gid: usize) -> Result<usize> {
|
||||
unsafe { syscall1(SYS_SETGID, gid) }
|
||||
}
|
||||
|
||||
pub fn setuid(uid: usize) -> Result<usize> {
|
||||
unsafe { syscall1(SYS_SETUID, uid) }
|
||||
}
|
||||
|
||||
pub fn unlink(path: &str) -> Result<usize> {
|
||||
unsafe { syscall2(SYS_UNLINK, path.as_ptr() as usize, path.len()) }
|
||||
}
|
||||
|
||||
@@ -13,7 +13,9 @@ pub const SYS_FSYNC: usize = 118;
|
||||
pub const SYS_FTRUNCATE: usize = 93;
|
||||
pub const SYS_FUTEX: usize = 240;
|
||||
pub const SYS_GETCWD: usize = 183;
|
||||
pub const SYS_GETGID: usize = 200;
|
||||
pub const SYS_GETPID: usize = 20;
|
||||
pub const SYS_GETUID: usize = 199;
|
||||
pub const SYS_IOPL: usize = 110;
|
||||
pub const SYS_LINK: usize = 9;
|
||||
pub const SYS_LSEEK: usize = 19;
|
||||
@@ -28,6 +30,8 @@ pub const SYS_VIRTTOPHYS: usize = 949;
|
||||
pub const SYS_PIPE2: usize = 331;
|
||||
pub const SYS_READ: usize = 3;
|
||||
pub const SYS_RMDIR: usize = 84;
|
||||
pub const SYS_SETGID: usize = 214;
|
||||
pub const SYS_SETUID: usize = 213;
|
||||
pub const SYS_UNLINK: usize = 10;
|
||||
pub const SYS_WAITPID: usize = 7;
|
||||
pub const SYS_WRITE: usize = 4;
|
||||
|
||||
Reference in New Issue
Block a user