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.