freebsd-dev/sys/i386/include
Mitchell Horne 1adebe3cd6 minidump: Parameterize minidumpsys()
The minidump code is written assuming that certain global state will not
change, and rightly so, since it executes from a kernel debugger
context. In order to support taking minidumps of a live system, we
should allow copies of relevant global state that is likely to change to
be passed as parameters to the minidumpsys() function.

This patch does the work of parameterizing this function, by adding a
struct minidumpstate argument. For now, this struct allows for copies of
the kernel message buffer, and the bitset that tracks which pages should
be dumped (vm_page_dump). Follow-up changes will actually make use of
these arguments.

Notably, dump_avail[] does not need a snapshot, since it is not expected
to change after system initialization.

The existing minidumpsys() definitions are renamed, and a thin MI
wrapper is added to kern_dump.c, which handles the construction of
the state struct. Thus, calling minidumpsys() remains as simple as
before.

Reviewed by:	kib, markj, jhb
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D31989
2021-11-19 15:05:52 -04:00
..
pc smbios: Move smbios driver out from x86 machdep code 2021-02-23 21:17:09 +00:00
xen xen/privcmd: implement the dm op ioctl 2021-01-11 16:33:27 +01: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
apm_segments.h
asm.h Add CFI start/end proc directives to arm64, i386, and ppc 2020-12-05 00:33:28 +00:00
asmacros.h x86: remove gcov kernel support 2021-04-02 15:41:51 +03:00
atomic.h Expand generic subword atomic primitives 2020-03-25 23:12:43 +00:00
bootinfo.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
bus_dma.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
bus.h
clock.h timer_restore is now unused, remove it 2020-10-08 20:56:11 +00:00
counter.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
cpu.h Add a custom implementation of cpu_lock_delay() for x86. 2018-11-05 22:54:03 +00:00
cpufunc.h x86: cpufunc: Add rdtsc_ordered() 2021-08-14 15:57:53 +03:00
cputypes.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +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
elan_mmcr.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
elf.h
endian.h
exec.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fdt.h
float.h
floatingpoint.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
fpu.h Add a <machine/fpu.h> for i386 that includes <machine/npx.h>. 2020-10-13 17:26:12 +00:00
frame.h i386 4/4G split. 2018-04-13 20:30:49 +00:00
gdb_machdep.h gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
ieeefp.h Merge common parts of i386 and amd64's ieeefp.h into x86/x86_ieeefp.h 2021-08-12 18:45:22 +08:00
in_cksum.h Remove support for intel compiler from i386 in_cksum 2020-10-24 23:21:27 +00:00
intr_machdep.h Merge amd64 and i386 <machine/intr_machdep.h> headers. 2018-08-20 12:31:39 +00:00
iodev.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
iommu.h Add a per-each macro IOMMU_DOMAIN_UNLOAD_SLEEP which allows to sleep 2020-10-14 14:51:11 +00:00
kdb.h x86: implement kdb watchpoint functions 2021-03-29 12:05:43 -03:00
limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
md_var.h minidump: Parameterize minidumpsys() 2021-11-19 15:05:52 -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 sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
nexusvar.h
npx.h Add support for FPU_KERN_NOCTX. 2020-10-13 17:27:37 +00:00
ofw_machdep.h
param.h i386: clean up empty lines in .c and .h files 2020-09-01 21:19:39 +00:00
pcb_ext.h Remove dead declaration. 2018-05-11 20:47:45 +00:00
pcb.h Fix for mis-interpretation of PCB_KERNFPU. 2020-10-14 23:01:41 +00:00
pci_cfgreg.h
pcpu_aux.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
pcpu.h Remove PCPU_INC 2021-03-20 19:23:59 -07:00
perfmon.h i386: clean up empty lines in .c and .h files 2020-09-01 21:19:39 +00:00
pmap_base.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
pmap_nopae.h i386 PAE: avoid atomic for pte_store() where possible. 2019-02-26 09:45:44 +00:00
pmap_pae.h i386 PAE: avoid atomic for pte_store() where possible. 2019-02-26 09:45:44 +00:00
pmap.h Add pmap_vm_page_alloc_check() 2021-07-31 16:53:42 +03:00
pmc_mdep.h hwpmc: ABI fixes 2018-06-04 02:05:48 +00:00
ppireg.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
proc.h Pass the syscall number to capsicum permission-denied signals 2021-07-16 18:06:44 +01:00
procctl.h amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00
profile.h x86: remove gcov kernel support 2021-04-02 15:41:51 +03:00
psl.h
ptrace.h
pvclock.h
reg.h
reloc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
resource.h
runq.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
segments.h i386 4/4G split. 2018-04-13 20:30:49 +00:00
setjmp.h
sf_buf.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
sigframe.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
signal.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
smapi.h i386: clean up empty lines in .c and .h files 2020-09-01 21:19:39 +00:00
smp.h amd64: allow parallel shootdown IPIs 2020-07-14 20:37:50 +00:00
speaker.h
specialreg.h
stack.h
stdarg.h
sysarch.h
timerreg.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
trap.h
tss.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ucontext.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
vdso.h
vm86.h i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
vm.h Create VM_MEMATTR_DEVICE on all architectures 2021-04-12 06:15:31 +00:00
vmparam.h Add a vmparam.h constant indicating pmap support for large pages. 2020-09-23 19:34:21 +00:00