mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-23 00:45:40 +00:00
object: add uint property setter/getter
Backports commit 3152779cd63ba41331ef41659406f65b03e7911a from qemu
This commit is contained in:
parent
fef464c4cb
commit
ca25248ecd
|
@ -985,6 +985,29 @@ void object_property_set_int(struct uc_struct *uc, Object *obj, int64_t value,
|
|||
int64_t object_property_get_int(struct uc_struct *uc, 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(struct uc_struct *uc, 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(struct uc_struct *uc, Object *obj,
|
||||
const char *name, Error **errp);
|
||||
|
||||
/**
|
||||
* object_property_set:
|
||||
* @obj: the object
|
||||
|
|
|
@ -1096,6 +1096,35 @@ int64_t object_property_get_int(struct uc_struct *uc, Object *obj, const char *n
|
|||
return retval;
|
||||
}
|
||||
|
||||
void object_property_set_uint(struct uc_struct *uc, Object *obj, uint64_t value,
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
QNum *qnum = qnum_from_uint(value);
|
||||
|
||||
object_property_set_qobject(uc, obj, QOBJECT(qnum), name, errp);
|
||||
QDECREF(qnum);
|
||||
}
|
||||
|
||||
uint64_t object_property_get_uint(struct uc_struct *uc, Object *obj,
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
QObject *ret = object_property_get_qobject(uc, 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;
|
||||
}
|
||||
|
||||
void object_property_parse(struct uc_struct *uc, Object *obj, const char *string,
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue