From 6f3a6b4f7d4604f1a314a8a19b00f54d0eaa0af8 Mon Sep 17 00:00:00 2001 From: Lucjan Bryndza Date: Wed, 13 Jan 2021 15:45:39 +0100 Subject: [PATCH] [EGD-5199] Add support for mount umount Add support for mount umount in the libiosyscall library due to planning to use ro fatfs and remount to rw only for update purposes. Signed-off-by: Lucjan Bryndza --- .../libiosyscalls/src/syscalls_posix.cpp | 34 +++++++++++++++++++ board/linux/libiosyscalls/version.txt | 3 ++ 2 files changed, 37 insertions(+) diff --git a/board/linux/libiosyscalls/src/syscalls_posix.cpp b/board/linux/libiosyscalls/src/syscalls_posix.cpp index 2dbb5cc2c73fd4e6bacde3213a5efc2d72384e24..a175eff8cff8690e9f566fc4a41da2bf5152e5f0 100644 --- a/board/linux/libiosyscalls/src/syscalls_posix.cpp +++ b/board/linux/libiosyscalls/src/syscalls_posix.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include @@ -550,4 +551,37 @@ extern "C" { return -1; } __asm__(".symver _iosys_fxstatat64,__fxstatat64@GLIBC_2.4"); + + int _iosys_mount (const char *special_file, const char *dir, + const char *fstype, unsigned long int rwflag, + const void *data) + { + if(vfs::redirect_to_image(dir)) + { + return vfs::invoke_fs(__VFS(mount), special_file, dir, fstype, rwflag ); + } + else + { + //NOTE: Always return zero because we will use fileystem which is always RW + TRACE_SYSCALLN("(%s, %s, %s, %08lx,%p) -> linux fs", special_file, dir,fstype, rwflag, data); + return 0; + } + } + __asm__(".symver _iosys_mount,mount@GLIBC_2.2.5"); + + int _iosys_umount (const char *mount_point) + { + if(vfs::redirect_to_image(mount_point)) + { + return vfs::invoke_fs(__VFS(umount), mount_point ); + } + else + { + //NOTE: Always return zero because we will use fileystem which is always RW + TRACE_SYSCALLN("(%s) -> linux fs", mount_point); + return 0; + } + } + __asm__(".symver _iosys_umount,umount@GLIBC_2.2.5"); + } diff --git a/board/linux/libiosyscalls/version.txt b/board/linux/libiosyscalls/version.txt index 52034128c449c3da51448abddbe7adbc7d80def9..3a4c4fadeee299774f94906f1c579d4f48584ca1 100644 --- a/board/linux/libiosyscalls/version.txt +++ b/board/linux/libiosyscalls/version.txt @@ -68,6 +68,9 @@ GLIBC_2.2.5 { __xstat64; __lxstat64; __fxstat64; + mount; + umount; + local: *; };