]> git.dujemihanovic.xyz Git - u-boot.git/commit
initcall: Support emitting events
authorSimon Glass <sjg@chromium.org>
Tue, 22 Aug 2023 03:16:54 +0000 (21:16 -0600)
committerTom Rini <trini@konsulko.com>
Thu, 31 Aug 2023 17:16:54 +0000 (13:16 -0400)
commitc9eff0a6b6ea2bcd54d30f8a02281681f3730223
treeecb9d75aed5368b976c6ac91ff031529263432f5
parentfb7dfca28ad256f27f89a79f96cb4617dc54731d
initcall: Support emitting events

At present the initcall list consists of a list of function pointers. Over
time the initcall lists will likely change to mostly emitting events,
since most of the calls are board- or arch-specific.

As a first step, allow an initcall to be an event type instead of a
function pointer. Add the required macro and update initcall_run_list() to
emit an event in that case, or ignore it if events are not enabled.

The bottom 8 bits of the function pointer are used to hold the event type,
with the rest being all ones. This should avoid any collision, since
initcalls should not be above 0xffffff00 in memory.

Convert misc_init_f over to use this mechanism.

Add comments to the initcall header file while we are here. Also fix up
the trace test to handle the change.

Signed-off-by: Simon Glass <sjg@chromium.org>
common/board_f.c
include/initcall.h
lib/initcall.c
test/py/tests/test_trace.py