1 /* SPDX-License-Identifier: LGPL-2.1+ */
7 typedef enum MkdirFlags {
8 MKDIR_FOLLOW_SYMLINK = 1 << 0,
9 MKDIR_WARN_MODE = 1 << 1,
12 int mkdir_errno_wrapper(const char *pathname, mode_t mode);
13 int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
14 int mkdir_parents(const char *path, mode_t mode);
15 int mkdir_p(const char *path, mode_t mode);
17 /* mandatory access control(MAC) versions */
18 int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
19 #if 0 /// UNNEEDED by elogind
20 int mkdir_parents_label(const char *path, mode_t mode);
22 int mkdir_p_label(const char *path, mode_t mode);
25 typedef int (*mkdir_func_t)(const char *pathname, mode_t mode);
26 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir);
27 int mkdir_parents_internal(const char *prefix, const char *path, mode_t mode, mkdir_func_t _mkdir);
28 int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, mkdir_func_t _mkdir);