15 #define BSC_FD_READ 0x0001 17 #define BSC_FD_WRITE 0x0002 19 #define BSC_FD_EXCEPT 0x0004 40 int (*
cb)(
struct osmo_fd *fd,
unsigned int what),
void * data
data pointer passed through to call-back function
Definition: select.h:34
int osmo_fd_fill_fds(void *readset, void *writeset, void *exceptset)
Populate the fd_sets and return the highest fd number.
Definition: select.c:162
int osmo_fd_register(struct osmo_fd *fd)
Register a new file descriptor with select loop abstraction.
Definition: select.c:89
void osmo_fd_unregister(struct osmo_fd *fd)
Unregister a file descriptor from select loop abstraction.
Definition: select.c:130
bool osmo_fd_is_registered(struct osmo_fd *fd)
Check if a file descriptor is already registered.
Definition: select.c:73
struct llist_head list
linked list for internal management
Definition: select.h:24
unsigned int priv_nr
private number, extending data
Definition: select.h:36
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.
Definition: select.c:58
struct osmo_fd * osmo_fd_get_by_fd(int fd)
find an osmo_fd based on the integer fd
Definition: select.c:259
int osmo_select_main(int polling)
select main loop integration
Definition: select.c:230
Simple doubly linked list implementation.
(double) linked list header structure
Definition: linuxlist.h:46
int osmo_fd_disp_fds(void *readset, void *writeset, void *exceptset)
Definition: select.c:185
Structure representing a file dsecriptor.
Definition: select.h:22
int(* cb)(struct osmo_fd *fd, unsigned int what)
call-back function to be called once file descriptor becomes available
Definition: select.h:32
unsigned int when
bit-mask or of BSC_FD_READ, BSC_FD_WRITE and/or BSC_FD_EXCEPT
Definition: select.h:29
int fd
actual operating-system level file decriptor
Definition: select.h:26
void osmo_fd_close(struct osmo_fd *fd)
Close a file descriptor, mark it as closed + unregister from select loop abstraction.
Definition: select.c:145