[haiku-development] Re: 64-bit syscalls in real_time_clock.c

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

Other related posts: