Rusty Russell wrote:
On Thursday 08 November 2007 04:30:50 Anthony Liguori wrote:
I would prefer that the virtio API not expose a little endian standard.
I'm currently converting config->get() ops to ioreadXX depending on the
size which already does the endianness conversion for me so this just
messes things up. I think it's better to let the backend deal with
endianness since it's trivial to handle for both the PCI backend and the
lguest backend (lguest doesn't need to do any endianness conversion).
-ETOOMUCHMAGIC. We should either expose all the XX interfaces (but this isn't
a high-speed interface, so let's not) or not "sometimes" convert endianness.
Getting surprises because a field happens to be packed into 4 bytes is
counter-intuitive.
Then I think it's necessary to expose the XX interfaces. Otherwise, the
backend has to deal with doing all register operations at a per-byte
granularity which adds a whole lot of complexity on a per-device basis
(as opposed to a little complexity once in the transport layer).
You really want to be able to rely on multi-byte atomic operations too
when setting values. Otherwise, you need another register to just to
signal when it's okay for the device to examine any given register.
Regards,
Anthony Liguori
Since your most trivial implementation is to do a byte at a time, I don't
think you have a good argument on that basis either.
Cheers,
Rusty.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]