[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)
- [PATCH 07/26] hw/display/apple-gfx: Makes set_mode thread & memory safe, (continued)
- [PATCH 07/26] hw/display/apple-gfx: Makes set_mode thread & memory safe, Phil Dennis-Jordan, 2024/07/17
- [PATCH 20/26] hw/display/apple-gfx: Fixes cursor hotspot handling, Phil Dennis-Jordan, 2024/07/17
- [PATCH 06/26] hw/display/apple-gfx: Removes dead/superfluous code, Phil Dennis-Jordan, 2024/07/17
- [PATCH 17/26] hw/display/apple-gfx: Asynchronous rendering and graphics update, Phil Dennis-Jordan, 2024/07/17
- [PATCH 13/26] hw/display/apple-gfx: Defines PGTask_s struct instead of casting, Phil Dennis-Jordan, 2024/07/17
- [PATCH 16/26] hw/display/apple-gfx: Asynchronous MMIO writes on x86-64, Phil Dennis-Jordan, 2024/07/17
[PATCH 11/26] hw/display/apple-gfx: Uses ObjC category extension for private property,
Phil Dennis-Jordan <=
[PATCH 15/26] hw/display/apple-gfx: Separates generic & vmapple-specific functionality, Phil Dennis-Jordan, 2024/07/17
[PATCH 19/26] ui/cocoa: Adds non-app runloop on main thread mode, Phil Dennis-Jordan, 2024/07/17
[PATCH 12/26] hw/display/apple-gfx: Task memory mapping cleanup, Phil Dennis-Jordan, 2024/07/17
[PATCH 26/26] hw/display/apple-gfx: Removes UI pointer support check, Phil Dennis-Jordan, 2024/07/17
[PATCH 03/26] hw/display/apple-gfx: Moved from hw/vmapple/, Phil Dennis-Jordan, 2024/07/17
[PATCH 18/26] hw/display/apple-gfx: Adds PCI implementation, Phil Dennis-Jordan, 2024/07/17
[PATCH 22/26] hw/display/apple-gfx: Replaces magic number with queried MMIO length, Phil Dennis-Jordan, 2024/07/17
[PATCH 14/26] hw/display/apple-gfx: Refactoring of realize function, Phil Dennis-Jordan, 2024/07/17