1 #ifndef __VKI_XEN_MMUEXT_H 2 #define __VKI_XEN_MMUEXT_H 3 4 #define VKI_XEN_MMUEXT_PIN_L1_TABLE 0 5 #define VKI_XEN_MMUEXT_PIN_L2_TABLE 1 6 #define VKI_XEN_MMUEXT_PIN_L3_TABLE 2 7 #define VKI_XEN_MMUEXT_PIN_L4_TABLE 3 8 #define VKI_XEN_MMUEXT_UNPIN_TABLE 4 9 #define VKI_XEN_MMUEXT_NEW_BASEPTR 5 10 #define VKI_XEN_MMUEXT_TLB_FLUSH_LOCAL 6 11 #define VKI_XEN_MMUEXT_INVLPG_LOCAL 7 12 #define VKI_XEN_MMUEXT_TLB_FLUSH_MULTI 8 13 #define VKI_XEN_MMUEXT_INVLPG_MULTI 9 14 #define VKI_XEN_MMUEXT_TLB_FLUSH_ALL 10 15 #define VKI_XEN_MMUEXT_INVLPG_ALL 11 16 #define VKI_XEN_MMUEXT_FLUSH_CACHE 12 17 #define VKI_XEN_MMUEXT_SET_LDT 13 18 #define VKI_XEN_MMUEXT_NEW_USER_BASEPTR 15 19 #define VKI_XEN_MMUEXT_CLEAR_PAGE 16 20 #define VKI_XEN_MMUEXT_COPY_PAGE 17 21 #define VKI_XEN_MMUEXT_FLUSH_CACHE_GLOBAL 18 22 #define VKI_XEN_MMUEXT_MARK_SUPER 19 23 #define VKI_XEN_MMUEXT_UNMARK_SUPER 20 24 25 struct vki_xen_mmuext_op { 26 unsigned int cmd; 27 union { 28 /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR 29 * CLEAR_PAGE, COPY_PAGE, [UN]MARK_SUPER */ 30 vki_xen_pfn_t mfn; 31 /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */ 32 unsigned long linear_addr; 33 } arg1; 34 union { 35 /* SET_LDT */ 36 unsigned int nr_ents; 37 /* TLB_FLUSH_MULTI, INVLPG_MULTI */ 38 VKI_XEN_GUEST_HANDLE(const_void) vcpumask; 39 /* COPY_PAGE */ 40 vki_xen_pfn_t src_mfn; 41 } arg2; 42 }; 43 44 #endif // __VKI_XEN_MMUEXT_H 45 46 /*--------------------------------------------------------------------*/ 47 /*--- end ---*/ 48 /*--------------------------------------------------------------------*/ 49