process.hh (11886:43b882cada33) process.hh (12044:3fbbaad9c5cc)
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

--- 29 unchanged lines hidden (view full) ---

38 */
39
40#ifndef __ARCH_X86_PROCESS_HH__
41#define __ARCH_X86_PROCESS_HH__
42
43#include <string>
44#include <vector>
45
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

--- 29 unchanged lines hidden (view full) ---

38 */
39
40#ifndef __ARCH_X86_PROCESS_HH__
41#define __ARCH_X86_PROCESS_HH__
42
43#include <string>
44#include <vector>
45
46#include "mem/multi_level_page_table.hh"
46#include "sim/aux_vector.hh"
47#include "sim/process.hh"
47#include "sim/aux_vector.hh"
48#include "sim/process.hh"
48#include "mem/multi_level_page_table.hh"
49
50class SyscallDesc;
51
52namespace X86ISA
53{
54 enum X86AuxiliaryVectorTypes {
55 M5_AT_SYSINFO = 32,
56 M5_AT_SYSINFO_EHDR = 33

--- 113 unchanged lines hidden (view full) ---

170 }
171 };
172 VSyscallPage vsyscallPage;
173
174 public:
175 void argsInit(int pageSize);
176 void initState();
177
49
50class SyscallDesc;
51
52namespace X86ISA
53{
54 enum X86AuxiliaryVectorTypes {
55 M5_AT_SYSINFO = 32,
56 M5_AT_SYSINFO_EHDR = 33

--- 113 unchanged lines hidden (view full) ---

170 }
171 };
172 VSyscallPage vsyscallPage;
173
174 public:
175 void argsInit(int pageSize);
176 void initState();
177
178 void syscall(int64_t callnum, ThreadContext *tc, Fault *fault);
178 void syscall(int64_t callnum, ThreadContext *tc,
179 Fault *fault) override;
179 X86ISA::IntReg getSyscallArg(ThreadContext *tc, int &i);
180 X86ISA::IntReg getSyscallArg(ThreadContext *tc, int &i, int width);
181 void setSyscallArg(ThreadContext *tc, int i, X86ISA::IntReg val);
182 void clone(ThreadContext *old_tc, ThreadContext *new_tc,
183 Process *process, TheISA::IntReg flags);
184 };
185
186 /**
187 * Declaration of architectural page table for x86.
188 *
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);
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 *
189 * These page tables are stored in system memory and respect x86 specification.
190 * These page tables are stored in system memory and respect x86
191 * specification.
190 */
191 typedef MultiLevelPageTable<PageTableOps> ArchPageTable;
192
193}
194
195#endif // __ARCH_X86_PROCESS_HH__
192 */
193 typedef MultiLevelPageTable<PageTableOps> ArchPageTable;
194
195}
196
197#endif // __ARCH_X86_PROCESS_HH__