osiris/syscalls/file.rs
1use core::{ffi::c_int, str};
2use proc_macros::syscall_handler;
3
4#[syscall_handler(num = 0)]
5fn syscall_print(fd: usize, buf: *const u8, len: usize) -> c_int {
6 if fd == 0 {
7 let bytes = unsafe { core::slice::from_raw_parts(buf, len) };
8
9 if let Ok(s) = str::from_utf8(bytes) {
10 // If the bytes are valid UTF-8, print them directly
11 kprintln!("[uspace] {}", s);
12 return 0;
13 }
14 }
15
16 1
17}