diff mbox series

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

Message ID 20240715210705.32365-12-phil@philjordan.eu (mailing list archive)
State New, archived
Headers show
Series [01/26] hw/vmapple/apple-gfx: Introduce ParavirtualizedGraphics.Framework support | expand

Commit Message

Phil Dennis-Jordan July 15, 2024, 9:06 p.m. UTC
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 mbox series

Patch

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);