15#ifndef ETISS_INCLUDE_MM_PAGEFAULTVECTOR_H_
16#define ETISS_INCLUDE_MM_PAGEFAULTVECTOR_H_
36#define MAX_PAGE_FAULT_NUM 20
39#define PAGE_FAULT(val, fault) const int32_t fault = val;
42#ifndef REGISTER_PAGE_FAULT_HANDLER
43#define REGISTER_PAGE_FAULT_HANDLER(fault, handler) page_fault_handler[fault] = handler
46#ifndef HANDLE_PAGE_FAULT
47#define HANDLE_PAGE_FAULT(fault, mmu, vma, access) (*page_fault_handler[fault])(fault, mmu, vma, access)
51#ifdef ETISS_PLUGIN_IMPORTS
52#define MM_EXPORT __declspec(dllimport)
54#define MM_EXPORT __declspec(dllexport)
static __inline__ uint64_t
static __inline__ int32_t
MM_EXPORT const int32_t PTENOTEXISTED
MM_EXPORT handler_ptr page_fault_handler[]
MM_EXPORT const int32_t TLBISFULL
MM_EXPORT const int32_t PROTECTIONVIALATION
MM_EXPORT const int32_t TLBMISS
MM_EXPORT const int32_t NOERROR
int32_t(* handler_ptr)(int32_t fault, MMU *mmu, uint64_t vma, MM_ACCESS access)
MM_EXPORT const int32_t PTEOVERLAP
MM_EXPORT std::string PAGE_FAULT_MSG[]