|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 21/21] xen: more substitutions
>>> On 05.10.12 at 13:40, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> On Fri, 2012-10-05 at 12:33 +0100, Jan Beulich wrote:
>> >>> On 05.10.12 at 13:14, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
>> > On Fri, 2012-10-05 at 12:09 +0100, Jan Beulich wrote:
>> >> >>> On 05.10.12 at 12:38, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
>> >> > @@ -4195,6 +4197,7 @@ static int handle_iomem_range(unsigned long s,
>> > unsigned long e, void *p)
>> >> > if ( s > ctxt->s )
>> >> > {
>> >> > e820entry_t ent;
>> >> > + XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
>> >>
>> >> I'm not really in favor fo the _t suffix chosen here and below, as
>> >> that's generally used for typedef-s. Could this be replaced with
>> >> e.g. _p, _h, or _hp?
>> >
>> > The use is
>> > buffer_t = guest_handle_cast(ctxt->map.buffer, e820entry_t);
>> > buffer = guest_handle_from_param(buffer_t, e820entry_t);
>> > which seems a bit strange to me -- we launder through buffer_t solely to
>> > use guest_handle_from_param. Is there no macro which does that in one
>> > step?
>> >
>> > That would avoid the whole problem of the suffix choice.
>> >
>> > Also buffer is then passed to __copy_to_guest_offset, and I'm not sure
>> > why that can't be passed ctxt->map.buffer directly rather than
>> > laundering it through those two macros...
>>
>> Passing directly is not possible, as the type referred to be the
>> handle is relevant for the macro's operation (and it's "void" in
>> struct xen_memory_map).
>
> That's the bit I missed.
>
> Although the question is then why not type the buffer correctly...
Because the type itself isn't Xen-defined and hence also not
exposed in Xen's public interface (which in particular allows
guests to use their own type without any need of casting).
Jan
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |