|
libosmocore 1.7.0
Osmocom core library
|
select filedescriptor handling. More...
#include <fcntl.h>#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdbool.h>#include <errno.h>#include <osmocom/core/select.h>#include <osmocom/core/linuxlist.h>#include <osmocom/core/timer.h>#include <osmocom/core/logging.h>#include <osmocom/core/talloc.h>#include <osmocom/core/utils.h>#include <osmocom/core/stat_item.h>#include <osmocom/core/stats_tcp.h>#include "../config.h"#include <sys/select.h>#include <poll.h>#include <sys/timerfd.h>#include <sys/signalfd.h>Data Structures | |
| struct | poll_state |
Functions | |
| void | osmo_fd_setup (struct osmo_fd *ofd, int fd, unsigned int when, int(*cb)(struct osmo_fd *fd, unsigned int what), void *data, unsigned int priv_nr) |
| Set up an osmo-fd. | |
| void | osmo_fd_update_when (struct osmo_fd *ofd, unsigned int when_mask, unsigned int when) |
| Update the 'when' field of osmo_fd. | |
| bool | osmo_fd_is_registered (struct osmo_fd *fd) |
| Check if a file descriptor is already registered. | |
| int | osmo_fd_register (struct osmo_fd *fd) |
| Register a new file descriptor with select loop abstraction. | |
| void | osmo_fd_unregister (struct osmo_fd *fd) |
| Unregister a file descriptor from select loop abstraction. | |
| void | osmo_fd_close (struct osmo_fd *fd) |
| Close a file descriptor, mark it as closed + unregister from select loop abstraction. | |
| int | osmo_fd_fill_fds (void *_rset, void *_wset, void *_eset) |
| Populate the fd_sets and return the highest fd number. | |
| int | osmo_fd_disp_fds (void *readset, void *writeset, void *exceptset) |
| static unsigned int | poll_fill_fds (void) |
| static int | poll_disp_fds (unsigned int n_fd) |
| static int | _osmo_select_main (int polling) |
| int | osmo_select_main (int polling) |
| select main loop integration | |
| int | osmo_select_main_ctx (int polling) |
| select main loop integration with temporary select-dispatch talloc context | |
| struct osmo_fd * | osmo_fd_get_by_fd (int fd) |
| find an osmo_fd based on the integer fd | |
| void | osmo_select_init (void) |
| initialize the osmocom select abstraction for the current thread | |
| static | __attribute__ ((constructor)) |
| int | osmo_timerfd_disable (struct osmo_fd *ofd) |
| disable the osmocom-wrapped timerfd | |
| int | osmo_timerfd_schedule (struct osmo_fd *ofd, const struct timespec *first, const struct timespec *interval) |
| schedule the osmocom-wrapped timerfd to occur first at first, then periodically at interval | |
| int | osmo_timerfd_setup (struct osmo_fd *ofd, int(*cb)(struct osmo_fd *, unsigned int), void *data) |
| setup osmocom-wrapped timerfd | |
| static int | signalfd_callback (struct osmo_fd *ofd, unsigned int what) |
| struct osmo_signalfd * | osmo_signalfd_setup (void *ctx, sigset_t set, osmo_signalfd_cb *cb, void *data) |
| create a signalfd and register it with osmocom select loop. | |
| void | osmo_select_shutdown_request () |
| Request osmo_select_* to only service pending OSMO_FD_WRITE requests. | |
| int | osmo_select_shutdown_requested () |
| Return the number of times osmo_select_shutdown_request() was called before. | |
| bool | osmo_select_shutdown_done () |
| Return true after osmo_select_shutdown_requested() was called, and after an osmo_select poll loop found no more pending OSMO_FD_WRITE on any registered socket. | |
select filedescriptor handling.
Taken from: userspace logging daemon for the iptables ULOG target of the linux 2.4 netfilter subsystem.