]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
lib/vfscore: Register `mkdir` to syscall_shim
authorSergiu Moga <sergiu.moga@protonmail.com>
Mon, 15 Feb 2021 17:07:37 +0000 (19:07 +0200)
committerUnikraft <monkey@unikraft.io>
Sun, 16 May 2021 14:57:14 +0000 (14:57 +0000)
Register `mkdir` system call to syscall_shim library.

Signed-off-by: Sergiu Moga <sergiu.moga@protonmail.com>
Reviewed-by: Catalin Puscoci <catalinpuscoci@protonmail.com>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Pull-Request: #130

lib/vfscore/Makefile.uk
lib/vfscore/exportsyms.uk
lib/vfscore/main.c

index af07d24d1d8ec502d0809ef128765357686bf223..0fcf437915058a488ceadd1e73afec4c6a2544fe 100644 (file)
@@ -66,3 +66,4 @@ UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += fchown-3
 UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += lchown-3
 UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += chown-3
 UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += stat-2
+UK_PROVIDED_SYSCALLS-$(CONFIG_LIBVFSCORE) += mkdir-2
index 52b5735a52ed1be4ff8e9263a3d6ef2ad8d2dead..5fa15b0a30c5a6c19ded84c309186599757b13c1 100644 (file)
@@ -26,6 +26,8 @@ read
 uk_syscall_e_read
 uk_syscall_r_read
 mkdir
+uk_syscall_e_mkdir
+uk_syscall_r_mkdir
 fsync
 uk_syscall_e_fsync
 uk_syscall_r_fsync
index f4a47751dfe30d1e7dc5db485a1708daadb91bbc..94f9bd1094987d60c1f127d607eb132a3f29b1a3 100644 (file)
@@ -1058,8 +1058,7 @@ UK_TRACEPOINT(trace_vfs_mkdir, "\"%s\" 0%0o", const char*, mode_t);
 UK_TRACEPOINT(trace_vfs_mkdir_ret, "");
 UK_TRACEPOINT(trace_vfs_mkdir_err, "%d", int);
 
-int
-mkdir(const char *pathname, mode_t mode)
+UK_SYSCALL_R_DEFINE(int, mkdir, const char*, pathname, mode_t, mode)
 {
        struct task *t = main_task;
        char path[PATH_MAX];
@@ -1076,10 +1075,9 @@ mkdir(const char *pathname, mode_t mode)
                goto out_errno;
        trace_vfs_mkdir_ret();
        return 0;
-       out_errno:
+out_errno:
        trace_vfs_mkdir_err(error);
-       errno = error;
-       return -1;
+       return -error;
 }
 
 UK_TRACEPOINT(trace_vfs_rmdir, "\"%s\"", const char*);