1/** 2\page l4re_concepts Programming for L4Re 3- \subpage l4re_concepts_kernel_factory 4 5\page l4re_concepts_kernel_factory Kernel Factory 6 7The kernel factory is a kernel object that provides the ability to create new 8kernel objects dynamically. 9 10The kernel factory enforces a memory quota. This quota defines the maximum 11amount of kernel memory the factory service can use to construct the requested 12objects. When the quota is depleted, the factory refuses the creation of new 13objects. 14 15The quota may be higher than the amount of available kernel memory; ultimately, 16the amount of available kernel memory is the strict limit for the factory to 17remain operational. 18 19The kernel factory creates the following kinds of objects: 20 21- \ref l4_kernel_object_dmar_space 22- L4::Factory 23- L4::Ipc_gate 24- L4::Irq 25- L4::Semaphore 26- L4::Task 27- L4::Thread 28- L4::Vm 29 30The protocol IDs for objects in this list are given in \ref l4_msgtag_protocol. 31The protocol ID shall be used as the second argument for 32L4::Factory.create(Cap<void>, long, l4_utcb_t *). 33 34For the C++ interface see L4::Factory, for the C interface see 35\ref l4_factory_api. 36 37\section kernel_factory_create Passing parameters for the create stream 38 39L4::Factory.create() returns a [create stream](\ref L4::Factory::S) that 40allows arguments to be forwarded to the constructor of the object to be 41created. 42 43Objects that support additional parameters on their creation are presented with 44a non-empty list of parameters. The parameters are listed in the order they 45should be provided to a create stream returned by L4::Factory.create(). 46 47 - \link l4_kernel_object_dmar_space Dmar_space\endlink() 48 - L4::Factory(\ref l4_umword_t) 49 - Argument: factory quota (in bytes). 50 - See L4::Factory.create_factory() for details. 51 - L4::Ipc_gate() 52 - Creates an unbound IPC gate. 53 - Alternatively, an IPC gate can be immediately bound to a thread upon 54 creation using L4::Factory.create_gate(). 55 - L4::Irq() 56 - L4::Semaphore() 57 - L4::Task(\ref l4_fpage_t) 58 - Argument: utcb_area 59 - See L4::Factory.create_task() for details. 60 - L4::Thread() 61 - L4::Vm() 62*/ 63