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 the 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).