the implemention of l4_ipc_send

Björn Döbel doebel at os.inf.tu-dresden.de
Tue Mar 24 09:01:31 CET 2015


-----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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlURGdgACgkQP5ijxgQLUNn9ogCePDiAOb9nW9wM9RSSBQraHFss
R54An3J9JDCEnlz1El29ocM2aan1ue23
=/MMr
-----END PGP SIGNATURE-----



More information about the l4-hackers mailing list