|
From: | Philippe Mathieu-Daudé |
Subject: | Re: [PATCH 2/3] softmmu/ioport.c: QOMify MemoryRegionPortioList |
Date: | Thu, 20 Apr 2023 10:41:47 +0200 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 |
On 19/4/23 17:16, Mark Cave-Ayland wrote:
The aim of QOMification is so that the lifetime of the MemoryRegionPortioList structure can be managed using QOM's in-built refcounting instead of having to handle this manually. Due to the use of an opaque pointer it isn't possible to model the new TYPE_MEMORY_REGION_PORTIO_LIST directly using QOM properties, however since use of the new object is restricted to the portio API we can simply set the opaque pointer (and the heap-allocated port list) internally.
In all uses this opaque pointer is a Object*. Almost all cases are a DeviceState* and one is a BusState* (IDEBus). Could this opaque become 'Object *owner' (simplifying the next patch)?
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- softmmu/ioport.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/softmmu/ioport.c b/softmmu/ioport.c index d0d5b0bcaa..238625a36f 100644 --- a/softmmu/ioport.c +++ b/softmmu/ioport.c @@ -32,11 +32,16 @@ #include "exec/address-spaces.h" #include "trace.h"-typedef struct MemoryRegionPortioList {+struct MemoryRegionPortioList { + Object obj; + MemoryRegion mr; void *portio_opaque; MemoryRegionPortio *ports; -} MemoryRegionPortioList; +};
[Prev in Thread] | Current Thread | [Next in Thread] |