libosmocore  0.9.6.311-c977
Osmocom core library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
select.h
Go to the documentation of this file.
1 
5 #pragma once
6 
8 #include <stdbool.h>
9 
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
data pointer passed through to call-back function
Definition: select.h:34
int osmo_fd_register(struct osmo_fd *fd)
int(* cb)(struct osmo_fd *fd, unsigned int what)
call-back function to be called once file descriptor becomes available
Definition: select.h:32
void osmo_fd_unregister(struct osmo_fd *fd)
bool osmo_fd_is_registered(struct osmo_fd *fd)
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
int osmo_select_main(int polling)
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)
struct osmo_fd * osmo_fd_get_by_fd(int fd)
int osmo_fd_fill_fds(void *readset, void *writeset, void *exceptset)
Structure representing a file dsecriptor.
Definition: select.h:22
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