Use osmo_fd_setup() wherever applicable

Change-Id: I5b369343cf708ddfcde347f218a10d5f72303aaa
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 @@
 		 * 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 @@
 		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 @@
 		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 @@
 			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_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 @@
 	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 @@
 		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 @@
 		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 @@
 		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 @@
 	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 @@
 	}
 
 	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 @@
 	}
 	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 @@
 {
 	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)