xref: /minix3/lib/libkvm/kvm_dump.3 (revision 9da227510d14c35cccbd92c6a9e316b4079c4911)
1*9da22751SDavid van Moolenbroek.\"	$NetBSD: kvm_dump.3,v 1.15 2009/10/20 19:10:09 snj Exp $
2*9da22751SDavid van Moolenbroek.\"
3*9da22751SDavid van Moolenbroek.\" Copyright (c) 1996 Leo Weppelman
4*9da22751SDavid van Moolenbroek.\" All rights reserved.
5*9da22751SDavid van Moolenbroek.\"
6*9da22751SDavid van Moolenbroek.\" Redistribution and use in source and binary forms, with or without
7*9da22751SDavid van Moolenbroek.\" modification, are permitted provided that the following conditions
8*9da22751SDavid van Moolenbroek.\" are met:
9*9da22751SDavid van Moolenbroek.\" 1. Redistributions of source code must retain the above copyright
10*9da22751SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer.
11*9da22751SDavid van Moolenbroek.\" 2. Redistributions in binary form must reproduce the above copyright
12*9da22751SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer in the
13*9da22751SDavid van Moolenbroek.\"    documentation and/or other materials provided with the distribution.
14*9da22751SDavid van Moolenbroek.\"
15*9da22751SDavid van Moolenbroek.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16*9da22751SDavid van Moolenbroek.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17*9da22751SDavid van Moolenbroek.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18*9da22751SDavid van Moolenbroek.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19*9da22751SDavid van Moolenbroek.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20*9da22751SDavid van Moolenbroek.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21*9da22751SDavid van Moolenbroek.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22*9da22751SDavid van Moolenbroek.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23*9da22751SDavid van Moolenbroek.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24*9da22751SDavid van Moolenbroek.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25*9da22751SDavid van Moolenbroek.\"
26*9da22751SDavid van Moolenbroek.\"
27*9da22751SDavid van Moolenbroek.Dd March 17, 1996
28*9da22751SDavid van Moolenbroek.Dt KVM_DUMP 3
29*9da22751SDavid van Moolenbroek.Os
30*9da22751SDavid van Moolenbroek.Sh NAME
31*9da22751SDavid van Moolenbroek.Nm kvm_dump_mkheader ,
32*9da22751SDavid van Moolenbroek.Nm kvm_dump_wrtheader ,
33*9da22751SDavid van Moolenbroek.Nm kvm_dump_inval
34*9da22751SDavid van Moolenbroek.Nd crash dump support functions
35*9da22751SDavid van Moolenbroek.Sh LIBRARY
36*9da22751SDavid van Moolenbroek.Lb libkvm
37*9da22751SDavid van Moolenbroek.Sh SYNOPSIS
38*9da22751SDavid van Moolenbroek.In kvm.h
39*9da22751SDavid van Moolenbroek.Ft int
40*9da22751SDavid van Moolenbroek.Fn kvm_dump_mkheader "kvm_t *kd" "off_t dump_off"
41*9da22751SDavid van Moolenbroek.Ft int
42*9da22751SDavid van Moolenbroek.Fn kvm_dump_wrtheader "kvm_t *kd" "FILE *fp" "int dumpsize"
43*9da22751SDavid van Moolenbroek.Ft int
44*9da22751SDavid van Moolenbroek.Fn kvm_dump_inval "kvm_t *kd"
45*9da22751SDavid van Moolenbroek.Sh DESCRIPTION
46*9da22751SDavid van MoolenbroekFirst note that the functions described here were designed to be used by
47*9da22751SDavid van Moolenbroek.Xr savecore 8 .
48*9da22751SDavid van Moolenbroek.Pp
49*9da22751SDavid van MoolenbroekThe function
50*9da22751SDavid van Moolenbroek.Fn kvm_dump_mkheader
51*9da22751SDavid van Moolenbroekchecks if the physical memory file associated with
52*9da22751SDavid van Moolenbroek.Fa kd
53*9da22751SDavid van Moolenbroekcontains a valid crash dump header as generated by a dumping kernel.
54*9da22751SDavid van MoolenbroekWhen a valid header is found,
55*9da22751SDavid van Moolenbroek.Fn kvm_dump_mkheader
56*9da22751SDavid van Moolenbroekinitializes the internal kvm data structures as if a crash dump generated by
57*9da22751SDavid van Moolenbroekthe
58*9da22751SDavid van Moolenbroek.Xr savecore 8
59*9da22751SDavid van Moolenbroekprogram was opened.
60*9da22751SDavid van MoolenbroekThis has the intentional side effect of enabling the
61*9da22751SDavid van Moolenbroekaddress translation machinery.
62*9da22751SDavid van Moolenbroek.Pp
63*9da22751SDavid van MoolenbroekA call to
64*9da22751SDavid van Moolenbroek.Fn kvm_dump_mkheader
65*9da22751SDavid van Moolenbroekwill most likely be followed by a call to
66*9da22751SDavid van Moolenbroek.Fn kvm_dump_wrtheader .
67*9da22751SDavid van MoolenbroekThis function takes care of generating the generic header, the CORE_CPU
68*9da22751SDavid van Moolenbroeksection and the section header of the CORE_DATA section.
69*9da22751SDavid van MoolenbroekThe data is written to the file pointed at by
70*9da22751SDavid van Moolenbroek.Fa fp .
71*9da22751SDavid van MoolenbroekThe
72*9da22751SDavid van Moolenbroek.Fa dumpsize
73*9da22751SDavid van Moolenbroekargument is only used to properly the set the segment size of the CORE_DATA
74*9da22751SDavid van Moolenbroeksection.
75*9da22751SDavid van MoolenbroekNote that this function assumes that
76*9da22751SDavid van Moolenbroek.Fa fp
77*9da22751SDavid van Moolenbroekis positioned at file location 0.
78*9da22751SDavid van MoolenbroekThis function will not seek and therefore allows
79*9da22751SDavid van Moolenbroek.Fa fp
80*9da22751SDavid van Moolenbroekto be a file pointer obtained by
81*9da22751SDavid van Moolenbroek.Fn zopen .
82*9da22751SDavid van Moolenbroek.Pp
83*9da22751SDavid van MoolenbroekThe
84*9da22751SDavid van Moolenbroek.Fn kvm_dump_inval
85*9da22751SDavid van Moolenbroekfunction clears the magic number in the physical memory file associated with
86*9da22751SDavid van Moolenbroek.Fa kd .
87*9da22751SDavid van MoolenbroekThe address translations must be enabled for this to work (thus assuming
88*9da22751SDavid van Moolenbroekthat
89*9da22751SDavid van Moolenbroek.Fn kvm_dump_mkheader
90*9da22751SDavid van Moolenbroekwas called earlier in the sequence).
91*9da22751SDavid van Moolenbroek.Sh RETURN VALUES
92*9da22751SDavid van MoolenbroekAll functions except
93*9da22751SDavid van Moolenbroek.Fn kvm_dump_mkheader
94*9da22751SDavid van Moolenbroekreturn 0 on success, -1 on failure.
95*9da22751SDavid van MoolenbroekThe function
96*9da22751SDavid van Moolenbroek.Fn kvm_dump_mkheader
97*9da22751SDavid van Moolenbroekreturns the size of the headers present before the actual dumpdata starts.
98*9da22751SDavid van MoolenbroekIf no valid headers were found but no fatal errors occurred, 0 is returned.
99*9da22751SDavid van MoolenbroekOn fatal errors the return value is -1.
100*9da22751SDavid van Moolenbroek.Pp
101*9da22751SDavid van MoolenbroekIn the case of failure,
102*9da22751SDavid van Moolenbroek.Xr kvm_geterr 3
103*9da22751SDavid van Moolenbroekcan be used to retrieve the cause of the error.
104*9da22751SDavid van Moolenbroek.Sh SEE ALSO
105*9da22751SDavid van Moolenbroek.Xr kvm 3 ,
106*9da22751SDavid van Moolenbroek.Xr kvm_open 3
107*9da22751SDavid van Moolenbroek.Sh HISTORY
108*9da22751SDavid van MoolenbroekThese functions first appeared in
109*9da22751SDavid van Moolenbroek.Nx 1.2 .
110