aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-10-18 22:59:58 +0200
committerHarald Welte <laforge@osmocom.org>2020-12-21 17:58:06 +0100
commit6e831b72d7bc33a77ef35ca1851e9bd549045777 (patch)
tree791c0d49af8ebc11d2e5d7a529df2c6c1970b59e
parent77a7cf429b5b296d39ace5b0b2b672eb3c674022 (diff)
Use osmo_fd_setup() wherever applicable
-rw-r--r--src/input/dahdi.c5
-rw-r--r--src/input/e1d.c5
-rw-r--r--src/input/ipa.c16
-rw-r--r--src/input/misdn.c6
-rw-r--r--src/input/rs232.c4
-rw-r--r--src/input/unixsocket.c5
-rw-r--r--src/trau/osmo_ortp.c8
-rw-r--r--tests/e1inp_ipa_bts_test.c5
8 files changed, 12 insertions, 42 deletions
diff --git a/src/input/dahdi.c b/src/input/dahdi.c
index ce9dfc1..a29a233 100644
--- a/src/input/dahdi.c
+++ b/src/input/dahdi.c
@@ -643,10 +643,6 @@ static int dahdi_e1_setup(struct e1inp_line *line)
* board will be 32 */
dev_nr = scfg->chan_base + idx;
- bfd->data = line;
- bfd->priv_nr = ts;
- bfd->cb = dahdi_fd_cb;
-
switch (e1i_ts->type) {
case E1INP_TS_TYPE_NONE:
/* close/release LAPD instance, if any */
@@ -712,6 +708,7 @@ static int dahdi_e1_setup(struct e1inp_line *line)
if (bfd->fd < 0)
return bfd->fd;
+ osmo_fd_setup(bfd, bfd->fd, bfd->when, dahdi_fd_cb, line, ts);
ret = osmo_fd_register(bfd);
if (ret < 0) {
LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "could not register FD: %s\n", strerror(ret));
diff --git a/src/input/e1d.c b/src/input/e1d.c
index 3b1a45f..e3a3b82 100644
--- a/src/input/e1d.c
+++ b/src/input/e1d.c
@@ -364,10 +364,6 @@ e1d_line_update(struct e1inp_line *line)
if (bfd->list.next && bfd->list.next != LLIST_POISON1)
osmo_fd_unregister(bfd);
- bfd->data = line;
- bfd->priv_nr = ts;
- bfd->cb = e1d_fd_cb;
-
if (e1i_ts->type != E1INP_TS_TYPE_NONE && ts >= num_ts_info) {
LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "Timeslot configured, but not existent "
"on E1D side; skipping\n");
@@ -457,6 +453,7 @@ e1d_line_update(struct e1inp_line *line)
break;
};
+ osmo_fd_setup(bfd, bfd->fd, bfd->when, e1d_fd_cb, line, ts);
ret = osmo_fd_register(bfd);
if (ret < 0) {
LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "could not register FD: %s\n", strerror(ret));
diff --git a/src/input/ipa.c b/src/input/ipa.c
index c3e4ad3..8281b4f 100644
--- a/src/input/ipa.c
+++ b/src/input/ipa.c
@@ -189,11 +189,7 @@ ipa_client_conn_create2(void *ctx, struct e1inp_ts *ts,
}
}
- ipa_link->ofd->when |= OSMO_FD_READ | OSMO_FD_WRITE;
- ipa_link->ofd->priv_nr = priv_nr;
- ipa_link->ofd->cb = ipa_client_fd_cb;
- ipa_link->ofd->data = ipa_link;
- ipa_link->ofd->fd = -1;
+ osmo_fd_setup(ipa_link->ofd, -1, OSMO_FD_READ|OSMO_FD_WRITE, ipa_client_fd_cb, ipa_link, priv_nr);
ipa_link->state = IPA_CLIENT_LINK_STATE_CONNECTING;
ipa_link->local_addr = talloc_strdup(ipa_link, loc_addr);
ipa_link->local_port = loc_port;
@@ -312,10 +308,7 @@ ipa_server_link_create(void *ctx, struct e1inp_line *line,
if (!ipa_link)
return NULL;
- ipa_link->ofd.when |= OSMO_FD_READ | OSMO_FD_WRITE;
- ipa_link->ofd.cb = ipa_server_fd_cb;
- ipa_link->ofd.fd = -1;
- ipa_link->ofd.data = ipa_link;
+ osmo_fd_setup(&ipa_link->ofd, -1, OSMO_FD_READ|OSMO_FD_WRITE, ipa_server_fd_cb, ipa_link, 0);
if (addr)
ipa_link->addr = talloc_strdup(ipa_link, addr);
ipa_link->port = port;
@@ -435,10 +428,7 @@ ipa_server_conn_create(void *ctx, struct ipa_server_link *link, int fd,
return NULL;
}
conn->server = link;
- conn->ofd.fd = fd;
- conn->ofd.data = conn;
- conn->ofd.cb = ipa_server_conn_cb;
- conn->ofd.when = OSMO_FD_READ;
+ osmo_fd_setup(&conn->ofd, fd, OSMO_FD_READ, ipa_server_conn_cb, conn, 0);
conn->cb = cb;
conn->closed_cb = closed_cb;
conn->data = data;
diff --git a/src/input/misdn.c b/src/input/misdn.c
index 9d33932..52cd311 100644
--- a/src/input/misdn.c
+++ b/src/input/misdn.c
@@ -592,10 +592,6 @@ static int mi_e1_setup(struct e1inp_line *line, int release_l2)
struct osmo_fd *bfd = &e1i_ts->driver.misdn.fd;
struct sockaddr_mISDN addr;
- bfd->data = line;
- bfd->priv_nr = ts;
- bfd->cb = misdn_fd_cb;
-
switch (e1i_ts->type) {
case E1INP_TS_TYPE_NONE:
continue;
@@ -682,6 +678,8 @@ static int mi_e1_setup(struct e1inp_line *line, int release_l2)
if (e1i_ts->type == E1INP_TS_TYPE_TRAU)
activate_bchan(line, ts, 1);
+ osmo_fd_setup(bfd, bfd->fd, bfd->when, misdn_fd_cb, line, ts);
+
ret = osmo_fd_register(bfd);
if (ret < 0) {
fprintf(stderr, "could not register FD: %s\n",
diff --git a/src/input/rs232.c b/src/input/rs232.c
index 390d7fe..522cf0e 100644
--- a/src/input/rs232.c
+++ b/src/input/rs232.c
@@ -256,9 +256,7 @@ rs232_setup(struct e1inp_line *line, const char *serial_port, unsigned int delay
ser_handle->line = line;
ser_handle->delay_ms = delay_ms;
- bfd->when = OSMO_FD_READ;
- bfd->cb = serial_fd_cb;
- bfd->data = ser_handle;
+ osmo_fd_setup(bfd, bfd->fd, OSMO_FD_READ, serial_fd_cb, ser_handle, 0);
rc = osmo_fd_register(bfd);
if (rc < 0) {
diff --git a/src/input/unixsocket.c b/src/input/unixsocket.c
index 252da03..9a6ff9b 100644
--- a/src/input/unixsocket.c
+++ b/src/input/unixsocket.c
@@ -242,9 +242,6 @@ static int unixsocket_line_update(struct e1inp_line *line)
}
config = line->driver_data;
- config->fd.data = line;
- config->fd.when = OSMO_FD_READ;
- config->fd.cb = unixsocket_cb;
/* Open unix domain socket */
if (line->sock_path == NULL) {
@@ -274,7 +271,7 @@ static int unixsocket_line_update(struct e1inp_line *line)
}
LOGPIL(line, DLINP, LOGL_DEBUG, "successfully opend (new) socket: %s (line=%p, fd=%d, ret=%d)\n",
sock_path, line, config->fd.fd, ret);
- config->fd.fd = ret;
+ osmo_fd_setup(&config->fd, ret, OSMO_FD_READ, unixsocket_cb, line, 0);
/* Register socket in select loop */
if (osmo_fd_register(&config->fd) < 0) {
diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c
index fab6471..0cd4e9d 100644
--- a/src/trau/osmo_ortp.c
+++ b/src/trau/osmo_ortp.c
@@ -247,12 +247,8 @@ static int osmo_rtp_socket_fdreg(struct osmo_rtp_socket *rs)
{
int rc;
- rs->rtp_bfd.fd = rtp_session_get_rtp_socket(rs->sess);
- rs->rtcp_bfd.fd = rtp_session_get_rtcp_socket(rs->sess);
- rs->rtp_bfd.when = rs->rtcp_bfd.when = OSMO_FD_READ;
- rs->rtp_bfd.data = rs->rtcp_bfd.data = rs;
- rs->rtp_bfd.cb = osmo_rtp_fd_cb;
- rs->rtcp_bfd.cb = osmo_rtcp_fd_cb;
+ osmo_fd_setup(&rs->rtp_bfd, rtp_session_get_rtp_socket(rs->sess), OSMO_FD_READ, osmo_rtp_fd_cb, rs, 0);
+ osmo_fd_setup(&rs->rtcp_bfd, rtp_session_get_rtcp_socket(rs->sess), OSMO_FD_READ, osmo_rtcp_fd_cb, rs, 0);
rc = osmo_fd_register(&rs->rtp_bfd);
if (rc < 0)
diff --git a/tests/e1inp_ipa_bts_test.c b/tests/e1inp_ipa_bts_test.c
index 3c7613e..68dfefb 100644
--- a/tests/e1inp_ipa_bts_test.c
+++ b/tests/e1inp_ipa_bts_test.c
@@ -307,10 +307,7 @@ int main(void)
LOGP(DBTSTEST, LOGL_ERROR, "cannot create pipe fds\n");
exit(EXIT_FAILURE);
}
- bts_eventfd.fd = eventfds[0];
- bts_eventfd.cb = test_bts_gsm_12_21_cb;
- bts_eventfd.when = OSMO_FD_READ;
- bts_eventfd.data = &bts_dev_info;
+ osmo_fd_setup(&bts_eventfd, eventfds[0], OSMO_FD_READ, test_bts_gsm_12_21_cb, &bts_dev_info, 0);
if (osmo_fd_register(&bts_eventfd) < 0) {
LOGP(DBTSTEST, LOGL_ERROR, "could not register event fd\n");
exit(EXIT_FAILURE);