From 7d66859277280e48eb717756cd0b1f50b3ea2054 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 3 Jan 2008 10:03:34 +0000 Subject: ioops: make this zero-impact when compiling w/o zeroconf as well This reduces the text size of the binary slightly when zeroconf support is not built, and keeps the interface code cleaner as well. git-svn-id: https://svn.musicpd.org/mpd/trunk@7133 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/interface.c | 51 ++------------------------------------------------- 1 file changed, 2 insertions(+), 49 deletions(-) (limited to 'src/interface.c') diff --git a/src/interface.c b/src/interface.c index 76770a15f..289ed8066 100644 --- a/src/interface.c +++ b/src/interface.c @@ -49,9 +49,6 @@ static size_t interface_max_command_list_size = static size_t interface_max_output_buffer_size = INTERFACE_MAX_OUTPUT_BUFFER_SIZE_DEFAULT; -/* List of registered external IO handlers */ -static struct ioOps *ioList; - /* maybe make conf option for this, or... 32 might be good enough */ static long int interface_list_cache_size = 32; @@ -487,41 +484,18 @@ int doIOForInterfaces(void) while (1) { fdmax = 0; - FD_ZERO( &rfds ); - FD_ZERO( &wfds ); FD_ZERO( &efds ); addInterfacesReadyToReadAndListenSocketToFdSet(&rfds, &fdmax); addInterfacesForBufferFlushToFdSet(&wfds, &fdmax); - /* Add fds for all registered IO handlers */ - if( ioList ) { - struct ioOps *o = ioList; - while( o ) { - struct ioOps *current = o; - int fdnum; - assert( current->fdset ); - fdnum = current->fdset( &rfds, &wfds, &efds ); - if( fdmax < fdnum ) - fdmax = fdnum; - o = o->next; - } - } + registered_IO_add_fds(&fdmax, &rfds, &wfds, &efds); selret = select(fdmax + 1, &rfds, &wfds, &efds, &tv); if (selret < 0 && errno == EINTR) break; - /* Consume fds for all registered IO handlers */ - if( ioList ) { - struct ioOps *o = ioList; - while( o ) { - struct ioOps *current = o; - assert( current->consume ); - selret = current->consume( selret, &rfds, &wfds, &efds ); - o = o->next; - } - } + registered_IO_consume_fds(&selret, &rfds, &wfds, &efds); if (selret == 0) break; @@ -810,24 +784,3 @@ static void printInterfaceOutBuffer(Interface * interface) interface->send_buf_used = 0; } -/* From ioops.h: */ -void registerIO(struct ioOps *ops) -{ - assert(ops != NULL); - - ops->next = ioList; - ioList = ops; - ops->prev = NULL; - if (ops->next) - ops->next->prev = ops; -} - -void deregisterIO(struct ioOps *ops) -{ - assert(ops != NULL); - - if (ioList == ops) - ioList = ops->next; - else if (ops->prev != NULL) - ops->prev->next = ops->next; -} -- cgit v1.2.3