[haiku-development] Re: 64-bit syscalls in real_time_clock.c
From: Ingo Weinhold <ingo_weinhold@xxxxxx>
To: haiku-development@xxxxxxxxxxxxx
Date: Sat, 22 Mar 2008 20:30:23 +0100
On 2008-03-22 at 19:43:37 [+0100], Rene Gollent <anevilyak@xxxxxxxxx> wrote:
> >
> > > I noticed real_time_clock_usecs() returns a bigtime_t but doesn't make
> > > that call.
> >
> > It's not a syscall though. If it were, it would have the prefix "_user_".
> >
>
> I wondered about that too, but I notice it's defined as a system call
> in kernel/OS.h, but could find no _user_ equivalent for it, so I
> assumed it was used for that as well.
Syscalls are only the functions declared in
headers/private/kernel/syscalls.h. The build system automatically generates
the userland-side stubs calling the kernel and the kernel-side jump table
referencing the respective _user_*() functions. Any other function you find
in userland must have an implementation somewhere.
It is also worth mentioning that a good deal of libroot code is recompiled
for the kernel (cf. src/system/kernel/lib). Therefore you'll often find some
libroot function calling a _kern_*() syscall and a normal function with just
that signature implemented in the kernel. Other functions, like
real_time_clock_usecs(), find_thread(), etc. are simply implemented
separately for libroot and for the kernel.
CU, Ingo