/usr/src/linux-headers-5.15.0-190/arch/powerpc/include/asm
NameSizeModeActions
book3s/-0755rm
nohash/-0755rm
vdso/-0755rm
8xx_immap.h140990644editdlrm
accounting.h9080644editdlrm
agp.h5250644editdlrm
archrandom.h8380644editdlrm
asm-compat.h18820644editdlrm
asm-const.h4680644editdlrm
asm-offsets.h350644editdlrm
asm-prototypes.h51300644editdlrm
async_tx.h9080644editdlrm
atomic.h142670644editdlrm
backlight.h11150644editdlrm
barrier.h39770644editdlrm
bitops.h79130644editdlrm
bootx.h11420644editdlrm
bpf_perf_event.h2330644editdlrm
btext.h10060644editdlrm
bug.h40900644editdlrm
cache.h28880644editdlrm
cacheflush.h38510644editdlrm
cell-pmu.h34960644editdlrm
cell-regs.h97990644editdlrm
checksum.h57230644editdlrm
clocksource.h1850644editdlrm
cmpxchg.h122800644editdlrm
code-patching-asm.h3970644editdlrm
code-patching.h54430644editdlrm
compat.h33040644editdlrm
context_tracking.h2450644editdlrm
copro.h5930644editdlrm
cpm.h250644editdlrm
cpm1.h217110644editdlrm
cpm2.h495980644editdlrm
cpufeature.h9980644editdlrm
cpuidle.h34070644editdlrm
cputable.h232110644editdlrm
cputhreads.h38560644editdlrm
cputime.h30690644editdlrm
cpu_has_feature.h13390644editdlrm
cpu_setup_power.h5070644editdlrm
crashdump-ppc64.h6240644editdlrm
current.h6800644editdlrm
dbdma.h38090644editdlrm
dbell.h40250644editdlrm
dcr-generic.h9300644editdlrm
dcr-mmio.h10260644editdlrm
dcr-native.h38590644editdlrm
dcr-regs.h58460644editdlrm
dcr.h21080644editdlrm
debug.h18860644editdlrm
delay.h32970644editdlrm
device.h10160644editdlrm
disassemble.h21890644editdlrm
dma-direct.h3910644editdlrm
dma.h107250644editdlrm
drmem.h29700644editdlrm
dtl.h15150644editdlrm
dt_cpu_ftrs.h7560644editdlrm
edac.h11050644editdlrm
eeh.h154780644editdlrm
eeh_event.h8260644editdlrm
ehv_pic.h9630644editdlrm
elf.h62830644editdlrm
elfnote.h5270644editdlrm
emergency-restart.h430644editdlrm
emulated_ops.h20720644editdlrm
epapr_hcalls.h168270644editdlrm
exception-64e.h57850644editdlrm
exception-64s.h43500644editdlrm
exec.h2460644editdlrm
extable.h12050644editdlrm
fadump-internal.h43520644editdlrm
fadump.h10950644editdlrm
fb.h4830644editdlrm
feature-fixups.h98280644editdlrm
firmware.h53270644editdlrm
fixmap.h37230644editdlrm
floppy.h51110644editdlrm
fsl_85xx_cache_sram.h8120644editdlrm
fsl_gtm.h12030644editdlrm
fsl_hcalls.h176150644editdlrm
fsl_lbc.h104890644editdlrm
fsl_pamu_stash.h4110644editdlrm
fsl_pm.h11830644editdlrm
fs_pd.h10460644editdlrm
ftrace.h35500644editdlrm
futex.h22460644editdlrm
grackle.h3310644editdlrm
hardirq.h9480644editdlrm
head-64.h55070644editdlrm
heathrow.h25950644editdlrm
highmem.h20790644editdlrm
hmi.h9710644editdlrm
hugetlb.h21860644editdlrm
hvcall.h212500644editdlrm
hvconsole.h7900644editdlrm
hvcserver.h14730644editdlrm
hvsi.h28500644editdlrm
hw_breakpoint.h37350644editdlrm
hw_irq.h112180644editdlrm
hydra.h29480644editdlrm
i8259.h3610644editdlrm
ibmebus.h22040644editdlrm
icswx.h50900644editdlrm
ide.h5860644editdlrm
idle.h23720644editdlrm
imc-pmu.h39830644editdlrm
immap_cpm2.h107490644editdlrm
inst.h36830644editdlrm
interrupt.h183530644editdlrm
io-defs.h31640644editdlrm
io-workarounds.h13130644editdlrm
io.h313870644editdlrm
iommu.h102830644editdlrm
io_event_irq.h17460644editdlrm
ipic.h31410644editdlrm
irq.h13200644editdlrm
irqflags.h17770644editdlrm
irq_work.h2130644editdlrm
isa-bridge.h6540644editdlrm
jump_label.h13510644editdlrm
kasan.h13960644editdlrm
Kbuild2860644editdlrm
kdebug.h2910644editdlrm
kdump.h13990644editdlrm
kexec.h48380644editdlrm
kexec_ranges.h9430644editdlrm
keylargo.h110610644editdlrm
kfence.h6500644editdlrm
kgdb.h21560644editdlrm
kprobes.h28150644editdlrm
kup.h32590644editdlrm
kvm_asm.h49520644editdlrm
kvm_book3s.h172200644editdlrm
kvm_book3s_32.h8160644editdlrm
kvm_book3s_64.h183330644editdlrm
kvm_book3s_asm.h37770644editdlrm
kvm_book3s_uvmem.h27380644editdlrm
kvm_booke.h22330644editdlrm
kvm_booke_hv_asm.h19600644editdlrm
kvm_fpu.h21990644editdlrm
kvm_guest.h5660644editdlrm
kvm_host.h219660644editdlrm
kvm_para.h7520644editdlrm
kvm_ppc.h366990644editdlrm
libata-portmap.h2490644editdlrm
linkage.h5010644editdlrm
livepatch.h11400644editdlrm
local.h32580644editdlrm
lppaca.h50150644editdlrm
lv1call.h185550644editdlrm
machdep.h96300644editdlrm
macio.h39850644editdlrm
mc146818rtc.h7360644editdlrm
mce.h63960644editdlrm
mediabay.h13750644editdlrm
membarrier.h8770644editdlrm
mem_encrypt.h5320644editdlrm
mman.h14710644editdlrm
mmiowb.h3740644editdlrm
mmu.h112440644editdlrm
mmu_context.h96460644editdlrm
mmzone.h10030644editdlrm
module.h22840644editdlrm
module.lds.h950644editdlrm
mpc5xxx.h4390644editdlrm
mpc6xx.h1430644editdlrm
mpc52xx.h111000644editdlrm
mpc52xx_psc.h101250644editdlrm
mpc85xx.h23820644editdlrm
mpc5121.h38630644editdlrm
mpc8260.h7420644editdlrm
mpic.h143090644editdlrm
mpic_msgr.h34410644editdlrm
mpic_timer.h11830644editdlrm
msi_bitmap.h8670644editdlrm
nmi.h5790644editdlrm
nvram.h28340644editdlrm
ohare.h16840644editdlrm
opal-api.h316800644editdlrm
opal.h178430644editdlrm
paca.h87830644editdlrm
page.h103620644editdlrm
page_32.h16260644editdlrm
page_64.h27160644editdlrm
paravirt.h38810644editdlrm
parport.h9560644editdlrm
pasemi_dma.h232730644editdlrm
pci-bridge.h94810644editdlrm
pci.h36050644editdlrm
percpu.h8150644editdlrm
perf_event.h15090644editdlrm
perf_event_fsl_emb.h12520644editdlrm
perf_event_server.h71040644editdlrm
pgalloc.h20670644editdlrm
pgtable-be-types.h26010644editdlrm
pgtable-types.h18950644editdlrm
pgtable.h40470644editdlrm
pkeys.h42790644editdlrm
plpar_wrappers.h101930644editdlrm
pmac_feature.h133960644editdlrm
pmac_low_i2c.h31000644editdlrm
pmac_pfunc.h82370644editdlrm
pmc.h11160644editdlrm
pmi.h11770644editdlrm
pnv-ocxl.h30690644editdlrm
pnv-pci.h24320644editdlrm
powernv.h4540644editdlrm
ppc-opcode.h314190644editdlrm
ppc-pci.h22820644editdlrm
ppc4xx.h3280644editdlrm
ppc_asm.h205300644editdlrm
probes.h15420644editdlrm
processor.h118980644editdlrm
prom.h73240644editdlrm
ps3.h152190644editdlrm
ps3av.h234220644editdlrm
ps3gpu.h19280644editdlrm
ps3stor.h14080644editdlrm
pte-walk.h22810644editdlrm
ptrace.h105080644editdlrm
qspinlock.h20640644editdlrm
qspinlock_paravirt.h2210644editdlrm
reg.h644650644editdlrm
reg_8xx.h28670644editdlrm
reg_a2.h61280644editdlrm
reg_booke.h338820644editdlrm
reg_fsl_emb.h39610644editdlrm
rheap.h25780644editdlrm
rio.h4240644editdlrm
rtas-types.h29390644editdlrm
rtas.h125740644editdlrm
runlatch.h11840644editdlrm
seccomp.h10430644editdlrm
sections.h19820644editdlrm
secure_boot.h4760644editdlrm
security_features.h35090644editdlrm
secvar.h7650644editdlrm
serial.h4730644editdlrm
setjmp.h4000644editdlrm
setup.h24750644editdlrm
set_memory.h11600644editdlrm
sfp-machine.h126760644editdlrm
shmparam.h2060644editdlrm
signal.h3200644editdlrm
simple_spinlock.h66620644editdlrm
simple_spinlock_types.h4810644editdlrm
slice.h11210644editdlrm
smp.h78040644editdlrm
smu.h197890644editdlrm
sparsemem.h8430644editdlrm
spinlock.h4720644editdlrm
spinlock_types.h3820644editdlrm
spu.h239630644editdlrm
spu_csa.h61660644editdlrm
spu_info.h2720644editdlrm
spu_priv1.h51860644editdlrm
sstep.h47300644editdlrm
stackprotector.h7880644editdlrm
stacktrace.h2970644editdlrm
string.h25220644editdlrm
svm.h6520644editdlrm
swab.h1730644editdlrm
swiotlb.h3740644editdlrm
switch_to.h29660644editdlrm
synch.h20670644editdlrm
syscall.h30570644editdlrm
syscalls.h21890644editdlrm
task_size_32.h5440644editdlrm
task_size_64.h23900644editdlrm
tce.h8920644editdlrm
termios.h6530644editdlrm
thread_info.h61660644editdlrm
time.h29970644editdlrm
timex.h4630644editdlrm
tlb.h23080644editdlrm
tlbflush.h2710644editdlrm
tm.h6240644editdlrm
topology.h35360644editdlrm
trace.h46950644editdlrm
trace_clock.h3720644editdlrm
tsi108.h32640644editdlrm
tsi108_irq.h39160644editdlrm
tsi108_pci.h11910644editdlrm
types.h8220644editdlrm
uaccess.h142880644editdlrm
udbg.h20030644editdlrm
uic.h4030644editdlrm
ultravisor-api.h9410644editdlrm
ultravisor.h21010644editdlrm
uninorth.h84100644editdlrm
unistd.h14450644editdlrm
uprobes.h8010644editdlrm
user.h21920644editdlrm
vas.h75800644editdlrm
vdso.h10960644editdlrm
vdso_datapage.h35700644editdlrm
vermagic.h4900644editdlrm
vga.h12730644editdlrm
vio.h47340644editdlrm
vmalloc.h5540644editdlrm
word-at-a-time.h48780644editdlrm
xics.h45390644editdlrm
xive-regs.h50830644editdlrm
xive.h51910644editdlrm
xmon.h7330644editdlrm
xor.h10170644editdlrm
xor_altivec.h6830644editdlrm
Edit: /usr/src/linux-headers-5.15.0-190/arch/powerpc/include/asm/paca.h (8783B)
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * This control block defines the PACA which defines the processor * specific data for each logical processor on the system. * There are some pointers defined that are utilized by PLIC. * * C 2001 PPC 64 Team, IBM Corp */ #ifndef _ASM_POWERPC_PACA_H #define _ASM_POWERPC_PACA_H #ifdef __KERNEL__ #ifdef CONFIG_PPC64 #include #include #include #include #ifdef CONFIG_PPC_BOOK3E #include #else #include #endif #ifdef CONFIG_KVM_BOOK3S_64_HANDLER #include #endif #include #include #include #include #include #include register struct paca_struct *local_paca asm("r13"); #if defined(CONFIG_DEBUG_PREEMPT) && defined(CONFIG_SMP) extern unsigned int debug_smp_processor_id(void); /* from linux/smp.h */ /* * Add standard checks that preemption cannot occur when using get_paca(): * otherwise the paca_struct it points to may be the wrong one just after. */ #define get_paca() ((void) debug_smp_processor_id(), local_paca) #else #define get_paca() local_paca #endif #define get_slb_shadow() (get_paca()->slb_shadow_ptr) struct task_struct; struct rtas_args; struct lppaca; /* * Defines the layout of the paca. * * This structure is not directly accessed by firmware or the service * processor. */ struct paca_struct { #ifdef CONFIG_PPC_PSERIES /* * Because hw_cpu_id, unlike other paca fields, is accessed * routinely from other CPUs (from the IRQ code), we stick to * read-only (after boot) fields in the first cacheline to * avoid cacheline bouncing. */ struct lppaca *lppaca_ptr; /* Pointer to LpPaca for PLIC */ #endif /* CONFIG_PPC_PSERIES */ /* * MAGIC: the spinlock functions in arch/powerpc/lib/locks.c * load lock_token and paca_index with a single lwz * instruction. They must travel together and be properly * aligned. */ #ifdef __BIG_ENDIAN__ u16 lock_token; /* Constant 0x8000, used in locks */ u16 paca_index; /* Logical processor number */ #else u16 paca_index; /* Logical processor number */ u16 lock_token; /* Constant 0x8000, used in locks */ #endif u64 kernel_toc; /* Kernel TOC address */ u64 kernelbase; /* Base address of kernel */ u64 kernel_msr; /* MSR while running in kernel */ void *emergency_sp; /* pointer to emergency stack */ u64 data_offset; /* per cpu data offset */ s16 hw_cpu_id; /* Physical processor number */ u8 cpu_start; /* At startup, processor spins until */ /* this becomes non-zero. */ u8 kexec_state; /* set when kexec down has irqs off */ #ifdef CONFIG_PPC_BOOK3S_64 struct slb_shadow *slb_shadow_ptr; struct dtl_entry *dispatch_log; struct dtl_entry *dispatch_log_end; #endif u64 dscr_default; /* per-CPU default DSCR */ #ifdef CONFIG_PPC_BOOK3S_64 /* * Now, starting in cacheline 2, the exception save areas */ /* used for most interrupts/exceptions */ u64 exgen[EX_SIZE] __attribute__((aligned(0x80))); /* SLB related definitions */ u16 vmalloc_sllp; u8 slb_cache_ptr; u8 stab_rr; /* stab/slb round-robin counter */ #ifdef CONFIG_DEBUG_VM u8 in_kernel_slb_handler; #endif u32 slb_used_bitmap; /* Bitmaps for first 32 SLB entries. */ u32 slb_kern_bitmap; u32 slb_cache[SLB_CACHE_ENTRIES]; #endif /* CONFIG_PPC_BOOK3S_64 */ #ifdef CONFIG_PPC_BOOK3E u64 exgen[8] __aligned(0x40); /* Keep pgd in the same cacheline as the start of extlb */ pgd_t *pgd __aligned(0x40); /* Current PGD */ pgd_t *kernel_pgd; /* Kernel PGD */ /* Shared by all threads of a core -- points to tcd of first thread */ struct tlb_core_data *tcd_ptr; /* * We can have up to 3 levels of reentrancy in the TLB miss handler, * in each of four exception levels (normal, crit, mcheck, debug). */ u64 extlb[12][EX_TLB_SIZE / sizeof(u64)]; u64 exmc[8]; /* used for machine checks */ u64 excrit[8]; /* used for crit interrupts */ u64 exdbg[8]; /* used for debug interrupts */ /* Kernel stack pointers for use by special exceptions */ void *mc_kstack; void *crit_kstack; void *dbg_kstack; struct tlb_core_data tcd; #endif /* CONFIG_PPC_BOOK3E */ #ifdef CONFIG_PPC_BOOK3S #ifdef CONFIG_PPC_MM_SLICES unsigned char mm_ctx_low_slices_psize[BITS_PER_LONG / BITS_PER_BYTE]; unsigned char mm_ctx_high_slices_psize[SLICE_ARRAY_SIZE]; #else u16 mm_ctx_user_psize; u16 mm_ctx_sllp; #endif #endif /* * then miscellaneous read-write fields */ struct task_struct *__current; /* Pointer to current */ u64 kstack; /* Saved Kernel stack addr */ u64 saved_r1; /* r1 save for RTAS calls or PM or EE=0 */ u64 saved_msr; /* MSR saved here by enter_rtas */ #ifdef CONFIG_PPC64 u64 exit_save_r1; /* Syscall/interrupt R1 save */ #endif #ifdef CONFIG_PPC_BOOK3E u16 trap_save; /* Used when bad stack is encountered */ #endif #ifdef CONFIG_PPC_BOOK3S_64 u8 hsrr_valid; /* HSRRs set for HRFID */ u8 srr_valid; /* SRRs set for RFID */ #endif u8 irq_soft_mask; /* mask for irq soft masking */ u8 irq_happened; /* irq happened while soft-disabled */ u8 irq_work_pending; /* IRQ_WORK interrupt while soft-disable */ #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE u8 pmcregs_in_use; /* pseries puts this in lppaca */ #endif u64 sprg_vdso; /* Saved user-visible sprg */ #ifdef CONFIG_PPC_TRANSACTIONAL_MEM u64 tm_scratch; /* TM scratch area for reclaim */ #endif #ifdef CONFIG_PPC_POWERNV /* PowerNV idle fields */ /* PNV_CORE_IDLE_* bits, all siblings work on thread 0 paca */ unsigned long idle_state; union { /* P7/P8 specific fields */ struct { /* PNV_THREAD_RUNNING/NAP/SLEEP */ u8 thread_idle_state; /* Mask to denote subcore sibling threads */ u8 subcore_sibling_mask; }; /* P9 specific fields */ struct { #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE /* The PSSCR value that the kernel requested before going to stop */ u64 requested_psscr; /* Flag to request this thread not to stop */ atomic_t dont_stop; #endif }; }; #endif #ifdef CONFIG_PPC_BOOK3S_64 /* Non-maskable exceptions that are not performance critical */ u64 exnmi[EX_SIZE]; /* used for system reset (nmi) */ u64 exmc[EX_SIZE]; /* used for machine checks */ #endif #ifdef CONFIG_PPC_BOOK3S_64 /* Exclusive stacks for system reset and machine check exception. */ void *nmi_emergency_sp; void *mc_emergency_sp; u16 in_nmi; /* In nmi handler */ /* * Flag to check whether we are in machine check early handler * and already using emergency stack. */ u16 in_mce; u8 hmi_event_available; /* HMI event is available */ u8 hmi_p9_special_emu; /* HMI P9 special emulation */ u32 hmi_irqs; /* HMI irq stat */ #endif u8 ftrace_enabled; /* Hard disable ftrace */ /* Stuff for accurate time accounting */ struct cpu_accounting_data accounting; u64 dtl_ridx; /* read index in dispatch log */ struct dtl_entry *dtl_curr; /* pointer corresponding to dtl_ridx */ #ifdef CONFIG_KVM_BOOK3S_HANDLER #ifdef CONFIG_KVM_BOOK3S_PR_POSSIBLE /* We use this to store guest state in */ struct kvmppc_book3s_shadow_vcpu shadow_vcpu; #endif struct kvmppc_host_state kvm_hstate; #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE /* * Bitmap for sibling subcore status. See kvm/book3s_hv_ras.c for * more details */ struct sibling_subcore_state *sibling_subcore_state; #endif #endif #ifdef CONFIG_PPC_BOOK3S_64 /* * rfi fallback flush must be in its own cacheline to prevent * other paca data leaking into the L1d */ u64 exrfi[EX_SIZE] __aligned(0x80); void *rfi_flush_fallback_area; u64 l1d_flush_size; #endif #ifdef CONFIG_PPC_PSERIES u8 *mce_data_buf; /* buffer to hold per cpu rtas errlog */ #endif /* CONFIG_PPC_PSERIES */ #ifdef CONFIG_PPC_BOOK3S_64 /* Capture SLB related old contents in MCE handler. */ struct slb_entry *mce_faulty_slbs; u16 slb_save_cache_ptr; #endif /* CONFIG_PPC_BOOK3S_64 */ #ifdef CONFIG_STACKPROTECTOR unsigned long canary; #endif #ifdef CONFIG_MMIOWB struct mmiowb_state mmiowb_state; #endif #ifdef CONFIG_PPC_BOOK3S_64 struct mce_info *mce_info; #endif /* CONFIG_PPC_BOOK3S_64 */ } ____cacheline_aligned; extern void copy_mm_to_paca(struct mm_struct *mm); extern struct paca_struct **paca_ptrs; extern void initialise_paca(struct paca_struct *new_paca, int cpu); extern void setup_paca(struct paca_struct *new_paca); extern void allocate_paca_ptrs(void); extern void allocate_paca(int cpu); extern void free_unused_pacas(void); #else /* CONFIG_PPC64 */ static inline void allocate_paca_ptrs(void) { } static inline void allocate_paca(int cpu) { } static inline void free_unused_pacas(void) { } #endif /* CONFIG_PPC64 */ #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_PACA_H */