X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Futil.h;h=ac2ec8c35108e4c20fa6e73776b878fb8a91993e;hb=dc1ecd78e9f046880d10ddb45cf9b06df1084b10;hp=e254bc7884b284b9289c1ec423dd16349f4a1f55;hpb=4e240ab0c93f4d454b065eef7074132969ac6f16;p=elogind.git diff --git a/src/util.h b/src/util.h index e254bc788..ac2ec8c35 100644 --- a/src/util.h +++ b/src/util.h @@ -248,8 +248,9 @@ int parent_of_path(const char *path, char **parent); int rmdir_parents(const char *path, const char *stop); -int get_process_name(pid_t pid, char **name); -int get_process_cmdline(pid_t pid, size_t max_length, char **line); +int get_process_comm(pid_t pid, char **name); +int get_process_cmdline(pid_t pid, size_t max_length, bool comm_fallback, char **line); +int get_process_exe(pid_t pid, char **name); char hexchar(int x); int unhexchar(char c); @@ -274,7 +275,9 @@ bool path_equal(const char *a, const char *b); char *ascii_strlower(char *path); -bool dirent_is_file(struct dirent *de); +bool dirent_is_file(const struct dirent *de); +bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix); + bool ignore_file(const char *filename); bool chars_intersect(const char *a, const char *b); @@ -363,6 +366,7 @@ int get_ctty_devnr(pid_t pid, dev_t *d); int get_ctty(pid_t, dev_t *_devnr, char **r); int chmod_and_chown(const char *path, mode_t mode, uid_t uid, gid_t gid); +int fchmod_and_fchown(int fd, mode_t mode, uid_t uid, gid_t gid); int rm_rf(const char *path, bool only_dirs, bool delete_root, bool honour_sticky); @@ -374,11 +378,12 @@ void status_vprintf(const char *format, va_list ap); void status_printf(const char *format, ...); void status_welcome(void); -int columns(void); +unsigned columns(void); int running_in_chroot(void); -char *ellipsize(const char *s, unsigned length, unsigned percent); +char *ellipsize(const char *s, size_t length, unsigned percent); +char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, unsigned percent); int touch(const char *path); @@ -406,10 +411,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); @@ -419,6 +420,8 @@ bool nulstr_contains(const char*nulstr, const char *needle); bool plymouth_running(void); void parse_syslog_priority(char **p, int *priority); +void skip_syslog_pid(char **buf); +void skip_syslog_date(char **buf); int have_effective_cap(int value); @@ -447,6 +450,7 @@ int hwclock_get_time(struct tm *tm); int hwclock_set_time(const struct tm *tm); int audit_session_from_pid(pid_t pid, uint32_t *id); +int audit_loginuid_from_pid(pid_t pid, uid_t *uid); bool display_is_local(const char *display); int socket_from_display(const char *display, char **path); @@ -471,6 +475,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) @@ -508,4 +514,8 @@ extern char **saved_argv; bool kexec_loaded(void); +int prot_from_flags(int flags); + +unsigned long cap_last_cap(void); + #endif