ia64/xen-unstable

view xen/include/public/version.h @ 8976:4f4625f80528

Rename XENFEAT_ring0_kernel to slightly more generic XENFEAT_supervisor_mode_kernel.
Add comments in public header version.h to explain what all the different
feature flags mean. Add a new flag XENFEAT_pae_pgdir_above_4gb to inform the guest
that its PAE page directories do not need to conform to the usual hardware
restriction.

Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Thu Feb 23 11:59:27 2006 +0100 (2006-02-23)
parents 697fac283c9e
children 8b42c8aea36a
line source
1 /******************************************************************************
2 * version.h
3 *
4 * Xen version, type, and compile information.
5 *
6 * Copyright (c) 2005, Nguyen Anh Quynh <aquynh@gmail.com>
7 * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
8 */
10 #ifndef __XEN_PUBLIC_VERSION_H__
11 #define __XEN_PUBLIC_VERSION_H__
13 /* NB. All ops return zero on success, except XENVER_version. */
15 /* arg == NULL; returns major:minor (16:16). */
16 #define XENVER_version 0
18 /* arg == xen_extraversion_t. */
19 #define XENVER_extraversion 1
20 typedef char xen_extraversion_t[16];
21 #define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t))
23 /* arg == xen_compile_info_t. */
24 #define XENVER_compile_info 2
25 typedef struct xen_compile_info {
26 char compiler[64];
27 char compile_by[16];
28 char compile_domain[32];
29 char compile_date[32];
30 } xen_compile_info_t;
32 #define XENVER_capabilities 3
33 typedef char xen_capabilities_info_t[1024];
34 #define XEN_CAPABILITIES_INFO_LEN (sizeof(xen_capabilities_info_t))
36 #define XENVER_changeset 4
37 typedef char xen_changeset_info_t[64];
38 #define XEN_CHANGESET_INFO_LEN (sizeof(xen_changeset_info_t))
40 #define XENVER_platform_parameters 5
41 typedef struct xen_platform_parameters {
42 unsigned long virt_start;
43 } xen_platform_parameters_t;
45 #define XENVER_get_features 6
46 typedef struct xen_feature_info {
47 unsigned int submap_idx; /* IN: which 32-bit submap to return */
48 uint32_t submap; /* OUT: 32-bit submap */
49 } xen_feature_info_t;
51 /*
52 * If set, the guest does not need to write-protect its pagetables, and can
53 * update them via direct writes.
54 */
55 #define XENFEAT_writable_page_tables 0
57 /*
58 * If set, the guest does not need to write-protect its segment descriptor
59 * tables, and can update them via direct writes.
60 */
61 #define XENFEAT_writable_descriptor_tables 1
63 /*
64 * If set, translation between the guest's 'pseudo-physical' address space
65 * and the host's machine address space are handled by the hypervisor. In this
66 * mode the guest does not need to perform phys-to/from-machine translations
67 * when performing page table operations.
68 */
69 #define XENFEAT_auto_translated_physmap 2
71 /* If set, the guest is running in supervisor mode (e.g., x86 ring 0). */
72 #define XENFEAT_supervisor_mode_kernel 3
74 /*
75 * If set, the guest does not need to allocate x86 PAE page directories
76 * below 4GB. This flag is usually implied by auto_translated_physmap.
77 */
78 #define XENFEAT_pae_pgdir_above_4gb 4
80 #define XENFEAT_NR_SUBMAPS 1
82 #endif /* __XEN_PUBLIC_VERSION_H__ */
84 /*
85 * Local variables:
86 * mode: C
87 * c-set-style: "BSD"
88 * c-basic-offset: 4
89 * tab-width: 4
90 * indent-tabs-mode: nil
91 * End:
92 */