On Wed, Nov 12, 2014 at 4:58 PM, Andrew Cooper <andrew.coop...@citrix.com>
wrote:

> On 12/11/14 15:31, Tamas K Lengyel wrote:
> > diff --git a/xen/include/public/mem_event.h
> b/xen/include/public/mem_event.h
> > index 599f9e8..c0e9394 100644
> > --- a/xen/include/public/mem_event.h
> > +++ b/xen/include/public/mem_event.h
> > @@ -49,15 +49,19 @@
> >  #define MEM_EVENT_FLAG_EMULATE_NOWRITE (1 << 6)
> >
> >  /* Reasons for the memory event request */
> > -#define MEM_EVENT_REASON_UNKNOWN     0    /* typical reason */
> > -#define MEM_EVENT_REASON_VIOLATION   1    /* access violation, GFN is
> address */
> > -#define MEM_EVENT_REASON_CR0         2    /* CR0 was hit: gfn is new
> CR0 value, gla is previous */
> > -#define MEM_EVENT_REASON_CR3         3    /* CR3 was hit: gfn is new
> CR3 value, gla is previous */
> > -#define MEM_EVENT_REASON_CR4         4    /* CR4 was hit: gfn is new
> CR4 value, gla is previous */
> > -#define MEM_EVENT_REASON_INT3        5    /* int3 was hit: gla/gfn are
> RIP */
> > -#define MEM_EVENT_REASON_SINGLESTEP  6    /* single step was invoked:
> gla/gfn are RIP */
> > -#define MEM_EVENT_REASON_MSR         7    /* MSR was hit: gfn is MSR
> value, gla is MSR address;
> > -                                             does NOT honour
> HVMPME_onchangeonly */
> > +typedef enum {
> > +    MEM_EVENT_REASON_UNKNOWN,              /* Default case */
> > +    MEM_EVENT_REASON_MEM_ACCESS_VIOLATION, /* Memory access violation */
> > +    MEM_EVENT_REASON_MEM_SHARING,          /* Memory sharing event */
> > +    MEM_EVENT_REASON_MEM_PAGING,           /* Memory paging event */
> > +    MEM_EVENT_REASON_CR0,                  /* CR0 was updated */
> > +    MEM_EVENT_REASON_CR3,                  /* CR3 was updated */
> > +    MEM_EVENT_REASON_CR4,                  /* CR4 was updated */
> > +    MEM_EVENT_REASON_INT3,                 /* Debug operation executed
> (int3) */
> > +    MEM_EVENT_REASON_SINGLESTEP,           /* Single-step (MTF) */
> > +    MEM_EVENT_REASON_MSR,                  /* An MSR was updated.
> > +                                            * Does NOT honour
> HVMPME_onchangeonly */
> > +} mem_event_reason_t;
>
> Please keep these as defines.  The width of an enum is implementation
> defined, meaning that different compilers are free to interpret the
> width of the above definition differently, which affects the size and
> alignment of mem_event_st below.
>

OK, that makes sense.

Tamas


>
> (It is completely wrong that Xen's ABI/API was ever specified using C,
> rather than a document stating actual data structure widths, but that
> horse has long-since bolted)
>
> ~Andrew
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to