summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2019-12-07 23:36:26 +0000
committermidipix <writeonce@midipix.org>2019-12-07 23:36:26 +0000
commit3071297ca02acedc3be3cb5229cdf5bc900a0909 (patch)
tree02927185cb8eaea8e3026a0f4f4136843076fe9f
parentc59e7f570544b9d840345aa17dab221bbba3daa2 (diff)
downloadmmglue-3071297ca02acedc3be3cb5229cdf5bc900a0909.tar.bz2
mmglue-3071297ca02acedc3be3cb5229cdf5bc900a0909.tar.xz
glue layer: added __fs_mkdir(), __fs_chmod(), for optional ACE propagation.
-rw-r--r--include/sys/fs.h9
-rw-r--r--src/arch/nt32/fs.c10
-rw-r--r--src/arch/nt64/fs.c10
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);
+}