#include "qemu/osdep.h"
#include "sysemu/rng.h"
#include "qapi/error.h"
-#include "qapi/qmp/qerror.h"
#include "qemu/module.h"
#include "qom/object_interfaces.h"
static void rng_backend_complete(UserCreatable *uc, Error **errp)
{
- object_property_set_bool(OBJECT(uc), "opened", true, errp);
-}
-
-static void rng_backend_prop_set_opened(Object *obj, bool value, Error **errp)
-{
- RngBackend *s = RNG_BACKEND(obj);
+ RngBackend *s = RNG_BACKEND(uc);
RngBackendClass *k = RNG_BACKEND_GET_CLASS(s);
Error *local_err = NULL;
- if (value == s->opened) {
- return;
- }
-
- if (!value && s->opened) {
- error_setg(errp, QERR_PERMISSION_DENIED);
- return;
- }
-
if (k->opened) {
k->opened(s, &local_err);
if (local_err) {
RngBackend *s = RNG_BACKEND(obj);
QSIMPLEQ_INIT(&s->requests);
-
- object_property_add_bool(obj, "opened",
- rng_backend_prop_get_opened,
- rng_backend_prop_set_opened);
}
static void rng_backend_finalize(Object *obj)
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
ucc->complete = rng_backend_complete;
+
+ object_class_property_add_bool(oc, "opened",
+ rng_backend_prop_get_opened,
+ NULL);
}
static const TypeInfo rng_backend_info = {