# HG changeset patch # User Paul Boddie # Date 1647362199 -3600 # Node ID 3aef1b268d2c76974dbaa431d3c252a6ebde1768 # Parent 0914519a072965c1f7571c276fed35e1ecec2179 Removed the obsolete ipc_server_loop function, propagating IRQ details using the configuration structure to the ipc_server_managed_loop function directly. diff -r 0914519a0729 -r 3aef1b268d2c libipc/include/ipc/server.h --- a/libipc/include/ipc/server.h Mon Mar 14 17:44:41 2022 +0100 +++ b/libipc/include/ipc/server.h Tue Mar 15 17:36:39 2022 +0100 @@ -117,14 +117,9 @@ long _ipc_server_loop_for(int expected_items, void *handler_obj, ipc_server_handler_type handler, const char *name); -/* Handle incoming messages for a server. */ - -long ipc_server_loop(int expected_items, ipc_server_config_type *config); - /* Handle incoming messages and IRQ notifications for a server. */ -long ipc_server_managed_loop(int expected_items, ipc_server_config_type *config, - l4_cap_idx_t irq); +long ipc_server_managed_loop(int expected_items, ipc_server_config_type *config); /* A pthread-compatible mainloop initiation function. */ diff -r 0914519a0729 -r 3aef1b268d2c libipc/lib/src/server.c --- a/libipc/lib/src/server.c Mon Mar 14 17:44:41 2022 +0100 +++ b/libipc/lib/src/server.c Tue Mar 15 17:36:39 2022 +0100 @@ -174,21 +174,13 @@ return ipc_server_start_config(&config); } -/* A server main loop with no endpoint deletion detection. */ - -long ipc_server_loop(int expected_items, ipc_server_config_type *config) -{ - return ipc_server_managed_loop(expected_items, config, L4_INVALID_CAP); -} - /* A server main loop handling endpoint deletion for an IPC gate dedicated to a particular object within its own thread. */ -long ipc_server_managed_loop(int expected_items, ipc_server_config_type *config, - l4_cap_idx_t irq) +long ipc_server_managed_loop(int expected_items, ipc_server_config_type *config) { ipc_message_t msg; - l4_umword_t label, irq_label = (l4_umword_t) irq; + l4_umword_t label, irq_label = (l4_umword_t) config->irq; /* Permit other endpoints by dynamically interpreting the label. */ @@ -203,8 +195,8 @@ /* Unmask the interrupt. */ - if (l4_is_valid_cap(irq)) - ipc_init_irq(irq); + if (l4_is_valid_cap(config->irq)) + ipc_init_irq(config->irq); /* Wait for an incoming message. */ @@ -248,8 +240,7 @@ { ipc_server_config_type *config = (ipc_server_config_type *) data; - long err = ipc_server_managed_loop(config->expected_items, config, - config->irq); + long err = ipc_server_managed_loop(config->expected_items, config); if (config->finaliser != NULL) config->finaliser(config);