]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
f4ef809c | 2 | #pragma once |
49e942b2 | 3 | |
4ad49000 LP |
4 | #include <sys/types.h> |
5 | ||
d50b5839 ZJS |
6 | typedef enum MkdirFlags { |
7 | MKDIR_FOLLOW_SYMLINK = 1 << 0, | |
37c1d5e9 | 8 | MKDIR_WARN_MODE = 1 << 1, |
d50b5839 ZJS |
9 | } MkdirFlags; |
10 | ||
dae8b82e | 11 | int mkdir_errno_wrapper(const char *pathname, mode_t mode); |
1e912631 | 12 | int mkdirat_errno_wrapper(int dirfd, const char *pathname, mode_t mode); |
d50b5839 | 13 | int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags); |
c66e7f04 | 14 | int mkdir_parents(const char *path, mode_t mode); |
17b99e37 | 15 | int mkdir_parents_safe(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags); |
c66e7f04 | 16 | int mkdir_p(const char *path, mode_t mode); |
17b99e37 | 17 | int mkdir_p_safe(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags); |
4ad49000 | 18 | |
66b6d9d5 | 19 | /* mandatory access control(MAC) versions */ |
d50b5839 | 20 | int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags); |
17b99e37 | 21 | int mkdir_parents_label(const char *path, mode_t mod); |
39bdfa31 | 22 | int mkdir_p_label(const char *path, mode_t mode); |
39bdfa31 KS |
23 | |
24 | /* internally used */ | |
25 | typedef int (*mkdir_func_t)(const char *pathname, mode_t mode); | |
d50b5839 | 26 | int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir); |
17b99e37 LB |
27 | int mkdir_parents_internal(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir); |
28 | int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir); | |
0de3c4f4 LP |
29 | |
30 | int mkdir_p_root(const char *root, const char *p, uid_t uid, gid_t gid, mode_t m); |