|
From: | Robert Reif |
Subject: | Re: [Qemu-devel] [RFC] 64 bit device I/O |
Date: | Wed, 25 Feb 2009 06:55:26 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081204 SeaMonkey/1.1.14 |
Avi Kivity wrote:
I just tried this by changing exec.c to use a structure internally but still provide an array interface through the old interface and it's a real nice cleanup until you have to deal with subpages. Changing the subpage code over to a structure doesn't really improve it any.Robert Reif wrote:Blue Swirl wrote:Would it be better to use a structure with four elements with correct types (including uint8/16_t) instead of the cast? This could also be limited to only cpu_register_io_memory64.This is what I would prefer and is what the first version of this patchthat I submitted a year ago did: http://landley.net/qemu/2008-01-01.htmlThe problem is that every hardware driver would need to be changed and some of them would need to be changed drastically because they use thesame functions for all three data sizes. No one seemed interested in thisapproach so I abandoned it. This approach while uglier requires no changes to the hardware drivers unless they need 64 bit support so I hoped it would be better received.You might try adding a struct-based 4-function interface, and implementing the array-based 3-function interface on top of that. This way, no immediate changes would be needed for devices, but we could change them incrementally from the old interface to the new interface.
Why is the subpage code now saving so much redundant stuff compared to what it initially started out as. Is it because that one VGA driver is messing with the internals of QEMU?
[Prev in Thread] | Current Thread | [Next in Thread] |