xref: /openbmc/qemu/include/hw/qdev-properties-system.h (revision 1c37425423f60c3e0deec6e942cfb17982fd8b6d)
1 #ifndef HW_QDEV_PROPERTIES_SYSTEM_H
2 #define HW_QDEV_PROPERTIES_SYSTEM_H
3 
4 #include "hw/qdev-properties.h"
5 
6 bool qdev_prop_sanitize_s390x_loadparm(uint8_t *loadparm, const char *str,
7                                        Error **errp);
8 
9 extern const PropertyInfo qdev_prop_chr;
10 extern const PropertyInfo qdev_prop_macaddr;
11 extern const PropertyInfo qdev_prop_reserved_region;
12 extern const PropertyInfo qdev_prop_multifd_compression;
13 extern const PropertyInfo qdev_prop_mig_mode;
14 extern const PropertyInfo qdev_prop_granule_mode;
15 extern const PropertyInfo qdev_prop_zero_page_detection;
16 extern const PropertyInfo qdev_prop_losttickpolicy;
17 extern const PropertyInfo qdev_prop_blockdev_on_error;
18 extern const PropertyInfo qdev_prop_bios_chs_trans;
19 extern const PropertyInfo qdev_prop_fdc_drive_type;
20 extern const PropertyInfo qdev_prop_drive;
21 extern const PropertyInfo qdev_prop_drive_iothread;
22 extern const PropertyInfo qdev_prop_netdev;
23 extern const PropertyInfo qdev_prop_pci_devfn;
24 extern const PropertyInfo qdev_prop_blocksize;
25 extern const PropertyInfo qdev_prop_pci_host_devaddr;
26 extern const PropertyInfo qdev_prop_uuid;
27 extern const PropertyInfo qdev_prop_audiodev;
28 extern const PropertyInfo qdev_prop_off_auto_pcibar;
29 extern const PropertyInfo qdev_prop_pcie_link_speed;
30 extern const PropertyInfo qdev_prop_pcie_link_width;
31 extern const PropertyInfo qdev_prop_cpus390entitlement;
32 extern const PropertyInfo qdev_prop_iothread_vq_mapping_list;
33 extern const PropertyInfo qdev_prop_endian_mode;
34 extern const PropertyInfo qdev_prop_vmapple_virtio_blk_variant;
35 extern const PropertyInfo qdev_prop_virtio_gpu_output_list;
36 
37 #define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d)                   \
38     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t)
39 
40 #define DEFINE_PROP_CHR(_n, _s, _f)             \
41     DEFINE_PROP(_n, _s, _f, qdev_prop_chr, CharBackend)
42 #define DEFINE_PROP_NETDEV(_n, _s, _f)             \
43     DEFINE_PROP(_n, _s, _f, qdev_prop_netdev, NICPeers)
44 #define DEFINE_PROP_DRIVE(_n, _s, _f) \
45     DEFINE_PROP(_n, _s, _f, qdev_prop_drive, BlockBackend *)
46 #define DEFINE_PROP_DRIVE_IOTHREAD(_n, _s, _f) \
47     DEFINE_PROP(_n, _s, _f, qdev_prop_drive_iothread, BlockBackend *)
48 #define DEFINE_PROP_MACADDR(_n, _s, _f)         \
49     DEFINE_PROP(_n, _s, _f, qdev_prop_macaddr, MACAddr)
50 #define DEFINE_PROP_RESERVED_REGION(_n, _s, _f)         \
51     DEFINE_PROP(_n, _s, _f, qdev_prop_reserved_region, ReservedRegion)
52 #define DEFINE_PROP_MULTIFD_COMPRESSION(_n, _s, _f, _d) \
53     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_multifd_compression, \
54                        MultiFDCompression)
55 #define DEFINE_PROP_MIG_MODE(_n, _s, _f, _d) \
56     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_mig_mode, \
57                        MigMode)
58 #define DEFINE_PROP_GRANULE_MODE(_n, _s, _f, _d) \
59     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_granule_mode, GranuleMode)
60 #define DEFINE_PROP_ZERO_PAGE_DETECTION(_n, _s, _f, _d) \
61     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_zero_page_detection, \
62                        ZeroPageDetection)
63 #define DEFINE_PROP_LOSTTICKPOLICY(_n, _s, _f, _d) \
64     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_losttickpolicy, \
65                         LostTickPolicy)
66 #define DEFINE_PROP_BLOCKDEV_ON_ERROR(_n, _s, _f, _d) \
67     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_blockdev_on_error, \
68                         BlockdevOnError)
69 #define DEFINE_PROP_BIOS_CHS_TRANS(_n, _s, _f, _d) \
70     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int)
71 #define DEFINE_PROP_BLOCKSIZE(_n, _s, _f) \
72     DEFINE_PROP_UNSIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint32_t)
73 #define DEFINE_PROP_PCI_HOST_DEVADDR(_n, _s, _f) \
74     DEFINE_PROP(_n, _s, _f, qdev_prop_pci_host_devaddr, PCIHostDeviceAddress)
75 #define DEFINE_PROP_OFF_AUTO_PCIBAR(_n, _s, _f, _d) \
76     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_off_auto_pcibar, \
77                         OffAutoPCIBAR)
78 #define DEFINE_PROP_PCIE_LINK_SPEED(_n, _s, _f, _d) \
79     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pcie_link_speed, \
80                         PCIExpLinkSpeed)
81 #define DEFINE_PROP_PCIE_LINK_WIDTH(_n, _s, _f, _d) \
82     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pcie_link_width, \
83                         PCIExpLinkWidth)
84 
85 #define DEFINE_PROP_UUID(_name, _state, _field) \
86     DEFINE_PROP(_name, _state, _field, qdev_prop_uuid, QemuUUID, \
87                 .set_default = true)
88 
89 #define DEFINE_PROP_AUDIODEV(_n, _s, _f) \
90     DEFINE_PROP(_n, _s, _f, qdev_prop_audiodev, QEMUSoundCard)
91 
92 #define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) \
93     DEFINE_PROP(_name, _state, _field, qdev_prop_uuid, QemuUUID)
94 
95 #define DEFINE_PROP_CPUS390ENTITLEMENT(_n, _s, _f, _d) \
96     DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_cpus390entitlement, \
97                        S390CpuEntitlement)
98 
99 #define DEFINE_PROP_IOTHREAD_VQ_MAPPING_LIST(_name, _state, _field) \
100     DEFINE_PROP(_name, _state, _field, qdev_prop_iothread_vq_mapping_list, \
101                 IOThreadVirtQueueMappingList *)
102 
103 #define DEFINE_PROP_ENDIAN(_name, _state, _field, _default) \
104     DEFINE_PROP_UNSIGNED(_name, _state, _field, _default, \
105                          qdev_prop_endian_mode, EndianMode)
106 #define DEFINE_PROP_ENDIAN_NODEFAULT(_name, _state, _field) \
107     DEFINE_PROP_ENDIAN(_name, _state, _field, ENDIAN_MODE_UNSPECIFIED)
108 
109 #define DEFINE_PROP_VMAPPLE_VIRTIO_BLK_VARIANT(_name, _state, _fld, _default) \
110     DEFINE_PROP_UNSIGNED(_name, _state, _fld, _default, \
111                          qdev_prop_vmapple_virtio_blk_variant, \
112                          VMAppleVirtioBlkVariant)
113 
114 #define DEFINE_PROP_VIRTIO_GPU_OUTPUT_LIST(_name, _state, _field) \
115     DEFINE_PROP(_name, _state, _field, qdev_prop_virtio_gpu_output_list, \
116                 VirtIOGPUOutputList *)
117 
118 #endif
119