-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 24.03.2015 07:53, 水镜 wrote:
hi, where could i find the implemention of l4_ipc_send?
This function is implemented in the architecture-specific system includes in l4/pkg/l4sys/include/ARCH-*/L4API-l4f/ipc.h. For example for x86, this is in ARCH-x86/L4API-l4f/ipc-l42-gcc3-nopic.h.
What you will find there is however only an inline assembly call to L4_ENTER_KERNEL, which again depends on the architecture and for x86 usually maps to SYSENTER or INT 0x30.
This code will then enter Fiasco and the entry point for system calls in Fiasco can then be found in Fiasco's arch-specific entry code. Again using x86 as an example, this will be in fiasco/src/kern/ia32/32/entry.S.
- From there, the kernel multiplexes your system call to the respective handlers for the different Fiasco kernel objects. IPC is a system call based on the Thread object, so the entry point for this will be Thread_object::invoke() in fiasco/src/kern/thread_object.cpp. From there you should be able to find your way through the various IPC-related functions.
Bjoern
l4-hackers@os.inf.tu-dresden.de