genode/repos/base/include
Johannes Schlatow 9fc3344ee8 trace/buffer: keep "last" entry on wraps
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>
2018-05-03 15:31:54 +02:00
..
base trace/buffer: keep "last" entry on wraps 2018-05-03 15:31:54 +02:00
cap_session Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
cpu Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
cpu_session Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
cpu_thread Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
dataspace Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
deprecated Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
drivers gpio_drv: add support for i.MX6 2018-04-19 12:38:24 +02:00
io_mem_session Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
io_port_session API documentation refinements 2017-05-31 13:16:21 +02:00
irq_session Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
log_session Limit max string length in log session for okl4 2017-10-19 13:31:16 +02:00
parent Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
pd_session Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
ram_session Integrate core's RAM service into the PD service 2017-05-31 13:16:14 +02:00
region_map Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
rm_session API documentation refinements 2017-05-31 13:16:21 +02:00
rom_session Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
root Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
session Streamline exception types 2017-05-31 13:16:07 +02:00
spec Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
thread Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
trace_session trace_session: fix exception list in 'trace' RPC 2018-02-09 13:34:19 +01:00
util bit_allocator: alloc specific block of bits 2018-03-29 15:16:11 +02:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

This directory contains include files of interfaces that are exported
by components to be used by other components. Each subdirectory corresponds
to the component exporting the interface.