X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Futil.h;h=0af0299dbb502f113806f175458c82564bf5a70e;hp=e0934e59d902504f718b1236b53629c89b8a35e1;hb=f67cc036ba92a3c71acb664ed2d548de5827cf1f;hpb=71ecc858fa91a686a050bee51804d43865ce1acc diff --git a/src/shared/util.h b/src/shared/util.h index e0934e59d..0af0299db 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -9,16 +9,16 @@ Copyright 2010 Lennart Poettering systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. systemd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with systemd; If not, see . ***/ @@ -34,6 +34,7 @@ #include #include #include +#include #include "macro.h" @@ -72,6 +73,7 @@ typedef struct dual_timestamp { #define ANSI_HIGHLIGHT_ON "\x1B[1;39m" #define ANSI_HIGHLIGHT_RED_ON "\x1B[1;31m" #define ANSI_HIGHLIGHT_GREEN_ON "\x1B[1;32m" +#define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m" #define ANSI_HIGHLIGHT_OFF "\x1B[0m" usec_t now(clockid_t clock); @@ -99,6 +101,10 @@ bool streq_ptr(const char *a, const char *b); #define new0(t, n) ((t*) calloc((n), sizeof(t))) +#define newa(t, n) ((t*) alloca(sizeof(t)*(n))) + +#define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n))) + #define malloc0(n) (calloc((n), 1)) static inline const char* yes_no(bool b) { @@ -117,10 +123,6 @@ static inline const char *strna(const char *s) { return s ? s : "n/a"; } -static inline bool is_path_absolute(const char *p) { - return *p == '/'; -} - static inline bool isempty(const char *p) { return !p || !p[0]; } @@ -200,8 +202,6 @@ char *split_quoted(const char *c, size_t *l, char **state); #define FOREACH_WORD_QUOTED(word, length, s, state) \ for ((state) = NULL, (word) = split_quoted((s), &(length), &(state)); (word); (word) = split_quoted((s), &(length), &(state))) -char **split_path_and_make_absolute(const char *p); - pid_t get_parent_of_pid(pid_t pid, pid_t *ppid); int get_starttime_of_pid(pid_t pid, unsigned long long *st); @@ -224,17 +224,6 @@ int readlink_malloc(const char *p, char **r); int readlink_and_make_absolute(const char *p, char **r); int readlink_and_canonicalize(const char *p, char **r); -char *file_name_from_path(const char *p); -bool is_path(const char *p); - -bool path_is_absolute(const char *p); -char *path_make_absolute(const char *p, const char *prefix); -char *path_make_absolute_cwd(const char *p); - -char **strv_path_make_absolute_cwd(char **l); -char **strv_path_canonicalize(char **l); -char **strv_path_remove_empty(char **l); - int reset_all_signal_handlers(void); char *strstrip(char *s); @@ -243,8 +232,6 @@ char *truncate_nl(char *s); char *file_in_same_dir(const char *path, const char *filename); -int parent_of_path(const char *path, char **parent); - int rmdir_parents(const char *path, const char *stop); int get_process_comm(pid_t pid, char **name); @@ -268,11 +255,6 @@ char *xescape(const char *s, const char *bad); char *bus_path_escape(const char *s); char *bus_path_unescape(const char *s); -char *path_kill_slashes(char *path); - -bool path_startswith(const char *path, const char *prefix); -bool path_equal(const char *a, const char *b); - char *ascii_strlower(char *path); bool dirent_is_file(const struct dirent *de); @@ -346,8 +328,6 @@ 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, bool allow_symlink); - bool is_device_path(const char *path); int dir_is_empty(const char *path); @@ -357,6 +337,7 @@ void rename_process(const char name[8]); void sigset_add_many(sigset_t *ss, ...); char* gethostname_malloc(void); +bool hostname_is_set(void); char* getlogname_malloc(void); int getttyname_malloc(int fd, char **r); @@ -368,6 +349,7 @@ 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_children(int fd, bool only_dirs, bool honour_sticky); int rm_rf(const char *path, bool only_dirs, bool delete_root, bool honour_sticky); int pipe_eof(int fd); @@ -411,6 +393,7 @@ char *fstab_node_to_udev_node(const char *p); bool tty_is_vc(const char *tty); bool tty_is_vc_resolve(const char *tty); +bool tty_is_console(const char *tty); int vtnr_from_tty(const char *tty); const char *default_term_for_tty(const char *tty); @@ -442,14 +425,6 @@ int symlink_or_copy_atomic(const char *from, const char *to); int fchmod_umask(int fd, mode_t mode); -int conf_files_list(char ***strv, const char *suffix, const char *dir, ...); - -int hwclock_is_localtime(void); -int hwclock_apply_localtime_delta(int *min); -int hwclock_reset_localtime_delta(void); -int hwclock_get_time(struct tm *tm); -int hwclock_set_time(const struct tm *tm); - bool display_is_local(const char *display); int socket_from_display(const char *display, char **path); @@ -522,10 +497,19 @@ int fd_wait_for_event(int fd, int event, usec_t timeout); void* memdup(const void *p, size_t l); -int rtc_open(int flags); - int is_kernel_thread(pid_t pid); int fd_inc_sndbuf(int fd, size_t n); int fd_inc_rcvbuf(int fd, size_t n); + +int fork_agent(pid_t *pid, const int except[], unsigned n_except, const char *path, ...); + +int setrlimit_closest(int resource, const struct rlimit *rlim); + +int getenv_for_pid(pid_t pid, const char *field, char **_value); + +int can_sleep(const char *type); + +bool is_valid_documentation_url(const char *url); + #endif