kvm_arm.c revision 1.2 1 /* $NetBSD: kvm_arm.c,v 1.2 2001/07/16 05:45:52 matt Exp $ */
2
3 /*-
4 * Copyright (C) 1996 Wolfgang Solfrank.
5 * Copyright (C) 1996 TooLs GmbH.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by TooLs GmbH.
19 * 4. The name of TooLs GmbH may not be used to endorse or promote products
20 * derived from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR
23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25 * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 * from: kvm_powerpc.c,v 1.3 1997/09/19 04:00:23 thorpej Exp
34 */
35
36 /*
37 * arm32 machine dependent routines for kvm.
38 */
39
40 #include <sys/param.h>
41
42 #include <sys/exec.h>
43
44 #include <stdlib.h>
45 #include <db.h>
46 #include <limits.h>
47 #include <kvm.h>
48
49 #include "kvm_private.h"
50
51 void
52 _kvm_freevtop(kd)
53 kvm_t *kd;
54 {
55 if (kd->vmst != 0)
56 free(kd->vmst);
57 }
58
59 int
60 _kvm_initvtop(kd)
61 kvm_t *kd;
62 {
63 return 0;
64 }
65
66 int
67 _kvm_kvatop(kd, va, pa)
68 kvm_t *kd;
69 u_long va;
70 u_long *pa;
71 {
72 _kvm_err(kd, 0, "vatop not yet implemented!");
73 return 0;
74 }
75
76 off_t
77 _kvm_pa2off(kd, pa)
78 kvm_t *kd;
79 u_long pa;
80 {
81 _kvm_err(kd, 0, "pa2off not yet implemented!");
82 return 0;
83 }
84
85 /*
86 * Machine-dependent initialization for ALL open kvm descriptors,
87 * not just those for a kernel crash dump. Some architectures
88 * have to deal with these NOT being constants! (i.e. arm)
89 */
90 int
91 _kvm_mdopen(kd)
92 kvm_t *kd;
93 {
94 uintptr_t max_uva;
95 extern struct ps_strings *__ps_strings;
96
97 #if 0 /* XXX - These vary across arm machines... */
98 kd->usrstack = USRSTACK;
99 kd->min_uva = VM_MIN_ADDRESS;
100 kd->max_uva = VM_MAXUSER_ADDRESS;
101 #endif
102 /* This is somewhat hack-ish, but it works. */
103 max_uva = (uintptr_t) (__ps_strings + 1);
104 kd->usrstack = max_uva;
105 kd->max_uva = max_uva;
106 kd->min_uva = 0;
107
108 return (0);
109 }
110