chiark / gitweb /
core: add new RestrictAddressFamilies= switch
[elogind.git] / src / shared / util.h
index e379c30e6392f7074118a2a15d6a0ccee205fe99..78b1444739227d6e27db1930e03b5aba8edba89f 100644 (file)
@@ -144,8 +144,9 @@ int close_nointr(int fd);
 void close_nointr_nofail(int fd);
 void close_many(const int fds[], unsigned n_fd);
 
+int parse_size(const char *t, off_t base, off_t *size);
+
 int parse_boolean(const char *v) _pure_;
-int parse_bytes(const char *t, off_t *bytes);
 int parse_pid(const char *s, pid_t* ret_pid);
 int parse_uid(const char *s, uid_t* ret_uid);
 #define parse_gid(s, ret_uid) parse_uid(s, ret_uid)
@@ -722,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need);
 #define GREEDY_REALLOC0(array, allocated, need) \
         greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need))
 
+#define GREEDY_REALLOC0_T(array, count, need)                           \
+        ({                                                              \
+                size_t _size = (count) * sizeof((array)[0]);            \
+                void *_ptr = GREEDY_REALLOC0((array), _size, (need));   \
+                if (_ptr)                                               \
+                        (count) = _size / sizeof((array)[0]);           \
+                _ptr;                                                   \
+        })
+
 static inline void _reset_errno_(int *saved_errno) {
         errno = *saved_errno;
 }
@@ -871,4 +881,5 @@ int open_tmpfile(const char *path, int flags);
 
 int fd_warn_permissions(const char *path, int fd);
 
-unsigned long parse_personality(const char *p);
+unsigned long personality_from_string(const char *p);
+const char *personality_to_string(unsigned long);