sim: Fix up the selectFunc syscall to work with g++ 10.2.

This is no longer willing to implicitly cast between the locally defined
Linux::fd_set type and the system fd_set type. That's pretty reasonable
since those types are really independent of one another, and we
shouldn't be using them interchangeably in the first place. That's a
pre-existing condition though, and I just want to get the existing code
to compile for now.

Change-Id: I41d5f3695dfe5f0e406d074d31d13c6e3282df64
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33415
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Gabe Black
2020-08-25 23:22:09 -07:00
parent 315a8c2c9a
commit d892d39f33

View File

@@ -95,6 +95,7 @@
#include "config/the_isa.hh"
#include "cpu/base.hh"
#include "cpu/thread_context.hh"
#include "kern/linux/linux.hh"
#include "mem/page_table.hh"
#include "params/Process.hh"
#include "sim/emul_driver.hh"
@@ -2360,9 +2361,9 @@ selectFunc(SyscallDesc *desc, ThreadContext *tc, int nfds,
if (retval == -1)
return -errno;
FD_ZERO(readfds);
FD_ZERO(writefds);
FD_ZERO(errorfds);
FD_ZERO(reinterpret_cast<fd_set *>((typename OS::fd_set *)readfds));
FD_ZERO(reinterpret_cast<fd_set *>((typename OS::fd_set *)writefds));
FD_ZERO(reinterpret_cast<fd_set *>((typename OS::fd_set *)errorfds));
/**
* We need to translate the host file descriptor set into a target file