Hello, I have been taking a look at a few syscalls in /usr/src/sys/kern/ and always find that in their actuall c definition the function names are preprended by a sys_. Take for example the fork system call which is found in /usr/src/sys/kern/kern_fork.c
int sys_fork(struct thread *td, struct fork_args *uap) ... Now when I write a program from userland, that makes use of the fork system call, then if call it as: fork(); All the syscall are part of libc, which is usually defined in /usr/src/lib/libc/ Since the system calls are already defined in the kernel sources, they no longer need to be defined in /usr/src/lib/libc/. This is the reason why one can only find the manpages and no c files in /usr/src/lib/libc/sys? At least this is how my thinking goes. Now, when the syscalls in the kernel sources are all defined as sys_xxx but are invoked as xxx and the c headers also show syscall prototypes without any prepended sys. How does the actual user-, kernelland move happen? In other words, why do I invoke fork() as fork() and not as sys_fork()? Or is there something that I missed? Clarification on that point is highly welcome. Thanks _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"