On 1/27/23 05:07, Jean-Philippe Brucker wrote:
+static void rme_get_uint32(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ RmeGuest *guest = RME_GUEST(obj);
+ uint32_t value;
+
+ if (strcmp(name, "sve-vector-length") == 0) {
+ value = guest->sve_vl;
+ } else {
+ g_assert_not_reached();
+ }
+
+ visit_type_uint32(v, name, &value, errp);
+}
Something I've used elsewhere just recently (and should probably make generic:
static void rme_get_uint32(...)
{
intptr_t offset = (intptr_t)opaque;
uint32_t *ptr = (void *)obj + offset;
visit_type_uint32(v, name, ptr, errp);
}
object_class_property_add(oc, "sve-vector-length", "uint32",
rme_get_uint32, rme_set_sve, NULL,
(void *)(intptr_t)offsetof(RmeGuest, sve_vl));
r~