On Tue, Jul 6, 2021 at 1:23 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Tue, Jul 06, 2021 at 12:18:05PM +0800, Huacai Chen wrote: > > + > > +static inline u32 csr_xchgl(u32 val, u32 mask, u32 reg) > > +{ > > + return __csrxchg(val, mask, reg); > > +} > > + > > +static inline u64 csr_xchgq(u64 val, u64 mask, u32 reg) > > +{ > > + return __dcsrxchg(val, mask, reg); > > +} > > What are these __csrfoo() things, I cannot seem to find a definition of > them anywhere.. It seems that those are provided as compiler intrinsics in <larchintrin.h>, based on an architecture specific __builtin_loongarch_csrxchg() etc. The specific registers are documented at https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN#control-and-status-registers Arnd