1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Internal definitions for events 4 * 5 * Copyright 2021 Google LLC 6 * Written by Simon Glass <sjg@chromium.org> 7 */ 8 9 #ifndef __event_internal_h 10 #define __event_internal_h 11 12 #include <event.h> 13 #include <linux/list.h> 14 15 /** 16 * struct event_spy - a spy that watches for an event of a particular type 17 * 18 * @id: Spy ID 19 * @type: Event type to subscribe to 20 * @func: Function to call when the event is sent 21 * @ctx: Context to pass to the function 22 */ 23 struct event_spy { 24 struct list_head sibling_node; 25 const char *id; 26 enum event_t type; 27 event_handler_t func; 28 void *ctx; 29 }; 30 31 struct event_state { 32 struct list_head spy_head; 33 }; 34 35 #endif 36