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