opnsense-src/sys/mips/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
..
_align.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_bus.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
_inttypes.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
_limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_stdint.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
_types.h Reduce code duplication in machine/_types.h 2021-06-14 16:30:16 +01:00
abi.h Consistently use 16-byte alignment for MIPS N32 and N64. 2018-01-31 17:36:39 +00:00
asm.h Consistently use 16-byte alignment for MIPS N32 and N64. 2018-01-31 17:36:39 +00:00
atomic.h [PowerPC] [MIPS] Implement 32-bit kernel emulation of atomic64 operations 2020-01-02 23:20:37 +00:00
bootinfo.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
bus.h Add missing assignment forgotten in r365899 2020-09-20 15:11:52 +00:00
bus_dma.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache_mipsNN.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache_r4k.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cca.h Make cache coherency attributes definitions available in machine/vm.h on MIPS. 2018-08-01 18:35:17 +00:00
cdefs.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
clock.h Garbage collect unused prototype for clockintr(). 2016-05-20 15:34:03 +00:00
counter.h Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
cpu.h Add a KPI for the delay while spinning on a spin lock. 2018-11-05 21:34:17 +00:00
cpufunc.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
cpuinfo.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
cpuregs.h Fix a common typo in source code comments 2021-08-14 14:08:46 +02:00
db_machdep.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
dump.h minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
efi.h Fix building on i386 and arm. But 'public domain' headers on the files 2016-10-13 06:56:23 +00:00
elf.h Check for the only 32-bit MIPS ABIs we support, rather than !n64 2020-09-26 21:47:11 +00:00
endian.h Consolidate machine/endian.h definitions 2021-03-26 19:00:22 -03:00
exec.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fdt.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
float.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
floatingpoint.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
fls64.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fpu.h
frame.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
gdb_machdep.h gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
hwfunc.h Add SMP support for BERI CPU. 2018-04-12 17:43:19 +00:00
ieee.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ieeefp.h
in_cksum.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
intr.h bhnd(4): implement MIPS and PCI(e) interrupt support 2017-11-21 23:15:20 +00:00
intr_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
kdb.h Introduce kdb-level 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
locore.h Identify Ingenic CPUs. 2016-11-19 15:10:10 +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 sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
minidump.h Sparsify the vm_page_dump bitmap 2020-09-21 22:21:59 +00:00
mips_opcode.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
octeon_cop2.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
ofw_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
param.h MIPS: Implement fue*word* and casueword* in assembly. 2018-03-12 22:10:06 +00:00
pcb.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pcpu.h Remove PCPU_INC 2021-03-20 19:23:59 -07:00
pcpu_aux.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
pmap.h Add pmap_vm_page_alloc_check() 2021-07-31 16:53:42 +03:00
pmc_mdep.h
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 Remove two obsolete comments that reference splhigh/splx. 2019-11-21 18:49:54 +00:00
pte.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
ptrace.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
reg.h Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
regdef.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
regnum.h mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
reloc.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
resource.h Define PCI_RES_BUS for MIPS. 2016-04-12 07:18:48 +00:00
runq.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
sc_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
setjmp.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
sf_buf.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
sigframe.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
signal.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
smp.h Rename ARM_INTRNG and MIPS_INTRNG to INTRNG. This will help with machine 2016-04-15 16:05:41 +00:00
stdarg.h Use standard pattern for stdargs.h 2018-02-12 14:48:05 +00:00
sysarch.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tlb.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
tls.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
trap.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ucontext.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
vdso.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +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