1.1 --- a/libipc/include/ipc/server.h Sun Mar 13 01:24:40 2022 +0100
1.2 +++ b/libipc/include/ipc/server.h Mon Mar 14 01:33:25 2022 +0100
1.3 @@ -27,6 +27,13 @@
1.4
1.5 EXTERN_C_BEGIN
1.6
1.7 +/* A convenience macro for invoking the server mainloop. */
1.8 +
1.9 +#define ipc_server_loop_for(TYPE, POINTER, NAME) \
1.10 + _ipc_server_loop_for(TYPE##_expected_items, (TYPE *) POINTER, \
1.11 + (ipc_server_handler_type) handle_##TYPE, \
1.12 + NAME)
1.13 +
1.14 /* A handler function type. */
1.15
1.16 typedef void (*ipc_server_handler_type)(ipc_message_t *, void *);
1.17 @@ -107,6 +114,11 @@
1.18
1.19 /* Handle incoming messages for a server. */
1.20
1.21 +long _ipc_server_loop_for(int expected_items, void *handler_obj,
1.22 + ipc_server_handler_type handler, const char *name);
1.23 +
1.24 +/* Handle incoming messages for a server. */
1.25 +
1.26 long ipc_server_loop(int expected_items, ipc_server_config_type *config);
1.27
1.28 /* Handle incoming messages and IRQ notifications for a server. */