KVM_DUMP_MKHEADER(3) | Library Functions Manual | KVM_DUMP_MKHEADER(3)

# NAME

`kvm_dump_mkheader`, `kvm_dump_wrtheader`, `kvm_dump_inval` — crash dump support functions

# SYNOPSIS

Kernel Data Access Library (libkvm, -lkvm)
`#include <kvm.h>`

int
`kvm_dump_mkheader`(kvm_t *kd, off_t dump_off);

int
`kvm_dump_wrtheader`(kvm_t *kd, FILE *fp, int dumpsize);

int
`kvm_dump_inval`(kvm_t *kd);

# DESCRIPTION

First note that the functions described here were designed to be used by savecore(8).

The function `kvm_dump_mkheader`() checks if the physical memory file associated with kd contains a valid crash dump header as generated by a dumping kernel. When a valid header is found, `kvm_dump_mkheader`() initializes the internal kvm data structures as if a crash dump generated by the savecore(8) program was opened. This has the intentional side effect of enabling the address translation machinery.

A call to `kvm_dump_mkheader`() will most likely be followed by a call to `kvm_dump_wrtheader`(). This function takes care of generating the generic header, the `CORE_CPU` section and the section header of the `CORE_DATA` section. The data is written to the file pointed at by fp. The dumpsize argument is only used to properly set the segment size of the `CORE_DATA` section. Note that this function assumes that fp is positioned at file location 0. This function will not seek and therefore allows fp to be a file pointer obtained by `zopen`().

The `kvm_dump_inval`() function clears the magic number in the physical memory file associated with kd. The address translations must be enabled for this to work (thus assuming that `kvm_dump_mkheader`() was called earlier in the sequence).

# RETURN VALUES

All functions return 0 on success, -1 on failure. In the case of failure, kvm_geterr(3) can be used to retrieve the cause of the error.

# SEE ALSO

kvm(3)

# HISTORY

These functions first appeared in NetBSD 1.1A.

June 6, 2025 | Debian