mirror of https://gerrit.osmocom.org/libosmocore
add osmo_fd_setup() convenience function to fill-in osmo_fd
This basically follows the concept of osmo_timer_setup() and allows the caller to fill-in all configurable fields of osmo_fd in one line of code, rather than open-coding it in 5 lines everywhere. Change-Id: I6dbf19ea22fd65302bfc5424c10418d1b7939094
This commit is contained in:
parent
4a29f34813
commit
6c0a0e645d
|
@ -36,6 +36,10 @@ struct osmo_fd {
|
|||
unsigned int priv_nr;
|
||||
};
|
||||
|
||||
void osmo_fd_setup(struct osmo_fd *ofd, int fd, unsigned int when,
|
||||
int (*cb)(struct osmo_fd *fd, unsigned int what),
|
||||
void *data, unsigned int priv_nr);
|
||||
|
||||
bool osmo_fd_is_registered(struct osmo_fd *fd);
|
||||
int osmo_fd_register(struct osmo_fd *fd);
|
||||
void osmo_fd_unregister(struct osmo_fd *fd);
|
||||
|
|
18
src/select.c
18
src/select.c
|
@ -47,6 +47,24 @@ static int maxfd = 0;
|
|||
static LLIST_HEAD(osmo_fds);
|
||||
static int unregistered_count;
|
||||
|
||||
/*! Set up an osmo-fd. Will not register it.
|
||||
* \param[inout] ofd Osmo FD to be set-up
|
||||
* \param[in] fd OS-level file descriptor number
|
||||
* \param[in] when bit-mask of BSC_FD_{READ,WRITE,EXECEPT}
|
||||
* \param[in] cb Call-back function to be called
|
||||
* \param[in] data Private context pointer
|
||||
* \param[in] priv_nr Private number
|
||||
*/
|
||||
void osmo_fd_setup(struct osmo_fd *ofd, int fd, unsigned int when,
|
||||
int (*cb)(struct osmo_fd *fd, unsigned int what),
|
||||
void *data, unsigned int priv_nr)
|
||||
{
|
||||
ofd->fd = fd;
|
||||
ofd->when = when;
|
||||
ofd->cb = cb;
|
||||
ofd->data = data;
|
||||
ofd->priv_nr = priv_nr;
|
||||
}
|
||||
|
||||
/*! Check if a file descriptor is already registered
|
||||
* \param[in] fd osmocom file descriptor to be checked
|
||||
|
|
Loading…
Reference in New Issue