/usr/src/linux-headers-5.15.0-181/arch/ia64/include/asm
NameSizeModeActions
native/-0755rm
sn/-0755rm
uv/-0755rm
acenv.h11530644editdlrm
acpi-ext.h4440644editdlrm
acpi.h27720644editdlrm
agp.h8630644editdlrm
asm-offsets.h350644editdlrm
asm-prototypes.h8920644editdlrm
asmmacro.h33720644editdlrm
atomic.h63900644editdlrm
barrier.h24140644editdlrm
bitops.h111120644editdlrm
bug.h4040644editdlrm
cache.h7520644editdlrm
cacheflush.h9030644editdlrm
checksum.h17460644editdlrm
clocksource.h2760644editdlrm
cmpxchg.h4790644editdlrm
cpu.h4560644editdlrm
cputime.h6480644editdlrm
current.h4180644editdlrm
cyclone.h4420644editdlrm
delay.h17380644editdlrm
device.h2360644editdlrm
div64.h310644editdlrm
dma-mapping.h3820644editdlrm
dma.h3510644editdlrm
dmi.h3430644editdlrm
early_ioremap.h4280644editdlrm
efi.h3740644editdlrm
elf.h100250644editdlrm
emergency-restart.h1490644editdlrm
esi.h8870644editdlrm
exception.h6090644editdlrm
export.h1150644editdlrm
extable.h3300644editdlrm
fb.h5690644editdlrm
fpswa.h19250644editdlrm
ftrace.h7480644editdlrm
futex.h26160644editdlrm
gcc_intrin.h3680644editdlrm
hardirq.h5610644editdlrm
hugetlb.h9330644editdlrm
hw_irq.h57760644editdlrm
idle.h2000644editdlrm
intrinsics.h3060644editdlrm
io.h75270644editdlrm
iommu.h5050644editdlrm
iommu_table.h1750644editdlrm
iosapic.h27520644editdlrm
irq.h9600644editdlrm
irqflags.h20960644editdlrm
irq_regs.h340644editdlrm
irq_remapping.h1420644editdlrm
Kbuild1390644editdlrm
kdebug.h10110644editdlrm
kexec.h16060644editdlrm
kprobes.h31480644editdlrm
kregs.h68900644editdlrm
libata-portmap.h2250644editdlrm
linkage.h3980644editdlrm
local.h310644editdlrm
mca.h60090644editdlrm
mca_asm.h73560644editdlrm
meminit.h17510644editdlrm
mman.h4320644editdlrm
mmiowb.h4330644editdlrm
mmu.h3740644editdlrm
mmu_context.h53040644editdlrm
mmzone.h8690644editdlrm
module.h11540644editdlrm
module.lds.h3940644editdlrm
msidef.h14380644editdlrm
nodedata.h18980644editdlrm
numa.h23380644editdlrm
page.h58560644editdlrm
pal.h546740644editdlrm
param.h4390644editdlrm
parport.h5340644editdlrm
patch.h12140644editdlrm
pci.h20070644editdlrm
percpu.h13540644editdlrm
pgalloc.h15690644editdlrm
pgtable.h198460644editdlrm
processor.h178760644editdlrm
ptrace.h52580644editdlrm
sal.h271890644editdlrm
sections.h16790644editdlrm
serial.h4460644editdlrm
shmparam.h4450644editdlrm
signal.h7490644editdlrm
smp.h25140644editdlrm
sparsemem.h7850644editdlrm
spinlock.h71490644editdlrm
spinlock_types.h4750644editdlrm
string.h6590644editdlrm
switch_to.h27020644editdlrm
syscall.h18200644editdlrm
termios.h19230644editdlrm
thread_info.h49060644editdlrm
timex.h15020644editdlrm
tlb.h15770644editdlrm
tlbflush.h31650644editdlrm
topology.h14080644editdlrm
types.h8280644editdlrm
uaccess.h97300644editdlrm
uncached.h3140644editdlrm
unistd.h9870644editdlrm
unwind.h58730644editdlrm
user.h22990644editdlrm
ustack.h4030644editdlrm
vermagic.h3410644editdlrm
vga.h6490644editdlrm
vmalloc.h900644editdlrm
xor.h7430644editdlrm
xtp.h9380644editdlrm
Edit: /usr/src/linux-headers-5.15.0-181/arch/ia64/include/asm/switch_to.h (2702B)
/* SPDX-License-Identifier: GPL-2.0 */ /* * Low-level task switching. This is based on information published in * the Processor Abstraction Layer and the System Abstraction Layer * manual. * * Copyright (C) 1998-2003 Hewlett-Packard Co * David Mosberger-Tang * Copyright (C) 1999 Asit Mallick * Copyright (C) 1999 Don Dugger */ #ifndef _ASM_IA64_SWITCH_TO_H #define _ASM_IA64_SWITCH_TO_H #include struct task_struct; /* * Context switch from one thread to another. If the two threads have * different address spaces, schedule() has already taken care of * switching to the new address space by calling switch_mm(). * * Disabling access to the fph partition and the debug-register * context switch MUST be done before calling ia64_switch_to() since a * newly created thread returns directly to * ia64_ret_from_syscall_clear_r8. */ extern struct task_struct *ia64_switch_to (void *next_task); extern void ia64_save_extra (struct task_struct *task); extern void ia64_load_extra (struct task_struct *task); #define IA64_HAS_EXTRA_STATE(t) \ ((t)->thread.flags & (IA64_THREAD_DBG_VALID|IA64_THREAD_PM_VALID)) #define __switch_to(prev,next,last) do { \ if (IA64_HAS_EXTRA_STATE(prev)) \ ia64_save_extra(prev); \ if (IA64_HAS_EXTRA_STATE(next)) \ ia64_load_extra(next); \ ia64_psr(task_pt_regs(next))->dfh = !ia64_is_local_fpu_owner(next); \ (last) = ia64_switch_to((next)); \ } while (0) #ifdef CONFIG_SMP /* * In the SMP case, we save the fph state when context-switching away from a thread that * modified fph. This way, when the thread gets scheduled on another CPU, the CPU can * pick up the state from task->thread.fph, avoiding the complication of having to fetch * the latest fph state from another CPU. In other words: eager save, lazy restore. */ # define switch_to(prev,next,last) do { \ if (ia64_psr(task_pt_regs(prev))->mfh && ia64_is_local_fpu_owner(prev)) { \ ia64_psr(task_pt_regs(prev))->mfh = 0; \ (prev)->thread.flags |= IA64_THREAD_FPH_VALID; \ __ia64_save_fpu((prev)->thread.fph); \ } \ __switch_to(prev, next, last); \ /* "next" in old context is "current" in new context */ \ if (unlikely((current->thread.flags & IA64_THREAD_MIGRATION) && \ (task_cpu(current) != \ task_thread_info(current)->last_cpu))) { \ task_thread_info(current)->last_cpu = task_cpu(current); \ } \ } while (0) #else # define switch_to(prev,next,last) __switch_to(prev, next, last) #endif #endif /* _ASM_IA64_SWITCH_TO_H */