[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V2 11/14] Introduce some macros for event channels
>>> On 21.01.13 at 15:30, Wei Liu <wei.liu2@xxxxxxxxxx> wrote: > --- a/xen/include/asm-x86/config.h > +++ b/xen/include/asm-x86/config.h > @@ -8,11 +8,13 @@ > #define __X86_CONFIG_H__ > > #define LONG_BYTEORDER 3 > +#define LONG_BITORDER 6 > +#define BYTE_BITORDER 3 The former ought to use the latter. > #define CONFIG_PAGING_LEVELS 4 > > #define BYTES_PER_LONG (1 << LONG_BYTEORDER) > #define BITS_PER_LONG (BYTES_PER_LONG << 3) > -#define BITS_PER_BYTE 8 > +#define BITS_PER_BYTE (1 << BYTE_BITORDER) > > #define CONFIG_X86 1 > #define CONFIG_X86_HT 1 Missing a similar change for ARM? > --- a/xen/include/xen/sched.h > +++ b/xen/include/xen/sched.h > @@ -69,6 +69,19 @@ extern struct domain *dom0; > __v;}) > > #define EVTCHNS_PER_BUCKET 512 > +/* N.B. EVTCHNS_PER_PAGE is always powers of 2, use shifts to optimize */ > +#define EVTCHNS_SHIFT (PAGE_SHIFT+BYTE_BITORDER) > +#define EVTCHNS_PER_PAGE (_AC(1,L) << EVTCHNS_SHIFT) > +#define EVTCHN_MASK (~(EVTCHNS_PER_PAGE-1)) > +#define EVTCHN_PAGE_NO(chn) ((chn) >> EVTCHNS_SHIFT) > +#define EVTCHN_OFFSET_IN_PAGE(chn) ((chn) & ~EVTCHN_MASK) > + > +#ifndef CONFIG_COMPAT > +#define EVTCHN_WORD_BITORDER(d) LONG_BITORDER > +#else > +#define EVTCHN_WORD_BITORDER(d) (has_32bit_shinfo(d) ? 5 : LONG_BITORDER) > +#endif > + > #define NR_EVTCHN_BUCKETS (NR_EVENT_CHANNELS / EVTCHNS_PER_BUCKET) > struct xen_evtchn_ops; All these event channel relate definitions look misplaced in xen/sched.h, now that it's more than a couple of lines. The first option for moving them of course is into the source file (when they're not being used elsewhere). The next best option is either xen/events.h or a new header. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |