diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-12-17 18:17:08 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2012-12-17 18:56:22 +0100 |
commit | 6f991980a5e96f93a9f676959df2dcba665665ef (patch) | |
tree | e6f46c0531e8a05b22be4c5adf7f7fb31afa6d13 /hw/pci/shpc.h | |
parent | a8a826a3c3b8c8a1c4def0e9e22b46e78e6163a0 (diff) | |
parent | 1dd3a74d2ee2d873cde0b390b536e45420b3fe05 (diff) | |
download | qemu-6f991980a5e96f93a9f676959df2dcba665665ef.zip qemu-6f991980a5e96f93a9f676959df2dcba665665ef.tar.gz qemu-6f991980a5e96f93a9f676959df2dcba665665ef.tar.bz2 |
Merge commit '1dd3a74d2ee2d873cde0b390b536e45420b3fe05' into HEAD
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/pci/shpc.h')
-rw-r--r-- | hw/pci/shpc.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/hw/pci/shpc.h b/hw/pci/shpc.h new file mode 100644 index 0000000..130b71d --- /dev/null +++ b/hw/pci/shpc.h @@ -0,0 +1,48 @@ +#ifndef SHPC_H +#define SHPC_H + +#include "qemu-common.h" +#include "memory.h" +#include "vmstate.h" + +struct SHPCDevice { + /* Capability offset in device's config space */ + int cap; + + /* # of hot-pluggable slots */ + int nslots; + + /* SHPC WRS: working register set */ + uint8_t *config; + + /* Used to enable checks on load. Note that writable bits are + * never checked even if set in cmask. */ + uint8_t *cmask; + + /* Used to implement R/W bytes */ + uint8_t *wmask; + + /* Used to implement RW1C(Write 1 to Clear) bytes */ + uint8_t *w1cmask; + + /* MMIO for the SHPC BAR */ + MemoryRegion mmio; + + /* Bus controlled by this SHPC */ + PCIBus *sec_bus; + + /* MSI already requested for this event */ + int msi_requested; +}; + +void shpc_reset(PCIDevice *d); +int shpc_bar_size(PCIDevice *dev); +int shpc_init(PCIDevice *dev, PCIBus *sec_bus, MemoryRegion *bar, unsigned off); +void shpc_cleanup(PCIDevice *dev, MemoryRegion *bar); +void shpc_cap_write_config(PCIDevice *d, uint32_t addr, uint32_t val, int len); + +extern VMStateInfo shpc_vmstate_info; +#define SHPC_VMSTATE(_field, _type) \ + VMSTATE_BUFFER_UNSAFE_INFO(_field, _type, 0, shpc_vmstate_info, 0) + +#endif |