freebsd-dev/sys/amd64/include
Konstantin Belousov c6d31b8306 AST: rework
Make most AST handlers dynamically registered.  This allows to have
subsystem-specific handler source located in the subsystem files,
instead of making subr_trap.c aware of it.  For instance, signal
delivery code on return to userspace is now moved to kern_sig.c.

Also, it allows to have some handlers designated as the cleanup (kclear)
type, which are called both at AST and on thread/process exit.  For
instance, ast(), exit1(), and NFS server no longer need to be aware
about UFS softdep processing.

The dynamic registration also allows third-party modules to register AST
handlers if needed.  There is one caveat with loadable modules: the
code does not make any effort to ensure that the module is not unloaded
before all threads processed through AST handler in it.  In fact, this
is already present behavior for hwpmc.ko and ufs.ko.  I do not think it
is worth the efforts and the runtime overhead to try to fix it.

Reviewed by:	markj
Tested by:	emaste (arm64), pho
Discussed with:	jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D35888
2022-08-02 21:11:09 +03:00
..
pc smbios: Move smbios driver out from x86 machdep code 2021-02-23 21:17:09 +00:00
xen xen: Prevent buffer overflow in privcmd ioctl 2022-05-06 09:31:32 +02:00
_align.h
_bus.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
_inttypes.h
_limits.h
_stdint.h
_types.h
acpica_machdep.h
apm_bios.h
asan.h kasan: Create a shadow for the bootstack prior to hammer_time() 2022-06-15 11:39:10 -04:00
asm.h amd64: -m32 support for machine/asm(macros).h 2022-06-13 18:35:39 +01:00
asmacros.h elfnote: place note in a PT_NOTE program header 2022-06-28 09:51:57 +02:00
atomic.h amd64: -m32 support for machine/atomic.h 2022-06-13 18:35:39 +01:00
bus_dma.h
bus.h
clock.h x86: Deduplicate clock.h 2021-12-06 10:39:08 -05:00
counter.h amd64: -m32 support for machine/counter.h 2022-06-13 18:35:40 +01:00
cpu.h Simplify swi for bus_dma. 2021-12-28 13:51:25 -08:00
cpufunc.h amd64: -m32 support for machine/cpufunc.h 2022-06-13 18:35:38 +01:00
cputypes.h
csan.h Limit when we call DELAY from KCSAN on amd64 2021-02-25 12:38:05 +00:00
db_machdep.h Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
dump.h
efi.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
elf.h
endian.h
exec.h
fdt.h
float.h
floatingpoint.h
fpu.h Add domain policy allocation for amd64 fpu_kern_ctx 2020-07-03 14:54:46 +00:00
frame.h amd64: centralize definitions of CS_SECURE and EFL_SECURE 2021-09-21 20:20:14 +03:00
gdb_machdep.h gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
ieeefp.h Remove checks for __GNUCLIKE_ASM assuming it is always true. 2022-04-12 10:05:45 -07:00
in_cksum.h machine/in_cksum.h: don't include sys/cdefs.h 2022-04-18 21:02:19 +01:00
intr_machdep.h amd64: Make it easier to configure exception stack sizes 2020-11-04 16:42:20 +00:00
iodev.h
iommu.h o Add machine/iommu.h and include MD iommu headers from it, 2020-08-05 19:11:31 +00:00
kdb.h x86: implement kdb watchpoint functions 2021-03-29 12:05:43 -03:00
limits.h Remove checks for __CC_SUPPORTS_WARNING assuming it is always true. 2022-04-12 10:06:13 -07:00
md_var.h kasan: Create a shadow for the bootstack prior to hammer_time() 2022-06-15 11:39:10 -04:00
memdev.h Add the MEM_EXTRACT_PADDR ioctl to /dev/mem. 2020-09-02 18:12:47 +00:00
metadata.h
minidump.h Sparsify the vm_page_dump bitmap 2020-09-21 22:21:59 +00:00
mp_watchdog.h
msan.h Add the KMSAN runtime 2021-08-10 21:27:53 -04:00
nexusvar.h
npx.h
ofw_machdep.h
param.h amd64: Populate the KMSAN shadow maps and integrate with the VM 2021-08-10 21:27:53 -04:00
pcb.h Fix for mis-interpretation of PCB_KERNFPU. 2020-10-14 23:01:41 +00:00
pci_cfgreg.h
pcpu_aux.h amd64: -m32 support for machine/pcpu_aux.h 2022-06-13 18:35:40 +01:00
pcpu.h amd64: -m32 support for machine/pcpu.h 2022-06-13 18:35:40 +01:00
pmap.h kasan: Create a shadow for the bootstack prior to hammer_time() 2022-06-15 11:39:10 -04:00
pmc_mdep.h
ppireg.h
proc.h amd64: -m32 support for machine/proc.h 2022-06-13 18:35:39 +01:00
procctl.h
profile.h amd64: -m32 support for machine/profile.h 2022-06-13 18:35:39 +01:00
psl.h
ptrace.h
pvclock.h
reg.h
reloc.h
resource.h
runq.h
segments.h amd64: -m32 support for machine/segments.h 2022-06-13 18:35:39 +01:00
setjmp.h
sf_buf.h amd64: -m32 support for machine/sb_buf.h 2022-06-13 18:35:39 +01:00
sgx.h
sgxreg.h
sigframe.h
signal.h
smp.h amd64: rework AP startup 2021-07-27 20:11:15 +03:00
specialreg.h
stack.h
stdarg.h
sysarch.h
timerreg.h
tls.h Add <machine/tls.h> header to hold MD constants and helpers for TLS. 2021-12-09 13:17:13 -08:00
trap.h
tss.h amd64: move common_tss into pcpu. 2019-11-10 09:28:18 +00:00
ucontext.h
vdso.h
vm.h Create VM_MEMATTR_DEVICE on all architectures 2021-04-12 06:15:31 +00:00
vmm_dev.h Extend the VMM stats interface to support a dynamic count of statistics. 2022-02-07 14:11:10 -08:00
vmm_instruction_emul.h bhyve(8): For prototyping, reattempt decode in userspace 2020-06-25 00:18:42 +00:00
vmm_snapshot.h amd64: clean up empty lines in .c and .h files 2020-09-01 21:16:54 +00:00
vmm.h AST: rework 2022-08-02 21:11:09 +03:00
vmparam.h amd64: -m32 support for machine/vmparam.h 2022-06-13 18:35:39 +01:00