On 04/05/2018 03:22 AM, Philippe Mathieu-Daudé wrote:
Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
---
Sadly I'm missing something, this does not work.

Hmmm is that supposed to work dynamically?

If so I think you might need to call
memory_region_update_container_subregions(..) because it will
actually change the map?

Take a look at how memory_add_subregion works.

Thanks,
Fred


  memory.c | 18 +++++++++++++++++-
  1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/memory.c b/memory.c
index eaa5fa7f23..ae45ea7779 100644
--- a/memory.c
+++ b/memory.c
@@ -1225,6 +1225,22 @@ static void memory_region_get_priority(Object *obj, 
Visitor *v,
      visit_type_int32(v, name, &value, errp);
  }
+static void memory_region_set_priority(Object *obj, Visitor *v,
+                                       const char *name, void *opaque,
+                                       Error **errp)
+{
+    MemoryRegion *mr = MEMORY_REGION(obj);
+    int32_t priority;
+    Error *local_err = NULL;
+
+    visit_type_int32(v, name, &priority, &local_err);
+    if (local_err) {
+        error_propagate(errp, local_err);
+        return;
+    }
+    mr->priority = priority;
+}
+
  static void memory_region_get_size(Object *obj, Visitor *v, const char *name,
                                     void *opaque, Error **errp)
  {
@@ -1260,7 +1276,7 @@ static void memory_region_initfn(Object *obj)
                          NULL, NULL, &error_abort);
      object_property_add(OBJECT(mr), "priority", "int32",
                          memory_region_get_priority,
-                        NULL, /* memory_region_set_priority */
+                        memory_region_set_priority,
                          NULL, NULL, &error_abort);
      object_property_add(OBJECT(mr), "size", "uint64",
                          memory_region_get_size,


Reply via email to