process.hh (5955:d35d2b28df38) process.hh (5956:a49d9413a9e8)
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 *

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

60
61#include "sim/process.hh"
62#include "arch/x86/linux/linux.hh"
63#include "arch/x86/syscallreturn.hh"
64#include "arch/x86/process.hh"
65
66namespace X86ISA {
67
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 *

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

60
61#include "sim/process.hh"
62#include "arch/x86/linux/linux.hh"
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
68class X86_64LinuxProcess : public X86_64LiveProcess
70{
71 protected:
69{
70 protected:
72 SyscallDesc *syscallDescs;
71 /// Array of syscall descriptors, indexed by call number.
72 static SyscallDesc syscallDescs[];
73
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
83 public:
74 public:
84 SyscallDesc* getDesc(int callnum);
85};
86
87class X86_64LinuxProcess : public X86LinuxProcess
88{
89 public:
90 /// Constructor.
91 X86_64LinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
75 /// Constructor.
76 X86_64LinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
77};
92
78
79class I386LinuxProcess : public I386LiveProcess
80{
81 protected:
93 /// Array of syscall descriptors, indexed by call number.
94 static SyscallDesc syscallDescs[];
82 /// Array of syscall descriptors, indexed by call number.
83 static SyscallDesc syscallDescs[];
95};
96
84
97class I386LinuxProcess : public X86LinuxProcess
98{
99 public:
100 /// Constructor.
101 I386LinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
85 public:
86 /// Constructor.
87 I386LinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
102
103 /// Array of syscall descriptors, indexed by call number.
104 static SyscallDesc syscallDescs[];
105};
106
107} // namespace X86ISA
108#endif // __X86_LINUX_PROCESS_HH__
88};
89
90} // namespace X86ISA
91#endif // __X86_LINUX_PROCESS_HH__