summaryrefslogtreecommitdiffstats
path: root/src/shared/libosmocore/include/osmocom/core/select.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/libosmocore/include/osmocom/core/select.h')
-rw-r--r--src/shared/libosmocore/include/osmocom/core/select.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/shared/libosmocore/include/osmocom/core/select.h b/src/shared/libosmocore/include/osmocom/core/select.h
index 476c564e..18aad35f 100644
--- a/src/shared/libosmocore/include/osmocom/core/select.h
+++ b/src/shared/libosmocore/include/osmocom/core/select.h
@@ -3,20 +3,43 @@
#include <osmocom/core/linuxlist.h>
+/*! \defgroup select Select loop abstraction
+ * @{
+ */
+
+/*! \file select.h
+ * \brief select loop abstraction
+ */
+
+/*! \brief Indicate interest in reading from the file descriptor */
#define BSC_FD_READ 0x0001
+/*! \brief Indicate interest in writing to the file descriptor */
#define BSC_FD_WRITE 0x0002
+/*! \brief Indicate interest in exceptions from the file descriptor */
#define BSC_FD_EXCEPT 0x0004
+/*! \brief Structure representing a file dsecriptor */
struct osmo_fd {
- struct llist_head list;
+ /*! linked list for internal management */
+ struct llist_head list;
+ /*! actual operating-system level file decriptor */
int fd;
+ /*! bit-mask or of \ref BSC_FD_READ, \ref BSC_FD_WRITE and/or
+ * \ref BSC_FD_EXCEPT */
unsigned int when;
+ /*! call-back function to be called once file descriptor becomes
+ * available */
int (*cb)(struct osmo_fd *fd, unsigned int what);
+ /*! data pointer passed through to call-back function */
void *data;
+ /*! private number, extending \a data */
unsigned int priv_nr;
};
int osmo_fd_register(struct osmo_fd *fd);
void osmo_fd_unregister(struct osmo_fd *fd);
int osmo_select_main(int polling);
+
+/*! }@ */
+
#endif /* _BSC_SELECT_H */