[openbeosstorage] Re: Syscall Multiplexing

Tyler Dauwalder <tyler@xxxxxxxxxxxxx> wrote:
> Ingo mentioned last week that you, Axel, were interested in us 
> multiplexing 
> some of the ddm syscalls, since it's a bit of a chore to add the 
> syscalls 
> to the kernel. I offered to tackle the task, but I wanted to ask 
> first what 
> exactly is involved in adding syscalls to the kernel. It looks to me 
> like 
> you have to add the symbolic constant to headers/private/kernel/
> ksyscalls.h 
> and an appropriate dispatch case to src/kernel/core/syscalls.c. Am I 
> missing anything else?

Yes, you have add:
1) prototypes for the _kern_ and _user_ calls
2) add the syscalls to kernel/libroot/os/syscalls.S (with the syscall 
number and the 32-bit argument count (64 bits are counting twice))
3) do what you said
4) implement the userland part of the syscall (those who call the 
_kern_*() calls, which could be used from both, the kernel and 
userland)

> In lieu of multiplexing our ddm syscalls, I thought maybe I would 
> just 
> offer to add the syscalls themselves to the kernel rather than having 
> you 
> do it. Unless I've missed some terribly time consuming step in the 
> syscall 
> addition process, it seems to me it's just going to be more work 
> overall to 
> multiplex them, and the additional code, IMO, just leaves more room 
> for 
> error. 

I actually never thought of demultiplexing them - I thought of less 
functions for the user, less syscalls, and most important, less 
functions to implement for the module programmer :-)

Bye,
   Axel.


Other related posts: