mirror of
https://github.com/genodelabs/genode.git
synced 2025-05-09 20:12:57 +00:00
The new types in base/ram.h model different allocation scenarios and error cases by mere C++ types without using exceptions. They are meant to replace the former 'Ram_allocator' interface. As of now, the 'Unmapped_allocator' closely captures the former 'Ram_allocator' semantics. The 'Constrained_allocator' is currently an alias for 'Unmapped_allocator' but is designated for eventually allocating mapped RAM. In contrast to the 'Ram_allocator' interface, which talked about dataspace capabilites but left the lifetime management of the allocated RAM to the caller, the new API represents an allocation as a guard type 'Allocation', which deallocates on destruction by default. Allocation errors are captured by a 'Result' type that follows the 'Attempt' pattern. As a transitionary feature, the patch largely maintains API compatibility with the original 'Ram_allocator' by providing the original (exception-based) 'Ram_allocator::alloc' and 'Ram_allocator::free' methods as a wrapper around the new 'Ram::Constrained_allocator'. So components can be gradually updated to the new 'Ram::' interface. Issue #5502
This repository contains the device-driver environment (DDE) for the "donator OS" iPXE available from http://ipxe.org/. For building DDE iPXE, you first need to fetch and patch the original sources. The 'prepare_port' tool automates this task. Just issue: ! ./tool/ports/prepare_port dde_ipxe Now, you need to include the DDE iPXE repository into your Genode build configuration by adding the path to this directory to the 'REPOSITORIES' declaration of the 'etc/build.conf' file within your build directory, for example ! REPOSITORIES += $(GENODE_DIR)/repos/dde_ipxe After a successful build the DDE iPXE based ethernet driver is located at 'bin/ipxe_nic'. The driver optionally reports the following information under the label "devices" if requested in the config as depicted. ! <config> <report mac_address="true"/> </config> ! <devices> <nic mac_address="02:00:00:00:00:01"/> </devices>