ia64/xen-unstable

annotate xen/include/public/elfnote.h @ 14022:0a348e9ecedb

linux/x86: Advertise which page table entries contain MFNs and hence
need to be (un)canonicalized during save/restore.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
author kfraser@localhost.localdomain
date Tue Feb 20 12:18:29 2007 +0000 (2007-02-20)
parents 5a07ea77a61d
children 3dac99b6034e
rev   line source
ian@11275 1 /******************************************************************************
ian@11275 2 * elfnote.h
ian@11275 3 *
ian@11275 4 * Definitions used for the Xen ELF notes.
ian@11275 5 *
kaf24@12295 6 * Permission is hereby granted, free of charge, to any person obtaining a copy
kaf24@12295 7 * of this software and associated documentation files (the "Software"), to
kaf24@12295 8 * deal in the Software without restriction, including without limitation the
kaf24@12295 9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
kaf24@12295 10 * sell copies of the Software, and to permit persons to whom the Software is
kaf24@12295 11 * furnished to do so, subject to the following conditions:
kaf24@12295 12 *
kaf24@12295 13 * The above copyright notice and this permission notice shall be included in
kaf24@12295 14 * all copies or substantial portions of the Software.
kaf24@12295 15 *
kaf24@12295 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
kaf24@12295 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
kaf24@12295 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
kaf24@12295 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
kaf24@12295 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
kaf24@12295 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
kaf24@12295 22 * DEALINGS IN THE SOFTWARE.
kaf24@12295 23 *
ian@11275 24 * Copyright (c) 2006, Ian Campbell, XenSource Ltd.
ian@11275 25 */
ian@11275 26
ian@11275 27 #ifndef __XEN_PUBLIC_ELFNOTE_H__
ian@11275 28 #define __XEN_PUBLIC_ELFNOTE_H__
ian@11275 29
ian@11275 30 /*
ian@14003 31 * The notes should live in a PT_NOTE segment and have "Xen" in the
ian@11275 32 * name field.
ian@11275 33 *
ian@11275 34 * Numeric types are either 4 or 8 bytes depending on the content of
ian@11275 35 * the desc field.
ian@11275 36 *
ian@11275 37 * LEGACY indicated the fields in the legacy __xen_guest string which
ian@11275 38 * this a note type replaces.
ian@11275 39 */
ian@11275 40
ian@11275 41 /*
ian@11275 42 * NAME=VALUE pair (string).
ian@11275 43 */
ian@11275 44 #define XEN_ELFNOTE_INFO 0
ian@11275 45
ian@11275 46 /*
ian@11275 47 * The virtual address of the entry point (numeric).
ian@11275 48 *
ian@11275 49 * LEGACY: VIRT_ENTRY
ian@11275 50 */
ian@11275 51 #define XEN_ELFNOTE_ENTRY 1
ian@11275 52
ian@11275 53 /* The virtual address of the hypercall transfer page (numeric).
ian@11275 54 *
ian@11275 55 * LEGACY: HYPERCALL_PAGE. (n.b. legacy value is a physical page
ian@11275 56 * number not a virtual address)
ian@11275 57 */
ian@11275 58 #define XEN_ELFNOTE_HYPERCALL_PAGE 2
ian@11275 59
ian@11275 60 /* The virtual address where the kernel image should be mapped (numeric).
ian@11275 61 *
ian@11275 62 * Defaults to 0.
ian@11275 63 *
ian@11275 64 * LEGACY: VIRT_BASE
ian@11275 65 */
ian@11275 66 #define XEN_ELFNOTE_VIRT_BASE 3
ian@11275 67
ian@11275 68 /*
ian@11275 69 * The offset of the ELF paddr field from the acutal required
ian@11275 70 * psuedo-physical address (numeric).
ian@11275 71 *
ian@11275 72 * This is used to maintain backwards compatibility with older kernels
ian@11275 73 * which wrote __PAGE_OFFSET into that field. This field defaults to 0
ian@11275 74 * if not present.
ian@11275 75 *
ian@11275 76 * LEGACY: ELF_PADDR_OFFSET. (n.b. legacy default is VIRT_BASE)
ian@11275 77 */
ian@11275 78 #define XEN_ELFNOTE_PADDR_OFFSET 4
ian@11275 79
ian@11275 80 /*
ian@11275 81 * The version of Xen that we work with (string).
ian@11275 82 *
ian@11275 83 * LEGACY: XEN_VER
ian@11275 84 */
ian@11275 85 #define XEN_ELFNOTE_XEN_VERSION 5
ian@11275 86
ian@11275 87 /*
ian@11275 88 * The name of the guest operating system (string).
ian@11275 89 *
ian@11275 90 * LEGACY: GUEST_OS
ian@11275 91 */
ian@11275 92 #define XEN_ELFNOTE_GUEST_OS 6
ian@11275 93
ian@11275 94 /*
ian@11275 95 * The version of the guest operating system (string).
ian@11275 96 *
ian@11275 97 * LEGACY: GUEST_VER
ian@11275 98 */
ian@11275 99 #define XEN_ELFNOTE_GUEST_VERSION 7
ian@11275 100
ian@11275 101 /*
ian@11275 102 * The loader type (string).
ian@11275 103 *
ian@11275 104 * LEGACY: LOADER
ian@11275 105 */
ian@11275 106 #define XEN_ELFNOTE_LOADER 8
ian@11275 107
ian@11275 108 /*
ian@13382 109 * The kernel supports PAE (x86/32 only, string = "yes", "no" or
ian@13382 110 * "bimodal").
ian@13382 111 *
ian@13382 112 * For compatibility with Xen 3.0.3 and earlier the "bimodal" setting
ian@13382 113 * may be given as "yes,bimodal" which will cause older Xen to treat
ian@13382 114 * this kernel as PAE.
ian@11275 115 *
ian@11275 116 * LEGACY: PAE (n.b. The legacy interface included a provision to
ian@11275 117 * indicate 'extended-cr3' support allowing L3 page tables to be
ian@11275 118 * placed above 4G. It is assumed that any kernel new enough to use
ian@11275 119 * these ELF notes will include this and therefore "yes" here is
ian@11275 120 * equivalent to "yes[entended-cr3]" in the __xen_guest interface.
ian@11275 121 */
ian@11275 122 #define XEN_ELFNOTE_PAE_MODE 9
ian@11275 123
ian@11275 124 /*
ian@11275 125 * The features supported/required by this kernel (string).
ian@11275 126 *
ian@11275 127 * The string must consist of a list of feature names (as given in
ian@11275 128 * features.h, without the "XENFEAT_" prefix) separated by '|'
ian@11275 129 * characters. If a feature is required for the kernel to function
ian@11275 130 * then the feature name must be preceded by a '!' character.
ian@11275 131 *
ian@11275 132 * LEGACY: FEATURES
ian@11275 133 */
ian@11275 134 #define XEN_ELFNOTE_FEATURES 10
ian@11275 135
ian@11275 136 /*
ian@11275 137 * The kernel requires the symbol table to be loaded (string = "yes" or "no")
ian@11275 138 * LEGACY: BSD_SYMTAB (n.b. The legacy treated the presence or absence
ian@11275 139 * of this string as a boolean flag rather than requiring "yes" or
ian@11275 140 * "no".
ian@11275 141 */
ian@11275 142 #define XEN_ELFNOTE_BSD_SYMTAB 11
ian@11275 143
kfraser@12396 144 /*
kfraser@12396 145 * The lowest address the hypervisor hole can begin at (numeric).
kfraser@12396 146 *
kfraser@12396 147 * This must not be set higher than HYPERVISOR_VIRT_START. Its presence
kfraser@12396 148 * also indicates to the hypervisor that the kernel can deal with the
kfraser@12396 149 * hole starting at a higher address.
kfraser@12396 150 */
kfraser@12396 151 #define XEN_ELFNOTE_HV_START_LOW 12
kfraser@12396 152
ian@12676 153 /*
kfraser@14022 154 * List of maddr_t-sized mask/value pairs describing how to recognize
kfraser@14022 155 * (non-present) L1 page table entries carrying valid MFNs (numeric).
kfraser@14022 156 */
kfraser@14022 157 #define XEN_ELFNOTE_L1_MFN_VALID 13
kfraser@14022 158
kfraser@14022 159 /*
ian@12676 160 * System information exported through crash notes.
ian@12676 161 *
ian@12676 162 * The kexec / kdump code will create one XEN_ELFNOTE_CRASH_INFO
ian@12676 163 * note in case of a system crash. This note will contain various
ian@12676 164 * information about the system, see xen/include/xen/elfcore.h.
ian@12676 165 */
ian@12676 166 #define XEN_ELFNOTE_CRASH_INFO 0x1000001
ian@12676 167
ian@12676 168 /*
ian@12676 169 * System registers exported through crash notes.
ian@12676 170 *
ian@12676 171 * The kexec / kdump code will create one XEN_ELFNOTE_CRASH_REGS
ian@12676 172 * note per cpu in case of a system crash. This note is architecture
ian@12676 173 * specific and will contain registers not saved in the "CORE" note.
ian@12676 174 * See xen/include/xen/elfcore.h for more information.
ian@12676 175 */
ian@12676 176 #define XEN_ELFNOTE_CRASH_REGS 0x1000002
ian@12676 177
ian@11275 178 #endif /* __XEN_PUBLIC_ELFNOTE_H__ */
ian@11275 179
ian@11275 180 /*
ian@11275 181 * Local variables:
ian@11275 182 * mode: C
ian@11275 183 * c-set-style: "BSD"
ian@11275 184 * c-basic-offset: 4
ian@11275 185 * tab-width: 4
ian@11275 186 * indent-tabs-mode: nil
ian@11275 187 * End:
ian@11275 188 */