]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/l4sys/doc/l4sys-l4f-groups.dox
update
[l4.git] / l4 / pkg / l4sys / doc / l4sys-l4f-groups.dox
1 // vi:ft=c
2 /* -*- c -*- */
3
4 /**
5  * \defgroup l4_api Base API
6  * \brief Interfaces for all kinds of base functionality.
7  * 
8  * Some notes on Inter Process Communication (IPC)
9  *
10  * IPC in L4 is always synchronous and unbuffered: a message is
11  * transferred from the sender to the recipient if and only if the
12  * recipient has invoked a corresponding IPC operation. The sender blocks
13  * until this happens or a timeout specified by the sender elapsed
14  * without the destination becoming ready to receive.
15  */
16
17 /**
18  * \defgroup l4_kernel_object_gate_api IPC-Gate API
19  * \ingroup l4_kernel_object_api
20  *
21  * \brief Secure comminication object.
22  *
23  * IPC-Gate objects provide a means to establish secure communication channels
24  * to L4 Threads (\ref l4_thread_api). An IPC-Gate object can be created using
25  * a \ref l4_factory_api (l4_factory_create_gate()) and get assigned a specific
26  * L4 thread and a \em label as protected payload. The \em label has the size
27  * of one machine word and can only be seen by the Task running the thread that
28  * is assigned of the IPC-gate. The \em label is received as part of the IPC
29  * message.  The \em label can thus be used to securely identify the IPC-gate
30  * that was used to send a message.
31  *
32  * An IPC-gate is usually used to represent an user-level object and may be
33  * the address of the data structure for the object in the server task.
34  *
35  * With client privileges an IPC-gate does not provide any direct API and
36  * thus an IPC-gate kernel object cannot be modified by invocations. Each
37  * invocation of an IPC-gate kernel object is translated into an IPC message
38  * to the assigned thread.
39  *
40  * \see \ref l4_ipc_api
41  */
42
43
44 /*
45  * IPC can be used to copy data as well as to map or grant flexpages from
46  * the sender to the recipient.
47  */
48
49 /**
50  * \defgroup l4sys_defines Basic Macros
51  * \ingroup l4_api
52  * \brief L4 standard macros for header files, function definitions,
53  *        and public APIs etc.
54  */
55
56
57 /*****************************************************************************
58  *** System calls
59  *****************************************************************************/
60
61 /**
62  * \brief L4 low-level kernel interface.
63  */
64 namespace L4 { };
65
66
67 /**
68  * \defgroup api_calls_fiasco Fiasco extensions
69  * \ingroup  l4_api
70  * \brief    Kernel debugger extensions of the Fiasco L4 implementation
71  */
72
73 /**
74  * \defgroup api_calls_rt_sched Fiasco real time scheduling extensions
75  * \ingroup  api_calls_fiasco
76  * \brief    Real time scheduling extension for the Fiasco L4 implementation
77  */