Go to the documentation of this file.
53 auto arch = obj_file->
getArch();
66 SparcSolarisObjectFileLoader loader;
77 strcpy(
name->sysname,
"SunOS");
78 strcpy(
name->nodename,
"m5.eecs.umich.edu");
79 strcpy(
name->release, process->release.c_str());
80 strcpy(
name->version,
"Generic_118558-21");
81 strcpy(
name->machine,
"sun4u");
88 SparcSolarisProcess::syscallDescs = {
92 { 3,
"read", readFunc<SparcSolaris> },
93 { 4,
"write", writeFunc<SparcSolaris> },
94 { 5,
"open", openFunc<SparcSolaris> },
104 { 15,
"chmod", chmodFunc<Solaris> },
117 { 28,
"fstat", fstatFunc<SparcSolaris> },
153 { 64,
"reserved_64" },
154 { 65,
"reserved_65" },
155 { 66,
"reserved_66" },
156 { 67,
"reserved_67" },
157 { 68,
"reserved_68" },
158 { 69,
"reserved_69" },
161 { 72,
"reserved_72" },
162 { 73,
"getpagesizes" },
171 { 82,
"reserved_82" },
172 { 83,
"reserved_83" },
184 { 95,
"sigprocmask" },
185 { 96,
"sigsuspend" },
186 { 97,
"sigaltstack" },
188 { 99,
"sigpending" },
191 { 102,
"evtrapret" },
194 { 105,
"getloadavg" },
197 { 108,
"sigsendsys" },
201 { 112,
"priocntlsys" },
204 { 115,
"mmap", mmapFunc<SparcSolaris> },
207 { 118,
"fpathconf" },
217 { 128,
"setrlimit" },
218 { 129,
"getrlimit" },
226 { 137,
"sysconfig" },
228 { 139,
"systeminfo" },
229 { 140,
"reserved_140" },
233 { 144,
"sigtimedwait" },
236 { 147,
"lwp_sema_wait" },
237 { 148,
"lwp_sema_post" },
238 { 149,
"lwp_sema_trywait" },
239 { 150,
"lwp_detach" },
245 { 156,
"gettimeofday" },
246 { 157,
"getitimer" },
247 { 158,
"setitimer" },
248 { 159,
"lwp_create" },
250 { 161,
"lwp_suspend" },
251 { 162,
"lwp_continue" },
254 { 165,
"lwp_setprivate" },
255 { 166,
"lwp_getprivate" },
257 { 168,
"lwp_mutex_wakeup" },
258 { 169,
"lwp_mutex_lock" },
259 { 170,
"lwp_cond_wait" },
260 { 171,
"lwp_cond_signal" },
261 { 172,
"lwp_cond_broadcast" },
265 { 176,
"inst_sync" },
266 { 177,
"srmlimitsys" },
269 { 180,
"lgrpsys_meminfosys" },
270 { 181,
"rusagesys" },
271 { 182,
"reserved_182" },
272 { 183,
"reserved_183" },
276 { 187,
"processor_bind" },
277 { 188,
"processor_info" },
280 { 191,
"clock_gettime" },
281 { 192,
"clock_settime" },
282 { 193,
"clock_getres" },
283 { 194,
"timer_create" },
284 { 195,
"timer_delete" },
285 { 196,
"timer_settime" },
286 { 197,
"timer_gettime" },
287 { 198,
"timer_getoverrun" },
288 { 199,
"nanosleep" },
293 { 204,
"install_utrap" },
294 { 205,
"signotify" },
297 { 208,
"sparc_utrap_install" },
298 { 209,
"resolvepath" },
299 { 210,
"signotifywait" },
300 { 211,
"lwp_sigredirect" },
301 { 212,
"lwp_alarm" },
302 { 213,
"getdents64" },
307 { 218,
"statvfs64" },
308 { 219,
"fstatvfs64" },
309 { 220,
"setrlimit64" },
310 { 221,
"getrlimit64" },
316 { 227,
"reserved_227" },
317 { 228,
"reserved_228" },
318 { 229,
"reserved_229" },
319 { 230,
"so_socket" },
320 { 231,
"so_socketpair" },
332 { 243,
"getpeername" },
333 { 244,
"getsockname" },
334 { 245,
"getsockopt" },
335 { 246,
"setsockopt" },
336 { 247,
"sockconfig" },
337 { 248,
"ntp_gettime" },
338 { 249,
"ntp_adjtime" },
339 { 250,
"lwp_mutex_unlock" },
340 { 251,
"lwp_mutex_trylock" },
341 { 252,
"lwp_mutex_init" },
343 { 254,
"lwp_sigtimedwait" },
347 SparcSolarisProcess::SparcSolarisProcess(ProcessParams *params,
SyscallReturn munmapFunc(SyscallDesc *desc, ThreadContext *tc, Addr start, size_t length)
Target munmap() handler.
Each instance of a Loader subclass will have a chance to try to load an object file when tryLoaders i...
SyscallReturn ignoreFunc(SyscallDesc *desc, ThreadContext *tc)
Handler for unimplemented syscalls that we never intend to implement (signal handling,...
void syscall(ThreadContext *tc) override
SyscallReturn chownFunc(SyscallDesc *desc, ThreadContext *tc, Addr pathname, uint32_t owner, uint32_t group)
Target chown() handler.
SyscallReturn unlinkFunc(SyscallDesc *desc, ThreadContext *tc, Addr pathname)
Target unlink() handler.
A process with emulated SPARC/Solaris syscalls.
virtual Process * getProcessPtr()=0
SyscallReturn umaskFunc(SyscallDesc *desc, ThreadContext *tc)
Target umask() handler.
virtual void syscall(ThreadContext *tc)
static SyscallDescTable< Sparc64Process::SyscallABI > syscallDescs
Array of syscall descriptors, indexed by call number.
SyscallReturn lseekFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint64_t offs, int whence)
Target lseek() handler.
SyscallReturn exitFunc(SyscallDesc *desc, ThreadContext *tc, int status)
Target exit() handler: terminate current context.
SyscallReturn getpidFunc(SyscallDesc *desc, ThreadContext *tc)
Target getpid() handler.
SyscallReturn brkFunc(SyscallDesc *desc, ThreadContext *tc, Addr new_brk)
Target brk() handler: set brk address.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
SyscallReturn readlinkFunc(SyscallDesc *desc, ThreadContext *tc, Addr pathname, Addr buf_ptr, size_t bufsiz)
Target readlink() handler.
This class represents the return value from an emulated system call, including any errno setting.
static SyscallReturn unameFunc(SyscallDesc *desc, ThreadContext *tc, VPtr< Solaris::utsname > name)
Target uname() handler.
const std::string & name()
void doSyscall(ThreadContext *tc)
Interface for invoking the system call funcion pointer.
SyscallReturn getuidFunc(SyscallDesc *desc, ThreadContext *tc)
SyscallReturn closeFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd)
Target close() handler.
Overload hash function for BasicBlockRange type.
SyscallDesc * get(int num, bool fatal_if_missing=true)
virtual RegVal readIntReg(RegIndex reg_idx) const =0
SyscallReturn getgidFunc(SyscallDesc *desc, ThreadContext *tc)
Target getgid() handler.
SyscallReturn pipePseudoFunc(SyscallDesc *desc, ThreadContext *tc)
Pseudo Funcs - These functions use a different return convension, returning a second value in a regis...
This class provides the wrapper interface for the system call implementations which are defined in th...
Generated on Wed Sep 30 2020 14:01:59 for gem5 by doxygen 1.8.17