process.hh (12044:3fbbaad9c5cc) | process.hh (12074:4cd00c12d641) |
---|---|
1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 65 unchanged lines hidden (view full) --- 74 75 public: 76 Addr gdtStart() 77 { return _gdtStart; } 78 79 Addr gdtSize() 80 { return _gdtSize; } 81 | 1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 65 unchanged lines hidden (view full) --- 74 75 public: 76 Addr gdtStart() 77 { return _gdtStart; } 78 79 Addr gdtSize() 80 { return _gdtSize; } 81 |
82 SyscallDesc* getDesc(int callnum); | 82 SyscallDesc* getDesc(int callnum) override; |
83 | 83 |
84 void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value); | 84 void setSyscallReturn(ThreadContext *tc, 85 SyscallReturn return_value) override; |
85 void clone(ThreadContext *old_tc, ThreadContext *new_tc, 86 Process *process, TheISA::IntReg flags); 87 88 X86Process & 89 operator=(const X86Process &in) 90 { 91 if (this == &in) 92 return *this; --- 33 unchanged lines hidden (view full) --- 126 127 return *this; 128 } 129 }; 130 VSyscallPage vsyscallPage; 131 132 public: 133 void argsInit(int pageSize); | 86 void clone(ThreadContext *old_tc, ThreadContext *new_tc, 87 Process *process, TheISA::IntReg flags); 88 89 X86Process & 90 operator=(const X86Process &in) 91 { 92 if (this == &in) 93 return *this; --- 33 unchanged lines hidden (view full) --- 127 128 return *this; 129 } 130 }; 131 VSyscallPage vsyscallPage; 132 133 public: 134 void argsInit(int pageSize); |
134 void initState(); | 135 void initState() override; |
135 | 136 |
136 X86ISA::IntReg getSyscallArg(ThreadContext *tc, int &i); | 137 X86ISA::IntReg getSyscallArg(ThreadContext *tc, int &i) override; |
137 /// Explicitly import the otherwise hidden getSyscallArg 138 using Process::getSyscallArg; | 138 /// Explicitly import the otherwise hidden getSyscallArg 139 using Process::getSyscallArg; |
139 void setSyscallArg(ThreadContext *tc, int i, X86ISA::IntReg val); | 140 void setSyscallArg(ThreadContext *tc, int i, 141 X86ISA::IntReg val) override; |
140 void clone(ThreadContext *old_tc, ThreadContext *new_tc, 141 Process *process, TheISA::IntReg flags); 142 }; 143 144 class I386Process : public X86Process 145 { 146 protected: 147 I386Process(ProcessParams *params, ObjectFile *objFile, --- 20 unchanged lines hidden (view full) --- 168 169 return *this; 170 } 171 }; 172 VSyscallPage vsyscallPage; 173 174 public: 175 void argsInit(int pageSize); | 142 void clone(ThreadContext *old_tc, ThreadContext *new_tc, 143 Process *process, TheISA::IntReg flags); 144 }; 145 146 class I386Process : public X86Process 147 { 148 protected: 149 I386Process(ProcessParams *params, ObjectFile *objFile, --- 20 unchanged lines hidden (view full) --- 170 171 return *this; 172 } 173 }; 174 VSyscallPage vsyscallPage; 175 176 public: 177 void argsInit(int pageSize); |
176 void initState(); | 178 void initState() override; |
177 178 void syscall(int64_t callnum, ThreadContext *tc, 179 Fault *fault) override; | 179 180 void syscall(int64_t callnum, ThreadContext *tc, 181 Fault *fault) override; |
180 X86ISA::IntReg getSyscallArg(ThreadContext *tc, int &i); 181 X86ISA::IntReg getSyscallArg(ThreadContext *tc, int &i, int width); 182 void setSyscallArg(ThreadContext *tc, int i, X86ISA::IntReg val); | 182 X86ISA::IntReg getSyscallArg(ThreadContext *tc, 183 int &i) override; 184 X86ISA::IntReg getSyscallArg(ThreadContext *tc, int &i, 185 int width) override; 186 void setSyscallArg(ThreadContext *tc, int i, 187 X86ISA::IntReg val) override; |
183 void clone(ThreadContext *old_tc, ThreadContext *new_tc, 184 Process *process, TheISA::IntReg flags); 185 }; 186 187 /** 188 * Declaration of architectural page table for x86. 189 * 190 * These page tables are stored in system memory and respect x86 191 * specification. 192 */ 193 typedef MultiLevelPageTable<PageTableOps> ArchPageTable; 194 195} 196 197#endif // __ARCH_X86_PROCESS_HH__ | 188 void clone(ThreadContext *old_tc, ThreadContext *new_tc, 189 Process *process, TheISA::IntReg flags); 190 }; 191 192 /** 193 * Declaration of architectural page table for x86. 194 * 195 * These page tables are stored in system memory and respect x86 196 * specification. 197 */ 198 typedef MultiLevelPageTable<PageTableOps> ArchPageTable; 199 200} 201 202#endif // __ARCH_X86_PROCESS_HH__ |