X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fbasic%2Futil.h;h=3cb40a83bf5990b649a162dd41ec91b743b876b1;hb=14dbe3476e6a5e03d928dc35f48577efea6baf57;hp=110f0cdd337577b7f73f0952fb58b64e0841ce1d;hpb=21ecddbbb2c9e06d080b2526a870898a8b90f52a;p=elogind.git diff --git a/src/basic/util.h b/src/basic/util.h index 110f0cdd3..3cb40a83b 100644 --- a/src/basic/util.h +++ b/src/basic/util.h @@ -83,7 +83,7 @@ int strcmp_ptr(const char *a, const char *b) _pure_; #define newdup(t, p, n) ((t*) memdup_multiply(p, sizeof(t), (n))) -#define malloc0(n) (calloc((n), 1)) +#define malloc0(n) (calloc(1, (n))) static inline void *mfree(void *memory) { free(memory); @@ -154,7 +154,10 @@ int parse_size(const char *t, off_t base, off_t *size); int parse_boolean(const char *v) _pure_; 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) +#define parse_gid(s, ret_gid) parse_uid(s, ret_gid) + +bool uid_is_valid(uid_t uid); +#define gid_is_valid(gid) uid_is_valid(gid) int safe_atou(const char *s, unsigned *ret_u); int safe_atoi(const char *s, int *ret_i); @@ -363,13 +366,16 @@ int fd_is_temporary_fs(int fd); int pipe_eof(int fd); +DEFINE_TRIVIAL_CLEANUP_FUNC(cpu_set_t*, CPU_FREE); +#define _cleanup_cpu_free_ _cleanup_(CPU_FREEp) + // UNNEEDED cpu_set_t* cpu_set_malloc(unsigned *ncpus); #define xsprintf(buf, fmt, ...) assert_se((size_t) snprintf(buf, ELEMENTSOF(buf), fmt, __VA_ARGS__) < ELEMENTSOF(buf)) int files_same(const char *filea, const char *fileb); -// UNNEEDED int running_in_chroot(void); +int running_in_chroot(void); char *ellipsize(const char *s, size_t length, unsigned percent); /* bytes columns */ @@ -388,14 +394,12 @@ DIR *xopendirat(int dirfd, const char *name, int flags); // UNNEEDED char *fstab_node_to_udev_node(const char *p); -// UNNEEDED void execute_directories(const char* const* directories, usec_t timeout, char *argv[]); +void execute_directories(const char* const* directories, usec_t timeout, char *argv[]); bool nulstr_contains(const char*nulstr, const char *needle); // UNNEEDED bool plymouth_running(void); -bool machine_name_is_valid(const char *s) _pure_; - char* strshorten(char *s, size_t l); // UNNEEDED int symlink_idempotent(const char *from, const char *to); @@ -563,6 +567,7 @@ _pure_ static inline bool string_is_glob(const char *p) { // UNNEEDED void *arg); #define _(String) gettext (String) +#define N_(String) String // UNNEEDED void init_gettext(void); bool is_locale_utf8(void); @@ -801,10 +806,10 @@ int proc_cmdline(char **ret); int parse_proc_cmdline(int (*parse_word)(const char *key, const char *value)); int get_proc_cmdline_key(const char *parameter, char **value); -// UNNEEDED int container_get_leader(const char *machine, pid_t *pid); +int container_get_leader(const char *machine, pid_t *pid); -int namespace_open(pid_t pid, int *pidns_fd, int *mntns_fd, int *netns_fd, int *root_fd); -int namespace_enter(int pidns_fd, int mntns_fd, int netns_fd, int root_fd); +int namespace_open(pid_t pid, int *pidns_fd, int *mntns_fd, int *netns_fd, int *userns_fd, int *root_fd); +int namespace_enter(int pidns_fd, int mntns_fd, int netns_fd, int userns_fd, int root_fd); int getpeercred(int fd, struct ucred *ucred); int getpeersec(int fd, char **ret); @@ -863,8 +868,8 @@ typedef enum ExtractFlags { } ExtractFlags; int extract_first_word(const char **p, char **ret, const char *separators, ExtractFlags flags); -int extract_first_word_and_warn(const char **p, char **ret, const char *separators, ExtractFlags flags, const char *unit, const char *filename, unsigned line, const char *rvalue); -int extract_many_words(const char **p, const char *separators, ExtractFlags flags, ...) _sentinel_; +// UNNEEDED int extract_first_word_and_warn(const char **p, char **ret, const char *separators, ExtractFlags flags, const char *unit, const char *filename, unsigned line, const char *rvalue); +// UNNEEDED int extract_many_words(const char **p, const char *separators, ExtractFlags flags, ...) _sentinel_; static inline void free_and_replace(char **s, char *v) { free(*s);