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" |
47#include "sim/aux_vector.hh" 48#include "sim/process.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 |
178 void syscall(int64_t callnum, ThreadContext *tc, 179 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); 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__ |