diff --git a/scripts/run.sh b/scripts/run.sh index 0a1c1f45c02f422f76389b15595480b36b261427..d5b3d0b243f362485cb090453f8d84d623bd8551 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -3,7 +3,7 @@ SYSCALL="getpid" BUILD=../build REPEATS=20 -ARCH="X86" +ARCH="$(uname -m 2>/dev/null || echo -n unknown)" NATIVE="$BUILD/opendevnull --syscall $SYSCALL" INTERC="$BUILD/opendevnull --syscall $SYSCALL" @@ -22,6 +22,7 @@ calculate_stats() { local count=${#values[@]} local min=${values[0]} local max=${values[0]} + local variance=0 # Calculate sum, min, and max for value in "${values[@]}"; do diff --git a/src/eval.cpp b/src/eval.cpp index 13d2438fd45401ea1cbebfa89bc324cb1e8df973..d6aec1a796bdae6d9166f9996c4f67bfe7f255be 100644 --- a/src/eval.cpp +++ b/src/eval.cpp @@ -12,7 +12,12 @@ stop_interception() __attribute__((destructor)); int hook_openat(int dirfd, const char* cpath, int flags, mode_t mode) { +#if defined(__x86_64) || defined(__x86_64__) return syscall_no_intercept(SYS_openat, dirfd, cpath, flags, mode); +#elif defined(__riscv) || defined(__riscv__) + wrapper_ret ret = syscall_no_intercept(SYS_openat, dirfd, cpath, flags, mode); + return (int)ret.a0; +#endif } int