// vi:ft=c /* -*- c -*- */ /** * \defgroup l4_api Base API * \brief Interfaces for all kinds of base functionality. * * Some notes on Inter Process Communication (IPC) * * IPC in L4 is always synchronous and unbuffered: a message is * transferred from the sender to the recipient if and only if the * recipient has invoked a corresponding IPC operation. The sender blocks * until this happens or a timeout specified by the sender elapsed * without the destination becoming ready to receive. */ /** * \defgroup l4_kernel_object_gate_api IPC-Gate API * \ingroup l4_kernel_object_api * * \brief Secure comminication object. * * IPC-Gate objects provide a means to establish secure communication channels * to L4 Threads (\ref l4_thread_api). An IPC-Gate object can be created using * a \ref l4_factory_api (l4_factory_create_gate()) and get assigned a specific * L4 thread and a \em label as protected payload. The \em label has the size * of one machine word and can only be seen by the Task running the thread that * is assigned of the IPC-gate. The \em label is received as part of the IPC * message. The \em label can thus be used to securely identify the IPC-gate * that was used to send a message. * * An IPC-gate is usually used to represent an user-level object and may be * the address of the data structure for the object in the server task. * * With client privileges an IPC-gate does not provide any direct API and * thus an IPC-gate kernel object cannot be modified by invocations. Each * invocation of an IPC-gate kernel object is translated into an IPC message * to the assigned thread. * * \see \ref l4_ipc_api */ /* * IPC can be used to copy data as well as to map or grant flexpages from * the sender to the recipient. */ /** * \defgroup l4sys_defines Basic Macros * \ingroup l4_api * \brief L4 standard macros for header files, function definitions, * and public APIs etc. */ /***************************************************************************** *** System calls *****************************************************************************/ /** * \brief L4 low-level kernel interface. */ namespace L4 { }; /** * \defgroup api_calls_fiasco Fiasco extensions * \ingroup l4_api * \brief Kernel debugger extensions of the Fiasco L4 implementation */ /** * \defgroup api_calls_rt_sched Fiasco real time scheduling extensions * \ingroup api_calls_fiasco * \brief Real time scheduling extension for the Fiasco L4 implementation */