]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/mkdir.h
tree-wide: beautify remaining copyright statements
[thirdparty/systemd.git] / src / basic / mkdir.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5 Copyright © 2013 Kay Sievers
6 ***/
7
8 #include <sys/types.h>
9
10 typedef enum MkdirFlags {
11 MKDIR_FOLLOW_SYMLINK = 1 << 0,
12 MKDIR_WARN_MODE = 1 << 1,
13 } MkdirFlags;
14
15 int mkdir_errno_wrapper(const char *pathname, mode_t mode);
16 int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
17 int mkdir_parents(const char *path, mode_t mode);
18 int mkdir_p(const char *path, mode_t mode);
19
20 /* mandatory access control(MAC) versions */
21 int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
22 int mkdir_parents_label(const char *path, mode_t mode);
23 int mkdir_p_label(const char *path, mode_t mode);
24
25 /* internally used */
26 typedef int (*mkdir_func_t)(const char *pathname, mode_t mode);
27 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir);
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);