#ifndef __ARCH_SPARC_FS_WORKLOAD_HH__
#define __ARCH_SPARC_FS_WORKLOAD_HH__
+#include "arch/sparc/faults.hh"
#include "params/SparcFsWorkload.hh"
-#include "sim/os_kernel.hh"
+#include "sim/workload.hh"
namespace SparcISA
{
-class FsWorkload : public OsKernel
+class FsWorkload : public Workload
{
+ protected:
+ Loader::SymbolTable defaultSymtab;
+
public:
- FsWorkload(SparcFsWorkloadParams *p) : OsKernel(*p) {}
+ FsWorkload(SparcFsWorkloadParams *params) : Workload(params) {}
void initState() override;
+
+ Addr
+ getEntry() const override
+ {
+ Addr pc, npc;
+ getREDVector(0x001, pc, npc);
+ return pc;
+ }
+ Loader::Arch getArch() const override { return Loader::SPARC64; }
+
+ const Loader::SymbolTable &
+ symtab(ThreadContext *tc) override
+ {
+ return defaultSymtab;
+ }
+
+ bool
+ insertSymbol(const Loader::Symbol &symbol) override
+ {
+ return defaultSymtab.insert(symbol);
+ }
};
} // namespace SparcISA