mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-23 15:32:25 +00:00
9fc3344ee8
When the former trace buffer implementation wrapped, the last entry according to commit order couldn't be detected anymore. Now, the last committed entry is always followed by an entry with length 0. As a downside of this, there are now two meanings of "last" entry: It means either that the entry marks the empty padding after the entry with the highest memory address or that it actually marks the end of the buffer according to commit order. This is an example state of the buffer with the two types of "last" entry: last last +-------------+------------+---+---------+-------------+------------+---+-------+ | len3 data3 | len4 data4 | 0 | empty | len1 data1 | len2 data2 | 0 | empty | +-------------+------------+---+---------+-------------+------------+---+-------+ If the entry with the highest memory address fits perfectly, the first type of "last" entry is not needed: last +------------+--------------------+---+-------+-------------+-------------------+ | len3 data3 | len4 data4 | 0 | empty | len1 data1 | len2 data2 | +------------+--------------------+---+-------+-------------+-------------------+ If the buffer didn't wrap so far, there is only one "last" entry that has both meanings: last +--------------------------+------------+-------------+---+---------------------+ | len1 data1 | len2 data2 | len3 data3 | 0 | empty | +--------------------------+------------+-------------+---+---------------------+ Issue #2735 Co-authored-by: Martin Stein <martin.stein@genode-labs.com> |
||
---|---|---|
.. | ||
etc | ||
include | ||
lib | ||
mk | ||
ports | ||
recipes | ||
run | ||
src | ||
README |
This is generic part of the Genode implementation. It consists of two parts: :_Core_: is the ultimate root of the Genode application tree and provides abstractions for the lowest-level hardware resources such as RAM, ROM, CPU, and generic device access. All generic parts of Core can be found here - for system-specific implementations refer to the appropriate 'base-<system>' directory. :_Base libraries and protocols_: that are used by each Genode component to interact with other components. This is the glue that holds everything together. _Core_ may export information about the hardware platform by an ROM called 'platform_info'. Depending on the platform, e.g. ARM or x86 or riscv, and depending on the boot mode and boot loader and kernel, some nodes may not be populated. !<platform_info> ! <acpi revision="2" rsdt="0x1fe93074" xsdt="0x1fe930e8"/> ! <boot> ! <framebuffer phys="0x7300000" width="1024" height="768" bpp="32"/> ! </boot> !</platform_info> If the ACPI RSDT and XSDT physical pointer is reported by the used kernel and/or bootloader, _Core_ may provide this information by the ROM. If the graphic device is initialised and can be directly used by a framebuffer driver, _Core_ may provide the physical pointer to the framebuffer, the resolution and color depth in bits.