osmo_io: Use bitfield for various boolean flags
Change-Id: Ic134e4c8d791c34778202fea98a70bc04007a113
diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c
index b00da63..253dfa2 100644
--- a/src/core/osmo_io.c
+++ b/src/core/osmo_io.c
@@ -388,6 +388,7 @@
iofd->fd = fd;
iofd->mode = mode;
+ IOFD_FLAG_SET(iofd, IOFD_FLAG_CLOSED);
if (name)
iofd->name = talloc_strdup(iofd, name);
@@ -427,7 +428,7 @@
if (rc)
return rc;
- iofd->closed = false;
+ IOFD_FLAG_UNSET(iofd, IOFD_FLAG_CLOSED);
osmo_iofd_ops.read_enable(iofd);
osmo_iofd_ops.write_enable(iofd);
@@ -443,6 +444,7 @@
{
if (osmo_iofd_ops.unregister_fd)
return osmo_iofd_ops.unregister_fd(iofd);
+ IOFD_FLAG_SET(iofd, IOFD_FLAG_CLOSED);
return 0;
}
@@ -483,12 +485,12 @@
osmo_iofd_close(iofd);
- if (!iofd->in_callback) {
+ if (!IOFD_FLAG_ISSET(iofd, IOFD_FLAG_IN_CALLBACK)) {
talloc_free(iofd);
} else {
/* Prevent our parent context from freeing us prematurely */
talloc_steal(NULL, iofd);
- iofd->to_free = true;
+ IOFD_FLAG_SET(iofd, IOFD_FLAG_TO_FREE);
}
}
@@ -503,10 +505,10 @@
{
int rc = 0;
- if (iofd->closed)
+ if (IOFD_FLAG_ISSET(iofd, IOFD_FLAG_CLOSED))
return rc;
- iofd->closed = true;
+ IOFD_FLAG_SET(iofd, IOFD_FLAG_CLOSED);
/* Free pending msgs in tx queue */
osmo_iofd_txqueue_clear(iofd);