[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/3] docs: specify endianess of xenstore protocol header
On 08/05/17 12:24, Ian Jackson wrote: > Juergen Gross writes ("Re: [PATCH 1/3] docs: specify endianess of xenstore > protocol header"): >> On 08/05/17 12:07, Ian Jackson wrote: >>> Yes, but this is not correct. On a big-endian cpu, they would be in >>> big-endian. >> >> We don't support big-endian cpus, right? Do we want to specify the >> protocol for unsupported cpus? > > We have in the past supported big-endian CPUs. There is no > particular reason to think that a future Xen port will be to only a > little-endian CPU. > >>> On a bytesexual cpu, the endianness should be specified but it will be >>> the same endianness as shared ring fields, etc. So this doc probably >>> ought not to contain a list of endiannesses. Best just to say that >>> the fields are all in host native byte order. >> >> Hmm, this is problematic. How does a guest started e.g. big-endian on a >> cpu capable of both byte orders know which endianess the host has? I >> think specifying one endianess in this case is the better approach. > > The same way that the guest knows the endianness of the other cpu > structures. > >> BTW: I'm quite sure we don't support big-endian guests (or host) on ARM >> either, do we? > > I have no idea. If we do, they will need to byteswap things when > talking PV protocols. > >> I could reword the paragraph to: >> >> "The header fields are in the default endianess of the processor, e.g. >> little endian on x86 and ARM." > > What information about endianness is in xen/include/public ? xen/include/public> grep -iRI endian . ./arch-arm.h: * hypercall arguments are always little endian. ./arch-arm.h:#define PSR_BIG_ENDIAN (1<<9) /* arm32: Big Endian Mode */ ./arch-x86/hvm/start_info.h: * The address and sizes are always a 64bit little endian unsigned integer. ./io/sndif.h: * XENSND_PCM_FORMAT_<format>[_<endian>] ./io/sndif.h: * endian: <LE/BE>, may be absent ./io/sndif.h: * LE - Little endian, BE - Big endian So with the exception of sndif.h: always little endian. > I don't think the xenstore doc should contain its own indication of > endianness. That leaves open the possibility that the docs might > specify (and someone might implement!) a mixed-endian system, where > the public headers and PV protocols are in one endianness, but > xenstore in another, because of differences in docs wording. > > How about if xenstore.txt says something like `the endianness is the > same as that of the structures in the Xen public headers and the Xen > PV protocols' ? Same as hypercall argument endianness? Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |