]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/mkdir.h
tree-wide: beautify remaining copyright statements
[thirdparty/systemd.git] / src / basic / mkdir.h
CommitLineData
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
10typedef enum MkdirFlags {
11 MKDIR_FOLLOW_SYMLINK = 1 << 0,
37c1d5e9 12 MKDIR_WARN_MODE = 1 << 1,
d50b5839
ZJS
13} MkdirFlags;
14
dae8b82e 15int mkdir_errno_wrapper(const char *pathname, mode_t mode);
d50b5839 16int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
c66e7f04 17int mkdir_parents(const char *path, mode_t mode);
c66e7f04 18int mkdir_p(const char *path, mode_t mode);
4ad49000 19
66b6d9d5 20/* mandatory access control(MAC) versions */
d50b5839 21int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
39bdfa31
KS
22int mkdir_parents_label(const char *path, mode_t mode);
23int mkdir_p_label(const char *path, mode_t mode);
39bdfa31
KS
24
25/* internally used */
26typedef int (*mkdir_func_t)(const char *pathname, mode_t mode);
d50b5839 27int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir);
39bdfa31
KS
28int mkdir_parents_internal(const char *prefix, const char *path, mode_t mode, mkdir_func_t _mkdir);
29int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, mkdir_func_t _mkdir);