They're not function pointers but blocks.
Adding this to address review comments but I don't think it's worthwhile.

Signed-off-by: Mohamed Mediouni <[email protected]>
---
 hw/display/apple-gfx-mmio.m | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/hw/display/apple-gfx-mmio.m b/hw/display/apple-gfx-mmio.m
index 2031baceda..fa4362653b 100644
--- a/hw/display/apple-gfx-mmio.m
+++ b/hw/display/apple-gfx-mmio.m
@@ -188,6 +188,22 @@ static bool apple_gfx_mmio_unmap_surface_memory(void *ptr)
     return true;
 }
 
+/* Legacy memory management API: Gone in macOS 15.4 and later. */
+static bool (^apple_gfx_map_memory)
+ (uint64_t phys, uint64_t len, bool ro, void **va, void *e, void *f)
+ = ^bool(uint64_t phys, uint64_t len, bool ro, void **va, void *e, void *f){
+    *va = apple_gfx_mmio_map_surface_memory(phys, len, ro);
+
+    trace_apple_gfx_iosfc_map_memory(phys, len, ro, va, e, f, *va);
+
+    return *va != NULL;
+};
+
+static bool (^apple_gfx_unmap_memory)(void *va, void *b, void *c, void *d, 
void *e, void *f)
+ = ^bool(void *va, void *b, void *c, void *d, void *e, void *f){
+    return apple_gfx_mmio_unmap_surface_memory(va);
+};
+
 static PGIOSurfaceHostDevice *apple_gfx_prepare_iosurface_host_device(
     AppleGFXMMIOState *s)
 {
@@ -207,19 +223,8 @@ static bool apple_gfx_mmio_unmap_surface_memory(void *ptr)
         iosfc_desc.mmioLength = 0x10000;
         iosfc_desc.memoryMapDescriptor = memoryMapDescriptor;
     } else {
-        iosfc_desc.mapMemory =
-            ^bool(uint64_t phys, uint64_t len, bool ro, void **va, void *e, 
void *f) {
-                *va = apple_gfx_mmio_map_surface_memory(phys, len, ro);
-
-                trace_apple_gfx_iosfc_map_memory(phys, len, ro, va, e, f, *va);
-
-                return *va != NULL;
-            };
-
-        iosfc_desc.unmapMemory =
-            ^bool(void *va, void *b, void *c, void *d, void *e, void *f) {
-                return apple_gfx_mmio_unmap_surface_memory(va);
-            };
+        iosfc_desc.mapMemory = apple_gfx_map_memory;
+        iosfc_desc.unmapMemory = apple_gfx_unmap_memory;
     }
 
     iosfc_desc.raiseInterrupt = ^bool(uint32_t vector) {
-- 
2.50.1 (Apple Git-155)


Reply via email to