diff options
author | Tony Gutierrez <anthony.gutierrez@amd.com> | 2018-04-18 18:25:23 -0400 |
---|---|---|
committer | Brandon Potter <Brandon.Potter@amd.com> | 2019-05-21 18:26:10 +0000 |
commit | dd2d44547ddc08ccee9e1465104eff2f43efdec0 (patch) | |
tree | 08e9b0db3d89a92e2e975193d96ef8665682bd9a | |
parent | 874bb1a76091cce44d89f47bf13b9eac53eb2e41 (diff) | |
download | gem5-dd2d44547ddc08ccee9e1465104eff2f43efdec0.tar.xz |
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 <anthony.gutierrez@amd.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
-rw-r--r-- | src/kern/linux/linux.cc | 10 | ||||
-rw-r--r-- | src/sim/syscall_emul.hh | 3 |
2 files changed, 1 insertions, 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<std::string> 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); |