Import non-DPLd Xen public headers from Xen 3.0.2-2
This commit is contained in:
parent
c8a960c560
commit
388f0b9508
53
sys/arch/xen/include/xen3-public/features.h
Normal file
53
sys/arch/xen/include/xen3-public/features.h
Normal file
@ -0,0 +1,53 @@
|
||||
/******************************************************************************
|
||||
* features.h
|
||||
*
|
||||
* Feature flags, reported by XENVER_get_features.
|
||||
*
|
||||
* Copyright (c) 2006, Keir Fraser <keir@xensource.com>
|
||||
*/
|
||||
|
||||
#ifndef __XEN_PUBLIC_FEATURES_H__
|
||||
#define __XEN_PUBLIC_FEATURES_H__
|
||||
|
||||
/*
|
||||
* If set, the guest does not need to write-protect its pagetables, and can
|
||||
* update them via direct writes.
|
||||
*/
|
||||
#define XENFEAT_writable_page_tables 0
|
||||
|
||||
/*
|
||||
* If set, the guest does not need to write-protect its segment descriptor
|
||||
* tables, and can update them via direct writes.
|
||||
*/
|
||||
#define XENFEAT_writable_descriptor_tables 1
|
||||
|
||||
/*
|
||||
* If set, translation between the guest's 'pseudo-physical' address space
|
||||
* and the host's machine address space are handled by the hypervisor. In this
|
||||
* mode the guest does not need to perform phys-to/from-machine translations
|
||||
* when performing page table operations.
|
||||
*/
|
||||
#define XENFEAT_auto_translated_physmap 2
|
||||
|
||||
/* If set, the guest is running in supervisor mode (e.g., x86 ring 0). */
|
||||
#define XENFEAT_supervisor_mode_kernel 3
|
||||
|
||||
/*
|
||||
* If set, the guest does not need to allocate x86 PAE page directories
|
||||
* below 4GB. This flag is usually implied by auto_translated_physmap.
|
||||
*/
|
||||
#define XENFEAT_pae_pgdir_above_4gb 4
|
||||
|
||||
#define XENFEAT_NR_SUBMAPS 1
|
||||
|
||||
#endif /* __XEN_PUBLIC_FEATURES_H__ */
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-set-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
24
sys/arch/xen/include/xen3-public/hvm/hvm_info_table.h
Normal file
24
sys/arch/xen/include/xen3-public/hvm/hvm_info_table.h
Normal file
@ -0,0 +1,24 @@
|
||||
/******************************************************************************
|
||||
* hvm/hvm_info_table.h
|
||||
*
|
||||
* HVM parameter and information table, written into guest memory map.
|
||||
*/
|
||||
|
||||
#ifndef __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__
|
||||
#define __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__
|
||||
|
||||
#define HVM_INFO_PFN 0x09F
|
||||
#define HVM_INFO_OFFSET 0x800
|
||||
#define HVM_INFO_PADDR ((HVM_INFO_PFN << 12) + HVM_INFO_OFFSET)
|
||||
|
||||
struct hvm_info_table {
|
||||
char signature[8]; /* "HVM INFO" */
|
||||
uint32_t length;
|
||||
uint8_t checksum;
|
||||
uint8_t acpi_enabled;
|
||||
uint8_t apic_enabled;
|
||||
uint8_t pae_enabled;
|
||||
uint32_t nr_vcpus;
|
||||
};
|
||||
|
||||
#endif /* __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__ */
|
97
sys/arch/xen/include/xen3-public/hvm/vmx_assist.h
Normal file
97
sys/arch/xen/include/xen3-public/hvm/vmx_assist.h
Normal file
@ -0,0 +1,97 @@
|
||||
/*
|
||||
* vmx_assist.h: Context definitions for the VMXASSIST world switch.
|
||||
*
|
||||
* Leendert van Doorn, leendert@watson.ibm.com
|
||||
* Copyright (c) 2005, International Business Machines Corporation.
|
||||
*/
|
||||
|
||||
#ifndef _VMX_ASSIST_H_
|
||||
#define _VMX_ASSIST_H_
|
||||
|
||||
#define VMXASSIST_BASE 0xD0000
|
||||
#define VMXASSIST_MAGIC 0x17101966
|
||||
#define VMXASSIST_MAGIC_OFFSET (VMXASSIST_BASE+8)
|
||||
|
||||
#define VMXASSIST_NEW_CONTEXT (VMXASSIST_BASE + 12)
|
||||
#define VMXASSIST_OLD_CONTEXT (VMXASSIST_NEW_CONTEXT + 4)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
union vmcs_arbytes {
|
||||
struct arbyte_fields {
|
||||
unsigned int seg_type : 4,
|
||||
s : 1,
|
||||
dpl : 2,
|
||||
p : 1,
|
||||
reserved0 : 4,
|
||||
avl : 1,
|
||||
reserved1 : 1,
|
||||
default_ops_size: 1,
|
||||
g : 1,
|
||||
null_bit : 1,
|
||||
reserved2 : 15;
|
||||
} fields;
|
||||
unsigned int bytes;
|
||||
};
|
||||
|
||||
/*
|
||||
* World switch state
|
||||
*/
|
||||
typedef struct vmx_assist_context {
|
||||
uint32_t eip; /* execution pointer */
|
||||
uint32_t esp; /* stack pointer */
|
||||
uint32_t eflags; /* flags register */
|
||||
uint32_t cr0;
|
||||
uint32_t cr3; /* page table directory */
|
||||
uint32_t cr4;
|
||||
uint32_t idtr_limit; /* idt */
|
||||
uint32_t idtr_base;
|
||||
uint32_t gdtr_limit; /* gdt */
|
||||
uint32_t gdtr_base;
|
||||
uint32_t cs_sel; /* cs selector */
|
||||
uint32_t cs_limit;
|
||||
uint32_t cs_base;
|
||||
union vmcs_arbytes cs_arbytes;
|
||||
uint32_t ds_sel; /* ds selector */
|
||||
uint32_t ds_limit;
|
||||
uint32_t ds_base;
|
||||
union vmcs_arbytes ds_arbytes;
|
||||
uint32_t es_sel; /* es selector */
|
||||
uint32_t es_limit;
|
||||
uint32_t es_base;
|
||||
union vmcs_arbytes es_arbytes;
|
||||
uint32_t ss_sel; /* ss selector */
|
||||
uint32_t ss_limit;
|
||||
uint32_t ss_base;
|
||||
union vmcs_arbytes ss_arbytes;
|
||||
uint32_t fs_sel; /* fs selector */
|
||||
uint32_t fs_limit;
|
||||
uint32_t fs_base;
|
||||
union vmcs_arbytes fs_arbytes;
|
||||
uint32_t gs_sel; /* gs selector */
|
||||
uint32_t gs_limit;
|
||||
uint32_t gs_base;
|
||||
union vmcs_arbytes gs_arbytes;
|
||||
uint32_t tr_sel; /* task selector */
|
||||
uint32_t tr_limit;
|
||||
uint32_t tr_base;
|
||||
union vmcs_arbytes tr_arbytes;
|
||||
uint32_t ldtr_sel; /* ldtr selector */
|
||||
uint32_t ldtr_limit;
|
||||
uint32_t ldtr_base;
|
||||
union vmcs_arbytes ldtr_arbytes;
|
||||
} vmx_assist_context_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* _VMX_ASSIST_H_ */
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-set-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
55
sys/arch/xen/include/xen3-public/io/pciif.h
Normal file
55
sys/arch/xen/include/xen3-public/io/pciif.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* PCI Backend/Frontend Common Data Structures & Macros
|
||||
*
|
||||
* Author: Ryan Wilson <hap9@epoch.ncsc.mil>
|
||||
*/
|
||||
#ifndef __XEN_PCI_COMMON_H__
|
||||
#define __XEN_PCI_COMMON_H__
|
||||
|
||||
/* Be sure to bump this number if you change this file */
|
||||
#define XEN_PCI_MAGIC "7"
|
||||
|
||||
/* xen_pci_sharedinfo flags */
|
||||
#define _XEN_PCIF_active (0)
|
||||
#define XEN_PCIF_active (1<<_XEN_PCI_active)
|
||||
|
||||
/* xen_pci_op commands */
|
||||
#define XEN_PCI_OP_conf_read (0)
|
||||
#define XEN_PCI_OP_conf_write (1)
|
||||
|
||||
/* xen_pci_op error numbers */
|
||||
#define XEN_PCI_ERR_success (0)
|
||||
#define XEN_PCI_ERR_dev_not_found (-1)
|
||||
#define XEN_PCI_ERR_invalid_offset (-2)
|
||||
#define XEN_PCI_ERR_access_denied (-3)
|
||||
#define XEN_PCI_ERR_not_implemented (-4)
|
||||
/* XEN_PCI_ERR_op_failed - backend failed to complete the operation */
|
||||
#define XEN_PCI_ERR_op_failed (-5)
|
||||
|
||||
struct xen_pci_op {
|
||||
/* IN: what action to perform: XEN_PCI_OP_* */
|
||||
uint32_t cmd;
|
||||
|
||||
/* OUT: will contain an error number (if any) from errno.h */
|
||||
int32_t err;
|
||||
|
||||
/* IN: which device to touch */
|
||||
uint32_t domain; /* PCI Domain/Segment */
|
||||
uint32_t bus;
|
||||
uint32_t devfn;
|
||||
|
||||
/* IN: which configuration registers to touch */
|
||||
int32_t offset;
|
||||
int32_t size;
|
||||
|
||||
/* IN/OUT: Contains the result after a READ or the value to WRITE */
|
||||
uint32_t value;
|
||||
};
|
||||
|
||||
struct xen_pci_sharedinfo {
|
||||
/* flags - XEN_PCIF_* */
|
||||
uint32_t flags;
|
||||
struct xen_pci_op op;
|
||||
};
|
||||
|
||||
#endif /* __XEN_PCI_COMMON_H__ */
|
59
sys/arch/xen/include/xen3-public/nmi.h
Normal file
59
sys/arch/xen/include/xen3-public/nmi.h
Normal file
@ -0,0 +1,59 @@
|
||||
/******************************************************************************
|
||||
* nmi.h
|
||||
*
|
||||
* NMI callback registration and reason codes.
|
||||
*
|
||||
* Copyright (c) 2005, Keir Fraser <keir@xensource.com>
|
||||
*/
|
||||
|
||||
#ifndef __XEN_PUBLIC_NMI_H__
|
||||
#define __XEN_PUBLIC_NMI_H__
|
||||
|
||||
/*
|
||||
* NMI reason codes:
|
||||
* Currently these are x86-specific, stored in arch_shared_info.nmi_reason.
|
||||
*/
|
||||
/* I/O-check error reported via ISA port 0x61, bit 6. */
|
||||
#define _XEN_NMIREASON_io_error 0
|
||||
#define XEN_NMIREASON_io_error (1UL << _XEN_NMIREASON_io_error)
|
||||
/* Parity error reported via ISA port 0x61, bit 7. */
|
||||
#define _XEN_NMIREASON_parity_error 1
|
||||
#define XEN_NMIREASON_parity_error (1UL << _XEN_NMIREASON_parity_error)
|
||||
/* Unknown hardware-generated NMI. */
|
||||
#define _XEN_NMIREASON_unknown 2
|
||||
#define XEN_NMIREASON_unknown (1UL << _XEN_NMIREASON_unknown)
|
||||
|
||||
/*
|
||||
* long nmi_op(unsigned int cmd, void *arg)
|
||||
* NB. All ops return zero on success, else a negative error code.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Register NMI callback for this (calling) VCPU. Currently this only makes
|
||||
* sense for domain 0, vcpu 0. All other callers will be returned EINVAL.
|
||||
* arg == pointer to xennmi_callback structure.
|
||||
*/
|
||||
#define XENNMI_register_callback 0
|
||||
typedef struct xennmi_callback {
|
||||
unsigned long handler_address;
|
||||
unsigned long pad;
|
||||
} xennmi_callback_t;
|
||||
DEFINE_GUEST_HANDLE(xennmi_callback_t);
|
||||
|
||||
/*
|
||||
* Deregister NMI callback for this (calling) VCPU.
|
||||
* arg == NULL.
|
||||
*/
|
||||
#define XENNMI_unregister_callback 1
|
||||
|
||||
#endif /* __XEN_PUBLIC_NMI_H__ */
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-set-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
31
sys/arch/xen/include/xen3-public/xen-compat.h
Normal file
31
sys/arch/xen/include/xen3-public/xen-compat.h
Normal file
@ -0,0 +1,31 @@
|
||||
/******************************************************************************
|
||||
* xen-compat.h
|
||||
*
|
||||
* Guest OS interface to Xen. Compatibility layer.
|
||||
*
|
||||
* Copyright (c) 2006, Christian Limpach
|
||||
*/
|
||||
|
||||
#ifndef __XEN_PUBLIC_XEN_COMPAT_H__
|
||||
#define __XEN_PUBLIC_XEN_COMPAT_H__
|
||||
|
||||
#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030101
|
||||
|
||||
#if defined(__XEN__)
|
||||
/* Xen is built with matching headers and implements the latest interface. */
|
||||
#define __XEN_INTERFACE_VERSION__ __XEN_LATEST_INTERFACE_VERSION__
|
||||
#elif !defined(__XEN_INTERFACE_VERSION__)
|
||||
/* Guests which do not specify a version get the legacy interface. */
|
||||
#define __XEN_INTERFACE_VERSION__ 0x00000000
|
||||
#endif
|
||||
|
||||
#if __XEN_INTERFACE_VERSION__ > __XEN_LATEST_INTERFACE_VERSION__
|
||||
#error "These header files do not support the requested interface version."
|
||||
#endif
|
||||
|
||||
#if __XEN_INTERFACE_VERSION__ < 0x00030101
|
||||
#undef __HYPERVISOR_sched_op
|
||||
#define __HYPERVISOR_sched_op __HYPERVISOR_sched_op_compat
|
||||
#endif
|
||||
|
||||
#endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */
|
Loading…
Reference in New Issue
Block a user