Loading CMake/FindSyscall_intercept.cmake 0 → 100644 +41 −0 Original line number Diff line number Diff line find_package(PkgConfig) pkg_check_modules(PC_Syscall_intercept QUIET libsyscall_intercept) find_path(Syscall_intercept_INCLUDE_DIR NAMES libsyscall_intercept_hook_point.h PATHS ${PC_Syscall_intercept_INCLUDE_DIRS} ) find_library(Syscall_intercept_LIBRARY NAMES syscall_intercept PATHS ${PC_Syscall_intercept_LIBRARY_DIRS} ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( Syscall_intercept DEFAULT_MSG Syscall_intercept_INCLUDE_DIR Syscall_intercept_LIBRARY ) if(Syscall_intercept_FOUND) set(Syscall_intercept_LIBRARIES ${Syscall_intercept_LIBRARY}) set(Syscall_intercept_INCLUDE_DIRS ${Syscall_intercept_INCLUDE_DIR}) set(Syscall_intercept_DEFINITIONS ${PC_Syscall_intercept_CFLAGS_OTHER}) if(NOT TARGET Syscall_intercept::Syscall_intercept) add_library(Syscall_intercept::Syscall_intercept UNKNOWN IMPORTED) set_target_properties(Syscall_intercept::Syscall_intercept PROPERTIES IMPORTED_LOCATION "${Syscall_intercept_LIBRARY}" INTERFACE_COMPILE_OPTIONS "${PC_Syscall_intercept_CFLAGS_OTHER}" INTERFACE_INCLUDE_DIRECTORIES "${Syscall_intercept_INCLUDE_DIR}" ) endif() endif() mark_as_advanced( Syscall_intercept_INCLUDE_DIR Syscall_intercept_LIBRARY ) CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ find_package(RocksDB REQUIRED) find_package(Mercury REQUIRED) find_package(Abt REQUIRED) find_package(Margo REQUIRED) find_package(Syscall_intercept REQUIRED) # boost dependencies, system is required for filesystem find_package(Boost 1.53 REQUIRED Loading README.md +1 −1 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ GKFS_LOG_LEVEL={off,critical,err,warn,info,debug,trace} to set the trace level v Numbers from 0-6 may also be used where as 0 is off and 6 represents trace. ### Acknoledgment ### Acknowledgment This software was partially supported by the EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). Loading include/client/adafs_functions.hpp +3 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,9 @@ ssize_t adafs_read(int fd, void* buf, size_t count); int adafs_opendir(const std::string& path); struct dirent * adafs_readdir(int fd); int getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count); int adafs_rmdir(const std::string& path); Loading include/client/hooks.hpp 0 → 100644 +58 −0 Original line number Diff line number Diff line /* Copyright 2018-2019, Barcelona Supercomputing Center (BSC), Spain Copyright 2015-2019, Johannes Gutenberg Universitaet Mainz, Germany This software was partially supported by the EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). This software was partially supported by the ADA-FS project under the SPPEXA project funded by the DFG. SPDX-License-Identifier: MIT */ #ifndef IFS_HOOKS_HPP #define IFS_HOOKS_HPP #include <fcntl.h> int hook_openat(int dirfd, const char *cpath, int flags, mode_t mode); int hook_close(int fd); int hook_stat(const char* path, struct stat* buf); int hook_lstat(const char* path, struct stat* buf); int hook_fstat(unsigned int fd, struct stat* buf); int hook_fstatat(int dirfd, const char * cpath, struct stat * buf, int flags); int hook_read(unsigned int fd, void* buf, size_t count); int hook_pread(unsigned int fd, char * buf, size_t count, loff_t pos); int hook_write(unsigned int fd, const char * buf, size_t count); int hook_pwrite(unsigned int fd, const char * buf, size_t count, loff_t pos); int hook_writev(unsigned long fd, const struct iovec * iov, unsigned long iovcnt); int hook_pwritev(unsigned long fd, const struct iovec * iov, unsigned long iovcnt, unsigned long pos_l, unsigned long pos_h); int hook_unlinkat(int dirfd, const char * cpath, int flags); int hook_symlinkat(const char * oldname, int newdfd, const char * newname); int hook_access(const char* path, int mask); int hook_faccessat(int dirfd, const char * cpath, int mode); int hook_lseek(unsigned int fd, off_t offset, unsigned int whence); int hook_truncate(const char *path, long length); int hook_ftruncate(unsigned int fd, unsigned long length); int hook_dup(unsigned int fd); int hook_dup2(unsigned int oldfd, unsigned int newfd); int hook_dup3(unsigned int oldfd, unsigned int newfd, int flags); int hook_getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count); int hook_mkdirat(int dirfd, const char * cpath, mode_t mode); int hook_fchmodat(int dirfd, const char* path, mode_t mode); int hook_fchmod(unsigned int dirfd, mode_t mode); int hook_chdir(const char* path); int hook_fchdir(unsigned int fd); int hook_getcwd(char * buf, unsigned long size); int hook_readlinkat(int dirfd, const char * cpath, char * buf, int bufsiz); int hook_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg); int hook_renameat(int olddfd, const char * oldname, int newdfd, const char * newname, unsigned int flags); int hook_statfs(const char * path, struct statfs * buf); int hook_fstatfs(unsigned int fd, struct statfs * buf); #endif Loading
CMake/FindSyscall_intercept.cmake 0 → 100644 +41 −0 Original line number Diff line number Diff line find_package(PkgConfig) pkg_check_modules(PC_Syscall_intercept QUIET libsyscall_intercept) find_path(Syscall_intercept_INCLUDE_DIR NAMES libsyscall_intercept_hook_point.h PATHS ${PC_Syscall_intercept_INCLUDE_DIRS} ) find_library(Syscall_intercept_LIBRARY NAMES syscall_intercept PATHS ${PC_Syscall_intercept_LIBRARY_DIRS} ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( Syscall_intercept DEFAULT_MSG Syscall_intercept_INCLUDE_DIR Syscall_intercept_LIBRARY ) if(Syscall_intercept_FOUND) set(Syscall_intercept_LIBRARIES ${Syscall_intercept_LIBRARY}) set(Syscall_intercept_INCLUDE_DIRS ${Syscall_intercept_INCLUDE_DIR}) set(Syscall_intercept_DEFINITIONS ${PC_Syscall_intercept_CFLAGS_OTHER}) if(NOT TARGET Syscall_intercept::Syscall_intercept) add_library(Syscall_intercept::Syscall_intercept UNKNOWN IMPORTED) set_target_properties(Syscall_intercept::Syscall_intercept PROPERTIES IMPORTED_LOCATION "${Syscall_intercept_LIBRARY}" INTERFACE_COMPILE_OPTIONS "${PC_Syscall_intercept_CFLAGS_OTHER}" INTERFACE_INCLUDE_DIRECTORIES "${Syscall_intercept_INCLUDE_DIR}" ) endif() endif() mark_as_advanced( Syscall_intercept_INCLUDE_DIR Syscall_intercept_LIBRARY )
CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ find_package(RocksDB REQUIRED) find_package(Mercury REQUIRED) find_package(Abt REQUIRED) find_package(Margo REQUIRED) find_package(Syscall_intercept REQUIRED) # boost dependencies, system is required for filesystem find_package(Boost 1.53 REQUIRED Loading
README.md +1 −1 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ GKFS_LOG_LEVEL={off,critical,err,warn,info,debug,trace} to set the trace level v Numbers from 0-6 may also be used where as 0 is off and 6 represents trace. ### Acknoledgment ### Acknowledgment This software was partially supported by the EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). Loading
include/client/adafs_functions.hpp +3 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,9 @@ ssize_t adafs_read(int fd, void* buf, size_t count); int adafs_opendir(const std::string& path); struct dirent * adafs_readdir(int fd); int getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count); int adafs_rmdir(const std::string& path); Loading
include/client/hooks.hpp 0 → 100644 +58 −0 Original line number Diff line number Diff line /* Copyright 2018-2019, Barcelona Supercomputing Center (BSC), Spain Copyright 2015-2019, Johannes Gutenberg Universitaet Mainz, Germany This software was partially supported by the EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). This software was partially supported by the ADA-FS project under the SPPEXA project funded by the DFG. SPDX-License-Identifier: MIT */ #ifndef IFS_HOOKS_HPP #define IFS_HOOKS_HPP #include <fcntl.h> int hook_openat(int dirfd, const char *cpath, int flags, mode_t mode); int hook_close(int fd); int hook_stat(const char* path, struct stat* buf); int hook_lstat(const char* path, struct stat* buf); int hook_fstat(unsigned int fd, struct stat* buf); int hook_fstatat(int dirfd, const char * cpath, struct stat * buf, int flags); int hook_read(unsigned int fd, void* buf, size_t count); int hook_pread(unsigned int fd, char * buf, size_t count, loff_t pos); int hook_write(unsigned int fd, const char * buf, size_t count); int hook_pwrite(unsigned int fd, const char * buf, size_t count, loff_t pos); int hook_writev(unsigned long fd, const struct iovec * iov, unsigned long iovcnt); int hook_pwritev(unsigned long fd, const struct iovec * iov, unsigned long iovcnt, unsigned long pos_l, unsigned long pos_h); int hook_unlinkat(int dirfd, const char * cpath, int flags); int hook_symlinkat(const char * oldname, int newdfd, const char * newname); int hook_access(const char* path, int mask); int hook_faccessat(int dirfd, const char * cpath, int mode); int hook_lseek(unsigned int fd, off_t offset, unsigned int whence); int hook_truncate(const char *path, long length); int hook_ftruncate(unsigned int fd, unsigned long length); int hook_dup(unsigned int fd); int hook_dup2(unsigned int oldfd, unsigned int newfd); int hook_dup3(unsigned int oldfd, unsigned int newfd, int flags); int hook_getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count); int hook_mkdirat(int dirfd, const char * cpath, mode_t mode); int hook_fchmodat(int dirfd, const char* path, mode_t mode); int hook_fchmod(unsigned int dirfd, mode_t mode); int hook_chdir(const char* path); int hook_fchdir(unsigned int fd); int hook_getcwd(char * buf, unsigned long size); int hook_readlinkat(int dirfd, const char * cpath, char * buf, int bufsiz); int hook_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg); int hook_renameat(int olddfd, const char * oldname, int newdfd, const char * newname, unsigned int flags); int hook_statfs(const char * path, struct statfs * buf); int hook_fstatfs(unsigned int fd, struct statfs * buf); #endif