Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:25:34

0001 /*
0002    This file is part of Valgrind, a dynamic binary instrumentation
0003    framework.
0004 
0005    Copyright (C) 2012-2017 Citrix
0006 
0007    This program is free software; you can redistribute it and/or
0008    modify it under the terms of the GNU General Public License as
0009    published by the Free Software Foundation; either version 2 of the
0010    License, or (at your option) any later version.
0011 
0012    This program is distributed in the hope that it will be useful, but
0013    WITHOUT ANY WARRANTY; without even the implied warranty of
0014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0015    General Public License for more details.
0016 
0017    You should have received a copy of the GNU General Public License
0018    along with this program; if not, see <http://www.gnu.org/licenses/>.
0019 
0020    The GNU General Public License is contained in the file COPYING.
0021 */
0022 
0023 /* Contributed by Andrew Cooper <andrew.cooper3@citrix.com>
0024    and Ian Campbell <ian.campbell@citrix.com> */
0025 
0026 #ifndef __VKI_XEN_MMUEXT_H
0027 #define __VKI_XEN_MMUEXT_H
0028 
0029 #define VKI_XEN_MMUEXT_PIN_L1_TABLE      0
0030 #define VKI_XEN_MMUEXT_PIN_L2_TABLE      1
0031 #define VKI_XEN_MMUEXT_PIN_L3_TABLE      2
0032 #define VKI_XEN_MMUEXT_PIN_L4_TABLE      3
0033 #define VKI_XEN_MMUEXT_UNPIN_TABLE       4
0034 #define VKI_XEN_MMUEXT_NEW_BASEPTR       5
0035 #define VKI_XEN_MMUEXT_TLB_FLUSH_LOCAL   6
0036 #define VKI_XEN_MMUEXT_INVLPG_LOCAL      7
0037 #define VKI_XEN_MMUEXT_TLB_FLUSH_MULTI   8
0038 #define VKI_XEN_MMUEXT_INVLPG_MULTI      9
0039 #define VKI_XEN_MMUEXT_TLB_FLUSH_ALL    10
0040 #define VKI_XEN_MMUEXT_INVLPG_ALL       11
0041 #define VKI_XEN_MMUEXT_FLUSH_CACHE      12
0042 #define VKI_XEN_MMUEXT_SET_LDT          13
0043 #define VKI_XEN_MMUEXT_NEW_USER_BASEPTR 15
0044 #define VKI_XEN_MMUEXT_CLEAR_PAGE       16
0045 #define VKI_XEN_MMUEXT_COPY_PAGE        17
0046 #define VKI_XEN_MMUEXT_FLUSH_CACHE_GLOBAL 18
0047 #define VKI_XEN_MMUEXT_MARK_SUPER       19
0048 #define VKI_XEN_MMUEXT_UNMARK_SUPER     20
0049 
0050 struct vki_xen_mmuext_op {
0051     unsigned int cmd;
0052     union {
0053         /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR
0054          * CLEAR_PAGE, COPY_PAGE, [UN]MARK_SUPER */
0055         vki_xen_pfn_t     mfn;
0056         /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
0057         unsigned long linear_addr;
0058     } arg1;
0059     union {
0060         /* SET_LDT */
0061         unsigned int nr_ents;
0062         /* TLB_FLUSH_MULTI, INVLPG_MULTI */
0063         VKI_XEN_GUEST_HANDLE(const_void) vcpumask;
0064         /* COPY_PAGE */
0065         vki_xen_pfn_t src_mfn;
0066     } arg2;
0067 };
0068 
0069 #endif // __VKI_XEN_MMUEXT_H
0070 
0071 /*--------------------------------------------------------------------*/
0072 /*--- end                                                          ---*/
0073 /*--------------------------------------------------------------------*/