/* $OpenBSD: kvm_hppa.c,v 1.7 2009/07/28 12:56:25 deraadt Exp $ */ /* * Copyright (c) 2002, Miodrag Vallat. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include <sys/param.h> #include <sys/user.h> #include <sys/proc.h> #include <sys/stat.h> #include <unistd.h> #include <stdlib.h> #include <kvm.h> #include <db.h> #include "kvm_private.h" void _kvm_freevtop(kvm_t *kd) { if (kd->vmst != NULL) { free(kd->vmst); kd->vmst = NULL; } } int _kvm_initvtop(kvm_t *kd) { return (0); } int _kvm_kvatop(kvm_t *kd, u_long va, paddr_t *pa) { if (ISALIVE(kd)) { _kvm_err(kd, 0, "vatop called in live kernel!"); return (0); } /* XXX this only really works for the kernel image only */ *pa = va; return (PAGE_SIZE - (va & PAGE_MASK)); } /* * Translate a physical address to a file offset in the crash dump. */ off_t _kvm_pa2off(kvm_t *kd, paddr_t pa) { return (kd->dump_off + pa); }