qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 1/2] memory: Fix old portio word accesses


From: Avi Kivity
Subject: Re: [Qemu-devel] [PATCH v2 1/2] memory: Fix old portio word accesses
Date: Mon, 19 Sep 2011 16:58:22 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2

On 09/19/2011 04:55 PM, Gerd Hoffmann wrote:

If the register access is trivial then you don't need to call into the driver at all ...

You can have a look at hw/intel-hda.c which actually implements something like this, with some commonly needed features:

  * The "offset" field already mentioned by avi is there, so trivial
    reads/writes can be handled by the core.
  * A "wmask" field to specify which bits are guest writable.
  * A "wclear" field to specify which bits have write-one-to-clear
    semantics.
  * A "reset" field which specified the value this field has after
    device reset.  Also serves as value for read-only registers.
  * read/write handlers of course.  The write handler is called after
    the core applied sanity checks and calculated the new register
    value (using wmask+wclear).
  * A "name" field (for debug logging).

It's pretty nice, alot more readable that a big switch, forces you to think which bits the guest can set (not specifying a wmask gives you a read-only register ;).

Also no bloat. With this moving to memory core the all the handlers will gain a line with a container_of(), but that isn't too bad too IMHO.

It's also more secure. Move as much as possible into the core, and review (and fuzz) that like hell.

--
error compiling committee.c: too many arguments to function




reply via email to

[Prev in Thread] Current Thread [Next in Thread]