cvs commit: src/sys/i386/i386 exception.s machdep.c trap.c
Tobias Weingartner
weingart at cs.ualberta.ca
Thu Aug 14 10:38:10 PDT 2003
Matthew Dillon wrote:
> dillon 2003/07/24 16:52:36 PDT
>
> Modified files:
> sys/i386/i386 exception.s machdep.c trap.c
> Log:
> Syscall messaging work 2: Continue with the implementation of sendsys(),
> using int 0x81. This entry point will be responsible for sending system
> call messages or waiting for messages / port activity.
>
> With this commit system call messages can be run through 0x81 but at the
> moment they will always run synchronously. Here's the core interface
> code for IA32:
>
> static __inline int
> sendsys(void *port, void *msg, int msgsize)
> {
> int error;
> __asm __volatile("int $0x81" : "=a"(error) :
> "a"(port), "c"(msg), "d"(msgsize) : "memory");
> return(error);
> }
Would it not make more sense to use 'esi/edi' for the pointer, and 'ecx'
for the size? That way you can potentially use a simple 'loop' construct
to copy the things in?
> Performance verses a direct system call is currently excellent considering
> that this is my initial attempt.
--
Toby.
[100~Plax]sb16i0A2172656B63616820636420726568746F6E61207473754A[dZ1!=b]salax
More information about the Commits
mailing list