@@ -77,6 +77,32 @@ int make_threei_call (unsigned int callnumber,
7777 uint64_t arg6 , uint64_t arg6cageid ,
7878 int translate_errno )
7979{
80+ if (LIND_ARG_SHOULD_TRANSLATE (arg1cageid )) {
81+ arg1 = TRANSLATE_GUEST_POINTER_TO_HOST ((const void * )(uintptr_t )arg1 );
82+ }
83+ if (LIND_ARG_SHOULD_TRANSLATE (arg2cageid )) {
84+ arg2 = TRANSLATE_GUEST_POINTER_TO_HOST ((const void * )(uintptr_t )arg2 );
85+ }
86+ if (LIND_ARG_SHOULD_TRANSLATE (arg3cageid )) {
87+ arg3 = TRANSLATE_GUEST_POINTER_TO_HOST ((const void * )(uintptr_t )arg3 );
88+ }
89+ if (LIND_ARG_SHOULD_TRANSLATE (arg4cageid )) {
90+ arg4 = TRANSLATE_GUEST_POINTER_TO_HOST ((const void * )(uintptr_t )arg4 );
91+ }
92+ if (LIND_ARG_SHOULD_TRANSLATE (arg5cageid )) {
93+ arg5 = TRANSLATE_GUEST_POINTER_TO_HOST ((const void * )(uintptr_t )arg5 );
94+ }
95+ if (LIND_ARG_SHOULD_TRANSLATE (arg6cageid )) {
96+ arg6 = TRANSLATE_GUEST_POINTER_TO_HOST ((const void * )(uintptr_t )arg6 );
97+ }
98+
99+ arg1cageid = LIND_ARG_CAGEID_STRIP (arg1cageid );
100+ arg2cageid = LIND_ARG_CAGEID_STRIP (arg2cageid );
101+ arg3cageid = LIND_ARG_CAGEID_STRIP (arg3cageid );
102+ arg4cageid = LIND_ARG_CAGEID_STRIP (arg4cageid );
103+ arg5cageid = LIND_ARG_CAGEID_STRIP (arg5cageid );
104+ arg6cageid = LIND_ARG_CAGEID_STRIP (arg6cageid );
105+
80106 int ret = __lind_make_syscall_trampoline (callnumber ,
81107 callname ,
82108 self_cageid , target_cageid ,
0 commit comments