|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH 0/7][RFC] make xenguest save & restore functions
On 15/11/2009 10:08, "Vincent Hanquez" <Vincent.Hanquez@xxxxxxxxxxxxx>
wrote:
> agree this isn't pretty. unfortunately i tried the route of changing
> the macro to get from ctx-> but the macro is used also on other files
> xc_core_x86.c and xc_resume.c which use the macro with the guest_width
> and/or p2m_size on the call stack.
>
> The only other solution I though of, would be to duplicate the value of
> the ex-globals on the stack like:
> ...
> int guest_width = ctx->guest_width;
> int p2m_size = ctx->p2m_size;
> ...
>
> I decided against, because it might look odd since it doesn't appear
> used and also means I need to track all assignment to this variable.
Another option would be for all users of the macros to have a 'xenguest_ctx'
structure, or whatever you call it. So e.g., in xc_resume:
struct xenguest_ctx _ctx, *ctx = &_ctx;
ctx->guest_width = ...
/* Leave unnecessary/meaningless fields for this caller uninitialised. */
What do you think? The ctx struct can't be that big; we can just ignore
fields that make no sense outside save/restore (i.e., kind of split it into
general-purpose and private/application-specific fields); and it does keep
the macro invocations cleaner.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|