qdev: provide DEFINE_PROP_INT64()
We have nearly all the stuff, but this one is missing. Add it in. Am going to use this new helper for MigrationParameters fields, since most of them are int64_t. CC: Markus Armbruster <armbru@redhat.com> CC: Eduardo Habkost <ehabkost@redhat.com> CC: Marc-André Lureau <marcandre.lureau@redhat.com> CC: Peter Xu <peterx@redhat.com> CC: Juan Quintela <quintela@redhat.com> CC: Marcel Apfelbaum <marcel@redhat.com> CC: Eric Blake <eblake@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <1500349150-13240-2-git-send-email-peterx@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
32bce19634
commit
07d1d063d3
@ -404,6 +404,31 @@ static void set_uint64(Object *obj, Visitor *v, const char *name,
|
||||
visit_type_uint64(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
static void get_int64(Object *obj, Visitor *v, const char *name,
|
||||
void *opaque, Error **errp)
|
||||
{
|
||||
DeviceState *dev = DEVICE(obj);
|
||||
Property *prop = opaque;
|
||||
int64_t *ptr = qdev_get_prop_ptr(dev, prop);
|
||||
|
||||
visit_type_int64(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
static void set_int64(Object *obj, Visitor *v, const char *name,
|
||||
void *opaque, Error **errp)
|
||||
{
|
||||
DeviceState *dev = DEVICE(obj);
|
||||
Property *prop = opaque;
|
||||
int64_t *ptr = qdev_get_prop_ptr(dev, prop);
|
||||
|
||||
if (dev->realized) {
|
||||
qdev_prop_set_after_realize(dev, name, errp);
|
||||
return;
|
||||
}
|
||||
|
||||
visit_type_int64(v, name, ptr, errp);
|
||||
}
|
||||
|
||||
const PropertyInfo qdev_prop_uint64 = {
|
||||
.name = "uint64",
|
||||
.get = get_uint64,
|
||||
@ -411,6 +436,13 @@ const PropertyInfo qdev_prop_uint64 = {
|
||||
.set_default_value = set_default_value_uint,
|
||||
};
|
||||
|
||||
const PropertyInfo qdev_prop_int64 = {
|
||||
.name = "int64",
|
||||
.get = get_int64,
|
||||
.set = set_int64,
|
||||
.set_default_value = set_default_value_int,
|
||||
};
|
||||
|
||||
/* --- string --- */
|
||||
|
||||
static void release_string(Object *obj, const char *name, void *opaque)
|
||||
|
@ -13,6 +13,7 @@ extern const PropertyInfo qdev_prop_uint16;
|
||||
extern const PropertyInfo qdev_prop_uint32;
|
||||
extern const PropertyInfo qdev_prop_int32;
|
||||
extern const PropertyInfo qdev_prop_uint64;
|
||||
extern const PropertyInfo qdev_prop_int64;
|
||||
extern const PropertyInfo qdev_prop_size;
|
||||
extern const PropertyInfo qdev_prop_string;
|
||||
extern const PropertyInfo qdev_prop_chr;
|
||||
@ -157,6 +158,8 @@ extern const PropertyInfo qdev_prop_link;
|
||||
DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int32, int32_t)
|
||||
#define DEFINE_PROP_UINT64(_n, _s, _f, _d) \
|
||||
DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t)
|
||||
#define DEFINE_PROP_INT64(_n, _s, _f, _d) \
|
||||
DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int64, int64_t)
|
||||
#define DEFINE_PROP_SIZE(_n, _s, _f, _d) \
|
||||
DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t)
|
||||
#define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \
|
||||
|
Loading…
Reference in New Issue
Block a user