From 04eb18e2fb92a973b2ddf3d1b654dd59ebf5f45a Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Thu, 19 Mar 2020 08:54:52 +0800 Subject: [PATCH] kernel: add Connect stub It doesn't respond, but it prints a message now at least. Signed-off-by: Sean Cross --- kernel/src/services.rs | 8 +++++++- kernel/src/syscall.rs | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/kernel/src/services.rs b/kernel/src/services.rs index caae30f6c..2170dc01e 100644 --- a/kernel/src/services.rs +++ b/kernel/src/services.rs @@ -5,7 +5,7 @@ pub use crate::arch::ProcessContext; use crate::args::KernelArguments; use crate::mem::{MemoryManagerHandle, PAGE_SIZE}; use core::{mem, slice}; -use xous::{MemoryFlags, PID, SID}; +use xous::{MemoryFlags, CID, PID, SID}; const MAX_PROCESS_COUNT: usize = 32; const MAX_SERVER_COUNT: usize = 32; @@ -490,6 +490,12 @@ impl SystemServices { } Err(xous::Error::OutOfMemory) } + + /// Allocate a new server ID for this process and return the address. + /// If the server table is full, return an error. + pub fn connect_to_server(&mut self, sid: SID) -> Result { + Err(xous::Error::OutOfMemory) + } } /// How many people have checked out the handle object. diff --git a/kernel/src/syscall.rs b/kernel/src/syscall.rs index a9f4358b2..04644fa28 100644 --- a/kernel/src/syscall.rs +++ b/kernel/src/syscall.rs @@ -244,6 +244,12 @@ pub fn handle(call: SysCall) -> xous::Result { .map(|x| xous::Result::ServerID(x)) .unwrap_or_else(|e| xous::Result::Error(e)) } + SysCall::Connect(sid) => { + let mut ss = SystemServicesHandle::get(); + ss.connect_to_server(sid) + .map(|x| xous::Result::ConnectionID(x)) + .unwrap_or_else(|e| xous::Result::Error(e)) + } _ => xous::Result::Error(xous::Error::UnhandledSyscall), } }