Re: Proposal: merged system calls

Bryn Paul Arnold Jones (bpaj@gytha.demon.co.uk)
Sun, 19 May 1996 23:26:27 +0100 (BST)


On Sun, 19 May 1996, Ingo Molnar wrote:
> the old method:
>
> read( 4, buffer, 100 );
> send( 5, buffer, 100, 0 );
>
> the proposed method:
>
> read_send( 4, 5, 100, 0 );
>
Woulden't the 4 & 5 be the other way around, ie the socket's opened
already to get the request ? Don't worry, just nit picking ....

Hmm, woulden't makeing this work:

send( 5, read( 4, NULL, 100), 100, 0);

be easyer, better than thousands of new syscalls too (ok NULL is a bad
value, but I don't know what to but). The kernel would have to recognise
it's being passed a syscall as an argument, and do them both. It would
have to be decided wether only one level of syscall's is allowed, or
multiple. eg wether:

send( 5, read( open( "/whatever", O_RDONLY), NULL, lenfile( "/whatever")), lenfile( "/whatever"), 0);

works or not. It may be longer, but if it ment that we'd only need one
switch to kernel space .... Ofcourse, if one one part failed, it all
would. Returning error modes could be a problem, but then we would only
need to say which part failed, with the approprate errno. I know, bloat,
but it's not as much as zillions of new syscalls, and if the speedup
avalable warents it ....

> -- mingo
>
Bryn

--
PGP key pass phrase forgotten,   \ Overload -- core meltdown sequence 
again :(                          |            initiated.
                                 / This space is intentionally left   
                                |  blank, apart from this text ;-)
                                 \____________________________________