qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 11/26] hw/display/apple-gfx: Uses ObjC category extension for pri


From: Phil Dennis-Jordan
Subject: [PATCH 11/26] hw/display/apple-gfx: Uses ObjC category extension for private property
Date: Mon, 15 Jul 2024 23:06:50 +0200

The vmapple mmio implementation of the PG device uses an IOService
mapper for sharing video memory between host and guest. This is only
exposed via a private property on the PGDeviceDescriptor class. The
code has so far declared this in a dummy derived class; the idiomatic
Objective-C way of exposing private APIs on a class is via a category
extension. This change does exactly that; this also avoids the extra
cast to access the property.

Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
---
 hw/display/apple-gfx.m | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/hw/display/apple-gfx.m b/hw/display/apple-gfx.m
index 073741ede5..6537e32806 100644
--- a/hw/display/apple-gfx.m
+++ b/hw/display/apple-gfx.m
@@ -51,7 +51,7 @@
 typedef bool(^IOSFCUnmapMemory)(void *a, void *b, void *c, void *d, void *e, 
void *f);
 typedef bool(^IOSFCMapMemory)(uint64_t phys, uint64_t len, bool ro, void **va, 
void *e, void *f);
 
-@interface PGDeviceDescriptorExt : PGDeviceDescriptor
+@interface PGDeviceDescriptor (IOSurfaceMapper)
 @property (readwrite, nonatomic) bool usingIOSurfaceMapper;
 @end
 
@@ -396,7 +396,6 @@ static void apple_gfx_realize(DeviceState *dev, Error 
**errp)
     PGDeviceDescriptor *desc = [PGDeviceDescriptor new];
     PGDisplayDescriptor *disp_desc = [PGDisplayDescriptor new];
     PGIOSurfaceHostDeviceDescriptor *iosfc_desc = 
[PGIOSurfaceHostDeviceDescriptor new];
-    PGDeviceDescriptorExt *desc_ext = (PGDeviceDescriptorExt *)desc;
     PGDisplayMode *modes[ARRAY_SIZE(apple_gfx_modes)];
     int i;
 
@@ -408,7 +407,7 @@ static void apple_gfx_realize(DeviceState *dev, Error 
**errp)
     s->mtl = MTLCreateSystemDefaultDevice();
 
     desc.device = s->mtl;
-    desc_ext.usingIOSurfaceMapper = true;
+    desc.usingIOSurfaceMapper = true;
 
     desc.createTask = ^(uint64_t vmSize, void * _Nullable * _Nonnull 
baseAddress) {
         AppleGFXTask *task = apple_gfx_new_task(s, vmSize);
-- 
2.39.3 (Apple Git-146)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]