|
|
1.1 ! root 1: /****************************************************************************** ! 2: * dom0_ops.h ! 3: * ! 4: * Process command requests from domain-0 guest OS. ! 5: * ! 6: * Permission is hereby granted, free of charge, to any person obtaining a copy ! 7: * of this software and associated documentation files (the "Software"), to ! 8: * deal in the Software without restriction, including without limitation the ! 9: * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ! 10: * sell copies of the Software, and to permit persons to whom the Software is ! 11: * furnished to do so, subject to the following conditions: ! 12: * ! 13: * The above copyright notice and this permission notice shall be included in ! 14: * all copies or substantial portions of the Software. ! 15: * ! 16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ! 17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ! 19: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ! 20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ! 21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ! 22: * DEALINGS IN THE SOFTWARE. ! 23: * ! 24: * Copyright (c) 2002-2003, B Dragovic ! 25: * Copyright (c) 2002-2006, K Fraser ! 26: */ ! 27: ! 28: #ifndef __XEN_PUBLIC_DOM0_OPS_H__ ! 29: #define __XEN_PUBLIC_DOM0_OPS_H__ ! 30: ! 31: #include "xen.h" ! 32: #include "platform.h" ! 33: ! 34: #if __XEN_INTERFACE_VERSION__ >= 0x00030204 ! 35: #error "dom0_ops.h is a compatibility interface only" ! 36: #endif ! 37: ! 38: #define DOM0_INTERFACE_VERSION XENPF_INTERFACE_VERSION ! 39: ! 40: #define DOM0_SETTIME XENPF_settime ! 41: #define dom0_settime xenpf_settime ! 42: #define dom0_settime_t xenpf_settime_t ! 43: ! 44: #define DOM0_ADD_MEMTYPE XENPF_add_memtype ! 45: #define dom0_add_memtype xenpf_add_memtype ! 46: #define dom0_add_memtype_t xenpf_add_memtype_t ! 47: ! 48: #define DOM0_DEL_MEMTYPE XENPF_del_memtype ! 49: #define dom0_del_memtype xenpf_del_memtype ! 50: #define dom0_del_memtype_t xenpf_del_memtype_t ! 51: ! 52: #define DOM0_READ_MEMTYPE XENPF_read_memtype ! 53: #define dom0_read_memtype xenpf_read_memtype ! 54: #define dom0_read_memtype_t xenpf_read_memtype_t ! 55: ! 56: #define DOM0_MICROCODE XENPF_microcode_update ! 57: #define dom0_microcode xenpf_microcode_update ! 58: #define dom0_microcode_t xenpf_microcode_update_t ! 59: ! 60: #define DOM0_PLATFORM_QUIRK XENPF_platform_quirk ! 61: #define dom0_platform_quirk xenpf_platform_quirk ! 62: #define dom0_platform_quirk_t xenpf_platform_quirk_t ! 63: ! 64: typedef uint64_t cpumap_t; ! 65: ! 66: /* Unsupported legacy operation -- defined for API compatibility. */ ! 67: #define DOM0_MSR 15 ! 68: struct dom0_msr { ! 69: /* IN variables. */ ! 70: uint32_t write; ! 71: cpumap_t cpu_mask; ! 72: uint32_t msr; ! 73: uint32_t in1; ! 74: uint32_t in2; ! 75: /* OUT variables. */ ! 76: uint32_t out1; ! 77: uint32_t out2; ! 78: }; ! 79: typedef struct dom0_msr dom0_msr_t; ! 80: DEFINE_XEN_GUEST_HANDLE(dom0_msr_t); ! 81: ! 82: /* Unsupported legacy operation -- defined for API compatibility. */ ! 83: #define DOM0_PHYSICAL_MEMORY_MAP 40 ! 84: struct dom0_memory_map_entry { ! 85: uint64_t start, end; ! 86: uint32_t flags; /* reserved */ ! 87: uint8_t is_ram; ! 88: }; ! 89: typedef struct dom0_memory_map_entry dom0_memory_map_entry_t; ! 90: DEFINE_XEN_GUEST_HANDLE(dom0_memory_map_entry_t); ! 91: ! 92: struct dom0_op { ! 93: uint32_t cmd; ! 94: uint32_t interface_version; /* DOM0_INTERFACE_VERSION */ ! 95: union { ! 96: struct dom0_msr msr; ! 97: struct dom0_settime settime; ! 98: struct dom0_add_memtype add_memtype; ! 99: struct dom0_del_memtype del_memtype; ! 100: struct dom0_read_memtype read_memtype; ! 101: struct dom0_microcode microcode; ! 102: struct dom0_platform_quirk platform_quirk; ! 103: struct dom0_memory_map_entry physical_memory_map; ! 104: uint8_t pad[128]; ! 105: } u; ! 106: }; ! 107: typedef struct dom0_op dom0_op_t; ! 108: DEFINE_XEN_GUEST_HANDLE(dom0_op_t); ! 109: ! 110: #endif /* __XEN_PUBLIC_DOM0_OPS_H__ */ ! 111: ! 112: /* ! 113: * Local variables: ! 114: * mode: C ! 115: * c-set-style: "BSD" ! 116: * c-basic-offset: 4 ! 117: * tab-width: 4 ! 118: * indent-tabs-mode: nil ! 119: * End: ! 120: */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.