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)
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).
)
return 0 on success, -1 on failure.
The function
kvm_dump_mkheader()
returns the size of the headers present before the actual dumpdata starts.
If no valid headers were found but no fatal errors occurred, 0 is returned.
On fatal errors the return value is -1.
In the case of failure, kvm_geterr(3) can be used to retrieve the cause of the error.