[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 10/34] xen/riscv: introduce bitops.h
> > > > > > > > Also you want to make sure asm-generic/bitops/bitops-bits.h > > > > > is > > > > > really in use here, or else an arch overriding / not using > > > > > that > > > > > header may end up screwed. > > > > I am not really understand what do you mean. Could you please > > > > explain a > > > > little bit more. > > > > > > Whichever type you use here, it needs to be in sync with > > > BITOP_BITS_PER_WORD. Hence you want to include the _local_ > > > bitops- > > > bits.h > > > here, such that in case of an inconsistent override by an arch > > > the > > > compiler would complain about the two differring #define-s. (IOW > > > an > > > arch overriding BITOP_BITS_PER_WORD cannot re-use this header as- > > > is.) > > > > > > The same may, btw, be true for others of the new headers you add > > > - > > > the > > > same #include would therefore be needed there as well. > > Now it clear to me. > > > > > > It seems like BITOP_BITS_PER_WORD, BITOP_MASK, BITOP_WORD, and > > BITS_PER_BYTE are defined in {arm, ppc, > > riscv}/include/asm/bitops.h. > > I expected that any architecture planning to use asm- > > generic/bitops/bitops-bits.h would include it at the beginning of > > <arch>/include/asm/bitops.h, similar to what is done for RISC-V: > > #ifndef _ASM_RISCV_BITOPS_H > > #define _ASM_RISCV_BITOPS_H > > > > #include <asm/system.h> > > > > #include <asm-generic/bitops/bitops-bits.h> > > ... > > > > But in this case, to allow architecture overrides macros, it is > > necessary to update asm-generic/bitops/bitops-bits.h: > > #ifndef BITOP_BITS_PER_WORD > > #define BITOP_BITS_PER_WORD 32 > > #endif > > ... > > Therefore, if an architecture needs to override something, it will > > add > > #define ... before #include <asm-generic/bitops/bitops-bits.h>. > > > > Does it make sense? > > Sure. But then the arch also needs to provide a corresponding typedef > (and bitops-bits.h the fallback one), for use wherever you use any of > those #define-s. Which one typedef is needed to provide? <asm-generic/bitops/bitops-bits.h> contains only macros. ~ Oleksii
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |