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__ |