Loading CMake/FindSyscall_intercept.cmake 0 → 100644 +41 −0 Viewed Changes for CMake/FindSyscall_intercept.cmake: 41 added lines, 0 removed lines. 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 ) include/client/adafs_functions.hpp +3 −1 Viewed Changes for include/client/adafs_functions.hpp: 3 added lines, 1 removed line. 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 Viewed Changes for include/client/hooks.hpp: 58 added lines, 0 removed lines. 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 include/client/intercept.hpp 0 → 100644 +26 −0 Viewed Changes for include/client/intercept.hpp: 26 added lines, 0 removed lines. 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_INTERCEPT_HPP #define IFS_INTERCEPT_HPP int hook_guard_wrapper(long syscall_number, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long *syscall_return_value); void start_interception(); void stop_interception(); #endif include/client/open_dir.hpp +8 −11 Viewed Changes for include/client/open_dir.hpp: 8 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -23,28 +23,25 @@ #include <client/open_file_map.hpp> class OpenDir: public OpenFile { private: class DirEntry { private: std::string name_; FileType type_; public: std::string name; FileType type; DirEntry(const std::string& name, const FileType type); const std::string& name(); FileType type(); }; class OpenDir: public OpenFile { private: std::vector<DirEntry> entries; struct dirent dirent_; bool is_dirent_valid; void update_dirent(unsigned int pos); public: OpenDir(const std::string& path); void add(const std::string& name, const FileType& type); struct dirent * readdir(); const DirEntry& getdent(unsigned int pos); size_t size(); }; Loading Loading
CMake/FindSyscall_intercept.cmake 0 → 100644 +41 −0 Viewed Changes for CMake/FindSyscall_intercept.cmake: 41 added lines, 0 removed lines. 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 )
include/client/adafs_functions.hpp +3 −1 Viewed Changes for include/client/adafs_functions.hpp: 3 added lines, 1 removed line. 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 Viewed Changes for include/client/hooks.hpp: 58 added lines, 0 removed lines. 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
include/client/intercept.hpp 0 → 100644 +26 −0 Viewed Changes for include/client/intercept.hpp: 26 added lines, 0 removed lines. 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_INTERCEPT_HPP #define IFS_INTERCEPT_HPP int hook_guard_wrapper(long syscall_number, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long *syscall_return_value); void start_interception(); void stop_interception(); #endif
include/client/open_dir.hpp +8 −11 Viewed Changes for include/client/open_dir.hpp: 8 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -23,28 +23,25 @@ #include <client/open_file_map.hpp> class OpenDir: public OpenFile { private: class DirEntry { private: std::string name_; FileType type_; public: std::string name; FileType type; DirEntry(const std::string& name, const FileType type); const std::string& name(); FileType type(); }; class OpenDir: public OpenFile { private: std::vector<DirEntry> entries; struct dirent dirent_; bool is_dirent_valid; void update_dirent(unsigned int pos); public: OpenDir(const std::string& path); void add(const std::string& name, const FileType& type); struct dirent * readdir(); const DirEntry& getdent(unsigned int pos); size_t size(); }; Loading