mirror of
https://github.com/qemu/qemu.git
synced 2024-11-27 22:03:35 +08:00
object: add uint property setter/getter
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20170607163635.17635-13-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
5923f85fb8
commit
3152779cd6
@ -1093,6 +1093,29 @@ void object_property_set_int(Object *obj, int64_t value,
|
||||
int64_t object_property_get_int(Object *obj, const char *name,
|
||||
Error **errp);
|
||||
|
||||
/**
|
||||
* object_property_set_uint:
|
||||
* @value: the value to be written to the property
|
||||
* @name: the name of the property
|
||||
* @errp: returns an error if this function fails
|
||||
*
|
||||
* Writes an unsigned integer value to a property.
|
||||
*/
|
||||
void object_property_set_uint(Object *obj, uint64_t value,
|
||||
const char *name, Error **errp);
|
||||
|
||||
/**
|
||||
* object_property_get_uint:
|
||||
* @obj: the object
|
||||
* @name: the name of the property
|
||||
* @errp: returns an error if this function fails
|
||||
*
|
||||
* Returns: the value of the property, converted to an unsigned integer, or 0
|
||||
* an error occurs (including when the property value is not an integer).
|
||||
*/
|
||||
uint64_t object_property_get_uint(Object *obj, const char *name,
|
||||
Error **errp);
|
||||
|
||||
/**
|
||||
* object_property_get_enum:
|
||||
* @obj: the object
|
||||
|
29
qom/object.c
29
qom/object.c
@ -1216,6 +1216,35 @@ int64_t object_property_get_int(Object *obj, const char *name,
|
||||
return retval;
|
||||
}
|
||||
|
||||
void object_property_set_uint(Object *obj, uint64_t value,
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
QNum *qnum = qnum_from_uint(value);
|
||||
|
||||
object_property_set_qobject(obj, QOBJECT(qnum), name, errp);
|
||||
QDECREF(qnum);
|
||||
}
|
||||
|
||||
uint64_t object_property_get_uint(Object *obj, const char *name,
|
||||
Error **errp)
|
||||
{
|
||||
QObject *ret = object_property_get_qobject(obj, name, errp);
|
||||
QNum *qnum;
|
||||
uint64_t retval;
|
||||
|
||||
if (!ret) {
|
||||
return 0;
|
||||
}
|
||||
qnum = qobject_to_qnum(ret);
|
||||
if (!qnum || !qnum_get_try_uint(qnum, &retval)) {
|
||||
error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name, "uint");
|
||||
retval = 0;
|
||||
}
|
||||
|
||||
qobject_decref(ret);
|
||||
return retval;
|
||||
}
|
||||
|
||||
typedef struct EnumProperty {
|
||||
const char * const *strings;
|
||||
int (*get)(Object *, Error **);
|
||||
|
Loading…
Reference in New Issue
Block a user