diff options
author | Harald Welte <laforge@gnumonks.org> | 2016-03-19 21:17:58 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-03-19 21:17:58 +0100 |
commit | 6c33ae2605b038391a80dd5defb76a5fabb5dd2b (patch) | |
tree | 368ba8edfb0c19a468b5d8abd4b4116852744212 | |
parent | 676e53446285d1b8f514580fd9485d1f27493c0b (diff) |
Add new osmo_fd_get_by_fd() function
This function can be used to obtain the osmo_fd corresponding to a given
fd. The latter can be useful when integrating libosmocore main loop
with other libraries.
-rw-r--r-- | include/osmocom/core/select.h | 2 | ||||
-rw-r--r-- | src/select.c | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/osmocom/core/select.h b/include/osmocom/core/select.h index b6b9e821..b9e3b51a 100644 --- a/include/osmocom/core/select.h +++ b/include/osmocom/core/select.h @@ -39,4 +39,6 @@ int osmo_fd_register(struct osmo_fd *fd); void osmo_fd_unregister(struct osmo_fd *fd); int osmo_select_main(int polling); +struct osmo_fd *osmo_fd_get_by_fd(int fd); + /*! @} */ diff --git a/src/select.c b/src/select.c index 5421c773..477ff662 100644 --- a/src/select.c +++ b/src/select.c @@ -170,6 +170,18 @@ restart: return work; } +/*! \brief find an osmo_fd based on the integer fd */ +struct osmo_fd *osmo_fd_get_by_fd(int fd) +{ + struct osmo_fd *ofd; + + llist_for_each_entry(ofd, &osmo_fds, list) { + if (ofd->fd == fd) + return ofd; + } + return NULL; +} + /*! @} */ #endif /* _HAVE_SYS_SELECT_H */ |