Home | History | Annotate | Download | only in m_syswrap

Lines Matching refs:canonical

403    the platform-specific in-guest-state format to the canonical
407 void getSyscallArgsFromGuestState ( /*OUT*/SyscallArgs* canonical,
413 canonical->sysno = gst->guest_EAX;
414 canonical->arg1 = gst->guest_EBX;
415 canonical->arg2 = gst->guest_ECX;
416 canonical->arg3 = gst->guest_EDX;
417 canonical->arg4 = gst->guest_ESI;
418 canonical->arg5 = gst->guest_EDI;
419 canonical->arg6 = gst->guest_EBP;
420 canonical->arg7 = 0;
421 canonical->arg8 = 0;
425 canonical->sysno = gst->guest_RAX;
426 canonical->arg1 = gst->guest_RDI;
427 canonical->arg2 = gst->guest_RSI;
428 canonical->arg3 = gst->guest_RDX;
429 canonical->arg4 = gst->guest_R10;
430 canonical->arg5 = gst->guest_R8;
431 canonical->arg6 = gst->guest_R9;
432 canonical->arg7 = 0;
433 canonical->arg8 = 0;
437 canonical->sysno = gst->guest_GPR0;
438 canonical->arg1 = gst->guest_GPR3;
439 canonical->arg2 = gst->guest_GPR4;
440 canonical->arg3 = gst->guest_GPR5;
441 canonical
442 canonical->arg5 = gst->guest_GPR7;
443 canonical->arg6 = gst->guest_GPR8;
444 canonical->arg7 = 0;
445 canonical->arg8 = 0;
449 canonical->sysno = gst->guest_GPR0;
450 canonical->arg1 = gst->guest_GPR3;
451 canonical->arg2 = gst->guest_GPR4;
452 canonical->arg3 = gst->guest_GPR5;
453 canonical->arg4 = gst->guest_GPR6;
454 canonical->arg5 = gst->guest_GPR7;
455 canonical->arg6 = gst->guest_GPR8;
456 canonical->arg7 = 0;
457 canonical->arg8 = 0;
461 canonical->sysno = gst->guest_R7;
462 canonical->arg1 = gst->guest_R0;
463 canonical->arg2 = gst->guest_R1;
464 canonical->arg3 = gst->guest_R2;
465 canonical->arg4 = gst->guest_R3;
466 canonical->arg5 = gst->guest_R4;
467 canonical->arg6 = gst->guest_R5;
468 canonical->arg7 = 0;
469 canonical->arg8 = 0;
473 canonical->sysno = gst->guest_GPR2;
474 canonical->arg1 = gst->guest_GPR3;
475 canonical->arg2 = gst->guest_GPR4;
476 canonical->arg3 = gst->guest_GPR5;
477 canonical->arg4 = gst->guest_GPR6;
478 canonical->arg5 = gst->guest_GPR7;
479 canonical->arg6 = gst->guest_GPR8;
480 canonical->arg7 = gst->guest_GPR9;
481 canonical->arg8 = gst->guest_GPR10;
485 canonical->sysno = gst->guest_GPR2;
486 canonical->arg1 = gst->guest_GPR3;
487 canonical->arg2 = gst->guest_GPR4;
488 canonical->arg3 = gst->guest_GPR5;
489 canonical->arg4 = gst->guest_GPR6;
490 canonical->arg5 = gst->guest_GPR7;
491 canonical->arg6 = gst->guest_GPR8;
492 canonical->arg7 = gst->guest_GPR9;
493 canonical->arg8 = gst->guest_GPR10;
499 canonical->sysno = gst->guest_EAX;
500 if (canonical->sysno != 0) {
502 canonical->arg1 = stack[1];
503 canonical->arg2 = stack[2];
504 canonical->arg3 = stack[3];
505 canonical->arg4 = stack[4];
506 canonical->arg5 = stack[5];
507 canonical->arg6 = stack[6];
508 canonical->arg7 = stack[7];
509 canonical->arg8 = stack[8];
517 canonical->sysno = stack[1];
518 vg_assert(canonical->sysno != 0);
519 canonical->arg1 = stack[2];
520 canonical->arg2 = stack[3];
521 canonical->arg3 = stack[4];
522 canonical->arg4 = stack[5];
523 canonical->arg5 = stack[6];
524 canonical->arg6 = stack[7];
525 canonical->arg7 = stack[8];
526 canonical->arg8 = stack[9];
530 VG_SYSNUM_STRING(0), VG_SYSNUM_STRING(canonical->sysno));
542 vg_assert(canonical->sysno >= 0);
543 canonical->sysno = VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(canonical->sysno);
548 if (canonical->sysno >= 0) {
550 canonical->sysno = VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(canonical->sysno
553 canonical->sysno = VG_DARWIN_SYSCALL_CONSTRUCT_MACH(-canonical->sysno);
558 vg_assert(canonical->sysno < 0);
559 canonical->sysno = VG_DARWIN_SYSCALL_CONSTRUCT_MACH(-canonical->sysno);
563 vg_assert(canonical->sysno >= 0);
564 canonical->sysno = VG_DARWIN_SYSCALL_CONSTRUCT_MDEP(canonical->sysno);
578 canonical->sysno = gst->guest_RAX;
579 if (canonical->sysno != __NR_syscall) {
581 canonical->arg1 = gst->guest_RDI;
582 canonical->arg2 = gst->guest_RSI;
583 canonical->arg3 = gst->guest_RDX;
584 canonical->arg4 = gst->guest_R10; // not rcx with syscall insn
585 canonical->arg5 = gst->guest_R8;
586 canonical->arg6 = gst->guest_R9;
587 canonical->arg7 = stack[1];
588 canonical->arg8 = stack[2];
596 canonical->sysno = VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(gst->guest_RDI);
597 vg_assert(canonical->sysno != __NR_syscall);
598 canonical->arg1 = gst->guest_RSI;
599 canonical->arg2 = gst->guest_RDX;
600 canonical->arg3 = gst->guest_R10; // not rcx with syscall insn
601 canonical->arg4 = gst->guest_R8;
602 canonical->arg5 = gst->guest_R9;
603 canonical->arg6 = stack[1];
604 canonical->arg7 = stack[2];
605 canonical->arg8 = stack[3];
609 VG_SYSNUM_STRING(0), VG_SYSNUM_STRING(canonical->sysno));
612 // no canonical->sysno adjustment needed
620 void putSyscallArgsIntoGuestState ( /*IN*/ SyscallArgs* canonical,
625 gst->guest_EAX = canonical->sysno;
626 gst->guest_EBX = canonical->arg1;
627 gst->guest_ECX = canonical->arg2;
628 gst->guest_EDX = canonical->arg3;
629 gst->guest_ESI = canonical->arg4;
630 gst->guest_EDI = canonical->arg5;
631 gst->guest_EBP = canonical->arg6;
635 gst->guest_RAX = canonical->sysno;
636 gst->guest_RDI = canonical->arg1;
637 gst->guest_RSI = canonical->arg2;
638 gst->guest_RDX = canonical->arg3;
639 gst->guest_R10 = canonical->arg4;
640 gst->guest_R8 = canonical->arg5;
641 gst->guest_R9 = canonical->arg6;
645 gst->guest_GPR0 = canonical->sysno;
646 gst->guest_GPR3 = canonical->arg1;
647 gst->guest_GPR4 = canonical->arg2;
648 gst->guest_GPR5 = canonical->arg3;
649 gst->guest_GPR6 = canonical->arg4;
650 gst->guest_GPR7 = canonical->arg5;
651 gst->guest_GPR8 = canonical->arg6;
655 gst->guest_GPR0 = canonical->sysno;
656 gst->guest_GPR3 = canonical->arg1;
657 gst->guest_GPR4 = canonical->arg2;
658 gst->guest_GPR5 = canonical->arg3;
659 gst->guest_GPR6 = canonical->arg4;
660 gst->guest_GPR7 = canonical->arg5;
661 gst->guest_GPR8 = canonical->arg6;
665 gst->guest_R7 = canonical->sysno;
666 gst->guest_R0 = canonical->arg1;
667 gst->guest_R1 = canonical->arg2;
668 gst->guest_R2 = canonical->arg3;
669 gst->guest_R3 = canonical->arg4;
670 gst->guest_R4 = canonical->arg5;
671 gst->guest_R5 = canonical->arg6;
675 gst->guest_GPR2 = canonical->sysno;
676 gst->guest_GPR3 = canonical->arg1;
677 gst->guest_GPR4 = canonical->arg2;
678 gst->guest_GPR5 = canonical->arg3;
679 gst->guest_GPR6 = canonical->arg4;
680 gst->guest_GPR7 = canonical->arg5;
681 gst->guest_GPR8 = canonical->arg6;
682 gst->guest_GPR9 = canonical->arg7;
683 gst->guest_GPR10 = canonical->arg8;
687 gst->guest_GPR2 = canonical->sysno;
688 gst->guest_GPR3 = canonical->arg1;
689 gst->guest_GPR4 = canonical->arg2;
690 gst->guest_GPR5 = canonical->arg3;
691 gst->guest_GPR6 = canonical->arg4;
692 gst->guest_GPR7 = canonical->arg5;
693 gst->guest_GPR8 = canonical->arg6;
694 gst->guest_GPR9 = canonical->arg7;
695 gst->guest_GPR10 = canonical->arg8;
701 gst->guest_EAX = VG_DARWIN_SYSNO_FOR_KERNEL(canonical->sysno);
705 stack[1] = canonical->arg1;
706 stack[2] = canonical->arg2;
707 stack[3] = canonical->arg3;
708 stack[4] = canonical->arg4;
709 stack[5] = canonical->arg5;
710 stack[6] = canonical->arg6;
711 stack[7] = canonical->arg7;
712 stack[8] = canonical->arg8;
718 gst->guest_RAX = VG_DARWIN_SYSNO_FOR_KERNEL(canonical->sysno);
722 gst->guest_RDI = canonical->arg1;
723 gst->guest_RSI = canonical->arg2;
724 gst->guest_RDX = canonical->arg3;
725 gst->guest_RCX = canonical->arg4;
726 gst->guest_R8 = canonical->arg5;
727 gst->guest_R9 = canonical->arg6;
728 stack[1] = canonical->arg7;
729 stack[2] = canonical->arg8;
737 void getSyscallStatusFromGuestState ( /*OUT*/SyscallStatus* canonical,
742 canonical->sres = VG_(mk_SysRes_x86_linux)( gst->guest_EAX );
743 canonical->what = SsComplete;
747 canonical->sres = VG_(mk_SysRes_amd64_linux)( gst->guest_RAX );
748 canonical->what = SsComplete;
754 canonical->sres = VG_(mk_SysRes_ppc32_linux)( gst->guest_GPR3, cr0so );
755 canonical->what = SsComplete;
761 canonical->sres = VG_(mk_SysRes_ppc64_linux)( gst->guest_GPR3, cr0so );
762 canonical->what = SsComplete;
766 canonical->sres = VG_(mk_SysRes_arm_linux)( gst->guest_R0 );
767 canonical->what = SsComplete;
771 canonical->sres = VG_(mk_SysRes_ppc32_aix5)( gst->guest_GPR3,
773 canonical->what = SsComplete;
777 canonical->sres = VG_(mk_SysRes_ppc64_aix5)( gst->guest_GPR3,
779 canonical->what = SsComplete;
807 canonical->sres = VG_(mk_SysRes_x86_darwin)(
811 canonical->what = SsComplete;
839 canonical->sres = VG_(mk_SysRes_amd64_darwin)(
843 canonical->what = SsComplete;
852 /*IN*/ SyscallStatus* canonical,
857 vg_assert(canonical->what == SsComplete);
858 if (sr_isError(canonical->sres)) {
862 gst->guest_EAX = - (Int)sr_Err(canonical->sres);
864 gst->guest_EAX = sr_Res(canonical->sres);
871 vg_assert(canonical->what == SsComplete);
872 if (sr_isError(canonical->sres)) {
876 gst->guest_RAX = - (Long)sr_Err(canonical->sres);
878 gst->guest_RAX = sr_Res(canonical->sres);
886 vg_assert(canonical->what == SsComplete);
887 if (sr_isError(canonical->sres)) {
890 gst->guest_GPR3 = sr_Err(canonical->sres);
894 gst->guest_GPR3 = sr_Res(canonical->sres);
904 vg_assert(canonical->what == SsComplete);
905 if (sr_isError(canonical->sres)) {
908 gst->guest_GPR3 = sr_Err(canonical->sres);
912 gst->guest_GPR3 = sr_Res(canonical->sres);
921 vg_assert(canonical->what == SsComplete);
922 if (sr_isError(canonical->sres)) {
926 gst->guest_R0 = - (Int)sr_Err(canonical->sres);
928 gst->guest_R0 = sr_Res(canonical->sres);
935 vg_assert(canonical->what == SsComplete);
936 gst->guest_GPR3 = canonical->sres.res;
937 gst->guest_GPR4 = canonical->sres.err;
945 vg_assert(canonical->what == SsComplete);
946 gst->guest_GPR3 = canonical->sres.res;
947 gst->guest_GPR4 = canonical->sres.err;
955 SysRes sres = canonical->sres;
956 vg_assert(canonical->what == SsComplete);
988 SysRes sres = canonical->sres;
989 vg_assert(canonical->what == SsComplete);
2013 SyscallStatus canonical;
2118 canonical = convert_SysRes_to_SyscallStatus(
2122 putSyscallStatusIntoGuestState( tid, &canonical, &th_regs->vex );
2123 sci->status = canonical;
2136 canonical = convert_SysRes_to_SyscallStatus( sres );
2138 putSyscallStatusIntoGuestState( tid, &canonical, &th_regs->vex );
2139 sci->status = canonical;