mirror of
https://github.com/XunilGroup/libxunil.git
synced 2026-04-25 11:39:02 +02:00
78 lines
1.8 KiB
Rust
78 lines
1.8 KiB
Rust
pub const READ: usize = 0;
|
|
pub const WRITE: usize = 1;
|
|
pub const OPEN: usize = 2;
|
|
pub const CLOSE: usize = 3;
|
|
pub const STAT: usize = 4;
|
|
pub const LSEEK: usize = 8;
|
|
pub const MMAP: usize = 9;
|
|
pub const MUNMAP: usize = 9;
|
|
pub const BRK: usize = 12;
|
|
pub const GETPID: usize = 39;
|
|
pub const FORK: usize = 57;
|
|
pub const EXECVE: usize = 59;
|
|
pub const EXIT: usize = 60;
|
|
pub const WAIT4: usize = 61;
|
|
pub const KILL: usize = 62;
|
|
pub const CHDIR: usize = 80;
|
|
pub const MKDIR: usize = 83;
|
|
pub const UNLINK: usize = 87;
|
|
pub const GETDENTS64: usize = 217;
|
|
pub const CLOCK_GETTIME: usize = 228;
|
|
pub const EXIT_GROUP: usize = 231;
|
|
pub const SLEEP: usize = 909090; // zzz haha
|
|
pub const DRAW_PIXEL: usize = 5555;
|
|
pub const DRAW_BUFFER: usize = 7777;
|
|
pub const FRAMEBUFFER_SWAP: usize = 6666;
|
|
|
|
#[inline(always)]
|
|
pub unsafe fn syscall0(num: usize) -> isize {
|
|
let ret: isize;
|
|
unsafe {
|
|
core::arch::asm!(
|
|
"int 0x80",
|
|
in("rax") num,
|
|
lateout("rax") ret,
|
|
clobber_abi("sysv64"),
|
|
options(nostack)
|
|
);
|
|
}
|
|
|
|
ret
|
|
}
|
|
|
|
#[inline(always)]
|
|
pub unsafe fn syscall1(num: usize, arg0: isize) -> isize {
|
|
let ret: isize;
|
|
unsafe {
|
|
core::arch::asm!(
|
|
"int 0x80",
|
|
in("rax") num,
|
|
in("rdi") arg0,
|
|
lateout("rax") ret,
|
|
clobber_abi("sysv64"),
|
|
options(nostack)
|
|
);
|
|
}
|
|
|
|
ret
|
|
}
|
|
|
|
#[inline(always)]
|
|
pub unsafe fn syscall3(num: usize, arg0: isize, arg1: isize, arg2: isize) -> isize {
|
|
let ret: isize;
|
|
unsafe {
|
|
core::arch::asm!(
|
|
"int 0x80",
|
|
in("rax") num,
|
|
in("rdi") arg0,
|
|
in("rsi") arg1,
|
|
in("rdx") arg2,
|
|
lateout("rax") ret,
|
|
clobber_abi("sysv64"),
|
|
options(nostack)
|
|
);
|
|
}
|
|
|
|
ret
|
|
}
|