WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH] xen: add a comment for hypercall_xlat_continuati

To: "Ian Campbell" <ian.campbell@xxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH] xen: add a comment for hypercall_xlat_continuation
From: "Jan Beulich" <JBeulich@xxxxxxxx>
Date: Thu, 10 Nov 2011 09:11:15 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, Jean Guyader <jean.guyader@xxxxxxxxxxxxx>
Delivery-date: Thu, 10 Nov 2011 01:12:51 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <3c6eaf62996dd26d7d0a.1320911866@xxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <3c6eaf62996dd26d7d0a.1320911866@xxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> On 10.11.11 at 08:57, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
> # HG changeset patch
> # User Ian Campbell <ian.campbell@xxxxxxxxxx>
> # Date 1320911800 0
> # Node ID 3c6eaf62996dd26d7d0a055955d30bc6c7067f91
> # Parent  e6af32ecb4483457d5ad9a7b674c18aaf20cc085
> xen: add a comment for hypercall_xlat_continuation
> 
> The interface of this function is really rather complex and having reverse
> engineered it for the N'th time I think it is time to write things down.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

Thanks for doing this!
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

> diff -r e6af32ecb448 -r 3c6eaf62996d xen/include/xen/compat.h
> --- a/xen/include/xen/compat.h        Tue Oct 18 14:15:09 2011 +0100
> +++ b/xen/include/xen/compat.h        Thu Nov 10 07:56:40 2011 +0000
> @@ -185,6 +185,34 @@ static inline int name(k xen_ ## n *x, k
>      CHECK_FIELD_COMMON_(k, CHECK_NAME_(k, n ## __ ## f1 ## __ ## f2 ## __ 
> ## \
>                                         f3, F2), n, f1.f2.f3)
>  
> +/*
> + * Translate a native continuation into a compat guest continuation.
> + *
> + * id: If non-NULL then points to an integer N between 0-5. Will be updated
> + * with the value of the N'th argument to the hypercall. The N'th argument 
> must
> + * not be subject to translation (i.e. cannot be referenced by @mask 
> below).
> + * This option is useful for extracting the "op" argument or similar from 
> the
> + * hypercall to enable further xlat processing.
> + *
> + * mask: Specifies which of the hypercall arguments require compat 
> translation.
> + * bit 0 indicates that the 0'th argument requires translation, bit 1 
> indicates
> + * that the first argument requires translation and so on. Native and 
> compat
> + * values for each translated argument are provided as @varargs (see 
> below).
> + *
> + * varargs: For each bit which is set in @mask the varargs contain a native
> + * value (unsigned long) and a compat value (unsigned int). If the native 
> value
> + * and compat value differ and the N'th argument is equal to the native 
> value
> + * then that argument is replaced by the compat value. If the native and 
> compat
> + * values are equal then no translation takes place. If the N'th argument 
> does
> + * not equal the native value then no translation takes place.
> + *
> + * Any untranslated argument (whether due to not being requested in @mask,
> + * native and compat values being equal or N'th argument not equalling 
> native
> + * value) must be equal in both native and compat representations (i.e. the
> + * native version cannot have any bits > 32 set)
> + *
> + * Return: Number of arguments which were actually translated.
> + */
>  int hypercall_xlat_continuation(unsigned int *id, unsigned int mask, ...);
>  
>  /* In-place translation functons: */




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>