On 08.11.23 17:04, Mark Brown wrote:
On Wed, Nov 08, 2023 at 11:42:40PM +0800, Haixu Cui wrote:
On 11/6/2023 9:33 PM, Mark Brown wrote:
On Tue, Oct 24, 2023 at 08:53:46PM +0800, Haixu Cui wrote:
+       le16 bus_num;
+       le16 chip_select_max_number;
That's a *lot* of potential buses and chip selects...
Here you mean the types of bus_num and chip_select_max_number are "le16"?
Here I use 16 bits because bus_num and num_chipselect in spi_controller
structure are both 16 bits.
Yeah, I think that's more for padding/alignment reasons than anything
else.  TBH I wondered if just going for a standard int might be better,
it's the combination of picking a smaller type but one that's relatively
large for the domain.

We cannot use int at interfaces between device and driver in the virtio world:

- "int" is machine dependent, sizeof may be 2, 4 or 8.

- It is signed which would be new for the virtio specification. Not done for other devices.

- How are signs represented? 2s complement? Strange machines do not use 2s complement. Good is that most of those strange machines have still tubes and are by now obsolete.

- The endianess is machine dependent and device and driver may use internally a different native byte ordering. Strange but this is imaginable.

le16 is a well defined unsigned type with sizeof 2 bytes and endianess defined as "little endian".

What byte ordering are the multi-byte words in - CPU native or a
particular endianness (eg, wire native)?

Virtio uses little endian. (Some data structures in the RPMB device use big endian. But this is an exception and there this was done for a good reason.)


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org

Reply via email to