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