class RomTable
Defined at line 91 of file ../../zircon/kernel/dev/coresight/include/dev/coresight/rom_table.h
[CS] D5
A ROM table is a basic CoreSight component that provides pointers to other
components (including other ROM tables) in its lower registers via offsets
from its base address. It is an organizational structure that can be used to
find all CoreSight components - possibly as well as legacy or
vendor-specific ones - on an SoC. Thought of as a tree, the leaves are the
system's CoreSight components and the root is typically referred to as the
"base ROM table" (or, more plainly, "the ROM table").
Public Methods
template <typename IoProvider, typename ComponentCallback>
fit::result<WalkError> Walk (IoProvider io, uint32_t max_offset, ComponentCallback && callback)
Walks the underlying tree of components with no dynamic allocation,
calling `callback` on the offset from the table's base address (implicitly
encoded in `io`) of each component found. The (`io`, `max_offset`)
together implicitly give the aperture to walk.
The walk will visit and access the first page of memory of each found
component. Unfortunately, however, there is no canonical means to
determine how large a region of memory this entails. The determination of
the maximum visited offset - or at least something deemed large enough -
is left to the caller. The offset must at least be
`kMininumComponentSize`, which is the size of the base table proper.
Defined at line 111 of file ../../zircon/kernel/dev/coresight/include/dev/coresight/rom_table.h