cvs commit: src/sys/i386/i386 exception.s machdep.c trap.c

Tobias Weingartner weingart at
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.


More information about the Commits mailing list