Skip to content

Commit 08377ed

Browse files
Jason Andryukjgross1
authored andcommitted
xen: sync elfnote.h from xen tree
Sync Xen's elfnote.h header from xen.git to pull in the XEN_ELFNOTE_PHYS32_RELOC define. xen commit dfc9fab00378 ("x86/PVH: Support relocatable dom0 kernels") This is a copy except for the removal of the emacs editor config at the end of the file. Signed-off-by: Jason Andryuk <[email protected]> Reviewed-by: Juergen Gross <[email protected]> Message-ID: <[email protected]> Signed-off-by: Juergen Gross <[email protected]>
1 parent 8f2f74f commit 08377ed

File tree

1 file changed

+88
-5
lines changed

1 file changed

+88
-5
lines changed

include/xen/interface/elfnote.h

Lines changed: 88 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
#define __XEN_PUBLIC_ELFNOTE_H__
1212

1313
/*
14-
* The notes should live in a SHT_NOTE segment and have "Xen" in the
14+
* `incontents 200 elfnotes ELF notes
15+
*
16+
* The notes should live in a PT_NOTE segment and have "Xen" in the
1517
* name field.
1618
*
1719
* Numeric types are either 4 or 8 bytes depending on the content of
@@ -22,6 +24,8 @@
2224
*
2325
* String values (for non-legacy) are NULL terminated ASCII, also known
2426
* as ASCIZ type.
27+
*
28+
* Xen only uses ELF Notes contained in x86 binaries.
2529
*/
2630

2731
/*
@@ -52,7 +56,7 @@
5256
#define XEN_ELFNOTE_VIRT_BASE 3
5357

5458
/*
55-
* The offset of the ELF paddr field from the acutal required
59+
* The offset of the ELF paddr field from the actual required
5660
* pseudo-physical address (numeric).
5761
*
5862
* This is used to maintain backwards compatibility with older kernels
@@ -92,7 +96,12 @@
9296
#define XEN_ELFNOTE_LOADER 8
9397

9498
/*
95-
* The kernel supports PAE (x86/32 only, string = "yes" or "no").
99+
* The kernel supports PAE (x86/32 only, string = "yes", "no" or
100+
* "bimodal").
101+
*
102+
* For compatibility with Xen 3.0.3 and earlier the "bimodal" setting
103+
* may be given as "yes,bimodal" which will cause older Xen to treat
104+
* this kernel as PAE.
96105
*
97106
* LEGACY: PAE (n.b. The legacy interface included a provision to
98107
* indicate 'extended-cr3' support allowing L3 page tables to be
@@ -149,7 +158,9 @@
149158
* The (non-default) location the initial phys-to-machine map should be
150159
* placed at by the hypervisor (Dom0) or the tools (DomU).
151160
* The kernel must be prepared for this mapping to be established using
152-
* large pages, despite such otherwise not being available to guests.
161+
* large pages, despite such otherwise not being available to guests. Note
162+
* that these large pages may be misaligned in PFN space (they'll obviously
163+
* be aligned in MFN and virtual address spaces).
153164
* The kernel must also be able to handle the page table pages used for
154165
* this mapping not being accessible through the initial mapping.
155166
* (Only x86-64 supports this at present.)
@@ -185,9 +196,81 @@
185196
*/
186197
#define XEN_ELFNOTE_PHYS32_ENTRY 18
187198

199+
/*
200+
* Physical loading constraints for PVH kernels
201+
*
202+
* The presence of this note indicates the kernel supports relocating itself.
203+
*
204+
* The note may include up to three 32bit values to place constraints on the
205+
* guest physical loading addresses and alignment for a PVH kernel. Values
206+
* are read in the following order:
207+
* - a required start alignment (default 0x200000)
208+
* - a minimum address for the start of the image (default 0; see below)
209+
* - a maximum address for the last byte of the image (default 0xffffffff)
210+
*
211+
* When this note specifies an alignment value, it is used. Otherwise the
212+
* maximum p_align value from loadable ELF Program Headers is used, if it is
213+
* greater than or equal to 4k (0x1000). Otherwise, the default is used.
214+
*/
215+
#define XEN_ELFNOTE_PHYS32_RELOC 19
216+
188217
/*
189218
* The number of the highest elfnote defined.
190219
*/
191-
#define XEN_ELFNOTE_MAX XEN_ELFNOTE_PHYS32_ENTRY
220+
#define XEN_ELFNOTE_MAX XEN_ELFNOTE_PHYS32_RELOC
221+
222+
/*
223+
* System information exported through crash notes.
224+
*
225+
* The kexec / kdump code will create one XEN_ELFNOTE_CRASH_INFO
226+
* note in case of a system crash. This note will contain various
227+
* information about the system, see xen/include/xen/elfcore.h.
228+
*/
229+
#define XEN_ELFNOTE_CRASH_INFO 0x1000001
230+
231+
/*
232+
* System registers exported through crash notes.
233+
*
234+
* The kexec / kdump code will create one XEN_ELFNOTE_CRASH_REGS
235+
* note per cpu in case of a system crash. This note is architecture
236+
* specific and will contain registers not saved in the "CORE" note.
237+
* See xen/include/xen/elfcore.h for more information.
238+
*/
239+
#define XEN_ELFNOTE_CRASH_REGS 0x1000002
240+
241+
242+
/*
243+
* xen dump-core none note.
244+
* xm dump-core code will create one XEN_ELFNOTE_DUMPCORE_NONE
245+
* in its dump file to indicate that the file is xen dump-core
246+
* file. This note doesn't have any other information.
247+
* See tools/libxc/xc_core.h for more information.
248+
*/
249+
#define XEN_ELFNOTE_DUMPCORE_NONE 0x2000000
250+
251+
/*
252+
* xen dump-core header note.
253+
* xm dump-core code will create one XEN_ELFNOTE_DUMPCORE_HEADER
254+
* in its dump file.
255+
* See tools/libxc/xc_core.h for more information.
256+
*/
257+
#define XEN_ELFNOTE_DUMPCORE_HEADER 0x2000001
258+
259+
/*
260+
* xen dump-core xen version note.
261+
* xm dump-core code will create one XEN_ELFNOTE_DUMPCORE_XEN_VERSION
262+
* in its dump file. It contains the xen version obtained via the
263+
* XENVER hypercall.
264+
* See tools/libxc/xc_core.h for more information.
265+
*/
266+
#define XEN_ELFNOTE_DUMPCORE_XEN_VERSION 0x2000002
267+
268+
/*
269+
* xen dump-core format version note.
270+
* xm dump-core code will create one XEN_ELFNOTE_DUMPCORE_FORMAT_VERSION
271+
* in its dump file. It contains a format version identifier.
272+
* See tools/libxc/xc_core.h for more information.
273+
*/
274+
#define XEN_ELFNOTE_DUMPCORE_FORMAT_VERSION 0x2000003
192275

193276
#endif /* __XEN_PUBLIC_ELFNOTE_H__ */

0 commit comments

Comments
 (0)