osmo_io: Add osmo_io_get_ioops() function
This function can be used by user code to obtain the currently-set io
operations, it's the inverse of osmo_io_set_ioops().
Change-Id: I03398c811b9534f50c6644b21eea89a04be29fb0
diff --git a/include/osmocom/core/osmo_io.h b/include/osmocom/core/osmo_io.h
index dda9e6d..8a7e53a 100644
--- a/include/osmocom/core/osmo_io.h
+++ b/include/osmocom/core/osmo_io.h
@@ -109,3 +109,4 @@
void osmo_iofd_set_name(struct osmo_io_fd *iofd, const char *name);
int osmo_iofd_set_ioops(struct osmo_io_fd *iofd, const struct osmo_io_ops *ioops);
+void osmo_iofd_get_ioops(struct osmo_io_fd *iofd, struct osmo_io_ops *ioops);
diff --git a/src/core/libosmocore.map b/src/core/libosmocore.map
index a50a9ed..72a6038 100644
--- a/src/core/libosmocore.map
+++ b/src/core/libosmocore.map
@@ -258,6 +258,7 @@
osmo_iofd_close;
osmo_iofd_free;
osmo_iofd_get_data;
+osmo_iofd_get_ioops;
osmo_iofd_get_fd;
osmo_iofd_get_name;
osmo_iofd_set_name;
diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c
index b6b5908..7ea959b 100644
--- a/src/core/osmo_io.c
+++ b/src/core/osmo_io.c
@@ -896,6 +896,14 @@
return 0;
}
+/*! Get the osmo_io_ops for an iofd.
+ * \param[in] iofd Target iofd file descriptor
+ * \param[in] ioops caller-allocated osmo_io_ops structure to be filled */
+void osmo_iofd_get_ioops(struct osmo_io_fd *iofd, struct osmo_io_ops *ioops)
+{
+ *ioops = iofd->io_ops;
+}
+
/*! Notify the user if/when the socket is connected.
* When the socket is connected the write_cb will be called.
* \param[in] iofd the file descriptor */