annotate usr/src/cmd/fm/modules/common/eversholt/eft_mdb.c @ 11050:be69f645ce17

6894028 Some fm libraries are not lint clean 6897387 IPMI facility provider methods not registered on some platforms 6893713 Some fm cmds are not lint clean
author Robert Johnston <Robert.Johnston@Sun.COM>
date Wed, 11 Nov 2009 18:52:48 -0800
parents f231270422fc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2869
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
1 /*
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
2 * CDDL HEADER START
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
3 *
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
4 * The contents of this file are subject to the terms of the
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
5 * Common Development and Distribution License (the "License").
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
6 * You may not use this file except in compliance with the License.
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
7 *
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
9 * or http://www.opensolaris.org/os/licensing.
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
10 * See the License for the specific language governing permissions
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
11 * and limitations under the License.
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
12 *
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
13 * When distributing Covered Code, include this CDDL HEADER in each
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
15 * If applicable, add the following below this CDDL HEADER, with the
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
16 * fields enclosed by brackets "[]" replaced with your own identifying
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
17 * information: Portions Copyright [yyyy] [name of copyright owner]
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
18 *
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
19 * CDDL HEADER END
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
20 */
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
21
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
22 /*
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
23 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
2869
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
24 * Use is subject to license terms.
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
25 */
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
26
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
27 #include <sys/mdb_modapi.h>
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
28
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
29 #include <lut.h>
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
30 #include <itree.h>
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
31 #include "ipath_impl.h"
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
32 #include "lut_impl.h"
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
33 #include "config_impl.h"
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
34 #include "stats_impl.h"
2869
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
35
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
36 #define LUT_SIZE_INIT 300
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
37 #define LUT_SIZE_INCR 100
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
38
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
39 struct lut_cp {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
40 uintptr_t lutcp_addr;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
41 struct lut lutcp_lut;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
42 };
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
43
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
44 #define LCPSZ sizeof (struct lut_cp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
45
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
46 struct lut_dump_desc {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
47 struct lut_cp *ld_array;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
48 int ld_arraysz;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
49 int ld_nents;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
50 };
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
51
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
52 static void
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
53 lut_dump_array_alloc(struct lut_dump_desc *lddp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
54 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
55 struct lut_cp *new;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
56
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
57 if (lddp->ld_array == NULL) {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
58 lddp->ld_arraysz = LUT_SIZE_INIT;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
59 lddp->ld_array = mdb_zalloc(LUT_SIZE_INIT * LCPSZ, UM_SLEEP);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
60 return;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
61 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
62
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
63 new = mdb_zalloc((lddp->ld_arraysz + LUT_SIZE_INCR) * LCPSZ, UM_SLEEP);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
64 bcopy(lddp->ld_array, new, lddp->ld_arraysz * LCPSZ);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
65 mdb_free(lddp->ld_array, lddp->ld_arraysz * LCPSZ);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
66 lddp->ld_array = new;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
67 lddp->ld_arraysz += LUT_SIZE_INCR;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
68 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
69
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
70 static void
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
71 lut_dump_array_free(struct lut_dump_desc *lddp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
72 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
73 if (lddp->ld_array != NULL) {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
74 mdb_free(lddp->ld_array, lddp->ld_arraysz * LCPSZ);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
75 lddp->ld_array = NULL;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
76 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
77 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
78
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
79 static void
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
80 lut_collect_addent(uintptr_t addr, struct lut *ent, struct lut_dump_desc *lddp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
81 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
82 struct lut_cp *lcp;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
83
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
84 if (lddp->ld_nents == lddp->ld_arraysz)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
85 lut_dump_array_alloc(lddp);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
86
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
87 lcp = &lddp->ld_array[lddp->ld_nents++];
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
88
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
89 lcp->lutcp_addr = addr;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
90 bcopy(ent, &lcp->lutcp_lut, sizeof (struct lut));
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
91 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
92
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
93 static int
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
94 eft_lut_walk(uintptr_t root, struct lut_dump_desc *lddp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
95 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
96 struct lut lutent;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
97
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
98 if (root) {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
99 if (mdb_vread(&lutent, sizeof (struct lut), root) !=
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
100 sizeof (struct lut)) {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
101 mdb_warn("failed to read struct lut at %p", root);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
102 return (WALK_ERR);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
103 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
104
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
105 if (eft_lut_walk((uintptr_t)lutent.lut_left, lddp) != WALK_NEXT)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
106 return (WALK_ERR);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
107
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
108 lut_collect_addent(root, &lutent, lddp);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
109
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
110 if (eft_lut_walk((uintptr_t)lutent.lut_right, lddp) !=
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
111 WALK_NEXT)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
112 return (WALK_ERR);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
113 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
114 return (WALK_NEXT);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
115 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
116
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
117 static int
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
118 lut_collect(uintptr_t addr, struct lut_dump_desc *lddp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
119 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
120 lut_dump_array_alloc(lddp);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
121
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
122 if (eft_lut_walk(addr, lddp) != WALK_NEXT) {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
123 lut_dump_array_free(lddp);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
124 return (WALK_ERR);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
125 } else {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
126 return (WALK_NEXT); /* caller must free dump array */
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
127 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
128 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
129
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
130 static int
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
131 lut_walk_init(mdb_walk_state_t *wsp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
132 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
133 if (wsp->walk_addr == NULL) {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
134 mdb_warn("lut walker requires a lut table address\n");
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
135 return (WALK_ERR);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
136 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
137
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
138 wsp->walk_data = mdb_zalloc(sizeof (struct lut_dump_desc), UM_SLEEP);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
139 wsp->walk_arg = 0;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
140
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
141 if (lut_collect(wsp->walk_addr, wsp->walk_data) == WALK_NEXT) {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
142 return (WALK_NEXT);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
143 } else {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
144 mdb_warn("failed to suck in full lut\n");
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
145 mdb_free(wsp->walk_data, sizeof (struct lut_dump_desc));
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
146 return (WALK_ERR);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
147 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
148 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
149
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
150 static int
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
151 lut_walk_step(mdb_walk_state_t *wsp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
152 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
153 struct lut_dump_desc *lddp = wsp->walk_data;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
154 int *ip = (int *)&wsp->walk_arg;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
155 struct lut_cp *lcp = &lddp->ld_array[*ip];
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
156
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
157 if (*ip == lddp->ld_nents)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
158 return (WALK_DONE);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
159
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
160 ++*ip;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
161
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
162 return (wsp->walk_callback(lcp->lutcp_addr, &lcp->lutcp_lut,
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
163 wsp->walk_cbdata));
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
164 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
165
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
166 static int
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
167 ipath_walk_init(mdb_walk_state_t *wsp)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
168 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
169 struct ipath *ipath;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
170
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
171 ipath = mdb_alloc(sizeof (struct ipath), UM_SLEEP);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
172
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
173 if (mdb_vread((void *)ipath, sizeof (struct ipath),
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
174 wsp->walk_addr) != sizeof (struct ipath)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
175 mdb_warn("failed to read struct ipath at %p", wsp->walk_addr);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
176 return (WALK_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
177 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
178 wsp->walk_data = (void *)ipath;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
179
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
180 if (ipath->s == NULL)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
181 return (WALK_DONE);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
182 else
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
183 return (WALK_NEXT);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
184 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
185
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
186 static void
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
187 ipath_walk_fini(mdb_walk_state_t *wsp)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
188 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
189 mdb_free(wsp->walk_data, sizeof (struct ipath));
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
190 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
191
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
192 static int
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
193 ipath_walk_step(mdb_walk_state_t *wsp)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
194 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
195 int status;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
196 struct ipath *ipath = (struct ipath *)wsp->walk_data;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
197 struct ipath *ip = (struct ipath *)wsp->walk_addr;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
198
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
199 if (ip == NULL || ipath->s == NULL)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
200 return (WALK_DONE);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
201
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
202 status = wsp->walk_callback(wsp->walk_addr, wsp->walk_data,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
203 wsp->walk_cbdata);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
204
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
205 wsp->walk_addr = (uintptr_t)(ip + 1);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
206
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
207 if (mdb_vread(wsp->walk_data, sizeof (struct ipath),
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
208 wsp->walk_addr) != sizeof (struct ipath)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
209 mdb_warn("failed to read struct ipath at %p", wsp->walk_addr);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
210 return (WALK_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
211 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
212
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
213 return (status);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
214 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
215
2869
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
216 static void
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
217 lut_walk_fini(mdb_walk_state_t *wsp)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
218 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
219 struct lut_dump_desc *lddp = wsp->walk_data;
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
220
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
221 lut_dump_array_free(lddp);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
222 mdb_free(lddp, sizeof (struct lut_dump_desc));
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
223 }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
224
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
225 /*ARGSUSED*/
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
226 static int
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
227 ipath_node(uintptr_t addr, const void *data, void *arg)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
228 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
229 struct ipath *ipath = (struct ipath *)data;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
230 char buf[128];
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
231
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
232 if (mdb_readstr(buf, (size_t)sizeof (buf), (uintptr_t)ipath->s) < 0)
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
233 (void) mdb_snprintf(buf, (size_t)sizeof (buf), "<%p>",
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
234 ipath->s);
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
235
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
236 mdb_printf("/%s=%d", buf, ipath->i);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
237 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
238 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
239
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
240 /*ARGSUSED*/
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
241 static int
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
242 ipath(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
243 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
244 if (argc)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
245 return (DCMD_USAGE);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
246 if (!(flags & DCMD_ADDRSPEC))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
247 addr = mdb_get_dot();
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
248 if (mdb_pwalk("eft_ipath", ipath_node, NULL, addr) != 0)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
249 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
250 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
251 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
252
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
253 /*ARGSUSED*/
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
254 static int
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
255 eft_count(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
256 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
257 struct lut lut;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
258 struct istat_entry istat_entry;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
259 struct stats count;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
260 GElf_Sym sym;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
261 char buf[128];
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
262
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
263 if (argc)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
264 return (DCMD_USAGE);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
265 if (!(flags & DCMD_ADDRSPEC)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
266 if (mdb_lookup_by_obj(MDB_OBJ_EVERY, "Istats", &sym) == -1 ||
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
267 sym.st_size != sizeof (addr))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
268 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
269 if (mdb_vread(&addr, sizeof (addr),
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
270 (uintptr_t)sym.st_value) != sizeof (addr))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
271 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
272 if (addr == NULL)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
273 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
274 if (mdb_pwalk_dcmd("lut", "eft_count", argc, argv, addr) != 0)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
275 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
276 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
277 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
278
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
279 if (mdb_vread(&lut, sizeof (struct lut), addr) != sizeof (struct lut)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
280 mdb_warn("failed to read struct lut at %p", addr);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
281 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
282 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
283 if (mdb_vread(&istat_entry, sizeof (struct istat_entry),
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
284 (uintptr_t)lut.lut_lhs) != sizeof (struct istat_entry)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
285 mdb_warn("failed to read struct istat_entry at %p", addr);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
286 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
287 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
288 if (mdb_vread(&count, sizeof (struct stats),
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
289 (uintptr_t)lut.lut_rhs) != sizeof (struct stats)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
290 mdb_warn("failed to read struct stats at %p", addr);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
291 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
292 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
293
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
294 if (mdb_readstr(buf, (size_t)sizeof (buf),
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
295 (uintptr_t)istat_entry.ename) < 0)
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
296 (void) mdb_snprintf(buf, (size_t)sizeof (buf), "<%p>",
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
297 istat_entry.ename);
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
298
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
299 mdb_printf("%s@", buf);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
300 (void) ipath((uintptr_t)istat_entry.ipath, DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
301 mdb_printf(" %d\n", count.fmd_stats.fmds_value.i32);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
302 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
303 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
304
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
305 /*ARGSUSED*/
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
306 static int
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
307 eft_time(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
308 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
309 unsigned long long val;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
310 unsigned long long ull;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
311 int opt_p = 0;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
312
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
313 if (!(flags & DCMD_ADDRSPEC))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
314 addr = mdb_get_dot();
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
315 ull = addr;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
316 if (argc) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
317 if (mdb_getopts(argc, argv,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
318 'l', MDB_OPT_UINT64, &ull,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
319 'p', MDB_OPT_SETBITS, TRUE, &opt_p,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
320 MDB_OPT_UINT64) != argc) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
321 return (DCMD_USAGE);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
322 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
323 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
324 if (opt_p) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
325 if (mdb_vread(&ull, sizeof (ull), addr) != sizeof (ull)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
326 mdb_warn("failed to read timeval at %p", addr);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
327 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
328 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
329 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
330 #define NOREMAINDER(den, num, val) (((val) = ((den) / (num))) * (num) == (den))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
331 if (ull == 0)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
332 mdb_printf("0us");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
333 else if (ull >= TIMEVAL_EVENTUALLY)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
334 mdb_printf("infinity");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
335 else if (NOREMAINDER(ull, 1000000000ULL*60*60*24*365, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
336 mdb_printf("%lluyear%s", val, (val == 1) ? "" : "s");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
337 else if (NOREMAINDER(ull, 1000000000ULL*60*60*24*30, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
338 mdb_printf("%llumonth%s", val, (val == 1) ? "" : "s");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
339 else if (NOREMAINDER(ull, 1000000000ULL*60*60*24*7, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
340 mdb_printf("%lluweek%s", val, (val == 1) ? "" : "s");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
341 else if (NOREMAINDER(ull, 1000000000ULL*60*60*24, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
342 mdb_printf("%lluday%s", val, (val == 1) ? "" : "s");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
343 else if (NOREMAINDER(ull, 1000000000ULL*60*60, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
344 mdb_printf("%lluhour%s", val, (val == 1) ? "" : "s");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
345 else if (NOREMAINDER(ull, 1000000000ULL*60, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
346 mdb_printf("%lluminute%s", val, (val == 1) ? "" : "s");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
347 else if (NOREMAINDER(ull, 1000000000ULL, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
348 mdb_printf("%llusecond%s", val, (val == 1) ? "" : "s");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
349 else if (NOREMAINDER(ull, 1000000ULL, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
350 mdb_printf("%llums", val);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
351 else if (NOREMAINDER(ull, 1000ULL, val))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
352 mdb_printf("%lluus", val);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
353 else
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
354 mdb_printf("%lluns", ull);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
355
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
356 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
357 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
358
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
359 /*ARGSUSED*/
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
360 static int
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
361 eft_node(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
362 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
363 struct node node;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
364 int opt_v = 0;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
365 char buf[128];
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
366
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
367 if (!(flags & DCMD_ADDRSPEC))
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
368 addr = mdb_get_dot();
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
369 if (argc) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
370 if (mdb_getopts(argc, argv,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
371 'v', MDB_OPT_SETBITS, TRUE, &opt_v,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
372 NULL) != argc) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
373 return (DCMD_USAGE);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
374 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
375 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
376 if (addr == NULL)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
377 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
378 if (mdb_vread(&node, sizeof (node), addr) != sizeof (node)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
379 mdb_warn("failed to read struct node at %p", addr);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
380 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
381 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
382 if (opt_v) {
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
383 if (mdb_readstr(buf, (size_t)sizeof (buf),
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
384 (uintptr_t)node.file) < 0)
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
385 (void) mdb_snprintf(buf, (size_t)sizeof (buf), "<%p>",
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
386 node.file);
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
387
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
388 mdb_printf("%s len %d\n", buf, node.line);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
389 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
390 switch (node.t) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
391 case T_NOTHING: /* used to keep going on error cases */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
392 mdb_printf("nothing");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
393 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
394 case T_NAME: /* identifiers, sometimes chained */
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
395 if (mdb_readstr(buf, (size_t)sizeof (buf),
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
396 (uintptr_t)node.u.name.s) < 0)
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
397 (void) mdb_snprintf(buf, (size_t)sizeof (buf), "<%p>",
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
398 node.u.name.s);
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
399
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
400 mdb_printf("%s", buf);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
401 if (node.u.name.cp) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
402 struct config cp;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
403 if (mdb_vread(&cp, sizeof (cp),
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
404 (uintptr_t)node.u.name.cp) != sizeof (cp)) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
405 mdb_warn("failed to read struct config at %p",
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
406 node.u.name.cp);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
407 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
408 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
409 mdb_printf("%d", cp.num);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
410 } else if (node.u.name.it == IT_HORIZONTAL) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
411 if (node.u.name.child && !node.u.name.childgen) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
412 mdb_printf("<");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
413 (void) eft_node((uintptr_t)node.u.name.child,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
414 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
415 mdb_printf(">");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
416 } else {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
417 mdb_printf("<> ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
418 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
419 } else if (node.u.name.child) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
420 mdb_printf("[");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
421 (void) eft_node((uintptr_t)node.u.name.child,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
422 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
423 mdb_printf("]");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
424 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
425 if (node.u.name.next) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
426 if (node.u.name.it == IT_ENAME)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
427 mdb_printf(".");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
428 else
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
429 mdb_printf("/");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
430 (void) eft_node((uintptr_t)node.u.name.next,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
431 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
432 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
433 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
434 case T_GLOBID: /* globals (e.g. $a) */
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
435 if (mdb_readstr(buf, (size_t)sizeof (buf),
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
436 (uintptr_t)node.u.globid.s) < 0)
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
437 (void) mdb_snprintf(buf, (size_t)sizeof (buf), "<%p>",
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
438 node.u.globid.s);
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
439
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
440 mdb_printf("$%s", buf);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
441 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
442 case T_EVENT: /* class@path{expr} */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
443 (void) eft_node((uintptr_t)node.u.event.ename, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
444 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
445 mdb_printf("@");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
446 (void) eft_node((uintptr_t)node.u.event.epname, DCMD_ADDRSPEC,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
447 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
448 if (node.u.event.eexprlist) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
449 mdb_printf(" { ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
450 (void) eft_node((uintptr_t)node.u.event.eexprlist,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
451 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
452 mdb_printf(" }");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
453 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
454 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
455 case T_ENGINE: /* upset threshold engine (e.g. SERD) */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
456 mdb_printf("engine ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
457 (void) eft_node((uintptr_t)node.u.event.ename, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
458 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
459 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
460 case T_ASRU: /* ASRU declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
461 mdb_printf("asru ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
462 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
463 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
464 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
465 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
466 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
467 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
468
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
469 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
470 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
471 case T_FRU: /* FRU declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
472 mdb_printf("fru ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
473 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
474 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
475 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
476 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
477 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
478 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
479
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
480 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
481 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
482 case T_TIMEVAL: /* num w/time suffix (ns internally) */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
483 {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
484 mdb_arg_t mdb_arg[2];
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
485 mdb_arg[0].a_type = MDB_TYPE_STRING;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
486 mdb_arg[0].a_un.a_str = "-l";
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
487 mdb_arg[1].a_type = MDB_TYPE_IMMEDIATE;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
488 mdb_arg[1].a_un.a_val = node.u.ull;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
489 (void) eft_time((uintptr_t)0, 0, 2, mdb_arg);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
490 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
491 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
492 case T_NUM: /* num (ull internally) */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
493 mdb_printf("%llu", node.u.ull);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
494 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
495 case T_QUOTE: /* quoted string */
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
496 if (mdb_readstr(buf, (size_t)sizeof (buf),
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
497 (uintptr_t)node.u.quote.s) < 0)
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
498 (void) mdb_snprintf(buf, (size_t)sizeof (buf), "<%p>",
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
499 node.u.quote.s);
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
500
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
501 mdb_printf("\"%s\"", buf);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
502 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
503 case T_FUNC: /* func(arglist) */
11050
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
504 if (mdb_readstr(buf, (size_t)sizeof (buf),
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
505 (uintptr_t)node.u.func.s) < 0)
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
506 (void) mdb_snprintf(buf, (size_t)sizeof (buf), "<%p>",
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
507 node.u.func.s);
be69f645ce17 6894028 Some fm libraries are not lint clean
Robert Johnston <Robert.Johnston@Sun.COM>
parents: 5433
diff changeset
508
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
509 mdb_printf("%s(", buf);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
510 (void) eft_node((uintptr_t)node.u.func.arglist, DCMD_ADDRSPEC,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
511 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
512 mdb_printf(")");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
513 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
514 case T_NVPAIR: /* name=value pair in decl */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
515 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
516 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
517 mdb_printf(" = ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
518 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
519 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
520 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
521 case T_ASSIGN: /* assignment statement */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
522 mdb_printf("(");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
523 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
524 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
525 mdb_printf(" = ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
526 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
527 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
528 mdb_printf(")");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
529 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
530 case T_CONDIF: /* a and T_CONDELSE in (a ? b : c ) */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
531 mdb_printf("(");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
532 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
533 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
534 mdb_printf(" ? ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
535 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
536 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
537 mdb_printf(")");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
538 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
539 case T_CONDELSE: /* lists b and c in (a ? b : c ) */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
540 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
541 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
542 mdb_printf(" : ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
543 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
544 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
545 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
546 case T_NOT: /* boolean ! operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
547 mdb_printf("!");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
548 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
549 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
550 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
551 case T_AND: /* boolean && operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
552 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
553 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
554 mdb_printf(" && ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
555 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
556 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
557 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
558 case T_OR: /* boolean || operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
559 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
560 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
561 mdb_printf(" || ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
562 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
563 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
564 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
565 case T_EQ: /* boolean == operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
566 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
567 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
568 mdb_printf(" == ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
569 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
570 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
571 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
572 case T_NE: /* boolean != operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
573 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
574 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
575 mdb_printf(" != ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
576 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
577 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
578 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
579 case T_SUB: /* integer - operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
580 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
581 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
582 mdb_printf(" - ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
583 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
584 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
585 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
586 case T_ADD: /* integer + operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
587 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
588 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
589 mdb_printf(" + ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
590 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
591 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
592 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
593 case T_MUL: /* integer * operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
594 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
595 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
596 mdb_printf(" * ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
597 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
598 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
599 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
600 case T_DIV: /* integer / operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
601 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
602 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
603 mdb_printf(" / ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
604 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
605 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
606 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
607 case T_MOD: /* integer % operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
608 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
609 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
610 mdb_printf(" % ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
611 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
612 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
613 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
614 case T_LT: /* boolean < operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
615 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
616 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
617 mdb_printf(" < ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
618 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
619 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
620 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
621 case T_LE: /* boolean <= operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
622 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
623 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
624 mdb_printf(" <= ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
625 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
626 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
627 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
628 case T_GT: /* boolean > operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
629 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
630 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
631 mdb_printf(" > ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
632 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
633 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
634 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
635 case T_GE: /* boolean >= operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
636 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
637 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
638 mdb_printf(" >= ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
639 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
640 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
641 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
642 case T_BITAND: /* bitwise & operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
643 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
644 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
645 mdb_printf(" & ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
646 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
647 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
648 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
649 case T_BITOR: /* bitwise | operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
650 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
651 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
652 mdb_printf(" | ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
653 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
654 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
655 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
656 case T_BITXOR: /* bitwise ^ operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
657 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
658 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
659 mdb_printf(" ^ ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
660 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
661 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
662 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
663 case T_BITNOT: /* bitwise ~ operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
664 mdb_printf(" ~");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
665 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
666 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
667 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
668 case T_LSHIFT: /* bitwise << operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
669 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
670 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
671 mdb_printf(" << ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
672 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
673 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
674 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
675 case T_RSHIFT: /* bitwise >> operator */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
676 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
677 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
678 mdb_printf(" >> ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
679 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
680 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
681 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
682 case T_ARROW: /* lhs (N)->(K) rhs */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
683 (void) eft_node((uintptr_t)node.u.arrow.lhs, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
684 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
685 if (node.u.arrow.nnp) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
686 mdb_printf("(");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
687 (void) eft_node((uintptr_t)node.u.arrow.nnp,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
688 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
689 mdb_printf(")");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
690 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
691 mdb_printf("->");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
692 if (node.u.arrow.knp) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
693 mdb_printf("(");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
694 (void) eft_node((uintptr_t)node.u.arrow.knp,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
695 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
696 mdb_printf(")");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
697 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
698 (void) eft_node((uintptr_t)node.u.arrow.rhs, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
699 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
700 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
701 case T_LIST: /* comma-separated list */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
702 (void) eft_node((uintptr_t)node.u.expr.left, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
703 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
704 mdb_printf(", ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
705 (void) eft_node((uintptr_t)node.u.expr.right, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
706 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
707 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
708 case T_FAULT: /* fault declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
709 mdb_printf("fault.");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
710 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
711 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
712 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
713 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
714 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
715 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
716
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
717 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
718 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
719 case T_UPSET: /* upset declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
720 mdb_printf("upset.");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
721 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
722 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
723 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
724 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
725 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
726 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
727
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
728 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
729 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
730 case T_DEFECT: /* defect declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
731 mdb_printf("defect.");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
732 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
733 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
734 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
735 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
736 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
737 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
738
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
739 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
740 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
741 case T_ERROR: /* error declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
742 mdb_printf("error.");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
743 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
744 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
745 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
746 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
747 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
748 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
749
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
750 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
751 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
752 case T_EREPORT: /* ereport declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
753 mdb_printf("ereport.");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
754 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
755 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
756 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
757 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
758 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
759 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
760
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
761 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
762 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
763 case T_SERD: /* SERD engine declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
764 mdb_printf("serd.");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
765 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
766 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
767 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
768 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
769 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
770 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
771
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
772 } else if (node.u.stmt.lutp) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
773 if (mdb_pwalk_dcmd("lut", "eft_node", 0, NULL,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
774 (uintptr_t)node.u.stmt.lutp) != 0)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
775 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
776 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
777 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
778 case T_STAT: /* STAT engine declaration */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
779 mdb_printf("stat.");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
780 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
781 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
782 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
783 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
784 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
785 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
786
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
787 } else if (node.u.stmt.lutp) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
788 if (mdb_pwalk_dcmd("lut", "eft_node", 0, NULL,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
789 (uintptr_t)node.u.stmt.lutp) != 0)
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
790 return (DCMD_ERR);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
791 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
792 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
793 case T_PROP: /* prop statement */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
794 mdb_printf("prop ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
795 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
796 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
797 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
798 case T_MASK: /* mask statement */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
799 mdb_printf("mask ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
800 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
801 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
802 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
803 case T_CONFIG: /* config statement */
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
804 mdb_printf("config ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
805 (void) eft_node((uintptr_t)node.u.stmt.np, DCMD_ADDRSPEC, 0,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
806 NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
807 if (node.u.stmt.nvpairs) {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
808 mdb_printf(" ");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
809 (void) eft_node((uintptr_t)node.u.stmt.nvpairs,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
810 DCMD_ADDRSPEC, 0, NULL);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
811
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
812 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
813 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
814 default:
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
815 mdb_printf("not a eversholt node\n");
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
816 break;
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
817 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
818 return (DCMD_OK);
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
819 }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
820
2869
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
821 static const mdb_walker_t walkers[] = {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
822 { "lut", "walk a lookup table", lut_walk_init, lut_walk_step,
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
823 lut_walk_fini, NULL },
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
824 { "eft_ipath", "walk ipath", ipath_walk_init, ipath_walk_step,
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
825 ipath_walk_fini, NULL },
2869
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
826 { NULL, NULL, NULL, NULL, NULL, NULL }
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
827 };
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
828
5433
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
829 static const mdb_dcmd_t dcmds[] = {
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
830 { "eft_ipath", "?", "print an ipath", ipath },
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
831 { "eft_count", "?", "print eversholt stats", eft_count },
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
832 { "eft_node", "?[-v]", "print eversholt node", eft_node },
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
833 { "eft_time", "?[-p][-l time]", "print eversholt timeval", eft_time },
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
834 { NULL }
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
835 };
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
836
f231270422fc 6620275 mdb support modules for fmd fault manager daemon could be more helpful
af
parents: 2869
diff changeset
837 static const mdb_modinfo_t modinfo = { MDB_API_VERSION, dcmds, walkers };
2869
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
838
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
839 const mdb_modinfo_t *
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
840 _mdb_init(void)
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
841 {
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
842 return (&modinfo);
324151eecd58 PSARC 2006/564 FMA for Athlon 64 and Opteron Rev F/G Processors
gavinm
parents:
diff changeset
843 }