There's a few things to puzzle over here:
Similar to
your earlier attempt, I don't see anything that offers instruction on what findEAsForGivenRAAndContext() actually does.
I can see the data types of its arguments, and the data type that it returns, but that's about it.
Perhaps this somehow accounts for the error message about a (non-existent) "TM_TranslationAdressesPtr" package - but I really don't know how that hitherto unmentioned package earns a mention.
The u64 typemapping you've done implies that your perl's IV/UV is the same size as as a signed/unsigned long long int - so I wonder why such typemapping is necessary.
Is it just so that you can have the "u64" symbol as an alias for unsigned long long int ?
AFAICT, when $raAddress gets passed to findEAsForGivenRAAndContext(), instead of having assigned it as:
my $raAddress=Math::BigInt->new("0x00000000_01F560C0");
it might just as well have been assigned as:
my $raAddress=0x01F560C0;
I would probably rewrite findEAsForGivenRAAndContext() so that it returns the 2 u64 values - such that instead of coding (in perl):
my $result=trans::findEAsForGivenRAAndContext($raAddress, $lpid, $pid)
+;
one codes it as:
my @result=trans::findEAsForGivenRAAndContext($raAddress, $lpid, $pid)
+;
print $result[0]; # addressCount
But there are other ways, and perhaps I'm not looking at it right.
Cheers,
Rob