|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 01/28] HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane.
On March 24, 2016 4:22:29 PM EDT, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
wrote:
>On 24/03/16 20:00, Konrad Rzeszutek Wilk wrote:
>> This hypercall mirrors the XENVER_ in that it has similar
>functionality.
>> However it is designed differently:
>> - No compat layer. The data structures are the same size on 32
>> as on 64-bit.
>> - The hypercall accepts three arguments - the command, pointer to
>> an buffer, and the length of the buffer.
>
>"a buffer"
>
>> +/* Computed by kernel_cache_init. */
>> +static xen_capabilities_info_t __read_mostly cached_cap;
>> +static unsigned int __read_mostly cached_cap_len;
>> +
>> +/*
>> + * Similar to HYPERVISOR_xen_version but with a sane interface
>> + * (has a length, one can probe for the length) and with one less
>sub-ops:
>> + * missing XENVER_compile_info.
>> + */
>> +DO(version_op)(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg,
>> + unsigned int len)
>> +{
>> + union {
>> + xen_version_op_val_t val;
>> + xen_feature_info_t fi;
>> + } u = {};
>> + unsigned int sz = 0;
>> + const void *ptr = NULL;
>> + int rc = xsm_version_op(XSM_OTHER, cmd);
>> +
>> + /* We can safely return -EPERM! */
>> + if ( rc )
>> + return rc;
>> +
>> + /*
>> + * The HYPERVISOR_xen_version differs in that some return the
>value,
>> + * and some copy it on back on argument. We follow the same rule
>for all
>> + * sub-ops: return 0 on success, positive value of bytes
>returned, and
>
>You can't return both 0 and a positive number for success. I would
>recommend "return the number of bytes written, or negative errno on
>failure".
Thanks!
And Argh!
I neglected to change the name of kernel_cache_init as Jan requested.
>
>Other than these, LGTM.
>
>Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Yeey!
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |