libosmocore  0.9.6-10.20170220git32ee5af8.fc31
Osmocom core library
select.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <stdbool.h>
5 
15 #define BSC_FD_READ 0x0001
16 
17 #define BSC_FD_WRITE 0x0002
18 
19 #define BSC_FD_EXCEPT 0x0004
20 
22 struct osmo_fd {
24  struct llist_head list;
26  int fd;
29  unsigned int when;
32  int (*cb)(struct osmo_fd *fd, unsigned int what);
34  void *data;
36  unsigned int priv_nr;
37 };
38 
39 bool osmo_fd_is_registered(struct osmo_fd *fd);
40 int osmo_fd_register(struct osmo_fd *fd);
41 void osmo_fd_unregister(struct osmo_fd *fd);
42 int osmo_select_main(int polling);
43 
44 struct osmo_fd *osmo_fd_get_by_fd(int fd);
45 
46 /*
47  * foreign event loop integration
48  */
49 int osmo_fd_fill_fds(void *readset, void *writeset, void *exceptset);
50 int osmo_fd_disp_fds(void *readset, void *writeset, void *exceptset);
51 
void * data
Definition: select.h:34
int osmo_fd_register(struct osmo_fd *fd)
Register a new file descriptor with select loop abstraction.
Definition: select.c:70
void osmo_fd_unregister(struct osmo_fd *fd)
Unregister a file descriptor from select loop abstraction.
Definition: select.c:111
bool osmo_fd_is_registered(struct osmo_fd *fd)
Check if a file descriptor is already registered.
Definition: select.c:54
struct llist_head list
Definition: select.h:24
unsigned int priv_nr
Definition: select.h:36
struct osmo_fd * osmo_fd_get_by_fd(int fd)
find an osmo_fd based on the integer fd
Definition: select.c:213
int osmo_select_main(int polling)
select main loop integration
Definition: select.c:184
Simple doubly linked list implementation.
(double) linked list header structure
Definition: linuxlist.h:47
Structure representing a file dsecriptor.
Definition: select.h:22
int(* cb)(struct osmo_fd *fd, unsigned int what)
Definition: select.h:32
unsigned int when
Definition: select.h:29
int fd
Definition: select.h:26