Remove execve, replace with fexec
This commit is contained in:
11
src/call.rs
11
src/call.rs
@@ -72,12 +72,6 @@ pub fn dup2(fd: usize, newfd: usize, buf: &[u8]) -> Result<usize> {
|
||||
unsafe { syscall4(SYS_DUP2, fd, newfd, buf.as_ptr() as usize, buf.len()) }
|
||||
}
|
||||
|
||||
/// Replace the current process with a new executable
|
||||
pub fn execve<T: AsRef<[u8]>>(path: T, args: &[[usize; 2]]) -> Result<usize> {
|
||||
unsafe { syscall4(SYS_EXECVE, path.as_ref().as_ptr() as usize,
|
||||
path.as_ref().len(), args.as_ptr() as usize, args.len()) }
|
||||
}
|
||||
|
||||
/// Exit the current process
|
||||
pub fn exit(status: usize) -> Result<usize> {
|
||||
unsafe { syscall1(SYS_EXIT, status) }
|
||||
@@ -100,6 +94,11 @@ pub fn fcntl(fd: usize, cmd: usize, arg: usize) -> Result<usize> {
|
||||
unsafe { syscall3(SYS_FCNTL, fd, cmd, arg) }
|
||||
}
|
||||
|
||||
/// Replace the current process with a new executable
|
||||
pub fn fexec<T: AsRef<[u8]>>(fd: usize, args: &[[usize; 2]], vars: &[[usize; 2]]) -> Result<usize> {
|
||||
unsafe { syscall5(SYS_FEXEC, fd, args.as_ptr() as usize, args.len(), vars.as_ptr() as usize, vars.len()) }
|
||||
}
|
||||
|
||||
/// Map a file into memory
|
||||
pub unsafe fn fmap(fd: usize, offset: usize, size: usize) -> Result<usize> {
|
||||
syscall3(SYS_FMAP, fd, offset, size)
|
||||
|
||||
@@ -26,6 +26,7 @@ pub const SYS_FCHMOD: usize = SYS_CLASS_FILE | 94;
|
||||
pub const SYS_FCHOWN: usize = SYS_CLASS_FILE | 207;
|
||||
pub const SYS_FCNTL: usize = SYS_CLASS_FILE | 55;
|
||||
pub const SYS_FEVENT: usize = SYS_CLASS_FILE | 927;
|
||||
pub const SYS_FEXEC: usize = SYS_CLASS_FILE | 11;
|
||||
pub const SYS_FMAP: usize = SYS_CLASS_FILE | 90;
|
||||
pub const SYS_FUNMAP: usize = SYS_CLASS_FILE | 91;
|
||||
pub const SYS_FPATH: usize = SYS_CLASS_FILE | SYS_ARG_MSLICE | 928;
|
||||
@@ -40,7 +41,6 @@ pub const SYS_BRK: usize = 45;
|
||||
pub const SYS_CHDIR: usize = 12;
|
||||
pub const SYS_CLOCK_GETTIME: usize = 265;
|
||||
pub const SYS_CLONE: usize = 120;
|
||||
pub const SYS_EXECVE: usize = 11;
|
||||
pub const SYS_EXIT: usize = 1;
|
||||
pub const SYS_FUTEX: usize = 240;
|
||||
pub const SYS_GETCWD: usize = 183;
|
||||
|
||||
Reference in New Issue
Block a user