From dd2d44547ddc08ccee9e1465104eff2f43efdec0 Mon Sep 17 00:00:00 2001 From: Tony Gutierrez Date: Wed, 18 Apr 2018 18:25:23 -0400 Subject: [PATCH] sim-se: remove /sys from special paths Currently, the open system call implementation in SE mode treats /sys/ as a special path that is opened using a special open handler. The ROC runtime, however, reads several files in /sys/ that are supported via path redirection. Here we remove /sys/ from the special files so that the necessary files may be read via path redirection. Change-Id: Ifdab38ea1e6cc486ad43aec96b6e032fe63f137d Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/12127 Reviewed-by: Anthony Gutierrez Reviewed-by: Jason Lowe-Power Maintainer: Anthony Gutierrez Tested-by: kokoro --- src/kern/linux/linux.cc | 10 ---------- src/sim/syscall_emul.hh | 3 +-- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/kern/linux/linux.cc b/src/kern/linux/linux.cc index b71ab3079..e499776dc 100644 --- a/src/kern/linux/linux.cc +++ b/src/kern/linux/linux.cc @@ -55,9 +55,6 @@ Linux::openSpecialFile(std::string path, Process *process, } else if (path.compare(0, 11, "/etc/passwd") == 0) { data = Linux::etcPasswd(process, tc); matched = true; - } else if (path.compare(0, 30, "/sys/devices/system/cpu/online") == 0) { - data = Linux::cpuOnline(process, tc); - matched = true; } if (matched) { @@ -90,10 +87,3 @@ Linux::etcPasswd(Process *process, ThreadContext *tc) return csprintf("gem5-user:x:1000:1000:gem5-user,,,:%s:/bin/bash\n", process->tgtCwd); } - -std::string -Linux::cpuOnline(Process *process, ThreadContext *tc) -{ - return csprintf("0-%d\n", - tc->getSystemPtr()->numContexts() - 1); -} diff --git a/src/sim/syscall_emul.hh b/src/sim/syscall_emul.hh index caa4d2cf3..92fb8bf3e 100644 --- a/src/sim/syscall_emul.hh +++ b/src/sim/syscall_emul.hh @@ -934,8 +934,7 @@ openImpl(SyscallDesc *desc, int callnum, Process *p, ThreadContext *tc, int sim_fd = -1; std::string used_path; std::vector special_paths = - { "/proc/meminfo/", "/system/", "/sys/", "/platform/", - "/etc/passwd" }; + { "/proc/meminfo/", "/system/", "/platform/", "/etc/passwd" }; for (auto entry : special_paths) { if (startswith(path, entry)) { sim_fd = OS::openSpecialFile(abs_path, p, tc); -- 2.30.2