Add message metadata
This commit is contained in:
parent
3d6408a3cd
commit
fd79f99f13
@ -23,8 +23,9 @@ pub mod io {
|
||||
|
||||
pub use abi::io::{
|
||||
DeviceRequest, DirectoryEntry, FileAttr, FileMode, FileType, MessageDestination,
|
||||
MountOptions, OpenOptions, PollControl, RawFd, SeekFrom, TerminalInputOptions,
|
||||
TerminalLineOptions, TerminalOptions, TerminalOutputOptions, UnmountOptions,
|
||||
MountOptions, OpenOptions, PollControl, RawFd, ReceivedMessageMetadata, SeekFrom,
|
||||
SentMessage, TerminalInputOptions, TerminalLineOptions, TerminalOptions,
|
||||
TerminalOutputOptions, UnmountOptions,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,8 @@ use abi::{
|
||||
error::{Error, SyscallResult},
|
||||
io::{
|
||||
DeviceRequest, DirectoryEntry, FileAttr, FileMode, MessageDestination, MountOptions,
|
||||
OpenOptions, PollControl, RawFd, SeekFrom, UnmountOptions,
|
||||
OpenOptions, PollControl, RawFd, ReceivedMessageMetadata, SeekFrom, SentMessage,
|
||||
UnmountOptions,
|
||||
},
|
||||
mem::MappingSource,
|
||||
process::{
|
||||
@ -567,14 +568,13 @@ pub unsafe fn open_channel(name: &str, with_sub: bool) -> Result<RawFd, Error> {
|
||||
/// Unsafe: direct system call.
|
||||
pub unsafe fn send_message(
|
||||
fd: RawFd,
|
||||
msg: &[u8],
|
||||
message: &SentMessage<'_>,
|
||||
destination: MessageDestination,
|
||||
) -> Result<(), Error> {
|
||||
<()>::from_syscall_result(syscall!(
|
||||
SyscallFunction::SendMessage,
|
||||
argn!(fd.0 as usize),
|
||||
argp!(msg.as_ptr()),
|
||||
argn!(msg.len()),
|
||||
argp!(message as *const _),
|
||||
argn!(u64::from(destination) as usize)
|
||||
))
|
||||
}
|
||||
@ -586,14 +586,16 @@ pub unsafe fn send_message(
|
||||
/// Unsafe: direct system call.
|
||||
pub unsafe fn receive_message(
|
||||
fd: RawFd,
|
||||
msg: &mut [u8],
|
||||
metadata: &mut MaybeUninit<ReceivedMessageMetadata>,
|
||||
buffer: &mut [u8],
|
||||
from: &mut MaybeUninit<u32>,
|
||||
) -> Result<usize, Error> {
|
||||
usize::from_syscall_result(syscall!(
|
||||
SyscallFunction::ReceiveMessage,
|
||||
argn!(fd.0 as usize),
|
||||
argp!(msg.as_mut_ptr()),
|
||||
argn!(msg.len()),
|
||||
argp!(metadata as *mut _),
|
||||
argp!(buffer.as_mut_ptr()),
|
||||
argn!(buffer.len()),
|
||||
argp!(from as *mut _)
|
||||
))
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user