[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/7] arm: smccc: handle SMCs according to SMCCC
>>> On 09.08.17 at 23:39, <volodymyr_babchuk@xxxxxxxx> wrote: > On 09.08.17 14:58, Jan Beulich wrote: >>>>> On 09.08.17 at 12:10, <julien.grall@xxxxxxx> wrote: >>> On 08/08/17 21:08, Volodymyr Babchuk wrote: >>>> +#ifndef __XEN_PUBLIC_ARCH_ARM_SMC_H__ >>>> +#define __XEN_PUBLIC_ARCH_ARM_SMC_H__ >>>> + >>>> +typedef struct { >>>> + uint32_t a[4]; >>>> +} xen_arm_smccc_uid; >> >> This is not the normal way of encoding a UID type. > Just to be clear: you are proposing to store UID in such struct > struct uuid_t { > unsigned32 time_low; > unsigned16 time_mid; > unsigned16 time_hi_and_version; > unsigned8 clock_seq_hi_and_reserved; > unsigned8 clock_seq_low; > byte node[6]; > }; > right? Type-wise yes; the names of the fields look uncommon to me. >>>> +#define XEN_ARM_SMCCC_UID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ >>>> + ((xen_arm_smccc_uid) {{(a), ((b) << 16 | (c) ), \ >> >> This is not C89 compatible. > Oops, sorry. Didn't knew that XEN should be C89 compatible. > Is there any guide for novices? I didn't found anything useful in docs/ > (not even coding style document). On wiki I have found only > "Submitting_Xen_Project_Patches" page, which is very helpful, but it > does not cover topics like which C standard to use. The public headers are required to the C89 compatible; Xen code in general is fine to use extensions. >>>> + ((d0) << 24 | (d1) << 16 | (d2) << 8 | (d3) << 0), \ >>>> + ((d4) << 24 | (d5) << 16 | (d6) << 8 | (d7) << 0)}}) >>>> + >>>> +/* >>>> + * Hypervisor Service version. >>>> + * >>>> + * We can't use XEN version here, because of SMCCC requirements: >>>> + * Major revision should change every time SMC/HVC function is removed. >>>> + * Minor revision should change every time SMC/HVC function is added. >>>> + * So, it is SMCCC protocol revision code, not XEN version. >> >> I don't understand this explanation - how is the situation here >> different from some arbitrary, non-toolstack-only hypercall? > Because this is generic interface that should be supported by all > hypervisors, including XEN. Think about this as a way for a guest to > determine under which hypervisor it operates, and which functions it > provides. In which case - why the XEN_ prefixes? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |