diff options
author | midipix <writeonce@midipix.org> | 2019-12-07 23:36:26 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2019-12-07 23:36:26 +0000 |
commit | 3071297ca02acedc3be3cb5229cdf5bc900a0909 (patch) | |
tree | 02927185cb8eaea8e3026a0f4f4136843076fe9f | |
parent | c59e7f570544b9d840345aa17dab221bbba3daa2 (diff) | |
download | mmglue-3071297ca02acedc3be3cb5229cdf5bc900a0909.tar.bz2 mmglue-3071297ca02acedc3be3cb5229cdf5bc900a0909.tar.xz |
glue layer: added __fs_mkdir(), __fs_chmod(), for optional ACE propagation.
-rw-r--r-- | include/sys/fs.h | 9 | ||||
-rw-r--r-- | src/arch/nt32/fs.c | 10 | ||||
-rw-r--r-- | src/arch/nt64/fs.c | 10 |
3 files changed, 29 insertions, 0 deletions
diff --git a/include/sys/fs.h b/include/sys/fs.h index efc1466..bbb8d4d 100644 --- a/include/sys/fs.h +++ b/include/sys/fs.h @@ -6,9 +6,15 @@ extern "C" { #endif #define __NEED_size_t +#define __NEED_mode_t +#define __NEED_uint32_t #include <bits/alltypes.h> +/* acceess control entry flags */ +#define __ACE_OBJECT_INHERIT (0x01) +#define __ACE_CONTAINER_INHERIT (0x02) + /***************************************************************************/ /* int (*__fs_path_fn)(int fdat, const char * path, int options, */ /* char * buffer, size_t buflen); */ @@ -42,6 +48,9 @@ int __fs_apath(int, const char *, int, char *, size_t); int __fs_npath(int, const char *, int, char *, size_t); int __fs_dpath(int, const char *, int, char *, size_t); +int __fs_mkdir(int, const char *, mode_t, uint32_t); +int __fs_chmod(int, const char *, mode_t, int, uint32_t); + #ifdef __cplusplus } #endif diff --git a/src/arch/nt32/fs.c b/src/arch/nt32/fs.c index 7051b04..93ccd82 100644 --- a/src/arch/nt32/fs.c +++ b/src/arch/nt32/fs.c @@ -24,3 +24,13 @@ int __fs_dpath(int fdat, const char * path, int options, { return syscall(SYS_fs_dpath,fdat,path,options,buffer,buflen); } + +int __fs_mkdir(int fdat, const char * path, mode_t mode, uint32_t ace_flags) +{ + return syscall(SYS_fs_mkdir,fdat,path,mode,ace_flags); +} + +int __fs_chmod(int fdat, const char * path, mode_t mode, int flags, uint32_t ace_flags) +{ + return syscall(SYS_fs_chmod,fdat,path,mode,flags,ace_flags); +} diff --git a/src/arch/nt64/fs.c b/src/arch/nt64/fs.c index 7051b04..93ccd82 100644 --- a/src/arch/nt64/fs.c +++ b/src/arch/nt64/fs.c @@ -24,3 +24,13 @@ int __fs_dpath(int fdat, const char * path, int options, { return syscall(SYS_fs_dpath,fdat,path,options,buffer,buflen); } + +int __fs_mkdir(int fdat, const char * path, mode_t mode, uint32_t ace_flags) +{ + return syscall(SYS_fs_mkdir,fdat,path,mode,ace_flags); +} + +int __fs_chmod(int fdat, const char * path, mode_t mode, int flags, uint32_t ace_flags) +{ + return syscall(SYS_fs_chmod,fdat,path,mode,flags,ace_flags); +} |