cvs commit: src/sys/sys errno.h globaldata.h msgport.h syscall-hide.h syscall.h syscall.mk sysproto.h sysunion.h thread.h
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Jul 24 16:53:18 PDT 2003
dillon 2003/07/24 16:52:39 PDT
Modified files:
sys/sys errno.h globaldata.h msgport.h
syscall-hide.h syscall.h syscall.mk
sysproto.h sysunion.h thread.h
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);
}
Performance verses a direct system call is currently excellent considering
that this is my initial attempt.
600MHzC3 1.2GHzP3x2(SMP)
getuid() 1300 ns 909 ns
getuid_msg() 1700 ns 1077 ns
Revision Changes Path
1.3 +15 -2 src/sys/sys/errno.h
1.12 +2 -1 src/sys/sys/globaldata.h
1.4 +6 -0 src/sys/sys/msgport.h
1.5 +0 -0 src/sys/sys/syscall-hide.h
1.5 +0 -0 src/sys/sys/syscall.h
1.5 +0 -0 src/sys/sys/syscall.mk
1.5 +10 -0 src/sys/sys/sysproto.h
1.2 +0 -0 src/sys/sys/sysunion.h
1.27 +1 -0 src/sys/sys/thread.h
More information about the Commits
mailing list