DragonFly BSD
DragonFly commits List (threaded) for 2003-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

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


From: weingart@xxxxxxxxxxxxxx (Tobias Weingartner)
Date: 14 Aug 2003 17:38:10 GMT

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



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]