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 <p...@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)