#include #include "TM_DefaultParams.h" // This data structure holds an array of address and the number of actual addresses typedef struct TM_TranslationAdresses{ u64 addressCount; u64 addresses[10*MAX_NUM_OF_ALIASES]; } TM_TranslationAdresses; TM_TranslationAdresses * findEAsForGivenRAAndContext( u64 raAddress, u64 lpid, u64 pid); #### #include "/usr/include/stdio.h" #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "TM_TranslationsDB.h" MODULE = trans PACKAGE = trans PROTOTYPES: ENABLE TM_TranslationAdresses * findEAsForGivenRAAndContext(raAddress, lpid, pid) u64 raAddress u64 lpid u64 pid #### TYPEMAP TM_TranslationAdresses * T_PTROBJ u64 T_U_LONG_LONG ################################################## INPUT T_U_LONG_LONG $var = (unsigned long long int)SvUV($arg) ################################################## OUTPUT T_U_LONG_LONG sv_setuv($arg, (UV)$var); #### package trans; use 5.010001; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); our $VERSION = '0.01'; require XSLoader; XSLoader::load('trans', $VERSION); 1; #### #!/usr/bin/perl -w use lib '/gpfs/haifa-p4/08/tm/team/hagaih/perlWithC/trans/blib/arch/auto/trans'; use lib '/gpfs/haifa-p4/08/tm/team/hagaih/perlWithC/trans/blib/lib'; use trans; use Math::BigInt; use Data::Dumper; my $lpid=0; my $pid=5; my $raAddress=Math::BigInt->new("0x00000000_01F560C0"); my $result=trans::findEAsForGivenRAAndContext($raAddress, $lpid, $pid); print $result->addressCount; #### Can't locate object method "addressCount" via package "TM_TranslationAdressesPtr" at test_translations.pl ...