Add permissions to the filesystem, preliminary permissions to the syscalls
This commit is contained in:
parent
478bc20b85
commit
f4a1d06f07
19 changed files with 142 additions and 20 deletions
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue