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~

Reply via email to