Use Errno as RPC error type

This commit is contained in:
pjht 2024-10-04 12:36:19 -05:00
parent 3b452fdf60
commit 8ca9295d57
Signed by: pjht
GPG Key ID: CA239FC6934E6F3A
3 changed files with 26 additions and 27 deletions

26
Cargo.lock generated
View File

@ -13,9 +13,9 @@ dependencies = [
[[package]]
name = "autocfg"
version = "1.3.0"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "bit_field"
@ -121,9 +121,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.158"
version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "lock_api"
@ -224,9 +224,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.5.3"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
dependencies = [
"bitflags",
]
@ -261,8 +261,6 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
[[package]]
name = "serde"
version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
@ -270,12 +268,10 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.77",
"syn 2.0.79",
]
[[package]]
@ -321,9 +317,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.77"
version = "2.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
dependencies = [
"proc-macro2",
"quote",
@ -348,9 +344,9 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.12"
version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "volatile"

View File

@ -13,3 +13,7 @@ pc-keyboard = "0.7.0"
slab = "0.4.9"
syslog_rpc = { version = "0.1.0", path = "../syslog/syslog_rpc" }
x86_64 = "0.15.1"
[patch.crates-io]
serde = { path = "../serde/serde" }
serde_derive = { path = "../serde/serde_derive" }

View File

@ -2,9 +2,8 @@ mod controller;
use std::{
collections::VecDeque,
os::mikros::{ipc, syscalls},
os::mikros::{ipc, syscalls, Errno},
sync::OnceLock,
usize,
};
use controller::Ps2Controller;
@ -22,7 +21,7 @@ static KEYPRESS_BUF: Mutex<VecDeque<char>> = Mutex::new(VecDeque::new());
struct DevServ;
impl dev_driver_rpc::Server for DevServ {
fn open(&self, _path: &std::path::Path) -> Result<u64, ()> {
fn open(&self, _path: &std::path::Path) -> Result<u64, Errno> {
Ok(0)
}
}
@ -36,7 +35,7 @@ impl file_rpc::Server for FileServ {
&self,
_fd: u64,
len: usize,
) -> std::result::Result<std::borrow::Cow<'_, [u8]>, ()> {
) -> std::result::Result<std::borrow::Cow<'_, [u8]>, Errno> {
let mut encode_buf = [0u8; 4];
let mut buf = vec![];
let mut remaining_len = len;
@ -57,18 +56,18 @@ impl file_rpc::Server for FileServ {
Ok(buf.into())
}
fn write(&self, _fd: u64, _data: &[u8]) -> Result<(), ()> {
Err(())
fn write(&self, _fd: u64, _data: &[u8]) -> Result<(), Errno> {
Err(Errno::ENOSYS)
}
fn close(&self, _fd: u64) {}
fn close(&self, _fd: u64) -> Result<(), Errno> {Ok(())}
fn size(&self, _fd: u64) -> Option<u64> {
None
fn size(&self, _fd: u64) -> Result<u64, Errno> {
Err(Errno::ENOSYS)
}
fn dup(&self, fd: u64) -> Option<u64> {
Some(fd)
fn dup(&self, fd: u64) -> Result<u64, Errno> {
Ok(fd)
}
fn register_poll(&self, _fd: u64, events: PollEvents) -> u64 {
@ -103,7 +102,7 @@ impl file_rpc::Server for FileServ {
self.polls.lock().remove(poll_id as usize);
}
fn seek(&self, _fd: u64, _pos: file_rpc::SeekFrom) -> u64 { 0 }
fn seek(&self, _fd: u64, _pos: file_rpc::SeekFrom) -> Result<u64, Errno> { Err(Errno::ESPIPE) }
}
static SCANDODE_DECODER: Mutex<ScancodeSet2> = Mutex::new(ScancodeSet2::new());