public:
Statistics();
- void regStats(const std::string &name);
+ void regStats(const std::string &name) override;
public:
void mode(cpu_mode newmode, ThreadContext *tc);
void syscall(ThreadContext *tc, Fault *fault) override;
- virtual SyscallDesc* getDesc(int callnum);
+ SyscallDesc *getDesc(int callnum) override;
/// Array of syscall descriptors, indexed by call number.
static SyscallDescABI<DefaultSyscallABI> syscallDescs[];
{
}
- void
- setCPU(BaseCPU *_cpu)
- {}
+ void setCPU(BaseCPU *_cpu) override {}
// post(int int_num, int index) is responsible
// for posting an interrupt. It sets a bit
// which is called by checkInterrupts
//
void post(int int_num, ThreadContext *tc);
- void post(int int_num, int index);
+ void post(int int_num, int index) override;
// clear(int int_num, int index) is responsible
// for clearing an interrupt. It clear a bit
// which is called by checkInterrupts
//
void clear(int int_num, ThreadContext* tc);
- void clear(int int_num, int index);
+ void clear(int int_num, int index) override;
// clearAll() is responsible
// for clearing all interrupts. It clears all bits
// which is called by checkInterrupts
//
void clearAll(ThreadContext *tc);
- void clearAll();
+ void clearAll() override;
// getInterrupt(ThreadContext * tc) checks if an interrupt
// should be returned. It ands the interrupt mask and
// also makes sure interrupts are enabled (IE) and
// that ERL and ERX are not set
//
- Fault getInterrupt(ThreadContext *tc);
+ Fault getInterrupt(ThreadContext *tc) override;
// updateIntrInfo(ThreadContext *tc) const syncs the
// MIPS cause register with the instatus variable. instatus
// is essentially a copy of the MIPS cause[IP7:IP0]
//
- void updateIntrInfo(ThreadContext *tc);
+ void updateIntrInfo(ThreadContext *tc) override;
bool interruptsPending(ThreadContext *tc) const;
bool onCpuTimerInterrupt(ThreadContext *tc) const;
- bool checkInterrupts(ThreadContext *tc) const;
+ bool checkInterrupts(ThreadContext *tc) const override;
void
serialize(CheckpointOut &cp) const override
/// Constructor.
MipsLinuxProcess(ProcessParams * params, ObjectFile *objFile);
- virtual SyscallDesc* getDesc(int callnum);
+ SyscallDesc* getDesc(int callnum) override;
/// The target system's hostname.
static const char *hostname;
public:
PowerLinuxProcess(ProcessParams * params, ObjectFile *objFile);
- virtual SyscallDesc* getDesc(int callnum);
+ SyscallDesc *getDesc(int callnum) override;
- void initState();
+ void initState() override;
void syscall(ThreadContext *tc, Fault *fault) override;
- RegVal getSyscallArg(ThreadContext *tc, int &i);
+ RegVal getSyscallArg(ThreadContext *tc, int &i) override;
/// Explicitly import the otherwise hidden getSyscallArg
using Process::getSyscallArg;
protected:
PowerProcess(ProcessParams * params, ObjectFile *objFile);
- void initState();
+ void initState() override;
public:
void argsInit(int intSize, int pageSize);
- RegVal getSyscallArg(ThreadContext *tc, int &i);
+ RegVal getSyscallArg(ThreadContext *tc, int &i) override;
/// Explicitly import the otherwise hidden getSyscallArg
using Process::getSyscallArg;
- void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value);
+ void setSyscallReturn(ThreadContext *tc,
+ SyscallReturn return_value) override;
};
#endif // __POWER_PROCESS_HH__
/// Constructor.
RiscvLinuxProcess64(ProcessParams * params, ObjectFile *objFile);
- virtual SyscallDesc* getDesc(int callnum);
+ SyscallDesc* getDesc(int callnum) override;
/// The target system's hostname.
static const char *hostname;
/// Constructor.
RiscvLinuxProcess32(ProcessParams * params, ObjectFile *objFile);
- virtual SyscallDesc* getDesc(int callnum);
+ SyscallDesc* getDesc(int callnum) override;
/// The target system's hostname.
static const char *hostname;
static const int NumGDBRegs = 4162;
static const int NumCSRs = 4096;
- bool acc(Addr addr, size_t len);
+ bool acc(Addr addr, size_t len) override;
// A breakpoint will be 2 bytes if it is compressed and 4 if not
bool checkBpLen(size_t len) override { return len == 2 || len == 4; }
public:
RemoteGDB(System *_system, ThreadContext *tc, int _port);
- BaseGdbRegCache *gdbRegs();
+ BaseGdbRegCache *gdbRegs() override;
};
} // namespace RiscvISA
public:
void
- setCPU(BaseCPU * _cpu)
+ setCPU(BaseCPU * _cpu) override
{
cpu = _cpu;
}
}
void
- post(int int_num, int index)
+ post(int int_num, int index) override
{
DPRINTF(Interrupt, "Interrupt %d:%d posted\n", int_num, index);
assert(int_num >= 0 && int_num < NumInterruptTypes);
}
void
- clear(int int_num, int index)
+ clear(int int_num, int index) override
{
DPRINTF(Interrupt, "Interrupt %d:%d cleared\n", int_num, index);
assert(int_num >= 0 && int_num < NumInterruptTypes);
}
void
- clearAll()
+ clearAll() override
{
for (int i = 0; i < NumInterruptTypes; ++i) {
interrupts[i] = 0;
}
bool
- checkInterrupts(ThreadContext *tc) const
+ checkInterrupts(ThreadContext *tc) const override
{
if (!intStatus)
return false;
}
Fault
- getInterrupt(ThreadContext *tc)
+ getInterrupt(ThreadContext *tc) override
{
assert(checkInterrupts(tc));
return NoFault;
}
- void
- updateIntrInfo(ThreadContext *tc)
- {}
+ void updateIntrInfo(ThreadContext *tc) override {}
uint64_t
get_vec(int int_num)
/// indexed by call number.
static SyscallDescABI<DefaultSyscallABI> syscall32Descs[];
- SyscallDesc* getDesc(int callnum);
- SyscallDesc* getDesc32(int callnum);
+ SyscallDesc *getDesc(int callnum);
+ SyscallDesc *getDesc32(int callnum);
static const int Num_Syscall_Descs;
static const int Num_Syscall32_Descs;
Sparc32LinuxProcess(ProcessParams * params, ObjectFile *objFile);
SyscallDesc*
- getDesc(int callnum)
+ getDesc(int callnum) override
{
return SparcLinuxProcess::getDesc32(callnum);
}
void syscall(ThreadContext *tc, Fault *fault) override;
- void handleTrap(int trapNum, ThreadContext *tc, Fault *fault);
+ void handleTrap(int trapNum, ThreadContext *tc, Fault *fault) override;
};
/// A process with emulated 32 bit SPARC/Linux syscalls.
Sparc64LinuxProcess(ProcessParams * params, ObjectFile *objFile);
SyscallDesc*
- getDesc(int callnum)
+ getDesc(int callnum) override
{
return SparcLinuxProcess::getDesc(callnum);
}
void syscall(ThreadContext *tc, Fault *fault) override;
- void handleTrap(int trapNum, ThreadContext *tc, Fault *fault);
+ void handleTrap(int trapNum, ThreadContext *tc, Fault *fault) override;
};
SyscallReturn getresuidFunc(SyscallDesc *desc, int num, ThreadContext *tc);
SparcProcess(ProcessParams * params, ObjectFile *objFile,
Addr _StackBias);
- void initState();
+ void initState() override;
template<class IntType>
void argsInit(int pageSize);
Addr readSpillStart() { return spillStart; }
virtual void flushWindows(ThreadContext *tc) = 0;
- void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value);
+ void setSyscallReturn(ThreadContext *tc,
+ SyscallReturn return_value) override;
};
class Sparc32Process : public SparcProcess
mmap_end);
}
- void initState();
+ void initState() override;
public:
void argsInit(int intSize, int pageSize);
- void flushWindows(ThreadContext *tc);
+ void flushWindows(ThreadContext *tc) override;
- RegVal getSyscallArg(ThreadContext *tc, int &i);
+ RegVal getSyscallArg(ThreadContext *tc, int &i) override;
/// Explicitly import the otherwise hidden getSyscallArg
using Process::getSyscallArg;
};
mmap_end);
}
- void initState();
+ void initState() override;
public:
void argsInit(int intSize, int pageSize);
- void flushWindows(ThreadContext *tc);
+ void flushWindows(ThreadContext *tc) override;
- RegVal getSyscallArg(ThreadContext *tc, int &i);
+ RegVal getSyscallArg(ThreadContext *tc, int &i) override;
/// Explicitly import the otherwise hidden getSyscallArg
using Process::getSyscallArg;
};
/// Constructor.
SparcSolarisProcess(ProcessParams * params, ObjectFile *objFile);
- virtual SyscallDesc* getDesc(int callnum);
+ SyscallDesc *getDesc(int callnum) override;
/// The target system's hostname.
static const char *hostname;
X86_64LinuxProcess(ProcessParams * params, ObjectFile *objFile);
void syscall(ThreadContext *tc, Fault *fault) override;
void clone(ThreadContext *old_tc, ThreadContext *new_tc, Process *process,
- RegVal flags);
+ RegVal flags) override;
};
class I386LinuxProcess : public I386Process
I386LinuxProcess(ProcessParams * params, ObjectFile *objFile);
void syscall(ThreadContext *tc, Fault *fault) override;
void clone(ThreadContext *old_tc, ThreadContext *new_tc, Process *process,
- RegVal flags);
+ RegVal flags) override;
};
} // namespace X86ISA