return &syscall32Descs[callnum];
}
-SparcLinuxProcess::SparcLinuxProcess() :
- Num_Syscall_Descs(284), //sizeof(syscallDescs) / sizeof(SyscallDesc)),
- Num_Syscall32_Descs(299) //sizeof(syscall32Descs) / sizeof(SyscallDesc))
-{
- // The sparc syscall table must be <= 284 entries because that is all there
- // is space for.
- assert(Num_Syscall_Descs <= 284);
- // The sparc 32 bit syscall table bust be <= 299 entries because that is
- // all there is space for.
- assert(Num_Syscall_Descs <= 299);
-}
-
Sparc32LinuxProcess::Sparc32LinuxProcess(LiveProcessParams * params,
ObjectFile *objFile)
: Sparc32LiveProcess(params, objFile)
class SparcLinuxProcess
{
public:
- SparcLinuxProcess();
-
/// Array of syscall descriptors, indexed by call number.
static SyscallDesc syscallDescs[];
SyscallDesc* getDesc(int callnum);
SyscallDesc* getDesc32(int callnum);
- const int Num_Syscall_Descs;
- const int Num_Syscall32_Descs;
+ static const int Num_Syscall_Descs;
+ static const int Num_Syscall32_Descs;
};
/// A process with emulated SPARC/Linux syscalls.
/* 299 */ SyscallDesc("unshare", unimplementedFunc)
};
+const int SparcLinuxProcess::Num_Syscall32_Descs =
+ sizeof(SparcLinuxProcess::syscall32Descs) / sizeof(SyscallDesc);
+
SyscallDesc SparcLinuxProcess::syscallDescs[] = {
/* 0 */ SyscallDesc("restart_syscall", unimplementedFunc),
/* 1 */ SyscallDesc("exit", exitFunc),
/* 283 */ SyscallDesc("keyctl", unimplementedFunc)
};
+const int SparcLinuxProcess::Num_Syscall_Descs =
+ sizeof(SparcLinuxProcess::syscallDescs) / sizeof(SyscallDesc);
+
} // namespace SparcISA
X86_64LinuxProcess::X86_64LinuxProcess(LiveProcessParams * params,
ObjectFile *objFile)
- : X86_64LiveProcess(params, objFile, syscallDescs, 273)
+ : X86_64LiveProcess(params, objFile, syscallDescs, numSyscalls)
{}
I386LinuxProcess::I386LinuxProcess(LiveProcessParams * params,
ObjectFile *objFile)
- : I386LiveProcess(params, objFile, syscallDescs, 324)
+ : I386LiveProcess(params, objFile, syscallDescs, numSyscalls)
{}
protected:
/// Array of syscall descriptors, indexed by call number.
static SyscallDesc syscallDescs[];
+ static const int numSyscalls;
public:
/// Constructor.
protected:
/// Array of syscall descriptors, indexed by call number.
static SyscallDesc syscallDescs[];
+ static const int numSyscalls;
public:
/// Constructor.
/* 272 */ SyscallDesc("unshare", unimplementedFunc)
};
+const int X86_64LinuxProcess::numSyscalls =
+ sizeof(X86_64LinuxProcess::syscallDescs) / sizeof(SyscallDesc);
+
SyscallDesc I386LinuxProcess::syscallDescs[] = {
/* 0 */ SyscallDesc("restart_syscall", unimplementedFunc),
/* 1 */ SyscallDesc("exit", unimplementedFunc),
/* 322 */ SyscallDesc("timerfd", unimplementedFunc),
/* 323 */ SyscallDesc("eventfd", unimplementedFunc)
};
+
+const int I386LinuxProcess::numSyscalls =
+ sizeof(I386LinuxProcess::syscallDescs) / sizeof(SyscallDesc);