
On 12/10/21 07:49, AKASHI Takahiro wrote:
From: Simon Glass sjg@chromium.org
This is a draft implementation of event notification mechanism from Simon. Under this scheme, any U-Boot subsystem can register some kind of callback function to a particular event (more event types will be added later) and that function will be invoked once the event is fired.
As a first user, UEFI subsystem makes use of PROBE and REMOVE events so that we will be able to automatically create/remove efi_disk objects relying on associated block devices (UCLASS_BLK).
To run the test: ./u-boot -T -c "ut common test_event_probe"
Signed-off-by: Simon Glass sjg@chromium.org [add REMOVE event; fix checkpatch warnings] Signed-off-by: AKASHI Takahiro takahiro.akashi@linaro.org
This patch breaks building sandbox_spl_defconfig.
common/event.c: In function ‘event_register’: common/event.c:29:39: error: ‘gd_t’ {aka ‘struct global_data’} has no member named ‘event_state’ 29 | struct event_state *state = gd->event_state; | ^~ common/event.c: In function ‘event_notify’: common/event.c:47:39: error: ‘gd_t’ {aka ‘struct global_data’} has no member named ‘event_state’ 47 | struct event_state *state = gd->event_state; | ^~ common/event.c: At top level: common/event.c:77:5: error: redefinition of ‘event_uninit’ 77 | int event_uninit(void) | ^~~~~~~~~~~~ In file included from common/event.c:13: include/event.h:94:19: note: previous definition of ‘event_uninit’ with type ‘int(void)’ 94 | static inline int event_uninit(void) | ^~~~~~~~~~~~ common/event.c: In function ‘event_uninit’: common/event.c:79:39: error: ‘gd_t’ {aka ‘struct global_data’} has no member named ‘event_state’ 79 | struct event_state *state = gd->event_state; | ^~ common/event.c: At top level: common/event.c:90:5: error: redefinition of ‘event_init’ 90 | int event_init(void) | ^~~~~~~~~~ In file included from common/event.c:13: include/event.h:99:19: note: previous definition of ‘event_init’ with type ‘int(void)’ 99 | static inline int event_init(void) | ^~~~~~~~~~ common/event.c: In function ‘event_init’: common/event.c:100:11: error: ‘gd_t’ {aka ‘struct global_data’} has no member named ‘event_state’ 100 | gd->event_state = state; | ^~ make[2]: *** [scripts/Makefile.build:254: spl/common/event.o] Error 1 make[1]: *** [scripts/Makefile.spl:515: spl/common] Error 2 make[1]: *** Waiting for unfinished jobs.... AR spl/env/built-in.o AR spl/common/spl/built-in.o test/test-main.c: In function ‘test_pre_run’: test/test-main.c:222:11: error: ‘gd_t’ {aka ‘struct global_data’} has no member named ‘event_state’ 222 | gd->event_state = NULL; | ^~ make[2]: *** [scripts/Makefile.build:253: spl/test/test-main.o] Error 1 make[2]: *** Waiting for unfinished jobs.... AR spl/test/image/built-in.o make[1]: *** [scripts/Makefile.spl:515: spl/test] Error 2 make: *** [Makefile:2086: spl/u-boot-spl] Error 2
Best regards
Heinrich