[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 13/26] hw/display/apple-gfx: Defines PGTask_s struct instead of c
From: |
Phil Dennis-Jordan |
Subject: |
[PATCH 13/26] hw/display/apple-gfx: Defines PGTask_s struct instead of casting |
Date: |
Mon, 15 Jul 2024 23:06:52 +0200 |
The struct PGTask_s is only forward-declared by the macOS
ParavirtualizedGraphics.framework and treated as opaque, which
means client code can safely provide its own definition.
This change does exactly that, renaming struct AppleGFXTask to
PGTask_s, but keeping the original typedef name. The upshot are
improved type safety and fewer casts.
Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
---
hw/display/apple-gfx.m | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/hw/display/apple-gfx.m b/hw/display/apple-gfx.m
index a23f731ddc..39e33ed999 100644
--- a/hw/display/apple-gfx.m
+++ b/hw/display/apple-gfx.m
@@ -62,13 +62,13 @@ -(uint32_t)mmioReadAtOffset:(size_t) offset;
-(void)mmioWriteAtOffset:(size_t) offset value:(uint32_t)value;
@end
-typedef struct AppleGFXTask {
- QTAILQ_ENTRY(AppleGFXTask) node;
+typedef struct PGTask_s { // Name matches forward declaration in PG header
+ QTAILQ_ENTRY(PGTask_s) node;
mach_vm_address_t address;
uint64_t len;
} AppleGFXTask;
-typedef QTAILQ_HEAD(, AppleGFXTask) AppleGFXTaskList;
+typedef QTAILQ_HEAD(, PGTask_s) AppleGFXTaskList;
typedef struct AppleGFXState {
SysBusDevice parent_obj;
@@ -384,19 +384,19 @@ static void apple_gfx_realize(DeviceState *dev, Error
**errp)
AppleGFXTask *task = apple_gfx_new_task(s, vmSize);
*baseAddress = (void*)task->address;
trace_apple_gfx_create_task(vmSize, *baseAddress);
- return (PGTask_t *)task;
+ return task;
};
- desc.destroyTask = ^(PGTask_t * _Nonnull _task) {
- AppleGFXTask *task = (AppleGFXTask *)_task;
+ desc.destroyTask = ^(AppleGFXTask * _Nonnull task) {
trace_apple_gfx_destroy_task(task);
QTAILQ_REMOVE(&s->tasks, task, node);
mach_vm_deallocate(mach_task_self(), task->address, task->len);
g_free(task);
};
- desc.mapMemory = ^(PGTask_t * _Nonnull _task, uint32_t rangeCount,
uint64_t virtualOffset, bool readOnly, PGPhysicalMemoryRange_t * _Nonnull
ranges) {
- AppleGFXTask *task = (AppleGFXTask*)_task;
+ desc.mapMemory = ^(AppleGFXTask * _Nonnull task, uint32_t rangeCount,
+ uint64_t virtualOffset, bool readOnly,
+ PGPhysicalMemoryRange_t * _Nonnull ranges) {
kern_return_t r;
mach_vm_address_t target, source;
trace_apple_gfx_map_memory(task, rangeCount, virtualOffset, readOnly);
@@ -433,8 +433,8 @@ static void apple_gfx_realize(DeviceState *dev, Error
**errp)
return (bool)true;
};
- desc.unmapMemory = ^(PGTask_t * _Nonnull _task, uint64_t virtualOffset,
uint64_t length) {
- AppleGFXTask *task = (AppleGFXTask *)_task;
+ desc.unmapMemory = ^(AppleGFXTask * _Nonnull task, uint64_t virtualOffset,
+ uint64_t length) {
kern_return_t r;
mach_vm_address_t range_address;
--
2.39.3 (Apple Git-146)
- [PATCH 21/26] hw/display/apple-gfx: Implements texture syncing for non-UMA GPUs, (continued)
- [PATCH 21/26] hw/display/apple-gfx: Implements texture syncing for non-UMA GPUs, Phil Dennis-Jordan, 2024/07/17
- [PATCH 04/26] hw/display/apple-gfx: uses DEFINE_TYPES macro, Phil Dennis-Jordan, 2024/07/17
- [PATCH 23/26] hw/display/apple-gfx: Host GPU picking improvements, Phil Dennis-Jordan, 2024/07/17
- [PATCH 01/26] hw/vmapple/apple-gfx: Introduce ParavirtualizedGraphics.Framework support, Phil Dennis-Jordan, 2024/07/17
- [PATCH 02/26] hw/vmapple/apple-gfx: BQL renaming update, Phil Dennis-Jordan, 2024/07/17
- [PATCH 05/26] hw/display/apple-gfx: native -> little endian memory ops, Phil Dennis-Jordan, 2024/07/17
- [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 <=
- [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, 2024/07/17
[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