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__