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);
|
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 = {
|
const PropertyInfo qdev_prop_uint64 = {
|
||||||
.name = "uint64",
|
.name = "uint64",
|
||||||
.get = get_uint64,
|
.get = get_uint64,
|
||||||
@ -411,6 +436,13 @@ const PropertyInfo qdev_prop_uint64 = {
|
|||||||
.set_default_value = set_default_value_uint,
|
.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 --- */
|
/* --- string --- */
|
||||||
|
|
||||||
static void release_string(Object *obj, const char *name, void *opaque)
|
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_uint32;
|
||||||
extern const PropertyInfo qdev_prop_int32;
|
extern const PropertyInfo qdev_prop_int32;
|
||||||
extern const PropertyInfo qdev_prop_uint64;
|
extern const PropertyInfo qdev_prop_uint64;
|
||||||
|
extern const PropertyInfo qdev_prop_int64;
|
||||||
extern const PropertyInfo qdev_prop_size;
|
extern const PropertyInfo qdev_prop_size;
|
||||||
extern const PropertyInfo qdev_prop_string;
|
extern const PropertyInfo qdev_prop_string;
|
||||||
extern const PropertyInfo qdev_prop_chr;
|
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_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int32, int32_t)
|
||||||
#define DEFINE_PROP_UINT64(_n, _s, _f, _d) \
|
#define DEFINE_PROP_UINT64(_n, _s, _f, _d) \
|
||||||
DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t)
|
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 DEFINE_PROP_SIZE(_n, _s, _f, _d) \
|
||||||
DEFINE_PROP_UNSIGNED(_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 DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \
|
||||||
|
Loading…
Reference in New Issue
Block a user