feat(userspace): Call/ReplyRecv IPC, malformed-request replies, servers exit on dead endpoint; drop send/receive compat, select!, async_syscall
This commit is contained in:
@@ -23,9 +23,10 @@ fn pack_path(path: &[u8]) -> (usize, usize) {
|
||||
(usize::from_le_bytes(w0), usize::from_le_bytes(w1))
|
||||
}
|
||||
|
||||
/// A failed call reads as an error reply (tag `usize::MAX`).
|
||||
fn ipc(ep: CapSlot, w0: usize, w1: usize, w2: usize, w3: usize) -> (usize, usize, usize, usize) {
|
||||
syscall::send(ep, w0, w1, w2, w3);
|
||||
syscall::receive(ep)
|
||||
let r = syscall::request(ep, [w0, w1, w2, w3]).unwrap_or([usize::MAX, 0, 0, 0]);
|
||||
(r[0], r[1], r[2], r[3])
|
||||
}
|
||||
|
||||
pub fn open(ep: CapSlot, path: &[u8]) -> Option<FileHandle> {
|
||||
|
||||
Reference in New Issue
Block a user