X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Futil.h;h=a71a297eab6b56740efe070d3473dd3118b183f3;hb=8f7f7a1bd3a26f501b2d6546cce1c669b59dcc87;hp=b81edc8b2b18ca14049d50cacad7079515c7b16f;hpb=ad293f5a94d8124ece7d1cb860952a87b1c8d98f;p=elogind.git diff --git a/src/util.h b/src/util.h index b81edc8b2..a71a297ea 100644 --- a/src/util.h +++ b/src/util.h @@ -288,13 +288,13 @@ int make_null_stdio(void); unsigned long long random_ull(void); -#define DEFINE_STRING_TABLE_LOOKUP(name,type) \ - const char *name##_to_string(type i) { \ +#define __DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \ + scope const char *name##_to_string(type i) { \ if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \ return NULL; \ return name##_table[i]; \ } \ - type name##_from_string(const char *s) { \ + scope type name##_from_string(const char *s) { \ type i; \ unsigned u = 0; \ assert(s); \ @@ -309,6 +309,8 @@ unsigned long long random_ull(void); } \ struct __useless_struct_to_allow_trailing_semicolon__ +#define DEFINE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE_LOOKUP(name,type,) +#define DEFINE_PRIVATE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE_LOOKUP(name,type,static) int fd_nonblock(int fd, bool nonblock); int fd_cloexec(int fd, bool cloexec); @@ -341,7 +343,7 @@ int fopen_temporary(const char *path, FILE **_f, char **_temp_path); ssize_t loop_read(int fd, void *buf, size_t nbytes, bool do_poll); ssize_t loop_write(int fd, const void *buf, size_t nbytes, bool do_poll); -int path_is_mount_point(const char *path); +int path_is_mount_point(const char *path, bool allow_symlink); bool is_device_path(const char *path); @@ -404,10 +406,6 @@ bool tty_is_vc(const char *tty); int vtnr_from_tty(const char *tty); const char *default_term_for_tty(const char *tty); -int detect_vm(const char **id); -int detect_container(const char **id); -int detect_virtualization(const char **id); - void execute_directory(const char *directory, DIR *_d, char *argv[]); int kill_and_sigcont(pid_t pid, int sig); @@ -469,6 +467,8 @@ int block_get_whole_disk(dev_t d, dev_t *ret); int file_is_sticky(const char *p); +int strdup_or_null(const char *a, char **b); + #define NULSTR_FOREACH(i, l) \ for ((i) = (l); (i) && *(i); (i) = strchr((i), 0)+1) @@ -504,4 +504,8 @@ int signal_from_string_try_harder(const char *s); extern int saved_argc; extern char **saved_argv; +bool kexec_loaded(void); + +unsigned long cap_last_cap(void); + #endif