chiark / gitweb /
core: introduce ConditionSecurity=audit
[elogind.git] / src / shared / util.h
index aad9eb7fcbc07f51edc4a95dd4107eea2d310e99..e405b02a8189760d4a9a773c160f330baba20bc7 100644 (file)
@@ -830,6 +830,21 @@ static inline int log2i(int x) {
         return __SIZEOF_INT__ * 8 - __builtin_clz(x) - 1;
 }
 
+static inline unsigned log2u(unsigned x) {
+        assert(x > 0);
+
+        return sizeof(unsigned) * 8 - __builtin_clz(x) - 1;
+}
+
+static inline unsigned log2u_round_up(unsigned x) {
+        assert(x > 0);
+
+        if (x == 1)
+                return 0;
+
+        return log2u(x - 1) + 1;
+}
+
 static inline bool logind_running(void) {
         return access("/run/systemd/seats/", F_OK) >= 0;
 }