Lines Matching defs:tc

67 unimplementedFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
76 ignoreFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
87 exitFutexWake(ThreadContext *tc, Addr addr, uint64_t tgid)
93 ctidBuf.copyOut(tc->getVirtProxy());
95 FutexMap &futex_map = tc->getSystemPtr()->futexMap;
101 exitImpl(SyscallDesc *desc, int callnum, ThreadContext *tc, bool group)
104 auto p = tc->getProcessPtr();
105 int status = p->getSyscallArg(tc, index);
107 System *sys = tc->getSystemPtr();
113 exitFutexWake(tc, p->childClearTID, p->tgid());
191 tc->halt();
223 exitFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
225 return exitImpl(desc, callnum, tc, false);
229 exitGroupFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
231 return exitImpl(desc, callnum, tc, true);
235 getpagesizeFunc(SyscallDesc *desc, int num, ThreadContext *tc)
242 brkFunc(SyscallDesc *desc, int num, ThreadContext *tc)
246 auto p = tc->getProcessPtr();
247 Addr new_brk = p->getSyscallArg(tc, index);
268 PortProxy &tp = tc->getVirtProxy();
291 setTidAddressFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
294 auto process = tc->getProcessPtr();
295 uint64_t tidPtr = process->getSyscallArg(tc, index);
302 closeFunc(SyscallDesc *desc, int num, ThreadContext *tc)
305 auto p = tc->getProcessPtr();
306 int tgt_fd = p->getSyscallArg(tc, index);
312 lseekFunc(SyscallDesc *desc, int num, ThreadContext *tc)
315 auto p = tc->getProcessPtr();
316 int tgt_fd = p->getSyscallArg(tc, index);
317 uint64_t offs = p->getSyscallArg(tc, index);
318 int whence = p->getSyscallArg(tc, index);
332 _llseekFunc(SyscallDesc *desc, int num, ThreadContext *tc)
335 auto p = tc->getProcessPtr();
336 int tgt_fd = p->getSyscallArg(tc, index);
337 uint64_t offset_high = p->getSyscallArg(tc, index);
338 uint32_t offset_low = p->getSyscallArg(tc, index);
339 Addr result_ptr = p->getSyscallArg(tc, index);
340 int whence = p->getSyscallArg(tc, index);
357 result_buf.copyOut(tc->getVirtProxy());
363 munmapFunc(SyscallDesc *desc, int num, ThreadContext *tc)
375 gethostnameFunc(SyscallDesc *desc, int num, ThreadContext *tc)
378 auto p = tc->getProcessPtr();
379 Addr buf_ptr = p->getSyscallArg(tc, index);
380 int name_len = p->getSyscallArg(tc, index);
385 name.copyOut(tc->getVirtProxy());
391 getcwdFunc(SyscallDesc *desc, int num, ThreadContext *tc)
395 auto p = tc->getProcessPtr();
396 Addr buf_ptr = p->getSyscallArg(tc, index);
397 unsigned long size = p->getSyscallArg(tc, index);
417 buf.copyOut(tc->getVirtProxy());
423 readlinkFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
425 return readlinkFunc(desc, callnum, tc, 0);
429 readlinkFunc(SyscallDesc *desc, int num, ThreadContext *tc, int index)
432 auto p = tc->getProcessPtr();
434 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
440 Addr buf_ptr = p->getSyscallArg(tc, index);
441 size_t bufsiz = p->getSyscallArg(tc, index);
483 buf.copyOut(tc->getVirtProxy());
489 unlinkFunc(SyscallDesc *desc, int num, ThreadContext *tc)
491 return unlinkHelper(desc, num, tc, 0);
495 unlinkHelper(SyscallDesc *desc, int num, ThreadContext *tc, int index)
498 auto p = tc->getProcessPtr();
500 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
510 linkFunc(SyscallDesc *desc, int num, ThreadContext *tc)
514 auto p = tc->getProcessPtr();
517 auto &virt_mem = tc->getVirtProxy();
518 if (!virt_mem.tryReadString(path, p->getSyscallArg(tc, index)))
520 if (!virt_mem.tryReadString(new_path, p->getSyscallArg(tc, index)))
531 symlinkFunc(SyscallDesc *desc, int num, ThreadContext *tc)
535 auto p = tc->getProcessPtr();
538 auto &virt_mem = tc->getVirtProxy();
539 if (!virt_mem.tryReadString(path, p->getSyscallArg(tc, index)))
541 if (!virt_mem.tryReadString(new_path, p->getSyscallArg(tc, index)))
552 mkdirFunc(SyscallDesc *desc, int num, ThreadContext *tc)
554 auto p = tc->getProcessPtr();
557 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
561 mode_t mode = p->getSyscallArg(tc, index);
568 renameFunc(SyscallDesc *desc, int num, ThreadContext *tc)
571 auto p = tc->getProcessPtr();
574 if (!tc->getVirtProxy().tryReadString(
575 old_name, p->getSyscallArg(tc, index))) {
581 if (!tc->getVirtProxy().tryReadString(
582 new_name, p->getSyscallArg(tc, index))) {
595 truncateFunc(SyscallDesc *desc, int num, ThreadContext *tc)
598 auto p = tc->getProcessPtr();
601 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
604 off_t length = p->getSyscallArg(tc, index);
614 ftruncateFunc(SyscallDesc *desc, int num, ThreadContext *tc)
617 auto p = tc->getProcessPtr();
618 int tgt_fd = p->getSyscallArg(tc, index);
619 off_t length = p->getSyscallArg(tc, index);
631 truncate64Func(SyscallDesc *desc, int num, ThreadContext *tc)
634 auto process = tc->getProcessPtr();
637 if (!tc->getVirtProxy().tryReadString(
638 path, process->getSyscallArg(tc, index))) {
642 int64_t length = process->getSyscallArg(tc, index, 64);
656 ftruncate64Func(SyscallDesc *desc, int num, ThreadContext *tc)
659 auto p = tc->getProcessPtr();
660 int tgt_fd = p->getSyscallArg(tc, index);
661 int64_t length = p->getSyscallArg(tc, index, 64);
677 umaskFunc(SyscallDesc *desc, int num, ThreadContext *tc)
688 chownFunc(SyscallDesc *desc, int num, ThreadContext *tc)
691 auto p = tc->getProcessPtr();
694 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
698 uint32_t owner = p->getSyscallArg(tc, index);
700 uint32_t group = p->getSyscallArg(tc, index);
711 fchownFunc(SyscallDesc *desc, int num, ThreadContext *tc)
714 auto p = tc->getProcessPtr();
715 int tgt_fd = p->getSyscallArg(tc, index);
723 uint32_t owner = p->getSyscallArg(tc, index);
725 uint32_t group = p->getSyscallArg(tc, index);
739 dupFunc(SyscallDesc *desc, int num, ThreadContext *tc)
742 auto p = tc->getProcessPtr();
743 int tgt_fd = p->getSyscallArg(tc, index);
761 dup2Func(SyscallDesc *desc, int num, ThreadContext *tc)
764 auto p = tc->getProcessPtr();
765 int old_tgt_fd = p->getSyscallArg(tc, index);
780 int new_tgt_fd = p->getSyscallArg(tc, index);
792 fcntlFunc(SyscallDesc *desc, int num, ThreadContext *tc)
796 auto p = tc->getProcessPtr();
797 int tgt_fd = p->getSyscallArg(tc, index);
798 int cmd = p->getSyscallArg(tc, index);
812 arg = p->getSyscallArg(tc, index);
825 arg = p->getSyscallArg(tc, index);
837 fcntl64Func(SyscallDesc *desc, int num, ThreadContext *tc)
840 auto p = tc->getProcessPtr();
841 int tgt_fd = p->getSyscallArg(tc, index);
848 int cmd = p->getSyscallArg(tc, index);
869 pipeImpl(SyscallDesc *desc, int callnum, ThreadContext *tc, bool pseudo_pipe,
874 auto p = tc->getProcessPtr();
877 tgt_addr = p->getSyscallArg(tc, index);
879 flags = p->getSyscallArg(tc, index);
910 tc->setIntReg(SyscallPseudoReturnReg, tgt_fds[1]);
922 tgt_handle.copyOut(tc->getVirtProxy());
966 pipePseudoFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
968 return pipeImpl(desc, callnum, tc, true);
972 pipeFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
974 return pipeImpl(desc, callnum, tc, false);
978 pipe2Func(SyscallDesc *desc, int callnum, ThreadContext *tc)
982 return pipeImpl(desc, callnum, tc, false, true);
986 getpgrpFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
988 auto process = tc->getProcessPtr();
993 setpgidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
996 auto process = tc->getProcessPtr();
997 int pid = process->getSyscallArg(tc, index);
998 int pgid = process->getSyscallArg(tc, index);
1009 System *sysh = tc->getSystemPtr();
1029 getpidPseudoFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1035 auto process = tc->getProcessPtr();
1036 tc->setIntReg(SyscallPseudoReturnReg, process->ppid());
1042 getuidPseudoFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1048 auto process = tc->getProcessPtr();
1049 tc->setIntReg(SyscallPseudoReturnReg, process->euid()); // EUID
1055 getgidPseudoFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1058 auto process = tc->getProcessPtr();
1059 tc->setIntReg(SyscallPseudoReturnReg, process->egid()); // EGID
1065 setuidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1069 auto process = tc->getProcessPtr();
1070 warn("Ignoring call to setuid(%d)\n", process->getSyscallArg(tc, index));
1075 getpidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1077 auto process = tc->getProcessPtr();
1082 gettidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1084 auto process = tc->getProcessPtr();
1089 getppidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1091 auto process = tc->getProcessPtr();
1096 getuidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1098 auto process = tc->getProcessPtr();
1103 geteuidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1105 auto process = tc->getProcessPtr();
1110 getgidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1112 auto process = tc->getProcessPtr();
1117 getegidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1119 auto process = tc->getProcessPtr();
1124 fallocateFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1128 auto p = tc->getProcessPtr();
1129 int tgt_fd = p->getSyscallArg(tc, index);
1130 int mode = p->getSyscallArg(tc, index);
1131 off_t offset = p->getSyscallArg(tc, index);
1132 off_t len = p->getSyscallArg(tc, index);
1150 accessFunc(SyscallDesc *desc, int callnum, ThreadContext *tc, int index)
1153 auto p = tc->getProcessPtr();
1154 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
1160 mode_t mode = p->getSyscallArg(tc, index);
1167 accessFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1169 return accessFunc(desc, callnum, tc, 0);
1173 mknodFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1175 auto p = tc->getProcessPtr();
1178 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
1182 mode_t mode = p->getSyscallArg(tc, index);
1183 dev_t dev = p->getSyscallArg(tc, index);
1190 chdirFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1192 auto p = tc->getProcessPtr();
1195 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
1218 rmdirFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1220 auto p = tc->getProcessPtr();
1223 if (!tc->getVirtProxy().tryReadString(path, p->getSyscallArg(tc, index)))
1235 getdentsImpl(SyscallDesc *desc, int callnum, ThreadContext *tc)
1238 auto p = tc->getProcessPtr();
1239 int tgt_fd = p->getSyscallArg(tc, index);
1240 Addr buf_ptr = p->getSyscallArg(tc, index);
1241 unsigned count = p->getSyscallArg(tc, index);
1272 buf_arg.copyOut(tc->getVirtProxy());
1279 getdentsFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
1288 return getdentsImpl<LinDent, SYS_getdents>(desc, callnum, tc);
1294 getdents64Func(SyscallDesc *desc, int callnum, ThreadContext *tc)
1303 return getdentsImpl<LinDent64, SYS_getdents64>(desc, callnum, tc);
1308 shutdownFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1311 auto p = tc->getProcessPtr();
1312 int tgt_fd = p->getSyscallArg(tc, index);
1313 int how = p->getSyscallArg(tc, index);
1326 bindFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1329 auto p = tc->getProcessPtr();
1330 int tgt_fd = p->getSyscallArg(tc, index);
1331 Addr buf_ptr = p->getSyscallArg(tc, index);
1332 int addrlen = p->getSyscallArg(tc, index);
1335 bufSock.copyIn(tc->getVirtProxy());
1350 listenFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1353 auto p = tc->getProcessPtr();
1354 int tgt_fd = p->getSyscallArg(tc, index);
1355 int backlog = p->getSyscallArg(tc, index);
1368 connectFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1371 auto p = tc->getProcessPtr();
1372 int tgt_fd = p->getSyscallArg(tc, index);
1373 Addr buf_ptr = p->getSyscallArg(tc, index);
1374 int addrlen = p->getSyscallArg(tc, index);
1377 addr.copyIn(tc->getVirtProxy());
1392 recvfromFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1395 auto p = tc->getProcessPtr();
1396 int tgt_fd = p->getSyscallArg(tc, index);
1397 Addr bufrPtr = p->getSyscallArg(tc, index);
1398 size_t bufrLen = p->getSyscallArg(tc, index);
1399 int flags = p->getSyscallArg(tc, index);
1400 Addr addrPtr = p->getSyscallArg(tc, index);
1401 Addr addrlenPtr = p->getSyscallArg(tc, index);
1416 addrlenBuf.copyIn(tc->getVirtProxy());
1423 addrBuf.copyIn(tc->getVirtProxy());
1437 bufrBuf.copyOut(tc->getVirtProxy());
1443 addrBuf.copyOut(tc->getVirtProxy());
1450 addrlenBuf.copyOut(tc->getVirtProxy());
1457 sendtoFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1460 auto p = tc->getProcessPtr();
1461 int tgt_fd = p->getSyscallArg(tc, index);
1462 Addr bufrPtr = p->getSyscallArg(tc, index);
1463 size_t bufrLen = p->getSyscallArg(tc, index);
1464 int flags = p->getSyscallArg(tc, index);
1465 Addr addrPtr = p->getSyscallArg(tc, index);
1466 socklen_t addrLen = p->getSyscallArg(tc, index);
1475 bufrBuf.copyIn(tc->getVirtProxy());
1481 addrBuf.copyIn(tc->getVirtProxy());
1494 recvmsgFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1497 auto p = tc->getProcessPtr();
1498 int tgt_fd = p->getSyscallArg(tc, index);
1499 Addr msgPtr = p->getSyscallArg(tc, index);
1500 int flags = p->getSyscallArg(tc, index);
1531 msgBuf.copyIn(tc->getVirtProxy());
1551 /*3*/nameBuf->copyIn(tc->getVirtProxy());
1571 /*3*/iovBuf->copyIn(tc->getVirtProxy());
1578 /*3*/iovecBuf[i]->copyIn(tc->getVirtProxy());
1594 /*3*/controlBuf->copyIn(tc->getVirtProxy());
1604 nameBuf->copyOut(tc->getVirtProxy());
1612 iovecBuf[i]->copyOut(tc->getVirtProxy());
1618 iovBuf->copyOut(tc->getVirtProxy());
1624 controlBuf->copyOut(tc->getVirtProxy());
1629 msgBuf.copyOut(tc->getVirtProxy());
1635 sendmsgFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1638 auto p = tc->getProcessPtr();
1639 int tgt_fd = p->getSyscallArg(tc, index);
1640 Addr msgPtr = p->getSyscallArg(tc, index);
1641 int flags = p->getSyscallArg(tc, index);
1652 msgBuf.copyIn(tc->getVirtProxy());
1661 iovBuf.copyIn(tc->getVirtProxy());
1681 bufferArray[iovIndex]->copyIn(tc->getVirtProxy());
1705 getsockoptFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1716 auto p = tc->getProcessPtr();
1717 int tgt_fd = p->getSyscallArg(tc, index);
1718 int level = p->getSyscallArg(tc, index);
1719 int optname = p->getSyscallArg(tc, index);
1720 Addr valPtr = p->getSyscallArg(tc, index);
1721 Addr lenPtr = p->getSyscallArg(tc, index);
1737 valBuf.copyOut(tc->getVirtProxy());
1742 lenBuf.copyOut(tc->getVirtProxy());
1748 getsocknameFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1751 auto p = tc->getProcessPtr();
1752 int tgt_fd = p->getSyscallArg(tc, index);
1753 Addr addrPtr = p->getSyscallArg(tc, index);
1754 Addr lenPtr = p->getSyscallArg(tc, index);
1766 lenBuf.copyIn(tc->getVirtProxy());
1778 addrBuf.copyOut(tc->getVirtProxy());
1782 lenBuf.copyOut(tc->getVirtProxy());
1788 getpeernameFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1791 auto p = tc->getProcessPtr();
1792 int tgt_fd = p->getSyscallArg(tc, index);
1793 Addr sockAddrPtr = p->getSyscallArg(tc, index);
1794 Addr addrlenPtr = p->getSyscallArg(tc, index);
1802 bufAddrlen.copyIn(tc->getVirtProxy());
1810 bufSock.copyOut(tc->getVirtProxy());
1811 bufAddrlen.copyOut(tc->getVirtProxy());
1818 setsockoptFunc(SyscallDesc *desc, int num, ThreadContext *tc)
1821 auto p = tc->getProcessPtr();
1822 int tgt_fd = p->getSyscallArg(tc, index);
1823 int level = p->getSyscallArg(tc, index);
1824 int optname = p->getSyscallArg(tc, index);
1825 Addr valPtr = p->getSyscallArg(tc, index);
1826 socklen_t len = p->getSyscallArg(tc, index);
1829 valBuf.copyIn(tc->getVirtProxy());