process.hh (5154:7e6431213487) process.hh (5955:d35d2b28df38)
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * Redistribution and use of this software in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *

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

63#include "arch/x86/syscallreturn.hh"
64#include "arch/x86/process.hh"
65
66namespace X86ISA {
67
68/// A process with emulated x86/Linux syscalls.
69class X86LinuxProcess : public X86LiveProcess
70{
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * Redistribution and use of this software in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *

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

63#include "arch/x86/syscallreturn.hh"
64#include "arch/x86/process.hh"
65
66namespace X86ISA {
67
68/// A process with emulated x86/Linux syscalls.
69class X86LinuxProcess : public X86LiveProcess
70{
71 protected:
72 SyscallDesc *syscallDescs;
73
74 const int Num_Syscall_Descs;
75
76 /// Constructor.
77 X86LinuxProcess(LiveProcessParams * params, ObjectFile *objFile,
78 SyscallDesc *_syscallDescs, int numSyscallDescs) :
79 X86LiveProcess(params, objFile), syscallDescs(_syscallDescs),
80 Num_Syscall_Descs(numSyscallDescs)
81 {}
82
71 public:
83 public:
84 SyscallDesc* getDesc(int callnum);
85};
86
87class X86_64LinuxProcess : public X86LinuxProcess
88{
89 public:
72 /// Constructor.
90 /// Constructor.
73 X86LinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
91 X86_64LinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
74
75 /// Array of syscall descriptors, indexed by call number.
76 static SyscallDesc syscallDescs[];
92
93 /// Array of syscall descriptors, indexed by call number.
94 static SyscallDesc syscallDescs[];
95};
77
96
78 SyscallDesc* getDesc(int callnum);
97class I386LinuxProcess : public X86LinuxProcess
98{
99 public:
100 /// Constructor.
101 I386LinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
79
102
80 const int Num_Syscall_Descs;
81
82 void handleTrap(int trapNum, ThreadContext *tc);
103 /// Array of syscall descriptors, indexed by call number.
104 static SyscallDesc syscallDescs[];
83};
84
85} // namespace X86ISA
86#endif // __X86_LINUX_PROCESS_HH__
105};
106
107} // namespace X86ISA
108#endif // __X86_LINUX_PROCESS_HH__