iPXE
Data Structures | Defines | Typedefs | Functions
xen.h File Reference
#include "xen-compat.h"

Go to the source code of this file.

Data Structures

struct  mmuext_op
struct  mmu_update
struct  multicall_entry
struct  vcpu_time_info
struct  vcpu_info
struct  shared_info
struct  xen_multiboot_mod_list
struct  dom0_vga_console_info

Defines

#define __HYPERVISOR_set_trap_table   0
#define __HYPERVISOR_mmu_update   1
#define __HYPERVISOR_set_gdt   2
#define __HYPERVISOR_stack_switch   3
#define __HYPERVISOR_set_callbacks   4
#define __HYPERVISOR_fpu_taskswitch   5
#define __HYPERVISOR_sched_op_compat   6 /* compat since 0x00030101 */
#define __HYPERVISOR_platform_op   7
#define __HYPERVISOR_set_debugreg   8
#define __HYPERVISOR_get_debugreg   9
#define __HYPERVISOR_update_descriptor   10
#define __HYPERVISOR_memory_op   12
#define __HYPERVISOR_multicall   13
#define __HYPERVISOR_update_va_mapping   14
#define __HYPERVISOR_set_timer_op   15
#define __HYPERVISOR_event_channel_op_compat   16 /* compat since 0x00030202 */
#define __HYPERVISOR_xen_version   17
#define __HYPERVISOR_console_io   18
#define __HYPERVISOR_physdev_op_compat   19 /* compat since 0x00030202 */
#define __HYPERVISOR_grant_table_op   20
#define __HYPERVISOR_vm_assist   21
#define __HYPERVISOR_update_va_mapping_otherdomain   22
#define __HYPERVISOR_iret   23 /* x86 only */
#define __HYPERVISOR_vcpu_op   24
#define __HYPERVISOR_set_segment_base   25 /* x86/64 only */
#define __HYPERVISOR_mmuext_op   26
#define __HYPERVISOR_xsm_op   27
#define __HYPERVISOR_nmi_op   28
#define __HYPERVISOR_sched_op   29
#define __HYPERVISOR_callback_op   30
#define __HYPERVISOR_xenoprof_op   31
#define __HYPERVISOR_event_channel_op   32
#define __HYPERVISOR_physdev_op   33
#define __HYPERVISOR_hvm_op   34
#define __HYPERVISOR_sysctl   35
#define __HYPERVISOR_domctl   36
#define __HYPERVISOR_kexec_op   37
#define __HYPERVISOR_tmem_op   38
#define __HYPERVISOR_xc_reserved_op   39 /* reserved for XenClient */
#define __HYPERVISOR_arch_0   48
#define __HYPERVISOR_arch_1   49
#define __HYPERVISOR_arch_2   50
#define __HYPERVISOR_arch_3   51
#define __HYPERVISOR_arch_4   52
#define __HYPERVISOR_arch_5   53
#define __HYPERVISOR_arch_6   54
#define __HYPERVISOR_arch_7   55
#define __HYPERVISOR_sched_op   __HYPERVISOR_sched_op_compat
#define __HYPERVISOR_event_channel_op   __HYPERVISOR_event_channel_op_compat
#define __HYPERVISOR_physdev_op   __HYPERVISOR_physdev_op_compat
#define __HYPERVISOR_dom0_op   __HYPERVISOR_platform_op
#define VIRQ_TIMER   0 /* V. Timebase update, and/or requested timeout. */
#define VIRQ_DEBUG   1 /* V. Request guest to dump debug info. */
#define VIRQ_CONSOLE   2 /* G. (DOM0) Bytes received on emergency console. */
#define VIRQ_DOM_EXC   3 /* G. (DOM0) Exceptional event for some domain. */
#define VIRQ_TBUF   4 /* G. (DOM0) Trace buffer has records available. */
#define VIRQ_DEBUGGER   6 /* G. (DOM0) A domain has paused for debugging. */
#define VIRQ_XENOPROF   7 /* V. XenOprofile interrupt: new sample available */
#define VIRQ_CON_RING   8 /* G. (DOM0) Bytes received on console */
#define VIRQ_PCPU_STATE   9 /* G. (DOM0) PCPU state changed */
#define VIRQ_MEM_EVENT   10 /* G. (DOM0) A memory event has occured */
#define VIRQ_XC_RESERVED   11 /* G. Reserved for XenClient */
#define VIRQ_ENOMEM   12 /* G. (DOM0) Low on heap memory */
#define VIRQ_ARCH_0   16
#define VIRQ_ARCH_1   17
#define VIRQ_ARCH_2   18
#define VIRQ_ARCH_3   19
#define VIRQ_ARCH_4   20
#define VIRQ_ARCH_5   21
#define VIRQ_ARCH_6   22
#define VIRQ_ARCH_7   23
#define NR_VIRQS   24
#define MMU_NORMAL_PT_UPDATE   0 /* checked '*ptr = val'. ptr is MA. */
#define MMU_MACHPHYS_UPDATE   1 /* ptr = MA of frame to modify entry for */
#define MMU_PT_UPDATE_PRESERVE_AD   2 /* atomically: *ptr = val | (*ptr&(A|D)) */
#define MMUEXT_PIN_L1_TABLE   0
#define MMUEXT_PIN_L2_TABLE   1
#define MMUEXT_PIN_L3_TABLE   2
#define MMUEXT_PIN_L4_TABLE   3
#define MMUEXT_UNPIN_TABLE   4
#define MMUEXT_NEW_BASEPTR   5
#define MMUEXT_TLB_FLUSH_LOCAL   6
#define MMUEXT_INVLPG_LOCAL   7
#define MMUEXT_TLB_FLUSH_MULTI   8
#define MMUEXT_INVLPG_MULTI   9
#define MMUEXT_TLB_FLUSH_ALL   10
#define MMUEXT_INVLPG_ALL   11
#define MMUEXT_FLUSH_CACHE   12
#define MMUEXT_SET_LDT   13
#define MMUEXT_NEW_USER_BASEPTR   15
#define MMUEXT_CLEAR_PAGE   16
#define MMUEXT_COPY_PAGE   17
#define MMUEXT_FLUSH_CACHE_GLOBAL   18
#define MMUEXT_MARK_SUPER   19
#define MMUEXT_UNMARK_SUPER   20
#define UVMF_NONE   (0UL<<0) /* No flushing at all. */
#define UVMF_TLB_FLUSH   (1UL<<0) /* Flush entire TLB(s). */
#define UVMF_INVLPG   (2UL<<0) /* Flush only one entry. */
#define UVMF_FLUSHTYPE_MASK   (3UL<<0)
#define UVMF_MULTI   (0UL<<2) /* Flush subset of TLBs. */
#define UVMF_LOCAL   (0UL<<2) /* Flush local TLB. */
#define UVMF_ALL   (1UL<<2) /* Flush all TLBs. */
#define CONSOLEIO_write   0
#define CONSOLEIO_read   1
#define VMASST_CMD_enable   0
#define VMASST_CMD_disable   1
#define VMASST_TYPE_4gb_segments   0
#define VMASST_TYPE_4gb_segments_notify   1
#define VMASST_TYPE_writable_pagetables   2
#define VMASST_TYPE_pae_extended_cr3   3
#define MAX_VMASST_TYPE   3
#define DOMID_FIRST_RESERVED   (0x7FF0U)
#define DOMID_SELF   (0x7FF0U)
#define DOMID_IO   (0x7FF1U)
#define DOMID_XEN   (0x7FF2U)
#define DOMID_COW   (0x7FF3U)
#define DOMID_INVALID   (0x7FF4U)
#define DOMID_IDLE   (0x7FFFU)
#define NR_EVENT_CHANNELS   EVTCHN_2L_NR_CHANNELS
#define SIF_PRIVILEGED   (1<<0) /* Is the domain privileged? */
#define SIF_INITDOMAIN   (1<<1) /* Is this the initial control domain? */
#define SIF_MULTIBOOT_MOD   (1<<2) /* Is mod_start a multiboot module? */
#define SIF_MOD_START_PFN   (1<<3) /* Is mod_start a PFN? */
#define SIF_PM_MASK   (0xFF<<8) /* reserve 1 byte for xen-pm options */
#define XEN_VGATYPE_TEXT_MODE_3   0x03
#define XEN_VGATYPE_VESA_LFB   0x23
#define XEN_VGATYPE_EFI_LFB   0x70
#define xen_vga_console_info   dom0_vga_console_info
#define xen_vga_console_info_t   dom0_vga_console_info_t
#define __mk_unsigned_long(x)   x ## UL
#define mk_unsigned_long(x)   __mk_unsigned_long(x)

Typedefs

typedef struct mmuext_op mmuext_op_t
typedef uint16_t domid_t
typedef struct mmu_update mmu_update_t
typedef struct multicall_entry multicall_entry_t
typedef struct vcpu_time_info vcpu_time_info_t
typedef struct vcpu_info vcpu_info_t
typedef struct shared_info shared_info_t
typedef struct
dom0_vga_console_info 
dom0_vga_console_info_t
typedef uint8_t xen_domain_handle_t [16]

Functions

 FILE_LICENCE (MIT)
 DEFINE_XEN_GUEST_HANDLE (char)
 __DEFINE_XEN_GUEST_HANDLE (uchar, unsigned char)
 DEFINE_XEN_GUEST_HANDLE (int)
 __DEFINE_XEN_GUEST_HANDLE (uint, unsigned int)
 DEFINE_XEN_GUEST_HANDLE (long)
 __DEFINE_XEN_GUEST_HANDLE (ulong, unsigned long)
 DEFINE_XEN_GUEST_HANDLE (void)
 DEFINE_XEN_GUEST_HANDLE (uint64_t)
 DEFINE_XEN_GUEST_HANDLE (mmuext_op_t)
 DEFINE_XEN_GUEST_HANDLE (mmu_update_t)
 DEFINE_XEN_GUEST_HANDLE (multicall_entry_t)
 __DEFINE_XEN_GUEST_HANDLE (uint8, uint8_t)
 __DEFINE_XEN_GUEST_HANDLE (uint16, uint16_t)
 __DEFINE_XEN_GUEST_HANDLE (uint32, uint32_t)
 __DEFINE_XEN_GUEST_HANDLE (uint64, uint64_t)

Define Documentation

Definition at line 67 of file xen.h.

#define __HYPERVISOR_mmu_update   1

Definition at line 68 of file xen.h.

#define __HYPERVISOR_set_gdt   2

Definition at line 69 of file xen.h.

#define __HYPERVISOR_stack_switch   3

Definition at line 70 of file xen.h.

Definition at line 71 of file xen.h.

Definition at line 72 of file xen.h.

#define __HYPERVISOR_sched_op_compat   6 /* compat since 0x00030101 */

Definition at line 73 of file xen.h.

#define __HYPERVISOR_platform_op   7

Definition at line 74 of file xen.h.

#define __HYPERVISOR_set_debugreg   8

Definition at line 75 of file xen.h.

#define __HYPERVISOR_get_debugreg   9

Definition at line 76 of file xen.h.

Definition at line 77 of file xen.h.

#define __HYPERVISOR_memory_op   12

Definition at line 78 of file xen.h.

#define __HYPERVISOR_multicall   13

Definition at line 79 of file xen.h.

Definition at line 80 of file xen.h.

#define __HYPERVISOR_set_timer_op   15

Definition at line 81 of file xen.h.

#define __HYPERVISOR_event_channel_op_compat   16 /* compat since 0x00030202 */

Definition at line 82 of file xen.h.

#define __HYPERVISOR_xen_version   17

Definition at line 83 of file xen.h.

Referenced by __attribute__().

#define __HYPERVISOR_console_io   18

Definition at line 84 of file xen.h.

#define __HYPERVISOR_physdev_op_compat   19 /* compat since 0x00030202 */

Definition at line 85 of file xen.h.

#define __HYPERVISOR_grant_table_op   20

Definition at line 86 of file xen.h.

#define __HYPERVISOR_vm_assist   21

Definition at line 87 of file xen.h.

Definition at line 88 of file xen.h.

#define __HYPERVISOR_iret   23 /* x86 only */

Definition at line 89 of file xen.h.

#define __HYPERVISOR_vcpu_op   24

Definition at line 90 of file xen.h.

#define __HYPERVISOR_set_segment_base   25 /* x86/64 only */

Definition at line 91 of file xen.h.

#define __HYPERVISOR_mmuext_op   26

Definition at line 92 of file xen.h.

#define __HYPERVISOR_xsm_op   27

Definition at line 93 of file xen.h.

#define __HYPERVISOR_nmi_op   28

Definition at line 94 of file xen.h.

#define __HYPERVISOR_sched_op   29

Definition at line 126 of file xen.h.

#define __HYPERVISOR_callback_op   30

Definition at line 96 of file xen.h.

#define __HYPERVISOR_xenoprof_op   31

Definition at line 97 of file xen.h.

Definition at line 132 of file xen.h.

#define __HYPERVISOR_physdev_op   33

Definition at line 134 of file xen.h.

#define __HYPERVISOR_hvm_op   34

Definition at line 100 of file xen.h.

Referenced by xen_hvm_get_param().

#define __HYPERVISOR_sysctl   35

Definition at line 101 of file xen.h.

#define __HYPERVISOR_domctl   36

Definition at line 102 of file xen.h.

#define __HYPERVISOR_kexec_op   37

Definition at line 103 of file xen.h.

#define __HYPERVISOR_tmem_op   38

Definition at line 104 of file xen.h.

#define __HYPERVISOR_xc_reserved_op   39 /* reserved for XenClient */

Definition at line 105 of file xen.h.

#define __HYPERVISOR_arch_0   48

Definition at line 108 of file xen.h.

#define __HYPERVISOR_arch_1   49

Definition at line 109 of file xen.h.

#define __HYPERVISOR_arch_2   50

Definition at line 110 of file xen.h.

#define __HYPERVISOR_arch_3   51

Definition at line 111 of file xen.h.

#define __HYPERVISOR_arch_4   52

Definition at line 112 of file xen.h.

#define __HYPERVISOR_arch_5   53

Definition at line 113 of file xen.h.

#define __HYPERVISOR_arch_6   54

Definition at line 114 of file xen.h.

#define __HYPERVISOR_arch_7   55

Definition at line 115 of file xen.h.

Definition at line 126 of file xen.h.

Definition at line 132 of file xen.h.

Definition at line 134 of file xen.h.

Definition at line 139 of file xen.h.

#define VIRQ_TIMER   0 /* V. Timebase update, and/or requested timeout. */

Definition at line 153 of file xen.h.

#define VIRQ_DEBUG   1 /* V. Request guest to dump debug info. */

Definition at line 154 of file xen.h.

#define VIRQ_CONSOLE   2 /* G. (DOM0) Bytes received on emergency console. */

Definition at line 155 of file xen.h.

#define VIRQ_DOM_EXC   3 /* G. (DOM0) Exceptional event for some domain. */

Definition at line 156 of file xen.h.

#define VIRQ_TBUF   4 /* G. (DOM0) Trace buffer has records available. */

Definition at line 157 of file xen.h.

#define VIRQ_DEBUGGER   6 /* G. (DOM0) A domain has paused for debugging. */

Definition at line 158 of file xen.h.

#define VIRQ_XENOPROF   7 /* V. XenOprofile interrupt: new sample available */

Definition at line 159 of file xen.h.

#define VIRQ_CON_RING   8 /* G. (DOM0) Bytes received on console */

Definition at line 160 of file xen.h.

#define VIRQ_PCPU_STATE   9 /* G. (DOM0) PCPU state changed */

Definition at line 161 of file xen.h.

#define VIRQ_MEM_EVENT   10 /* G. (DOM0) A memory event has occured */

Definition at line 162 of file xen.h.

#define VIRQ_XC_RESERVED   11 /* G. Reserved for XenClient */

Definition at line 163 of file xen.h.

#define VIRQ_ENOMEM   12 /* G. (DOM0) Low on heap memory */

Definition at line 164 of file xen.h.

#define VIRQ_ARCH_0   16

Definition at line 167 of file xen.h.

#define VIRQ_ARCH_1   17

Definition at line 168 of file xen.h.

#define VIRQ_ARCH_2   18

Definition at line 169 of file xen.h.

#define VIRQ_ARCH_3   19

Definition at line 170 of file xen.h.

#define VIRQ_ARCH_4   20

Definition at line 171 of file xen.h.

#define VIRQ_ARCH_5   21

Definition at line 172 of file xen.h.

#define VIRQ_ARCH_6   22

Definition at line 173 of file xen.h.

#define VIRQ_ARCH_7   23

Definition at line 174 of file xen.h.

#define NR_VIRQS   24

Definition at line 177 of file xen.h.

#define MMU_NORMAL_PT_UPDATE   0 /* checked '*ptr = val'. ptr is MA. */

Definition at line 318 of file xen.h.

#define MMU_MACHPHYS_UPDATE   1 /* ptr = MA of frame to modify entry for */

Definition at line 319 of file xen.h.

#define MMU_PT_UPDATE_PRESERVE_AD   2 /* atomically: *ptr = val | (*ptr&(A|D)) */

Definition at line 320 of file xen.h.

#define MMUEXT_PIN_L1_TABLE   0

Definition at line 387 of file xen.h.

#define MMUEXT_PIN_L2_TABLE   1

Definition at line 388 of file xen.h.

#define MMUEXT_PIN_L3_TABLE   2

Definition at line 389 of file xen.h.

#define MMUEXT_PIN_L4_TABLE   3

Definition at line 390 of file xen.h.

#define MMUEXT_UNPIN_TABLE   4

Definition at line 391 of file xen.h.

#define MMUEXT_NEW_BASEPTR   5

Definition at line 392 of file xen.h.

#define MMUEXT_TLB_FLUSH_LOCAL   6

Definition at line 393 of file xen.h.

#define MMUEXT_INVLPG_LOCAL   7

Definition at line 394 of file xen.h.

#define MMUEXT_TLB_FLUSH_MULTI   8

Definition at line 395 of file xen.h.

#define MMUEXT_INVLPG_MULTI   9

Definition at line 396 of file xen.h.

#define MMUEXT_TLB_FLUSH_ALL   10

Definition at line 397 of file xen.h.

#define MMUEXT_INVLPG_ALL   11

Definition at line 398 of file xen.h.

#define MMUEXT_FLUSH_CACHE   12

Definition at line 399 of file xen.h.

#define MMUEXT_SET_LDT   13

Definition at line 400 of file xen.h.

#define MMUEXT_NEW_USER_BASEPTR   15

Definition at line 401 of file xen.h.

#define MMUEXT_CLEAR_PAGE   16

Definition at line 402 of file xen.h.

#define MMUEXT_COPY_PAGE   17

Definition at line 403 of file xen.h.

#define MMUEXT_FLUSH_CACHE_GLOBAL   18

Definition at line 404 of file xen.h.

#define MMUEXT_MARK_SUPER   19

Definition at line 405 of file xen.h.

#define MMUEXT_UNMARK_SUPER   20

Definition at line 406 of file xen.h.

#define UVMF_NONE   (0UL<<0) /* No flushing at all. */

Definition at line 454 of file xen.h.

#define UVMF_TLB_FLUSH   (1UL<<0) /* Flush entire TLB(s). */

Definition at line 455 of file xen.h.

#define UVMF_INVLPG   (2UL<<0) /* Flush only one entry. */

Definition at line 456 of file xen.h.

#define UVMF_FLUSHTYPE_MASK   (3UL<<0)

Definition at line 457 of file xen.h.

#define UVMF_MULTI   (0UL<<2) /* Flush subset of TLBs. */

Definition at line 458 of file xen.h.

#define UVMF_LOCAL   (0UL<<2) /* Flush local TLB. */

Definition at line 459 of file xen.h.

#define UVMF_ALL   (1UL<<2) /* Flush all TLBs. */

Definition at line 460 of file xen.h.

#define CONSOLEIO_write   0

Definition at line 466 of file xen.h.

#define CONSOLEIO_read   1

Definition at line 467 of file xen.h.

#define VMASST_CMD_enable   0

Definition at line 472 of file xen.h.

#define VMASST_CMD_disable   1

Definition at line 473 of file xen.h.

#define VMASST_TYPE_4gb_segments   0

Definition at line 476 of file xen.h.

Definition at line 479 of file xen.h.

Definition at line 486 of file xen.h.

Definition at line 489 of file xen.h.

#define MAX_VMASST_TYPE   3

Definition at line 491 of file xen.h.

#define DOMID_FIRST_RESERVED   (0x7FF0U)

Definition at line 498 of file xen.h.

#define DOMID_SELF   (0x7FF0U)
#define DOMID_IO   (0x7FF1U)

Definition at line 512 of file xen.h.

#define DOMID_XEN   (0x7FF2U)

Definition at line 520 of file xen.h.

#define DOMID_COW   (0x7FF3U)

Definition at line 524 of file xen.h.

#define DOMID_INVALID   (0x7FF4U)

Definition at line 527 of file xen.h.

#define DOMID_IDLE   (0x7FFFU)

Definition at line 530 of file xen.h.

Definition at line 564 of file xen.h.

#define SIF_PRIVILEGED   (1<<0) /* Is the domain privileged? */

Definition at line 772 of file xen.h.

#define SIF_INITDOMAIN   (1<<1) /* Is this the initial control domain? */

Definition at line 773 of file xen.h.

#define SIF_MULTIBOOT_MOD   (1<<2) /* Is mod_start a multiboot module? */

Definition at line 774 of file xen.h.

#define SIF_MOD_START_PFN   (1<<3) /* Is mod_start a PFN? */

Definition at line 775 of file xen.h.

#define SIF_PM_MASK   (0xFF<<8) /* reserve 1 byte for xen-pm options */

Definition at line 776 of file xen.h.

#define XEN_VGATYPE_TEXT_MODE_3   0x03

Definition at line 813 of file xen.h.

#define XEN_VGATYPE_VESA_LFB   0x23

Definition at line 814 of file xen.h.

#define XEN_VGATYPE_EFI_LFB   0x70

Definition at line 815 of file xen.h.

Definition at line 851 of file xen.h.

Definition at line 852 of file xen.h.

#define __mk_unsigned_long (   x)    x ## UL

Definition at line 857 of file xen.h.

#define mk_unsigned_long (   x)    __mk_unsigned_long(x)

Definition at line 858 of file xen.h.


Typedef Documentation

typedef struct mmuext_op mmuext_op_t

Definition at line 432 of file xen.h.

typedef uint16_t domid_t

Definition at line 495 of file xen.h.

typedef struct mmu_update mmu_update_t

Definition at line 540 of file xen.h.

Definition at line 556 of file xen.h.

Definition at line 592 of file xen.h.

typedef struct vcpu_info vcpu_info_t

Definition at line 631 of file xen.h.

typedef struct shared_info shared_info_t

Definition at line 692 of file xen.h.

Definition at line 854 of file xen.h.


Function Documentation

FILE_LICENCE ( MIT  )
__DEFINE_XEN_GUEST_HANDLE ( uchar  ,
unsigned  char 
)
__DEFINE_XEN_GUEST_HANDLE ( uint  ,
unsigned  int 
)
__DEFINE_XEN_GUEST_HANDLE ( ulong  ,
unsigned  long 
)