typedef struct {
EntryType type;
EntryIndex index;
} TM_TranslationEntry;
typedef struct {
u64 EA, VA, RA;
u8 pageSize;
u32 numOfEntries;
TM_TranslationEntry* entries;
u32 modificationSet;
} TM_PageTranslation;
typedef struct {
TM_InMemoryEntry* entries;
u32 numOfEntries;
} TM_InMemoryEntries;
typedef struct {
u64 slbee;
u64 slbev;
} TM_SlbEntry;
####
TYPEMAP
PageTranslation T_PTROBJ
TM_InMemoryEntries T_PTROBJ
TM_SlbEntry T_PTROBJ
TM_TranslationEntry T_PTROBJ
U64 T_UV
####
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
#include "TM_TranslationAPI.h" <--- include for the C code
typedef struct TM_PageTranslation * PageTranslation
typedef struct TM_InMemoryEntries * InMemoryEntries
typedef struct TM_SlbEntry * SlbEntry
typedef struct TM_TranslationEntry * TranslationEntry
MODULE = trans PACKAGE = trans
PROTOTYPES: ENABLE
####
InMemoryEntries
selectMemoryEntriesSet(type)
U64 type
InMemoryEntries
getEntryByType(pageTranslation, entryType)
PageTranslation pageTranslation
U64 entryType
SlbEntry
getSlbEntry(pageTranslation)
PageTranslation pageTranslation
####
Error: 'InMemoryEntries' not in typemap in trans.xs, line 167
Error: 'InMemoryEntries' not in typemap in trans.xs, line 172
Error: 'SlbEntry' not in typemap in trans.xs, line 176