feat: Add call_ro, call_wo and call_wr to call module.
This commit is contained in:
committed by
Jeremy Soller
parent
c2e45479c9
commit
c8ad74b402
+1
-1
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "libredox"
|
||||
authors = ["4lDO2 <4lDO2@protonmail.com>"]
|
||||
version = "0.1.7"
|
||||
version = "0.1.8"
|
||||
edition = "2021"
|
||||
license = "MIT"
|
||||
description = "Redox stable ABI"
|
||||
|
||||
+57
-30
@@ -378,16 +378,7 @@ impl Fd {
|
||||
flags: syscall::CallFlags,
|
||||
metadata: &[u64],
|
||||
) -> Result<usize> {
|
||||
Ok(Error::demux(unsafe {
|
||||
redox_sys_call_v0(
|
||||
self.raw(),
|
||||
payload.as_mut_ptr(),
|
||||
payload.len(),
|
||||
(flags | syscall::CallFlags::READ).bits(),
|
||||
metadata.as_ptr(),
|
||||
metadata.len(),
|
||||
)
|
||||
})?)
|
||||
call::call_ro(self.raw(), payload, flags, metadata)
|
||||
}
|
||||
#[inline]
|
||||
pub fn call_wo(
|
||||
@@ -396,16 +387,7 @@ impl Fd {
|
||||
flags: syscall::CallFlags,
|
||||
metadata: &[u64],
|
||||
) -> Result<usize> {
|
||||
Ok(Error::demux(unsafe {
|
||||
redox_sys_call_v0(
|
||||
self.raw(),
|
||||
payload.as_ptr() as *mut u8,
|
||||
payload.len(),
|
||||
(flags | syscall::CallFlags::WRITE).bits(),
|
||||
metadata.as_ptr(),
|
||||
metadata.len(),
|
||||
)
|
||||
})?)
|
||||
call::call_wo(self.raw(), payload, flags, metadata)
|
||||
}
|
||||
#[inline]
|
||||
pub fn call_rw(
|
||||
@@ -414,16 +396,7 @@ impl Fd {
|
||||
flags: syscall::CallFlags,
|
||||
metadata: &[u64],
|
||||
) -> Result<usize> {
|
||||
Ok(Error::demux(unsafe {
|
||||
redox_sys_call_v0(
|
||||
self.raw(),
|
||||
payload.as_mut_ptr(),
|
||||
payload.len(),
|
||||
(flags | syscall::CallFlags::READ | syscall::CallFlags::WRITE).bits(),
|
||||
metadata.as_ptr(),
|
||||
metadata.len(),
|
||||
)
|
||||
})?)
|
||||
call::call_rw(self.raw(), payload, flags, metadata)
|
||||
}
|
||||
}
|
||||
#[cfg(feature = "call")]
|
||||
@@ -531,6 +504,60 @@ pub mod call {
|
||||
Error::demux(unsafe { redox_close_v1(raw_fd) })?;
|
||||
Ok(())
|
||||
}
|
||||
#[inline]
|
||||
pub fn call_ro(
|
||||
fd: usize,
|
||||
payload: &mut [u8],
|
||||
flags: syscall::CallFlags,
|
||||
metadata: &[u64],
|
||||
) -> Result<usize> {
|
||||
Ok(Error::demux(unsafe {
|
||||
redox_sys_call_v0(
|
||||
fd,
|
||||
payload.as_mut_ptr(),
|
||||
payload.len(),
|
||||
(flags | syscall::CallFlags::READ).bits(),
|
||||
metadata.as_ptr(),
|
||||
metadata.len(),
|
||||
)
|
||||
})?)
|
||||
}
|
||||
#[inline]
|
||||
pub fn call_wo(
|
||||
fd: usize,
|
||||
payload: &[u8],
|
||||
flags: syscall::CallFlags,
|
||||
metadata: &[u64],
|
||||
) -> Result<usize> {
|
||||
Ok(Error::demux(unsafe {
|
||||
redox_sys_call_v0(
|
||||
fd,
|
||||
payload.as_ptr() as *mut u8,
|
||||
payload.len(),
|
||||
(flags | syscall::CallFlags::WRITE).bits(),
|
||||
metadata.as_ptr(),
|
||||
metadata.len(),
|
||||
)
|
||||
})?)
|
||||
}
|
||||
#[inline]
|
||||
pub fn call_rw(
|
||||
fd: usize,
|
||||
payload: &mut [u8],
|
||||
flags: syscall::CallFlags,
|
||||
metadata: &[u64],
|
||||
) -> Result<usize> {
|
||||
Ok(Error::demux(unsafe {
|
||||
redox_sys_call_v0(
|
||||
fd,
|
||||
payload.as_mut_ptr(),
|
||||
payload.len(),
|
||||
(flags | syscall::CallFlags::READ | syscall::CallFlags::WRITE).bits(),
|
||||
metadata.as_ptr(),
|
||||
metadata.len(),
|
||||
)
|
||||
})?)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn geteuid() -> Result<usize> {
|
||||
|
||||
Reference in New Issue
Block a user