diff options
Diffstat (limited to 'src/libnm-systemd-shared/src/basic/fd-util.h')
| -rw-r--r-- | src/libnm-systemd-shared/src/basic/fd-util.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/libnm-systemd-shared/src/basic/fd-util.h b/src/libnm-systemd-shared/src/basic/fd-util.h index f5498310..93b254c6 100644 --- a/src/libnm-systemd-shared/src/basic/fd-util.h +++ b/src/libnm-systemd-shared/src/basic/fd-util.h @@ -80,6 +80,7 @@ int close_all_fds_without_malloc(const int except[], size_t n_except); int pack_fds(int fds[], size_t n); +int fd_validate(int fd); int same_fd(int a, int b); void cmsg_close_all(struct msghdr *mh); @@ -111,10 +112,15 @@ static inline int make_null_stdio(void) { }) int fd_reopen(int fd, int flags); +int fd_reopen_propagate_append_and_position(int fd, int flags); int fd_reopen_condition(int fd, int flags, int mask, int *ret_new_fd); int fd_is_opath(int fd); -int fd_verify_safe_flags(int fd); + +int fd_verify_safe_flags_full(int fd, int extra_flags); +static inline int fd_verify_safe_flags(int fd) { + return fd_verify_safe_flags_full(fd, 0); +} int read_nr_open(void); int fd_get_diskseq(int fd, uint64_t *ret); @@ -136,7 +142,7 @@ int fds_are_same_mount(int fd1, int fd2); #define PROC_FD_PATH_MAX \ (STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int)) -static inline char *format_proc_fd_path(char buf[static PROC_FD_PATH_MAX], int fd) { +static inline char* format_proc_fd_path(char buf[static PROC_FD_PATH_MAX], int fd) { assert(buf); assert(fd >= 0); assert_se(snprintf_ok(buf, PROC_FD_PATH_MAX, "/proc/self/fd/%i", fd)); @@ -150,13 +156,15 @@ static inline char *format_proc_fd_path(char buf[static PROC_FD_PATH_MAX], int f #define PROC_PID_FD_PATH_MAX \ (STRLEN("/proc//fd/") + DECIMAL_STR_MAX(pid_t) + DECIMAL_STR_MAX(int)) -char *format_proc_pid_fd_path(char buf[static PROC_PID_FD_PATH_MAX], pid_t pid, int fd); +char* format_proc_pid_fd_path(char buf[static PROC_PID_FD_PATH_MAX], pid_t pid, int fd); /* Kinda the same as FORMAT_PROC_FD_PATH(), but goes by PID rather than "self" symlink */ #define FORMAT_PROC_PID_FD_PATH(pid, fd) \ format_proc_pid_fd_path((char[PROC_PID_FD_PATH_MAX]) {}, (pid), (fd)) -const char *accmode_to_string(int flags); +int proc_fd_enoent_errno(void); + +const char* accmode_to_string(int flags); /* Like ASSERT_PTR, but for fds */ #define ASSERT_FD(fd) \ |