TM_PageTranslation* findPageByEffective(u32 lpid, u32 pid, u64 EA);
####
TYPEMAP
T_PageTranslation T_PTROBJ
u64 T_U_LONG_LONG
u64 * T_OPAQUEPTR
u32 * T_OPAQUEPTR
u32 T_U_INT
##################################################
INPUT
T_U_LONG_LONG
$var = (unsigned long long int)SvUV($arg)
##################################################
OUTPUT
T_U_LONG_LONG
sv_setuv($arg, (UV)$var);
####
typedef struct TM_PageTranslation * T_PageTranslation;
...
T_PageTranslation
findPageByEffective(lpid, pid, EA)
u32 lpid
u32 pid
u64 EA
####
XS(XS_trans_findPageByEffective); /* prototype to pass -Wmissing-prototypes */
XS(XS_trans_findPageByEffective)
{
#ifdef dVAR
dVAR; dXSARGS;
#else
dXSARGS;
#endif
if (items != 3)
croak_xs_usage(cv, "lpid, pid, EA");
{
u32 lpid = (unsigned int)SvUV(ST(0));
u32 pid = (unsigned int)SvUV(ST(1));
u64 EA = (unsigned long long int)SvUV(ST(2));
T_PageTranslation RETVAL;
RETVAL = findPageByEffective(lpid, pid, EA); <--- This is line 470
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "T_PageTranslation", (void*)RETVAL);
}
XSRETURN(1);
}