mirror of
https://github.com/XunilGroup/libxunil.git
synced 2026-04-25 11:39:02 +02:00
Upload current libxunil, to be used as a submodule
This commit is contained in:
77
src/syscall.rs
Normal file
77
src/syscall.rs
Normal file
@@ -0,0 +1,77 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user