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:
2026-10-27 12:06:10 +01:00
parent 2a8a5b0c27
commit e8a2963b24
18 changed files with 96 additions and 101 deletions

View File

@@ -14,25 +14,23 @@ extern "C" fn main() {
} else {
run_mock(ep);
}
loop { libkos::syscall::yield_now(); }
}
#[inline(never)]
fn run_virtio(mut fb: driver_framebuffer_virtio::VirtioFramebuffer, ep: CapSlot) {
fn run_virtio(mut fb: driver_framebuffer_virtio::VirtioFramebuffer, ep: CapSlot) -> ! {
use port_framebuffer::Framebuffer;
fb.clear(types::display::Color::rgb(30, 30, 60));
fb.flush();
let mut srv = display_server::server::DisplayServer::new(fb);
server_framework::serve(&mut srv, ep);
server_framework::serve(&mut srv, ep)
}
#[inline(never)]
fn run_mock(ep: CapSlot) {
fn run_mock(ep: CapSlot) -> ! {
let fb = driver_framebuffer_mock::MockFramebuffer::new(
types::display::Dimension::new(640),
types::display::Dimension::new(480),
);
let mut srv = display_server::server::DisplayServer::new(fb);
server_framework::serve(&mut srv, ep);
server_framework::serve(&mut srv, ep)
}

View File

@@ -14,19 +14,17 @@ extern "C" fn main() {
} else {
run_uart(ep);
}
loop { libkos::syscall::yield_now(); }
}
#[inline(never)]
fn run_input(device: driver_input_virtio::VirtioInputDevice, ep: CapSlot) {
fn run_input(device: driver_input_virtio::VirtioInputDevice, ep: CapSlot) -> ! {
let mut srv = input_server::server::InputServer::new(device);
server_framework::serve(&mut srv, ep);
server_framework::serve(&mut srv, ep)
}
#[inline(never)]
fn run_uart(ep: CapSlot) {
fn run_uart(ep: CapSlot) -> ! {
let device = driver_input_uart::UartInputDevice::new();
let mut srv = input_server::server::InputServer::new(device);
server_framework::serve(&mut srv, ep);
server_framework::serve(&mut srv, ep)
}