iPXE
physdev.h File Reference
#include "xen.h"

Go to the source code of this file.

Data Structures

struct  physdev_eoi
struct  physdev_pirq_eoi_gmfn
struct  physdev_irq_status_query
struct  physdev_set_iopl
struct  physdev_set_iobitmap
struct  physdev_apic
struct  physdev_irq
struct  physdev_map_pirq
struct  physdev_unmap_pirq
struct  physdev_manage_pci
struct  physdev_restore_msi
struct  physdev_manage_pci_ext
struct  physdev_op
struct  physdev_setup_gsi
struct  physdev_get_free_pirq
struct  physdev_pci_mmcfg_reserved
struct  physdev_pci_device_add
struct  physdev_pci_device
struct  pci_device_reset
struct  physdev_dbgp_op

Macros

#define PHYSDEVOP_eoi   12
#define PHYSDEVOP_pirq_eoi_gmfn_v1   17
#define PHYSDEVOP_pirq_eoi_gmfn_v2   28
#define PHYSDEVOP_irq_status_query   5
#define _XENIRQSTAT_needs_eoi   (0)
#define XENIRQSTAT_needs_eoi   (1U<<_XENIRQSTAT_needs_eoi)
#define _XENIRQSTAT_shared   (1)
#define XENIRQSTAT_shared   (1U<<_XENIRQSTAT_shared)
#define PHYSDEVOP_set_iopl   6
#define PHYSDEVOP_set_iobitmap   7
#define PHYSDEVOP_apic_read   8
#define PHYSDEVOP_apic_write   9
#define PHYSDEVOP_alloc_irq_vector   10
#define PHYSDEVOP_free_irq_vector   11
#define MAP_PIRQ_TYPE_MSI   0x0
#define MAP_PIRQ_TYPE_GSI   0x1
#define MAP_PIRQ_TYPE_UNKNOWN   0x2
#define MAP_PIRQ_TYPE_MSI_SEG   0x3
#define MAP_PIRQ_TYPE_MULTI_MSI   0x4
#define PHYSDEVOP_map_pirq   13
#define PHYSDEVOP_unmap_pirq   14
#define PHYSDEVOP_manage_pci_add   15
#define PHYSDEVOP_manage_pci_remove   16
#define PHYSDEVOP_restore_msi   19
#define PHYSDEVOP_manage_pci_add_ext   20
#define PHYSDEVOP_setup_gsi   21
#define PHYSDEVOP_get_free_pirq   23
#define XEN_PCI_MMCFG_RESERVED   0x1
#define PHYSDEVOP_pci_mmcfg_reserved   24
#define XEN_PCI_DEV_EXTFN   0x1
#define XEN_PCI_DEV_VIRTFN   0x2
#define XEN_PCI_DEV_PXM   0x4
#define PHYSDEVOP_pci_device_add   25
#define PHYSDEVOP_pci_device_remove   26
#define PHYSDEVOP_restore_msi_ext   27
#define PHYSDEVOP_prepare_msix   30
#define PHYSDEVOP_release_msix   31
#define PHYSDEVOP_pci_device_reset   32
#define PCI_DEVICE_RESET_COLD   0x0
#define PCI_DEVICE_RESET_WARM   0x1
#define PCI_DEVICE_RESET_HOT   0x2
#define PCI_DEVICE_RESET_FLR   0x3
#define PCI_DEVICE_RESET_MASK   0x3
#define PHYSDEVOP_DBGP_RESET_PREPARE   1
#define PHYSDEVOP_DBGP_RESET_DONE   2
#define PHYSDEVOP_DBGP_BUS_UNKNOWN   0
#define PHYSDEVOP_DBGP_BUS_PCI   1
#define PHYSDEVOP_dbgp_op   29
#define PHYSDEVOP_IRQ_UNMASK_NOTIFY   4
#define PHYSDEVOP_IRQ_STATUS_QUERY   PHYSDEVOP_irq_status_query
#define PHYSDEVOP_SET_IOPL   PHYSDEVOP_set_iopl
#define PHYSDEVOP_SET_IOBITMAP   PHYSDEVOP_set_iobitmap
#define PHYSDEVOP_APIC_READ   PHYSDEVOP_apic_read
#define PHYSDEVOP_APIC_WRITE   PHYSDEVOP_apic_write
#define PHYSDEVOP_ASSIGN_VECTOR   PHYSDEVOP_alloc_irq_vector
#define PHYSDEVOP_FREE_VECTOR   PHYSDEVOP_free_irq_vector
#define PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY   XENIRQSTAT_needs_eoi
#define PHYSDEVOP_IRQ_SHARED   XENIRQSTAT_shared
#define PHYSDEVOP_pirq_eoi_gmfn   PHYSDEVOP_pirq_eoi_gmfn_v1

Typedefs

typedef struct physdev_eoi physdev_eoi_t
typedef struct physdev_pirq_eoi_gmfn physdev_pirq_eoi_gmfn_t
typedef struct physdev_irq_status_query physdev_irq_status_query_t
typedef struct physdev_set_iopl physdev_set_iopl_t
typedef struct physdev_set_iobitmap physdev_set_iobitmap_t
typedef struct physdev_apic physdev_apic_t
typedef struct physdev_irq physdev_irq_t
typedef struct physdev_map_pirq physdev_map_pirq_t
typedef struct physdev_unmap_pirq physdev_unmap_pirq_t
typedef struct physdev_manage_pci physdev_manage_pci_t
typedef struct physdev_restore_msi physdev_restore_msi_t
typedef struct physdev_manage_pci_ext physdev_manage_pci_ext_t
typedef struct physdev_op physdev_op_t
typedef struct physdev_setup_gsi physdev_setup_gsi_t
typedef struct physdev_get_free_pirq physdev_get_free_pirq_t
typedef struct physdev_pci_mmcfg_reserved physdev_pci_mmcfg_reserved_t
typedef struct physdev_pci_device_add physdev_pci_device_add_t
typedef struct physdev_pci_device physdev_pci_device_t
typedef struct physdev_dbgp_op physdev_dbgp_op_t

Functions

 FILE_LICENCE (MIT)
 FILE_SECBOOT (PERMITTED)
 DEFINE_XEN_GUEST_HANDLE (physdev_eoi_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_pirq_eoi_gmfn_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_irq_status_query_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_set_iopl_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_set_iobitmap_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_apic_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_irq_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_map_pirq_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_unmap_pirq_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_manage_pci_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_restore_msi_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_manage_pci_ext_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_op_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_setup_gsi_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_get_free_pirq_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_pci_mmcfg_reserved_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_pci_device_add_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_pci_device_t)
 DEFINE_XEN_GUEST_HANDLE (physdev_dbgp_op_t)

Macro Definition Documentation

◆ PHYSDEVOP_eoi

#define PHYSDEVOP_eoi   12

Definition at line 25 of file physdev.h.

◆ PHYSDEVOP_pirq_eoi_gmfn_v1

#define PHYSDEVOP_pirq_eoi_gmfn_v1   17

Definition at line 40 of file physdev.h.

◆ PHYSDEVOP_pirq_eoi_gmfn_v2

#define PHYSDEVOP_pirq_eoi_gmfn_v2   28

Definition at line 48 of file physdev.h.

◆ PHYSDEVOP_irq_status_query

#define PHYSDEVOP_irq_status_query   5

Definition at line 60 of file physdev.h.

◆ _XENIRQSTAT_needs_eoi

#define _XENIRQSTAT_needs_eoi   (0)

Definition at line 71 of file physdev.h.

◆ XENIRQSTAT_needs_eoi

#define XENIRQSTAT_needs_eoi   (1U<<_XENIRQSTAT_needs_eoi)

Definition at line 72 of file physdev.h.

◆ _XENIRQSTAT_shared

#define _XENIRQSTAT_shared   (1)

Definition at line 75 of file physdev.h.

◆ XENIRQSTAT_shared

#define XENIRQSTAT_shared   (1U<<_XENIRQSTAT_shared)

Definition at line 76 of file physdev.h.

◆ PHYSDEVOP_set_iopl

#define PHYSDEVOP_set_iopl   6

Definition at line 82 of file physdev.h.

◆ PHYSDEVOP_set_iobitmap

#define PHYSDEVOP_set_iobitmap   7

Definition at line 97 of file physdev.h.

◆ PHYSDEVOP_apic_read

#define PHYSDEVOP_apic_read   8

Definition at line 114 of file physdev.h.

◆ PHYSDEVOP_apic_write

#define PHYSDEVOP_apic_write   9

Definition at line 115 of file physdev.h.

◆ PHYSDEVOP_alloc_irq_vector

#define PHYSDEVOP_alloc_irq_vector   10

Definition at line 130 of file physdev.h.

◆ PHYSDEVOP_free_irq_vector

#define PHYSDEVOP_free_irq_vector   11

Definition at line 131 of file physdev.h.

◆ MAP_PIRQ_TYPE_MSI

#define MAP_PIRQ_TYPE_MSI   0x0

Definition at line 141 of file physdev.h.

◆ MAP_PIRQ_TYPE_GSI

#define MAP_PIRQ_TYPE_GSI   0x1

Definition at line 142 of file physdev.h.

◆ MAP_PIRQ_TYPE_UNKNOWN

#define MAP_PIRQ_TYPE_UNKNOWN   0x2

Definition at line 143 of file physdev.h.

◆ MAP_PIRQ_TYPE_MSI_SEG

#define MAP_PIRQ_TYPE_MSI_SEG   0x3

Definition at line 144 of file physdev.h.

◆ MAP_PIRQ_TYPE_MULTI_MSI

#define MAP_PIRQ_TYPE_MULTI_MSI   0x4

Definition at line 145 of file physdev.h.

◆ PHYSDEVOP_map_pirq

#define PHYSDEVOP_map_pirq   13

Definition at line 147 of file physdev.h.

◆ PHYSDEVOP_unmap_pirq

#define PHYSDEVOP_unmap_pirq   14

Definition at line 168 of file physdev.h.

◆ PHYSDEVOP_manage_pci_add

#define PHYSDEVOP_manage_pci_add   15

Definition at line 178 of file physdev.h.

◆ PHYSDEVOP_manage_pci_remove

#define PHYSDEVOP_manage_pci_remove   16

Definition at line 179 of file physdev.h.

◆ PHYSDEVOP_restore_msi

#define PHYSDEVOP_restore_msi   19

Definition at line 189 of file physdev.h.

◆ PHYSDEVOP_manage_pci_add_ext

#define PHYSDEVOP_manage_pci_add_ext   20

Definition at line 198 of file physdev.h.

◆ PHYSDEVOP_setup_gsi

#define PHYSDEVOP_setup_gsi   21

Definition at line 231 of file physdev.h.

◆ PHYSDEVOP_get_free_pirq

#define PHYSDEVOP_get_free_pirq   23

Definition at line 248 of file physdev.h.

◆ XEN_PCI_MMCFG_RESERVED

#define XEN_PCI_MMCFG_RESERVED   0x1

Definition at line 259 of file physdev.h.

◆ PHYSDEVOP_pci_mmcfg_reserved

#define PHYSDEVOP_pci_mmcfg_reserved   24

Definition at line 261 of file physdev.h.

◆ XEN_PCI_DEV_EXTFN

#define XEN_PCI_DEV_EXTFN   0x1

Definition at line 272 of file physdev.h.

◆ XEN_PCI_DEV_VIRTFN

#define XEN_PCI_DEV_VIRTFN   0x2

Definition at line 273 of file physdev.h.

◆ XEN_PCI_DEV_PXM

#define XEN_PCI_DEV_PXM   0x4

Definition at line 274 of file physdev.h.

◆ PHYSDEVOP_pci_device_add

#define PHYSDEVOP_pci_device_add   25

Definition at line 276 of file physdev.h.

◆ PHYSDEVOP_pci_device_remove

#define PHYSDEVOP_pci_device_remove   26

Definition at line 297 of file physdev.h.

◆ PHYSDEVOP_restore_msi_ext

#define PHYSDEVOP_restore_msi_ext   27

Definition at line 298 of file physdev.h.

◆ PHYSDEVOP_prepare_msix

#define PHYSDEVOP_prepare_msix   30

Definition at line 303 of file physdev.h.

◆ PHYSDEVOP_release_msix

#define PHYSDEVOP_release_msix   31

Definition at line 304 of file physdev.h.

◆ PHYSDEVOP_pci_device_reset

#define PHYSDEVOP_pci_device_reset   32

Definition at line 310 of file physdev.h.

◆ PCI_DEVICE_RESET_COLD

#define PCI_DEVICE_RESET_COLD   0x0

Definition at line 323 of file physdev.h.

◆ PCI_DEVICE_RESET_WARM

#define PCI_DEVICE_RESET_WARM   0x1

Definition at line 324 of file physdev.h.

◆ PCI_DEVICE_RESET_HOT

#define PCI_DEVICE_RESET_HOT   0x2

Definition at line 325 of file physdev.h.

◆ PCI_DEVICE_RESET_FLR

#define PCI_DEVICE_RESET_FLR   0x3

Definition at line 326 of file physdev.h.

◆ PCI_DEVICE_RESET_MASK

#define PCI_DEVICE_RESET_MASK   0x3

Definition at line 327 of file physdev.h.

◆ PHYSDEVOP_DBGP_RESET_PREPARE

#define PHYSDEVOP_DBGP_RESET_PREPARE   1

Definition at line 331 of file physdev.h.

◆ PHYSDEVOP_DBGP_RESET_DONE

#define PHYSDEVOP_DBGP_RESET_DONE   2

Definition at line 332 of file physdev.h.

◆ PHYSDEVOP_DBGP_BUS_UNKNOWN

#define PHYSDEVOP_DBGP_BUS_UNKNOWN   0

Definition at line 334 of file physdev.h.

◆ PHYSDEVOP_DBGP_BUS_PCI

#define PHYSDEVOP_DBGP_BUS_PCI   1

Definition at line 335 of file physdev.h.

◆ PHYSDEVOP_dbgp_op

#define PHYSDEVOP_dbgp_op   29

Definition at line 337 of file physdev.h.

◆ PHYSDEVOP_IRQ_UNMASK_NOTIFY

#define PHYSDEVOP_IRQ_UNMASK_NOTIFY   4

Definition at line 354 of file physdev.h.

◆ PHYSDEVOP_IRQ_STATUS_QUERY

#define PHYSDEVOP_IRQ_STATUS_QUERY   PHYSDEVOP_irq_status_query

Definition at line 362 of file physdev.h.

◆ PHYSDEVOP_SET_IOPL

#define PHYSDEVOP_SET_IOPL   PHYSDEVOP_set_iopl

Definition at line 363 of file physdev.h.

◆ PHYSDEVOP_SET_IOBITMAP

#define PHYSDEVOP_SET_IOBITMAP   PHYSDEVOP_set_iobitmap

Definition at line 364 of file physdev.h.

◆ PHYSDEVOP_APIC_READ

#define PHYSDEVOP_APIC_READ   PHYSDEVOP_apic_read

Definition at line 365 of file physdev.h.

◆ PHYSDEVOP_APIC_WRITE

#define PHYSDEVOP_APIC_WRITE   PHYSDEVOP_apic_write

Definition at line 366 of file physdev.h.

◆ PHYSDEVOP_ASSIGN_VECTOR

#define PHYSDEVOP_ASSIGN_VECTOR   PHYSDEVOP_alloc_irq_vector

Definition at line 367 of file physdev.h.

◆ PHYSDEVOP_FREE_VECTOR

#define PHYSDEVOP_FREE_VECTOR   PHYSDEVOP_free_irq_vector

Definition at line 368 of file physdev.h.

◆ PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY

#define PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY   XENIRQSTAT_needs_eoi

Definition at line 369 of file physdev.h.

◆ PHYSDEVOP_IRQ_SHARED

#define PHYSDEVOP_IRQ_SHARED   XENIRQSTAT_shared

Definition at line 370 of file physdev.h.

◆ PHYSDEVOP_pirq_eoi_gmfn

#define PHYSDEVOP_pirq_eoi_gmfn   PHYSDEVOP_pirq_eoi_gmfn_v1

Definition at line 374 of file physdev.h.

Typedef Documentation

◆ physdev_eoi_t

typedef struct physdev_eoi physdev_eoi_t

Definition at line 30 of file physdev.h.

◆ physdev_pirq_eoi_gmfn_t

Definition at line 53 of file physdev.h.

◆ physdev_irq_status_query_t

Definition at line 67 of file physdev.h.

◆ physdev_set_iopl_t

Definition at line 87 of file physdev.h.

◆ physdev_set_iobitmap_t

Definition at line 107 of file physdev.h.

◆ physdev_apic_t

typedef struct physdev_apic physdev_apic_t

Definition at line 123 of file physdev.h.

◆ physdev_irq_t

typedef struct physdev_irq physdev_irq_t

Definition at line 138 of file physdev.h.

◆ physdev_map_pirq_t

Definition at line 165 of file physdev.h.

◆ physdev_unmap_pirq_t

Definition at line 175 of file physdev.h.

◆ physdev_manage_pci_t

Definition at line 186 of file physdev.h.

◆ physdev_restore_msi_t

Definition at line 195 of file physdev.h.

◆ physdev_manage_pci_ext_t

Definition at line 211 of file physdev.h.

◆ physdev_op_t

typedef struct physdev_op physdev_op_t

Definition at line 228 of file physdev.h.

◆ physdev_setup_gsi_t

Definition at line 241 of file physdev.h.

◆ physdev_get_free_pirq_t

Definition at line 256 of file physdev.h.

◆ physdev_pci_mmcfg_reserved_t

Definition at line 269 of file physdev.h.

◆ physdev_pci_device_add_t

Definition at line 294 of file physdev.h.

◆ physdev_pci_device_t

Definition at line 318 of file physdev.h.

◆ physdev_dbgp_op_t

Definition at line 346 of file physdev.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( MIT )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ DEFINE_XEN_GUEST_HANDLE() [1/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_eoi_t )

◆ DEFINE_XEN_GUEST_HANDLE() [2/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_pirq_eoi_gmfn_t )

◆ DEFINE_XEN_GUEST_HANDLE() [3/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_irq_status_query_t )

◆ DEFINE_XEN_GUEST_HANDLE() [4/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_set_iopl_t )

◆ DEFINE_XEN_GUEST_HANDLE() [5/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_set_iobitmap_t )

◆ DEFINE_XEN_GUEST_HANDLE() [6/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_apic_t )

◆ DEFINE_XEN_GUEST_HANDLE() [7/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_irq_t )

◆ DEFINE_XEN_GUEST_HANDLE() [8/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_map_pirq_t )

◆ DEFINE_XEN_GUEST_HANDLE() [9/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_unmap_pirq_t )

◆ DEFINE_XEN_GUEST_HANDLE() [10/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_manage_pci_t )

◆ DEFINE_XEN_GUEST_HANDLE() [11/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_restore_msi_t )

◆ DEFINE_XEN_GUEST_HANDLE() [12/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_manage_pci_ext_t )

◆ DEFINE_XEN_GUEST_HANDLE() [13/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_op_t )

◆ DEFINE_XEN_GUEST_HANDLE() [14/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_setup_gsi_t )

◆ DEFINE_XEN_GUEST_HANDLE() [15/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_get_free_pirq_t )

◆ DEFINE_XEN_GUEST_HANDLE() [16/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_pci_mmcfg_reserved_t )

◆ DEFINE_XEN_GUEST_HANDLE() [17/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_pci_device_add_t )

◆ DEFINE_XEN_GUEST_HANDLE() [18/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_pci_device_t )

◆ DEFINE_XEN_GUEST_HANDLE() [19/19]

DEFINE_XEN_GUEST_HANDLE ( physdev_dbgp_op_t )