소스 검색

memory: Have memory_region_init_ram() handler return a boolean

Following the example documented since commit e3fe3988d7 ("error:
Document Error API usage rules"), have memory_region_init_ram()
return a boolean indicating whether an error is set or not.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Message-Id: <20231120213301.24349-7-philmd@linaro.org>
Philippe Mathieu-Daudé 1 년 전
부모
커밋
fe5f33d6b0
2개의 변경된 파일7개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 1
      include/exec/memory.h
  2. 4 2
      system/memory.c

+ 3 - 1
include/exec/memory.h

@@ -1582,8 +1582,10 @@ void memory_region_init_iommu(void *_iommu_mr,
  * give the RAM block a unique name for migration purposes.
  * give the RAM block a unique name for migration purposes.
  * We should lift this restriction and allow arbitrary Objects.
  * We should lift this restriction and allow arbitrary Objects.
  * If you pass a non-NULL non-device @owner then we will assert.
  * If you pass a non-NULL non-device @owner then we will assert.
+ *
+ * Return: true on success, else false setting @errp with error.
  */
  */
-void memory_region_init_ram(MemoryRegion *mr,
+bool memory_region_init_ram(MemoryRegion *mr,
                             Object *owner,
                             Object *owner,
                             const char *name,
                             const char *name,
                             uint64_t size,
                             uint64_t size,

+ 4 - 2
system/memory.c

@@ -3570,7 +3570,7 @@ void mtree_info(bool flatview, bool dispatch_tree, bool owner, bool disabled)
     }
     }
 }
 }
 
 
-void memory_region_init_ram(MemoryRegion *mr,
+bool memory_region_init_ram(MemoryRegion *mr,
                             Object *owner,
                             Object *owner,
                             const char *name,
                             const char *name,
                             uint64_t size,
                             uint64_t size,
@@ -3579,7 +3579,7 @@ void memory_region_init_ram(MemoryRegion *mr,
     DeviceState *owner_dev;
     DeviceState *owner_dev;
 
 
     if (!memory_region_init_ram_nomigrate(mr, owner, name, size, errp)) {
     if (!memory_region_init_ram_nomigrate(mr, owner, name, size, errp)) {
-        return;
+        return false;
     }
     }
     /* This will assert if owner is neither NULL nor a DeviceState.
     /* This will assert if owner is neither NULL nor a DeviceState.
      * We only want the owner here for the purposes of defining a
      * We only want the owner here for the purposes of defining a
@@ -3589,6 +3589,8 @@ void memory_region_init_ram(MemoryRegion *mr,
      */
      */
     owner_dev = DEVICE(owner);
     owner_dev = DEVICE(owner);
     vmstate_register_ram(mr, owner_dev);
     vmstate_register_ram(mr, owner_dev);
+
+    return true;
 }
 }
 
 
 void memory_region_init_rom(MemoryRegion *mr,
 void memory_region_init_rom(MemoryRegion *mr,