mirror of https://github.com/xemu-project/xemu.git
pci: remove some types from typedefs.h
For types that are embedded in structs defined by pci.h, the definition is pretty much required to be available. Remove them from typedefs.h. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
15d62536a9
commit
fe5943fecc
|
@ -27,6 +27,9 @@
|
||||||
#include "hw/pci/pcie_sriov.h"
|
#include "hw/pci/pcie_sriov.h"
|
||||||
#include "hw/hotplug.h"
|
#include "hw/hotplug.h"
|
||||||
|
|
||||||
|
typedef struct PCIEPort PCIEPort;
|
||||||
|
typedef struct PCIESlot PCIESlot;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* these bits must match the bits in Slot Control/Status registers.
|
/* these bits must match the bits in Slot Control/Status registers.
|
||||||
* PCI_EXP_HP_EV_xxx = PCI_EXP_SLTCTL_xxxE = PCI_EXP_SLTSTA_xxx
|
* PCI_EXP_HP_EV_xxx = PCI_EXP_SLTCTL_xxxE = PCI_EXP_SLTSTA_xxx
|
||||||
|
|
|
@ -25,8 +25,23 @@
|
||||||
|
|
||||||
/* definitions which PCIExpressDevice uses */
|
/* definitions which PCIExpressDevice uses */
|
||||||
|
|
||||||
|
/* error */
|
||||||
|
typedef struct PCIEAERErr {
|
||||||
|
uint32_t status; /* error status bits */
|
||||||
|
uint16_t source_id; /* bdf */
|
||||||
|
|
||||||
|
#define PCIE_AER_ERR_IS_CORRECTABLE 0x1 /* correctable/uncorrectable */
|
||||||
|
#define PCIE_AER_ERR_MAYBE_ADVISORY 0x2 /* maybe advisory non-fatal */
|
||||||
|
#define PCIE_AER_ERR_HEADER_VALID 0x4 /* TLP header is logged */
|
||||||
|
#define PCIE_AER_ERR_TLP_PREFIX_PRESENT 0x8 /* TLP Prefix is logged */
|
||||||
|
uint16_t flags;
|
||||||
|
|
||||||
|
uint32_t header[4]; /* TLP header */
|
||||||
|
uint32_t prefix[4]; /* TLP header prefix */
|
||||||
|
} PCIEAERErr;
|
||||||
|
|
||||||
/* AER log */
|
/* AER log */
|
||||||
struct PCIEAERLog {
|
typedef struct PCIEAERLog {
|
||||||
/* This structure is saved/loaded.
|
/* This structure is saved/loaded.
|
||||||
So explicitly size them instead of unsigned int */
|
So explicitly size them instead of unsigned int */
|
||||||
|
|
||||||
|
@ -48,11 +63,11 @@ struct PCIEAERLog {
|
||||||
|
|
||||||
/* Error log. log_max-sized array */
|
/* Error log. log_max-sized array */
|
||||||
PCIEAERErr *log;
|
PCIEAERErr *log;
|
||||||
};
|
} PCIEAERLog;
|
||||||
|
|
||||||
/* aer error message: error signaling message has only error severity and
|
/* aer error message: error signaling message has only error severity and
|
||||||
source id. See 2.2.8.3 error signaling messages */
|
source id. See 2.2.8.3 error signaling messages */
|
||||||
struct PCIEAERMsg {
|
typedef struct PCIEAERMsg {
|
||||||
/*
|
/*
|
||||||
* PCI_ERR_ROOT_CMD_{COR, NONFATAL, FATAL}_EN
|
* PCI_ERR_ROOT_CMD_{COR, NONFATAL, FATAL}_EN
|
||||||
* = PCI_EXP_DEVCTL_{CERE, NFERE, FERE}
|
* = PCI_EXP_DEVCTL_{CERE, NFERE, FERE}
|
||||||
|
@ -60,7 +75,7 @@ struct PCIEAERMsg {
|
||||||
uint32_t severity;
|
uint32_t severity;
|
||||||
|
|
||||||
uint16_t source_id; /* bdf */
|
uint16_t source_id; /* bdf */
|
||||||
};
|
} PCIEAERMsg;
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
pcie_aer_msg_is_uncor(const PCIEAERMsg *msg)
|
pcie_aer_msg_is_uncor(const PCIEAERMsg *msg)
|
||||||
|
@ -69,21 +84,6 @@ pcie_aer_msg_is_uncor(const PCIEAERMsg *msg)
|
||||||
msg->severity == PCI_ERR_ROOT_CMD_FATAL_EN;
|
msg->severity == PCI_ERR_ROOT_CMD_FATAL_EN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* error */
|
|
||||||
struct PCIEAERErr {
|
|
||||||
uint32_t status; /* error status bits */
|
|
||||||
uint16_t source_id; /* bdf */
|
|
||||||
|
|
||||||
#define PCIE_AER_ERR_IS_CORRECTABLE 0x1 /* correctable/uncorrectable */
|
|
||||||
#define PCIE_AER_ERR_MAYBE_ADVISORY 0x2 /* maybe advisory non-fatal */
|
|
||||||
#define PCIE_AER_ERR_HEADER_VALID 0x4 /* TLP header is logged */
|
|
||||||
#define PCIE_AER_ERR_TLP_PREFIX_PRESENT 0x8 /* TLP Prefix is logged */
|
|
||||||
uint16_t flags;
|
|
||||||
|
|
||||||
uint32_t header[4]; /* TLP header */
|
|
||||||
uint32_t prefix[4]; /* TLP header prefix */
|
|
||||||
};
|
|
||||||
|
|
||||||
extern const VMStateDescription vmstate_pcie_aer_log;
|
extern const VMStateDescription vmstate_pcie_aer_log;
|
||||||
|
|
||||||
int pcie_aer_init(PCIDevice *dev, uint8_t cap_ver, uint16_t offset,
|
int pcie_aer_init(PCIDevice *dev, uint8_t cap_ver, uint16_t offset,
|
||||||
|
|
|
@ -15,17 +15,17 @@
|
||||||
|
|
||||||
#include "hw/pci/pci.h"
|
#include "hw/pci/pci.h"
|
||||||
|
|
||||||
struct PCIESriovPF {
|
typedef struct PCIESriovPF {
|
||||||
uint16_t num_vfs; /* Number of virtual functions created */
|
uint16_t num_vfs; /* Number of virtual functions created */
|
||||||
uint8_t vf_bar_type[PCI_NUM_REGIONS]; /* Store type for each VF bar */
|
uint8_t vf_bar_type[PCI_NUM_REGIONS]; /* Store type for each VF bar */
|
||||||
const char *vfname; /* Reference to the device type used for the VFs */
|
const char *vfname; /* Reference to the device type used for the VFs */
|
||||||
PCIDevice **vf; /* Pointer to an array of num_vfs VF devices */
|
PCIDevice **vf; /* Pointer to an array of num_vfs VF devices */
|
||||||
};
|
} PCIESriovPF;
|
||||||
|
|
||||||
struct PCIESriovVF {
|
typedef struct PCIESriovVF {
|
||||||
PCIDevice *pf; /* Pointer back to owner physical function */
|
PCIDevice *pf; /* Pointer back to owner physical function */
|
||||||
uint16_t vf_number; /* Logical VF number of this function */
|
uint16_t vf_number; /* Logical VF number of this function */
|
||||||
};
|
} PCIESriovVF;
|
||||||
|
|
||||||
void pcie_sriov_pf_init(PCIDevice *dev, uint16_t offset,
|
void pcie_sriov_pf_init(PCIDevice *dev, uint16_t offset,
|
||||||
const char *vfname, uint16_t vf_dev_id,
|
const char *vfname, uint16_t vf_dev_id,
|
||||||
|
|
|
@ -78,13 +78,8 @@ typedef struct ObjectClass ObjectClass;
|
||||||
typedef struct PCIBridge PCIBridge;
|
typedef struct PCIBridge PCIBridge;
|
||||||
typedef struct PCIBus PCIBus;
|
typedef struct PCIBus PCIBus;
|
||||||
typedef struct PCIDevice PCIDevice;
|
typedef struct PCIDevice PCIDevice;
|
||||||
typedef struct PCIEAERErr PCIEAERErr;
|
|
||||||
typedef struct PCIEAERLog PCIEAERLog;
|
|
||||||
typedef struct PCIEAERMsg PCIEAERMsg;
|
|
||||||
typedef struct PCIEPort PCIEPort;
|
typedef struct PCIEPort PCIEPort;
|
||||||
typedef struct PCIESlot PCIESlot;
|
typedef struct PCIESlot PCIESlot;
|
||||||
typedef struct PCIESriovPF PCIESriovPF;
|
|
||||||
typedef struct PCIESriovVF PCIESriovVF;
|
|
||||||
typedef struct PCIExpressDevice PCIExpressDevice;
|
typedef struct PCIExpressDevice PCIExpressDevice;
|
||||||
typedef struct PCIExpressHost PCIExpressHost;
|
typedef struct PCIExpressHost PCIExpressHost;
|
||||||
typedef struct PCIHostDeviceAddress PCIHostDeviceAddress;
|
typedef struct PCIHostDeviceAddress PCIHostDeviceAddress;
|
||||||
|
|
Loading…
Reference in New Issue