On 5/15/25 14:20, Thomas Huth wrote:
+static int machine_get_endianness(Object *obj, Error **errp G_GNUC_UNUSED)
+{
+    S3Adsp1800MachineState *ms = PETALOGIX_S3ADSP1800_MACHINE(obj);
+    return ms->endianness;
+}
+
+static void machine_set_endianness(Object *obj, int endianness, Error **errp)
+{
+    S3Adsp1800MachineState *ms = PETALOGIX_S3ADSP1800_MACHINE(obj);
+    ms->endianness = endianness;
+}
+
  static void petalogix_s3adsp1800_machine_class_init(ObjectClass *oc,
                                                      const void *data)
  {
      MachineClass *mc = MACHINE_CLASS(oc);
+    ObjectProperty *prop;
mc->desc = "PetaLogix linux refdesign for xilinx Spartan 3ADSP1800";
      mc->init = petalogix_s3adsp1800_init;
      mc->is_default = true;
+
+    prop = object_class_property_add_enum(oc, "endianness", "EndianMode",
+                                          &EndianMode_lookup,
+                                          machine_get_endianness,
+                                          machine_set_endianness);
+    object_property_set_default_str(prop, TARGET_BIG_ENDIAN ? "big" : 
"little");
+    object_class_property_set_description(oc, "endianness",
+            "Defines whether the machine runs in big or little endian mode");


Better with Property?  You don't have to write get/set...

  static const Property props[] = {
    DEFINE_PROP_ENDIAN("endianness", S3Adsp1800MachineState, endianness,
                       TARGET_BIG_ENDIAN ? ENDIAN_MODE_BIG : 
ENDIAN_MODE_LITTLE),
  };

  device_class_set_props(dc, props);


r~

Reply via email to