summaryrefslogtreecommitdiffstats
path: root/include/osmocom/core/select.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-08-16 23:26:52 +0200
committerHarald Welte <laforge@gnumonks.org>2011-08-16 23:26:52 +0200
commitbd598e3c5eff85ed3958909584d3d8e1e2235b41 (patch)
tree1b47f59c634cc1139be16e4625f7809c4d3e4460 /include/osmocom/core/select.h
parent300e78d3e5714449e73a056dd5878adab97c6423 (diff)
start to add doxygen documentation to libosmocore headers
Diffstat (limited to 'include/osmocom/core/select.h')
-rw-r--r--include/osmocom/core/select.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/include/osmocom/core/select.h b/include/osmocom/core/select.h
index 476c564e..b1b82672 100644
--- a/include/osmocom/core/select.h
+++ b/include/osmocom/core/select.h
@@ -3,20 +3,48 @@
#include <osmocom/core/linuxlist.h>
+/*! \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;
};
+/*! \brief Register a new file descriptor with select loop abstraction
+ * \param[in] fd osmocom file descriptor to be registered
+ */
int osmo_fd_register(struct osmo_fd *fd);
+
+/*! \brief Unregister a file descriptor from select loop abstraction
+ * \param[in] fd osmocom file descriptor to be unregistered
+ */
void osmo_fd_unregister(struct osmo_fd *fd);
+
+/*! \brief select main loop integration
+ * \param[in] polling should we pollonly (1) or block on select (0)
+ */
int osmo_select_main(int polling);
+
#endif /* _BSC_SELECT_H */