|
@@ -37,6 +37,7 @@ extern PropertyInfo qdev_prop_arraylen;
|
|
|
.offset = offsetof(_state, _field) \
|
|
|
+ type_check(_type, typeof_field(_state, _field)), \
|
|
|
}
|
|
|
+
|
|
|
#define DEFINE_PROP_SIGNED(_name, _state, _field, _defval, _prop, _type) { \
|
|
|
.name = (_name), \
|
|
|
.info = &(_prop), \
|
|
@@ -44,21 +45,31 @@ extern PropertyInfo qdev_prop_arraylen;
|
|
|
+ type_check(_type,typeof_field(_state, _field)), \
|
|
|
.defval.i = (_type)_defval, \
|
|
|
}
|
|
|
+
|
|
|
#define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) { \
|
|
|
.name = (_name), \
|
|
|
.info = &(qdev_prop_bit), \
|
|
|
.bitnr = (_bit), \
|
|
|
.offset = offsetof(_state, _field) \
|
|
|
+ type_check(uint32_t,typeof_field(_state, _field)), \
|
|
|
- .defval.i = (bool)_defval, \
|
|
|
+ .defval.u = (bool)_defval, \
|
|
|
+ }
|
|
|
+
|
|
|
+#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type) { \
|
|
|
+ .name = (_name), \
|
|
|
+ .info = &(_prop), \
|
|
|
+ .offset = offsetof(_state, _field) \
|
|
|
+ + type_check(_type, typeof_field(_state, _field)), \
|
|
|
+ .defval.u = (_type)_defval, \
|
|
|
}
|
|
|
+
|
|
|
#define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) { \
|
|
|
.name = (_name), \
|
|
|
.info = &(qdev_prop_bit64), \
|
|
|
.bitnr = (_bit), \
|
|
|
.offset = offsetof(_state, _field) \
|
|
|
+ type_check(uint64_t, typeof_field(_state, _field)), \
|
|
|
- .defval.i = (bool)_defval, \
|
|
|
+ .defval.u = (bool)_defval, \
|
|
|
}
|
|
|
|
|
|
#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) { \
|
|
@@ -66,7 +77,7 @@ extern PropertyInfo qdev_prop_arraylen;
|
|
|
.info = &(qdev_prop_bool), \
|
|
|
.offset = offsetof(_state, _field) \
|
|
|
+ type_check(bool, typeof_field(_state, _field)), \
|
|
|
- .defval.i = (bool)_defval, \
|
|
|
+ .defval.u = (bool)_defval, \
|
|
|
}
|
|
|
|
|
|
#define PROP_ARRAY_LEN_PREFIX "len-"
|
|
@@ -107,17 +118,17 @@ extern PropertyInfo qdev_prop_arraylen;
|
|
|
}
|
|
|
|
|
|
#define DEFINE_PROP_UINT8(_n, _s, _f, _d) \
|
|
|
- DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t)
|
|
|
+ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t)
|
|
|
#define DEFINE_PROP_UINT16(_n, _s, _f, _d) \
|
|
|
- DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint16, uint16_t)
|
|
|
+ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint16, uint16_t)
|
|
|
#define DEFINE_PROP_UINT32(_n, _s, _f, _d) \
|
|
|
- DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint32, uint32_t)
|
|
|
+ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint32, uint32_t)
|
|
|
#define DEFINE_PROP_INT32(_n, _s, _f, _d) \
|
|
|
DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int32, int32_t)
|
|
|
#define DEFINE_PROP_UINT64(_n, _s, _f, _d) \
|
|
|
- DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t)
|
|
|
+ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t)
|
|
|
#define DEFINE_PROP_SIZE(_n, _s, _f, _d) \
|
|
|
- DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t)
|
|
|
+ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t)
|
|
|
#define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \
|
|
|
DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t)
|
|
|
|
|
@@ -163,7 +174,7 @@ extern PropertyInfo qdev_prop_arraylen;
|
|
|
#define DEFINE_PROP_BIOS_CHS_TRANS(_n, _s, _f, _d) \
|
|
|
DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int)
|
|
|
#define DEFINE_PROP_BLOCKSIZE(_n, _s, _f) \
|
|
|
- DEFINE_PROP_SIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint16_t)
|
|
|
+ DEFINE_PROP_UNSIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint16_t)
|
|
|
#define DEFINE_PROP_PCI_HOST_DEVADDR(_n, _s, _f) \
|
|
|
DEFINE_PROP(_n, _s, _f, qdev_prop_pci_host_devaddr, PCIHostDeviceAddress)
|
|
|
|