aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2024-02-23 12:07:03 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2024-02-29 09:15:43 +0100
commitf574aea38fdaf09d8ede887fc748e43b00e7c42d (patch)
tree2ec48963a055b2466b1cf77aacb092e2d39658f4
parent3c0d5001a53a6083944d964d34e44a8b7ba4d44f (diff)
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
-rw-r--r--include/osmocom/core/osmo_io.h1
-rw-r--r--src/core/libosmocore.map1
-rw-r--r--src/core/osmo_io.c8
3 files changed, 10 insertions, 0 deletions
diff --git a/include/osmocom/core/osmo_io.h b/include/osmocom/core/osmo_io.h
index dda9e6d7..8a7e53ab 100644
--- a/include/osmocom/core/osmo_io.h
+++ b/include/osmocom/core/osmo_io.h
@@ -109,3 +109,4 @@ const char *osmo_iofd_get_name(const struct osmo_io_fd *iofd);
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 a50a9ed4..72a6038e 100644
--- a/src/core/libosmocore.map
+++ b/src/core/libosmocore.map
@@ -258,6 +258,7 @@ osmo_io_backend_names;
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 b6b59087..7ea959b2 100644
--- a/src/core/osmo_io.c
+++ b/src/core/osmo_io.c
@@ -896,6 +896,14 @@ int osmo_iofd_set_ioops(struct osmo_io_fd *iofd, const struct osmo_io_ops *ioops
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 */