qdev-properties: Add DEFINE_PROP_ON_OFF_AUTO_BIT64()

DEFINE_PROP_ON_OFF_AUTO_BIT64() corresponds to DEFINE_PROP_ON_OFF_AUTO()
as DEFINE_PROP_BIT64() corresponds to DEFINE_PROP_BOOL(). The difference
is that DEFINE_PROP_ON_OFF_AUTO_BIT64() exposes OnOffAuto instead of
bool.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20250530-vdpa-v1-1-5af4109b1c19@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Akihiko Odaki 2025-05-30 13:33:16 +09:00 committed by Michael S. Tsirkin
parent 9a4e273dde
commit 52f45faa4f
2 changed files with 84 additions and 1 deletions

View file

@ -43,11 +43,22 @@ struct PropertyInfo {
ObjectPropertyRelease *release;
};
/**
* struct OnOffAutoBit64 - OnOffAuto storage with 64 elements.
* @on_bits: Bitmap of elements with "on".
* @auto_bits: Bitmap of elements with "auto".
*/
typedef struct OnOffAutoBit64 {
uint64_t on_bits;
uint64_t auto_bits;
} OnOffAutoBit64;
/*** qdev-properties.c ***/
extern const PropertyInfo qdev_prop_bit;
extern const PropertyInfo qdev_prop_bit64;
extern const PropertyInfo qdev_prop_on_off_auto_bit64;
extern const PropertyInfo qdev_prop_bool;
extern const PropertyInfo qdev_prop_uint8;
extern const PropertyInfo qdev_prop_uint16;
@ -100,6 +111,13 @@ extern const PropertyInfo qdev_prop_link;
.set_default = true, \
.defval.u = (bool)_defval)
#define DEFINE_PROP_ON_OFF_AUTO_BIT64(_name, _state, _field, _bit, _defval) \
DEFINE_PROP(_name, _state, _field, qdev_prop_on_off_auto_bit64, \
OnOffAutoBit64, \
.bitnr = (_bit), \
.set_default = true, \
.defval.i = (OnOffAuto)_defval)
#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) \
DEFINE_PROP(_name, _state, _field, qdev_prop_bool, bool, \
.set_default = true, \