/usr/src/linux-headers-5.15.0-181/arch/xtensa/include/asm
NameSizeModeActions
asm-offsets.h350644editdlrm
asm-uaccess.h41800644editdlrm
asmmacro.h47630644editdlrm
atomic.h73010644editdlrm
barrier.h5940644editdlrm
bitops.h53980644editdlrm
bootparam.h14020644editdlrm
cache.h11140644editdlrm
cacheasm.h38560644editdlrm
cacheflush.h59680644editdlrm
checksum.h58930644editdlrm
cmpxchg.h56840644editdlrm
coprocessor.h46230644editdlrm
core.h8300644editdlrm
current.h6790644editdlrm
delay.h16680644editdlrm
dma.h18300644editdlrm
elf.h51150644editdlrm
fixmap.h11060644editdlrm
flat.h4400644editdlrm
ftrace.h9790644editdlrm
futex.h38890644editdlrm
highmem.h21670644editdlrm
hw_breakpoint.h15970644editdlrm
initialize_mmu.h51960644editdlrm
io.h19590644editdlrm
irq.h11270644editdlrm
irqflags.h20690644editdlrm
jump_label.h16550644editdlrm
kasan.h8590644editdlrm
Kbuild2300644editdlrm
kmem_layout.h27900644editdlrm
linkage.h1540644editdlrm
mmu.h4620644editdlrm
mmu_context.h36240644editdlrm
mxregs.h13300644editdlrm
nommu_context.h1560644editdlrm
page.h57930644editdlrm
pci-bridge.h21700644editdlrm
pci.h13020644editdlrm
perf_event.h1080644editdlrm
pgalloc.h14050644editdlrm
pgtable.h144700644editdlrm
platform.h15280644editdlrm
processor.h77050644editdlrm
ptrace.h33210644editdlrm
regs.h40170644editdlrm
seccomp.h2870644editdlrm
serial.h4430644editdlrm
shmparam.h5610644editdlrm
signal.h5020644editdlrm
smp.h9670644editdlrm
spinlock.h4720644editdlrm
spinlock_types.h3170644editdlrm
stackprotector.h11400644editdlrm
stacktrace.h11580644editdlrm
string.h33850644editdlrm
switch_to.h6010644editdlrm
syscall.h21400644editdlrm
sysmem.h4260644editdlrm
thread_info.h39650644editdlrm
timex.h14400644editdlrm
tlb.h4750644editdlrm
tlbflush.h56200644editdlrm
traps.h27790644editdlrm
uaccess.h93750644editdlrm
ucontext.h5400644editdlrm
unistd.h3700644editdlrm
vectors.h32760644editdlrm
vermagic.h4330644editdlrm
vmalloc.h960644editdlrm
Edit: /usr/src/linux-headers-5.15.0-181/arch/xtensa/include/asm/coprocessor.h (4623B)
/* * include/asm-xtensa/coprocessor.h * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2003 - 2007 Tensilica Inc. */ #ifndef _XTENSA_COPROCESSOR_H #define _XTENSA_COPROCESSOR_H #include #include #include #ifdef __ASSEMBLY__ # include .macro xchal_sa_start a b .set .Lxchal_pofs_, 0 .set .Lxchal_ofs_, 0 .endm .macro xchal_sa_align ptr minofs maxofs ofsalign totalign .set .Lxchal_ofs_, .Lxchal_ofs_ + .Lxchal_pofs_ + \totalign - 1 .set .Lxchal_ofs_, (.Lxchal_ofs_ & -\totalign) - .Lxchal_pofs_ .endm #define _SELECT ( XTHAL_SAS_TIE | XTHAL_SAS_OPT \ | XTHAL_SAS_CC \ | XTHAL_SAS_CALR | XTHAL_SAS_CALE ) .macro save_xtregs_opt ptr clb at1 at2 at3 at4 offset .if XTREGS_OPT_SIZE > 0 addi \clb, \ptr, \offset xchal_ncp_store \clb \at1 \at2 \at3 \at4 select=_SELECT .endif .endm .macro load_xtregs_opt ptr clb at1 at2 at3 at4 offset .if XTREGS_OPT_SIZE > 0 addi \clb, \ptr, \offset xchal_ncp_load \clb \at1 \at2 \at3 \at4 select=_SELECT .endif .endm #undef _SELECT #define _SELECT ( XTHAL_SAS_TIE | XTHAL_SAS_OPT \ | XTHAL_SAS_NOCC \ | XTHAL_SAS_CALR | XTHAL_SAS_CALE | XTHAL_SAS_GLOB ) .macro save_xtregs_user ptr clb at1 at2 at3 at4 offset .if XTREGS_USER_SIZE > 0 addi \clb, \ptr, \offset xchal_ncp_store \clb \at1 \at2 \at3 \at4 select=_SELECT .endif .endm .macro load_xtregs_user ptr clb at1 at2 at3 at4 offset .if XTREGS_USER_SIZE > 0 addi \clb, \ptr, \offset xchal_ncp_load \clb \at1 \at2 \at3 \at4 select=_SELECT .endif .endm #undef _SELECT #endif /* __ASSEMBLY__ */ /* * XTENSA_HAVE_COPROCESSOR(x) returns 1 if coprocessor x is configured. * * XTENSA_HAVE_IO_PORT(x) returns 1 if io-port x is configured. * */ #define XTENSA_HAVE_COPROCESSOR(x) \ ((XCHAL_CP_MASK ^ XCHAL_CP_PORT_MASK) & (1 << (x))) #define XTENSA_HAVE_COPROCESSORS \ (XCHAL_CP_MASK ^ XCHAL_CP_PORT_MASK) #define XTENSA_HAVE_IO_PORT(x) \ (XCHAL_CP_PORT_MASK & (1 << (x))) #define XTENSA_HAVE_IO_PORTS \ XCHAL_CP_PORT_MASK #ifndef __ASSEMBLY__ /* * Additional registers. * We define three types of additional registers: * ext: extra registers that are used by the compiler * cpn: optional registers that can be used by a user application * cpX: coprocessor registers that can only be used if the corresponding * CPENABLE bit is set. */ #define XCHAL_SA_REG(list,cc,abi,type,y,name,z,align,size,...) \ __REG ## list (cc, abi, type, name, size, align) #define __REG0(cc,abi,t,name,s,a) __REG0_ ## cc (abi,name) #define __REG1(cc,abi,t,name,s,a) __REG1_ ## cc (name) #define __REG2(cc,abi,type,...) __REG2_ ## type (__VA_ARGS__) #define __REG0_0(abi,name) #define __REG0_1(abi,name) __REG0_1 ## abi (name) #define __REG0_10(name) __u32 name; #define __REG0_11(name) __u32 name; #define __REG0_12(name) #define __REG1_0(name) __u32 name; #define __REG1_1(name) #define __REG2_0(n,s,a) __u32 name; #define __REG2_1(n,s,a) unsigned char n[s] __attribute__ ((aligned(a))); #define __REG2_2(n,s,a) unsigned char n[s] __attribute__ ((aligned(a))); typedef struct { XCHAL_NCP_SA_LIST(0) } xtregs_opt_t __attribute__ ((aligned (XCHAL_NCP_SA_ALIGN))); typedef struct { XCHAL_NCP_SA_LIST(1) } xtregs_user_t __attribute__ ((aligned (XCHAL_NCP_SA_ALIGN))); #if XTENSA_HAVE_COPROCESSORS typedef struct { XCHAL_CP0_SA_LIST(2) } xtregs_cp0_t __attribute__ ((aligned (XCHAL_CP0_SA_ALIGN))); typedef struct { XCHAL_CP1_SA_LIST(2) } xtregs_cp1_t __attribute__ ((aligned (XCHAL_CP1_SA_ALIGN))); typedef struct { XCHAL_CP2_SA_LIST(2) } xtregs_cp2_t __attribute__ ((aligned (XCHAL_CP2_SA_ALIGN))); typedef struct { XCHAL_CP3_SA_LIST(2) } xtregs_cp3_t __attribute__ ((aligned (XCHAL_CP3_SA_ALIGN))); typedef struct { XCHAL_CP4_SA_LIST(2) } xtregs_cp4_t __attribute__ ((aligned (XCHAL_CP4_SA_ALIGN))); typedef struct { XCHAL_CP5_SA_LIST(2) } xtregs_cp5_t __attribute__ ((aligned (XCHAL_CP5_SA_ALIGN))); typedef struct { XCHAL_CP6_SA_LIST(2) } xtregs_cp6_t __attribute__ ((aligned (XCHAL_CP6_SA_ALIGN))); typedef struct { XCHAL_CP7_SA_LIST(2) } xtregs_cp7_t __attribute__ ((aligned (XCHAL_CP7_SA_ALIGN))); extern struct thread_info* coprocessor_owner[XCHAL_CP_MAX]; extern void coprocessor_flush(struct thread_info*, int); extern void coprocessor_release_all(struct thread_info*); extern void coprocessor_flush_all(struct thread_info*); #endif /* XTENSA_HAVE_COPROCESSORS */ #endif /* !__ASSEMBLY__ */ #endif /* _XTENSA_COPROCESSOR_H */