linux/include/xen/interface/elfnote.h
<<
>>
Prefs
   1/******************************************************************************
   2 * elfnote.h
   3 *
   4 * Definitions used for the Xen ELF notes.
   5 *
   6 * Copyright (c) 2006, Ian Campbell, XenSource Ltd.
   7 */
   8
   9#ifndef __XEN_PUBLIC_ELFNOTE_H__
  10#define __XEN_PUBLIC_ELFNOTE_H__
  11
  12/*
  13 * The notes should live in a SHT_NOTE segment and have "Xen" in the
  14 * name field.
  15 *
  16 * Numeric types are either 4 or 8 bytes depending on the content of
  17 * the desc field.
  18 *
  19 * LEGACY indicated the fields in the legacy __xen_guest string which
  20 * this a note type replaces.
  21 */
  22
  23/*
  24 * NAME=VALUE pair (string).
  25 *
  26 * LEGACY: FEATURES and PAE
  27 */
  28#define XEN_ELFNOTE_INFO           0
  29
  30/*
  31 * The virtual address of the entry point (numeric).
  32 *
  33 * LEGACY: VIRT_ENTRY
  34 */
  35#define XEN_ELFNOTE_ENTRY          1
  36
  37/* The virtual address of the hypercall transfer page (numeric).
  38 *
  39 * LEGACY: HYPERCALL_PAGE. (n.b. legacy value is a physical page
  40 * number not a virtual address)
  41 */
  42#define XEN_ELFNOTE_HYPERCALL_PAGE 2
  43
  44/* The virtual address where the kernel image should be mapped (numeric).
  45 *
  46 * Defaults to 0.
  47 *
  48 * LEGACY: VIRT_BASE
  49 */
  50#define XEN_ELFNOTE_VIRT_BASE      3
  51
  52/*
  53 * The offset of the ELF paddr field from the acutal required
  54 * pseudo-physical address (numeric).
  55 *
  56 * This is used to maintain backwards compatibility with older kernels
  57 * which wrote __PAGE_OFFSET into that field. This field defaults to 0
  58 * if not present.
  59 *
  60 * LEGACY: ELF_PADDR_OFFSET. (n.b. legacy default is VIRT_BASE)
  61 */
  62#define XEN_ELFNOTE_PADDR_OFFSET   4
  63
  64/*
  65 * The version of Xen that we work with (string).
  66 *
  67 * LEGACY: XEN_VER
  68 */
  69#define XEN_ELFNOTE_XEN_VERSION    5
  70
  71/*
  72 * The name of the guest operating system (string).
  73 *
  74 * LEGACY: GUEST_OS
  75 */
  76#define XEN_ELFNOTE_GUEST_OS       6
  77
  78/*
  79 * The version of the guest operating system (string).
  80 *
  81 * LEGACY: GUEST_VER
  82 */
  83#define XEN_ELFNOTE_GUEST_VERSION  7
  84
  85/*
  86 * The loader type (string).
  87 *
  88 * LEGACY: LOADER
  89 */
  90#define XEN_ELFNOTE_LOADER         8
  91
  92/*
  93 * The kernel supports PAE (x86/32 only, string = "yes" or "no").
  94 *
  95 * LEGACY: PAE (n.b. The legacy interface included a provision to
  96 * indicate 'extended-cr3' support allowing L3 page tables to be
  97 * placed above 4G. It is assumed that any kernel new enough to use
  98 * these ELF notes will include this and therefore "yes" here is
  99 * equivalent to "yes[entended-cr3]" in the __xen_guest interface.
 100 */
 101#define XEN_ELFNOTE_PAE_MODE       9
 102
 103/*
 104 * The features supported/required by this kernel (string).
 105 *
 106 * The string must consist of a list of feature names (as given in
 107 * features.h, without the "XENFEAT_" prefix) separated by '|'
 108 * characters. If a feature is required for the kernel to function
 109 * then the feature name must be preceded by a '!' character.
 110 *
 111 * LEGACY: FEATURES
 112 */
 113#define XEN_ELFNOTE_FEATURES      10
 114
 115/*
 116 * The kernel requires the symbol table to be loaded (string = "yes" or "no")
 117 * LEGACY: BSD_SYMTAB (n.b. The legacy treated the presence or absence
 118 * of this string as a boolean flag rather than requiring "yes" or
 119 * "no".
 120 */
 121#define XEN_ELFNOTE_BSD_SYMTAB    11
 122
 123/*
 124 * The lowest address the hypervisor hole can begin at (numeric).
 125 *
 126 * This must not be set higher than HYPERVISOR_VIRT_START. Its presence
 127 * also indicates to the hypervisor that the kernel can deal with the
 128 * hole starting at a higher address.
 129 */
 130#define XEN_ELFNOTE_HV_START_LOW  12
 131
 132/*
 133 * List of maddr_t-sized mask/value pairs describing how to recognize
 134 * (non-present) L1 page table entries carrying valid MFNs (numeric).
 135 */
 136#define XEN_ELFNOTE_L1_MFN_VALID  13
 137
 138/*
 139 * Whether or not the guest supports cooperative suspend cancellation.
 140 */
 141#define XEN_ELFNOTE_SUSPEND_CANCEL 14
 142
 143#endif /* __XEN_PUBLIC_ELFNOTE_H__ */
 144
 145/*
 146 * Local variables:
 147 * mode: C
 148 * c-set-style: "BSD"
 149 * c-basic-offset: 4
 150 * tab-width: 4
 151 * indent-tabs-mode: nil
 152 * End:
 153 */
 154