1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24 */
25
26#include <sys/trapstat.h>
27#include "_trapstat.h"
28
29static tstat_ent_t g_traps[TSTAT_NENT] = {
30#ifndef	sun4v
31	{ NULL, NULL,		TSTAT_ENT_RESERVED },
32	{ "power-on", 		"power on reset" },
33	{ "watchdog", 		"watchdog reset" },
34	{ "xir", 		"externally initiated reset" },
35	{ "sir", 		"software initiated reset" },
36	{ "red", 		"RED state exception" },
37	{ NULL, NULL,		TSTAT_ENT_RESERVED },
38	{ NULL, NULL,		TSTAT_ENT_RESERVED },
39	{ "immu-xcp", 		"instruction access exception" },
40	{ "immu-miss", 		"instruction access MMU miss" },
41	{ "immu-err", 		"instruction access error" },
42	{ NULL, NULL,		TSTAT_ENT_RESERVED },
43	{ NULL, NULL,		TSTAT_ENT_RESERVED },
44	{ NULL, NULL,		TSTAT_ENT_RESERVED },
45	{ NULL, NULL,		TSTAT_ENT_RESERVED },
46	{ NULL, NULL,		TSTAT_ENT_RESERVED },
47	{ "ill-inst", 		"illegal instruction" },
48	{ "priv-inst", 		"privileged opcode" },
49	{ "unimp-ldd", 		"unimplemented LDD" },
50	{ "unimp-std", 		"unimplemented STD" },
51	{ NULL, NULL,		TSTAT_ENT_RESERVED },
52	{ NULL, NULL,		TSTAT_ENT_RESERVED },
53	{ NULL, NULL,		TSTAT_ENT_RESERVED },
54	{ NULL, NULL,		TSTAT_ENT_RESERVED },
55	{ NULL, NULL,		TSTAT_ENT_RESERVED },
56	{ NULL, NULL,		TSTAT_ENT_RESERVED },
57	{ NULL, NULL,		TSTAT_ENT_RESERVED },
58	{ NULL, NULL,		TSTAT_ENT_RESERVED },
59	{ NULL, NULL,		TSTAT_ENT_RESERVED },
60	{ NULL, NULL,		TSTAT_ENT_RESERVED },
61	{ NULL, NULL,		TSTAT_ENT_RESERVED },
62	{ NULL, NULL,		TSTAT_ENT_RESERVED },
63	{ "fp-disabled", 	"fp disabled" },
64	{ "fp-ieee754", 	"fp exception ieee754" },
65	{ "fp-xcp-other", 	"fp exception other" },
66	{ "tag-oflow", 		"tag overflow" },
67	{ "cleanwin", 		"clean window" },
68	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
69	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
70	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
71	{ "div-zero", 		"division by zero" },
72	{ "internal-err", 	"internal processor error" },
73	{ NULL, NULL,		TSTAT_ENT_RESERVED },
74	{ NULL, NULL,		TSTAT_ENT_RESERVED },
75	{ NULL, NULL,		TSTAT_ENT_RESERVED },
76	{ NULL, NULL,		TSTAT_ENT_RESERVED },
77	{ NULL, NULL,		TSTAT_ENT_RESERVED },
78	{ NULL, NULL,		TSTAT_ENT_RESERVED },
79	{ "dmmu-xcp", 		"data access exception" },
80	{ "dmmu-miss", 		"data access MMU miss" },
81	{ "dmmu-err", 		"data access error" },
82	{ "dmmu-prot", 		"data access protection" },
83	{ "unalign", 		"mem address not aligned" },
84	{ "lddf-unalign", 	"LDDF mem address not aligned" },
85	{ "stdf-unalign", 	"STDF mem address not aligned" },
86	{ "priv-act", 		"privileged action" },
87	{ "ldqf-unalign",	"LDQF mem address not aligned" },
88	{ "stqf-unalign", 	"STQF mem address not aligned" },
89	{ NULL, NULL,		TSTAT_ENT_RESERVED },
90	{ NULL, NULL,		TSTAT_ENT_RESERVED },
91	{ NULL, NULL,		TSTAT_ENT_RESERVED },
92	{ NULL, NULL,		TSTAT_ENT_RESERVED },
93	{ NULL, NULL,		TSTAT_ENT_RESERVED },
94	{ NULL, NULL,		TSTAT_ENT_RESERVED },
95	{ "async-d-err", 	"async data error" },
96	{ "level-1", 		"interrupt level 1" },
97	{ "level-2", 		"interrupt level 2" },
98	{ "level-3", 		"interrupt level 3" },
99	{ "level-4", 		"interrupt level 4" },
100	{ "level-5", 		"interrupt level 5" },
101	{ "level-6", 		"interrupt level 6" },
102	{ "level-7", 		"interrupt level 7" },
103	{ "level-8", 		"interrupt level 8" },
104	{ "level-9", 		"interrupt level 9" },
105	{ "level-10", 		"interrupt level 10" },
106	{ "level-11", 		"interrupt level 11" },
107	{ "level-12", 		"interrupt level 12" },
108	{ "level-13", 		"interrupt level 13" },
109	{ "level-14", 		"interrupt level 14" },
110	{ "level-15", 		"interrupt level 15" },
111	{ NULL, NULL,		TSTAT_ENT_RESERVED },
112	{ NULL, NULL,		TSTAT_ENT_RESERVED },
113	{ NULL, NULL,		TSTAT_ENT_RESERVED },
114	{ NULL, NULL,		TSTAT_ENT_RESERVED },
115	{ NULL, NULL,		TSTAT_ENT_RESERVED },
116	{ NULL, NULL,		TSTAT_ENT_RESERVED },
117	{ NULL, NULL,		TSTAT_ENT_RESERVED },
118	{ NULL, NULL,		TSTAT_ENT_RESERVED },
119	{ NULL, NULL,		TSTAT_ENT_RESERVED },
120	{ NULL, NULL,		TSTAT_ENT_RESERVED },
121	{ NULL, NULL,		TSTAT_ENT_RESERVED },
122	{ NULL, NULL,		TSTAT_ENT_RESERVED },
123	{ NULL, NULL,		TSTAT_ENT_RESERVED },
124	{ NULL, NULL,		TSTAT_ENT_RESERVED },
125	{ NULL, NULL,		TSTAT_ENT_RESERVED },
126	{ NULL, NULL,		TSTAT_ENT_RESERVED },
127	{ "int-vec", 		"interrupt vector" },
128	{ "pa-watch", 		"PA watchpoint" },
129	{ "va-watch", 		"VA watchpoint" },
130	{ "ecc-err", 		"corrected ECC error" },
131	{ "itlb-miss", 		"instruction access MMU miss" },
132	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
133	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
134	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
135	{ "dtlb-miss", 		"data access MMU miss" },
136	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
137	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
138	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
139	{ "dtlb-prot", 		"data access protection" },
140	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
141	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
142	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
143	{ "fast-ecc",		"fast ECC error" },
144	{ "dcache-parity",	"D-cache parity error" },
145	{ "icache-parity",	"I-cache parity error" },
146	{ NULL, NULL,		TSTAT_ENT_RESERVED },
147	{ NULL, NULL,		TSTAT_ENT_RESERVED },
148	{ NULL, NULL,		TSTAT_ENT_RESERVED },
149	{ NULL, NULL,		TSTAT_ENT_RESERVED },
150	{ NULL, NULL,		TSTAT_ENT_RESERVED },
151	{ NULL, NULL,		TSTAT_ENT_RESERVED },
152	{ NULL, NULL,		TSTAT_ENT_RESERVED },
153	{ NULL, NULL,		TSTAT_ENT_RESERVED },
154	{ NULL, NULL,		TSTAT_ENT_RESERVED },
155	{ NULL, NULL,		TSTAT_ENT_RESERVED },
156	{ NULL, NULL,		TSTAT_ENT_RESERVED },
157	{ NULL, NULL,		TSTAT_ENT_RESERVED },
158	{ NULL, NULL,		TSTAT_ENT_RESERVED },
159#else /* sun4v */
160	{ NULL, NULL,		TSTAT_ENT_RESERVED },
161	{ NULL, NULL,		TSTAT_ENT_RESERVED },
162	{ "watchdog", 		"watchdog reset" },
163	{ NULL, NULL,		TSTAT_ENT_RESERVED },
164	{ NULL, NULL,		TSTAT_ENT_RESERVED },
165	{ NULL, NULL,		TSTAT_ENT_RESERVED },
166	{ NULL, NULL,		TSTAT_ENT_RESERVED },
167	{ NULL, NULL,		TSTAT_ENT_RESERVED },
168	{ "immu-xcp", 		"instruction access exception" },
169	{ "immu-miss", 		"instruction access MMU miss" },
170	{ NULL, NULL,		TSTAT_ENT_RESERVED },
171	{ NULL, NULL,		TSTAT_ENT_RESERVED },
172	{ NULL, NULL,		TSTAT_ENT_RESERVED },
173	{ NULL, NULL,		TSTAT_ENT_RESERVED },
174	{ NULL, NULL,		TSTAT_ENT_RESERVED },
175	{ NULL, NULL,		TSTAT_ENT_RESERVED },
176	{ "ill-inst", 		"illegal instruction" },
177	{ "priv-inst", 		"privileged opcode" },
178	{ "unimp-ldd", 		"unimplemented LDD" },
179	{ "unimp-std", 		"unimplemented STD" },
180	{ NULL, NULL,		TSTAT_ENT_RESERVED },
181	{ NULL, NULL,		TSTAT_ENT_RESERVED },
182	{ NULL, NULL,		TSTAT_ENT_RESERVED },
183	{ NULL, NULL,		TSTAT_ENT_RESERVED },
184	{ NULL, NULL,		TSTAT_ENT_RESERVED },
185	{ NULL, NULL,		TSTAT_ENT_RESERVED },
186	{ NULL, NULL,		TSTAT_ENT_RESERVED },
187	{ NULL, NULL,		TSTAT_ENT_RESERVED },
188	{ NULL, NULL,		TSTAT_ENT_RESERVED },
189	{ NULL, NULL,		TSTAT_ENT_RESERVED },
190	{ NULL, NULL,		TSTAT_ENT_RESERVED },
191	{ NULL, NULL,		TSTAT_ENT_RESERVED },
192	{ "fp-disabled", 	"fp disabled" },
193	{ "fp-ieee754", 	"fp exception ieee754" },
194	{ "fp-xcp-other", 	"fp exception other" },
195	{ "tag-oflow", 		"tag overflow" },
196	{ "cleanwin", 		"clean window" },
197	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
198	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
199	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
200	{ "div-zero", 		"division by zero" },
201	{ NULL, NULL,		TSTAT_ENT_RESERVED },
202	{ NULL, NULL,		TSTAT_ENT_RESERVED },
203	{ NULL, NULL,		TSTAT_ENT_RESERVED },
204	{ NULL, NULL,		TSTAT_ENT_RESERVED },
205	{ NULL, NULL,		TSTAT_ENT_RESERVED },
206	{ NULL, NULL,		TSTAT_ENT_RESERVED },
207	{ NULL, NULL,		TSTAT_ENT_RESERVED },
208	{ "dmmu-xcp", 		"data access exception" },
209	{ "dmmu-miss", 		"data access MMU miss" },
210	{ NULL, NULL,		TSTAT_ENT_RESERVED },
211	{ "dmmu-prot", 		"data access protection" },
212	{ "unalign", 		"mem address not aligned" },
213	{ "lddf-unalign", 	"LDDF mem address not aligned" },
214	{ "stdf-unalign", 	"STDF mem address not aligned" },
215	{ "priv-act", 		"privileged action" },
216	{ "ldqf-unalign",	"LDQF mem address not aligned" },
217	{ "stqf-unalign", 	"STQF mem address not aligned" },
218	{ NULL, NULL,		TSTAT_ENT_RESERVED },
219	{ NULL, NULL,		TSTAT_ENT_RESERVED },
220	{ NULL, NULL,		TSTAT_ENT_RESERVED },
221	{ NULL, NULL,		TSTAT_ENT_RESERVED },
222	{ NULL, NULL,		TSTAT_ENT_RESERVED },
223	{ NULL, NULL,		TSTAT_ENT_RESERVED },
224	{ NULL, NULL,		TSTAT_ENT_RESERVED },
225	{ "level-1", 		"interrupt level 1" },
226	{ "level-2", 		"interrupt level 2" },
227	{ "level-3", 		"interrupt level 3" },
228	{ "level-4", 		"interrupt level 4" },
229	{ "level-5", 		"interrupt level 5" },
230	{ "level-6", 		"interrupt level 6" },
231	{ "level-7", 		"interrupt level 7" },
232	{ "level-8", 		"interrupt level 8" },
233	{ "level-9", 		"interrupt level 9" },
234	{ "level-10", 		"interrupt level 10" },
235	{ "level-11", 		"interrupt level 11" },
236	{ "level-12", 		"interrupt level 12" },
237	{ "level-13", 		"interrupt level 13" },
238	{ "level-14", 		"interrupt level 14" },
239	{ "level-15", 		"interrupt level 15" },
240	{ NULL, NULL,		TSTAT_ENT_RESERVED },
241	{ NULL, NULL,		TSTAT_ENT_RESERVED },
242	{ NULL, NULL,		TSTAT_ENT_RESERVED },
243	{ NULL, NULL,		TSTAT_ENT_RESERVED },
244	{ NULL, NULL,		TSTAT_ENT_RESERVED },
245	{ NULL, NULL,		TSTAT_ENT_RESERVED },
246	{ NULL, NULL,		TSTAT_ENT_RESERVED },
247	{ NULL, NULL,		TSTAT_ENT_RESERVED },
248	{ NULL, NULL,		TSTAT_ENT_RESERVED },
249	{ NULL, NULL,		TSTAT_ENT_RESERVED },
250	{ NULL, NULL,		TSTAT_ENT_RESERVED },
251	{ NULL, NULL,		TSTAT_ENT_RESERVED },
252	{ NULL, NULL,		TSTAT_ENT_RESERVED },
253	{ NULL, NULL,		TSTAT_ENT_RESERVED },
254	{ NULL, NULL,		TSTAT_ENT_RESERVED },
255	{ NULL, NULL,		TSTAT_ENT_RESERVED },
256	{ NULL, NULL,		TSTAT_ENT_RESERVED },
257	{ "pa-watch", 		"PA watchpoint" },
258	{ "va-watch", 		"VA watchpoint" },
259	{ NULL, NULL,		TSTAT_ENT_RESERVED },
260	{ "itlb-miss", 		"instruction access MMU miss" },
261	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
262	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
263	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
264	{ "dtlb-miss", 		"data access MMU miss" },
265	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
266	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
267	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
268	{ "dtlb-prot", 		"data access protection" },
269	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
270	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
271	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
272	{ NULL, NULL,		TSTAT_ENT_RESERVED },
273	{ NULL, NULL,		TSTAT_ENT_RESERVED },
274	{ NULL, NULL,		TSTAT_ENT_RESERVED },
275	{ "ctl-xfer",		"control transfer" },
276	{ NULL, NULL,		TSTAT_ENT_RESERVED },
277	{ "instr-brkpt",	"instruction breakpoint" },
278	{ NULL, NULL,		TSTAT_ENT_RESERVED },
279	{ NULL, NULL,		TSTAT_ENT_RESERVED },
280	{ NULL, NULL,		TSTAT_ENT_RESERVED },
281	{ NULL, NULL,		TSTAT_ENT_RESERVED },
282	{ NULL, NULL,		TSTAT_ENT_RESERVED },
283	{ "hw-changed", 	"hardware changed" },
284	{ "cpu_mondo", 		"cpu mondo trap" },
285	{ "dev_mondo", 		"device mondo trap" },
286	{ "res-err", 		"resumable error" },
287	{ "nonres-err",		"non-resumable error" },
288#endif /* sun4v */
289	{ "spill-0-normal", 	"spill 0 normal" },
290	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
291	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
292	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
293	{ "spill-user-32", 	"spill user window, 32-bit" },
294	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
295	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
296	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
297	{ "spill-user-64", 	"spill user window, 64-bit" },
298	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
299	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
300	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
301	{ "spill-user-32-cln", 	"spill, clean user window, 32-bit" },
302	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
303	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
304	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
305	{ "spill-user-64-cln", 	"spill, clean user window, 64-bit" },
306	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
307	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
308	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
309	{ "spill-kern-32", 	"spill kernel window, 32-bit" },
310	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
311	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
312	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
313	{ "spill-kern-64", 	"spill kernel window, 64-bit" },
314	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
315	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
316	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
317	{ "spill-mixed", 	"spill window, mixed 32-bit/64-bit" },
318	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
319	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
320	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
321	{ "spill-0-other", 	"spill 0 other" },
322	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
323	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
324	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
325	{ "spill-asuser-32", 	"spill user window as kernel, 32-bit" },
326	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
327	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
328	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
329	{ "spill-asuser-64", 	"spill user window as kernel, 64-bit" },
330	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
331	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
332	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
333	{ "spill-asuser-32-cln", "spill, clean user window as kernel, 32-bit" },
334	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
335	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
336	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
337	{ "spill-asuser-64-cln", "spill, clean user window as kernel, 64-bit" },
338	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
339	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
340	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
341	{ "spill-5-other", 	"spill 5 other" },
342	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
343	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
344	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
345	{ "spill-6-other", 	"spill 6 other" },
346	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
347	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
348	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
349	{ "spill-7-other", 	"spill 7 other" },
350	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
351	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
352	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
353	{ "fill-0-normal", 	"fill 0 normal" },
354	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
355	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
356	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
357	{ "fill-user-32", 	"fill user window, 32-bit" },
358	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
359	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
360	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
361	{ "fill-user-64", 	"fill user window, 64-bit" },
362	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
363	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
364	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
365	{ "fill-user-32-cln", 	"fill user window, 32-bit" },
366	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
367	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
368	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
369	{ "fill-user-64-cln", 	"fill user window, 64-bit" },
370	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
371	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
372	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
373	{ "fill-kern-32", 	"fill kernel window, 32-bit" },
374	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
375	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
376	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
377	{ "fill-kern-64", 	"fill kernel window, 64-bit" },
378	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
379	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
380	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
381	{ "fill-mixed", 	"fill window, mixed 32-bit/64-bit" },
382	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
383	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
384	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
385	{ "fill-0-other", 	"fill 0 other" },
386	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
387	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
388	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
389	{ "fill-asuser-32", 	"fill user window as kernel, 32-bit" },
390	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
391	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
392	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
393	{ "fill-asuser-64", 	"fill user window as kernel, 64-bit" },
394	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
395	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
396	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
397	{ "fill-asuser-32-cln", "fill user window as kernel, 32-bit" },
398	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
399	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
400	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
401	{ "fill-asuser-64-cln",	"fill user window as kernel, 64-bit" },
402	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
403	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
404	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
405	{ "fill-5-other", 	"fill 5 other" },
406	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
407	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
408	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
409	{ "fill-6-other", 	"fill 6 other" },
410	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
411	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
412	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
413	{ "fill-7-other", 	"fill 7 other" },
414	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
415	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
416	{ NULL, NULL,		TSTAT_ENT_CONTINUED },
417	{ "syscall-4x", 	"old system call" },
418	{ "usr-brkpt", 		"user breakpoint" },
419	{ "usr-div-zero", 	"user divide by zero" },
420	{ "flush-wins", 	"flush windows" },
421	{ "clean-wins", 	"clean windows" },
422	{ NULL, NULL,		TSTAT_ENT_UNUSED },
423	{ "fix-align", 		"fix unaligned references" },
424	{ NULL, NULL,		TSTAT_ENT_UNUSED },
425	{ "syscall-32", 	"ILP32 system call" },
426	{ "set-t0-addr", 	"set trap0 address" },
427	{ NULL, NULL,		TSTAT_ENT_UNUSED },
428	{ NULL, NULL,		TSTAT_ENT_UNUSED },
429	{ NULL, NULL,		TSTAT_ENT_UNUSED },
430	{ NULL, NULL,		TSTAT_ENT_UNUSED },
431	{ NULL, NULL,		TSTAT_ENT_UNUSED },
432	{ NULL, NULL,		TSTAT_ENT_UNUSED },
433	{ "trap-inst-16", 	"trap instruction 16", },
434	{ "trap-inst-17", 	"trap instruction 17", },
435	{ "trap-inst-18", 	"trap instruction 18", },
436	{ "trap-inst-19", 	"trap instruction 19", },
437	{ "trap-inst-20", 	"trap instruction 20", },
438	{ "trap-inst-21", 	"trap instruction 21", },
439	{ "trap-inst-22", 	"trap instruction 22", },
440	{ "trap-inst-23", 	"trap instruction 23", },
441	{ "trap-inst-24", 	"trap instruction 24", },
442	{ "trap-inst-25", 	"trap instruction 25", },
443	{ "trap-inst-26", 	"trap instruction 26", },
444	{ "trap-inst-27", 	"trap instruction 27", },
445	{ "trap-inst-28", 	"trap instruction 28", },
446	{ "trap-inst-29", 	"trap instruction 29", },
447	{ "trap-inst-30", 	"trap instruction 30", },
448	{ "trap-inst-31", 	"trap instruction 31", },
449	{ "get-cc", 		"get condition codes" },
450	{ "set-cc", 		"set condition codes" },
451	{ "get-psr", 		"get psr" },
452	{ "set-psr", 		"set psr (some fields)" },
453	{ "getts", 		"get timestamp" },
454	{ "gethrvtime", 	"get lwp virtual time" },
455	{ "self-xcall", 	"self xcall" },
456	{ "gethrtime", 		"get hrestime" },
457	{ NULL, NULL,		TSTAT_ENT_UNUSED },
458	{ "getlgrp",		"get lgrpid" },
459	{ NULL, NULL,		TSTAT_ENT_UNUSED },
460	{ NULL, NULL,		TSTAT_ENT_UNUSED },
461	{ NULL, NULL,		TSTAT_ENT_UNUSED },
462	{ NULL, NULL,		TSTAT_ENT_UNUSED },
463	{ NULL, NULL,		TSTAT_ENT_UNUSED },
464	{ NULL, NULL,		TSTAT_ENT_UNUSED },
465	{ NULL, NULL,		TSTAT_ENT_UNUSED },
466	{ NULL, NULL,		TSTAT_ENT_UNUSED },
467	{ NULL, NULL,		TSTAT_ENT_UNUSED },
468	{ NULL, NULL,		TSTAT_ENT_UNUSED },
469	{ NULL, NULL,		TSTAT_ENT_UNUSED },
470	{ NULL, NULL,		TSTAT_ENT_UNUSED },
471	{ NULL, NULL,		TSTAT_ENT_UNUSED },
472	{ NULL, NULL,		TSTAT_ENT_UNUSED },
473	{ "dtrace-pid",		"DTrace pid provider" },
474	{ NULL, NULL,		TSTAT_ENT_UNUSED },
475	{ "dtrace-return",	"DTrace pid provider return" },
476	{ NULL, NULL,		TSTAT_ENT_UNUSED },
477	{ NULL, NULL,		TSTAT_ENT_UNUSED },
478	{ NULL, NULL,		TSTAT_ENT_UNUSED },
479	{ NULL, NULL,		TSTAT_ENT_UNUSED },
480	{ NULL, NULL,		TSTAT_ENT_UNUSED },
481	{ "syscall-64", 	"LP64 system call" },
482	{ NULL, NULL,		TSTAT_ENT_UNUSED },
483	{ "tt-freeze", 		"freeze traptrace" },
484	{ "tt-unfreeze", 	"unfreeze traptrace" },
485	{ NULL, NULL,		TSTAT_ENT_UNUSED },
486	{ NULL, NULL,		TSTAT_ENT_UNUSED },
487	{ NULL, NULL,		TSTAT_ENT_UNUSED },
488	{ NULL, NULL,		TSTAT_ENT_UNUSED },
489	{ NULL, NULL,		TSTAT_ENT_UNUSED },
490	{ NULL, NULL,		TSTAT_ENT_UNUSED },
491	{ NULL, NULL,		TSTAT_ENT_UNUSED },
492	{ NULL, NULL,		TSTAT_ENT_UNUSED },
493	{ NULL, NULL,		TSTAT_ENT_UNUSED },
494	{ NULL, NULL,		TSTAT_ENT_UNUSED },
495	{ NULL, NULL,		TSTAT_ENT_UNUSED },
496	{ NULL, NULL,		TSTAT_ENT_UNUSED },
497	{ NULL, NULL,		TSTAT_ENT_UNUSED },
498	{ NULL, NULL,		TSTAT_ENT_UNUSED },
499	{ NULL, NULL,		TSTAT_ENT_UNUSED },
500	{ NULL, NULL,		TSTAT_ENT_UNUSED },
501	{ NULL, NULL,		TSTAT_ENT_UNUSED },
502	{ NULL, NULL,		TSTAT_ENT_UNUSED },
503	{ NULL, NULL,		TSTAT_ENT_UNUSED },
504	{ NULL, NULL,		TSTAT_ENT_UNUSED },
505	{ NULL, NULL,		TSTAT_ENT_UNUSED },
506	{ NULL, NULL,		TSTAT_ENT_UNUSED },
507	{ NULL, NULL,		TSTAT_ENT_UNUSED },
508	{ NULL, NULL,		TSTAT_ENT_UNUSED },
509	{ NULL, NULL,		TSTAT_ENT_UNUSED },
510	{ NULL, NULL,		TSTAT_ENT_UNUSED },
511	{ NULL, NULL,		TSTAT_ENT_UNUSED },
512	{ NULL, NULL,		TSTAT_ENT_UNUSED },
513	{ NULL, NULL,		TSTAT_ENT_UNUSED },
514	{ NULL, NULL,		TSTAT_ENT_UNUSED },
515	{ NULL, NULL,		TSTAT_ENT_UNUSED },
516	{ NULL, NULL,		TSTAT_ENT_UNUSED },
517	{ NULL, NULL,		TSTAT_ENT_UNUSED },
518	{ NULL, NULL,		TSTAT_ENT_UNUSED },
519	{ NULL, NULL,		TSTAT_ENT_UNUSED },
520	{ NULL, NULL,		TSTAT_ENT_UNUSED },
521	{ NULL, NULL,		TSTAT_ENT_UNUSED },
522	{ NULL, NULL,		TSTAT_ENT_UNUSED },
523	{ NULL, NULL,		TSTAT_ENT_UNUSED },
524	{ NULL, NULL,		TSTAT_ENT_UNUSED },
525	{ NULL, NULL,		TSTAT_ENT_UNUSED },
526	{ NULL, NULL,		TSTAT_ENT_UNUSED },
527	{ NULL, NULL,		TSTAT_ENT_UNUSED },
528	{ NULL, NULL,		TSTAT_ENT_UNUSED },
529	{ NULL, NULL,		TSTAT_ENT_UNUSED },
530	{ NULL, NULL,		TSTAT_ENT_UNUSED },
531	{ NULL, NULL,		TSTAT_ENT_UNUSED },
532	{ NULL, NULL,		TSTAT_ENT_UNUSED },
533	{ NULL, NULL,		TSTAT_ENT_UNUSED },
534	{ NULL, NULL,		TSTAT_ENT_UNUSED },
535	{ NULL, NULL,		TSTAT_ENT_UNUSED },
536	{ NULL, NULL,		TSTAT_ENT_UNUSED },
537	{ NULL, NULL,		TSTAT_ENT_UNUSED },
538	{ NULL, NULL,		TSTAT_ENT_UNUSED },
539	{ NULL, NULL,		TSTAT_ENT_UNUSED },
540	{ NULL, NULL,		TSTAT_ENT_UNUSED },
541	{ "ptl1-panic", 	"test ptl1-panic" },
542	{ "kmdb-enter", 	"kmdb enter (L1-A)" },
543	{ "kmdb-brkpt", 	"kmdb breakpoint" },
544	{ "obp-brkpt", 		"obp breakpoint" },
545	{ NULL, NULL,		TSTAT_ENT_RESERVED },
546	{ NULL, NULL,		TSTAT_ENT_RESERVED },
547	{ NULL, NULL,		TSTAT_ENT_RESERVED },
548	{ NULL, NULL,		TSTAT_ENT_RESERVED },
549	{ NULL, NULL,		TSTAT_ENT_RESERVED },
550	{ NULL, NULL,		TSTAT_ENT_RESERVED },
551	{ NULL, NULL,		TSTAT_ENT_RESERVED },
552	{ NULL, NULL,		TSTAT_ENT_RESERVED },
553	{ NULL, NULL,		TSTAT_ENT_RESERVED },
554	{ NULL, NULL,		TSTAT_ENT_RESERVED },
555	{ NULL, NULL,		TSTAT_ENT_RESERVED },
556	{ NULL, NULL,		TSTAT_ENT_RESERVED },
557	{ NULL, NULL,		TSTAT_ENT_RESERVED },
558	{ NULL, NULL,		TSTAT_ENT_RESERVED },
559	{ NULL, NULL,		TSTAT_ENT_RESERVED },
560	{ NULL, NULL,		TSTAT_ENT_RESERVED },
561	{ NULL, NULL,		TSTAT_ENT_RESERVED },
562	{ NULL, NULL,		TSTAT_ENT_RESERVED },
563	{ NULL, NULL,		TSTAT_ENT_RESERVED },
564	{ NULL, NULL,		TSTAT_ENT_RESERVED },
565	{ NULL, NULL,		TSTAT_ENT_RESERVED },
566	{ NULL, NULL,		TSTAT_ENT_RESERVED },
567	{ NULL, NULL,		TSTAT_ENT_RESERVED },
568	{ NULL, NULL,		TSTAT_ENT_RESERVED },
569	{ NULL, NULL,		TSTAT_ENT_RESERVED },
570	{ NULL, NULL,		TSTAT_ENT_RESERVED },
571	{ NULL, NULL,		TSTAT_ENT_RESERVED },
572	{ NULL, NULL,		TSTAT_ENT_RESERVED },
573	{ NULL, NULL,		TSTAT_ENT_RESERVED },
574	{ NULL, NULL,		TSTAT_ENT_RESERVED },
575	{ NULL, NULL,		TSTAT_ENT_RESERVED },
576	{ NULL, NULL,		TSTAT_ENT_RESERVED },
577	{ NULL, NULL,		TSTAT_ENT_RESERVED },
578	{ NULL, NULL,		TSTAT_ENT_RESERVED },
579	{ NULL, NULL,		TSTAT_ENT_RESERVED },
580	{ NULL, NULL,		TSTAT_ENT_RESERVED },
581	{ NULL, NULL,		TSTAT_ENT_RESERVED },
582	{ NULL, NULL,		TSTAT_ENT_RESERVED },
583	{ NULL, NULL,		TSTAT_ENT_RESERVED },
584	{ NULL, NULL,		TSTAT_ENT_RESERVED },
585	{ NULL, NULL,		TSTAT_ENT_RESERVED },
586	{ NULL, NULL,		TSTAT_ENT_RESERVED },
587	{ NULL, NULL,		TSTAT_ENT_RESERVED },
588	{ NULL, NULL,		TSTAT_ENT_RESERVED },
589	{ NULL, NULL,		TSTAT_ENT_RESERVED },
590	{ NULL, NULL,		TSTAT_ENT_RESERVED },
591	{ NULL, NULL,		TSTAT_ENT_RESERVED },
592	{ NULL, NULL,		TSTAT_ENT_RESERVED },
593	{ NULL, NULL,		TSTAT_ENT_RESERVED },
594	{ NULL, NULL,		TSTAT_ENT_RESERVED },
595	{ NULL, NULL,		TSTAT_ENT_RESERVED },
596	{ NULL, NULL,		TSTAT_ENT_RESERVED },
597	{ NULL, NULL,		TSTAT_ENT_RESERVED },
598	{ NULL, NULL,		TSTAT_ENT_RESERVED },
599	{ NULL, NULL,		TSTAT_ENT_RESERVED },
600	{ NULL, NULL,		TSTAT_ENT_RESERVED },
601	{ NULL, NULL,		TSTAT_ENT_RESERVED },
602	{ NULL, NULL,		TSTAT_ENT_RESERVED },
603	{ NULL, NULL,		TSTAT_ENT_RESERVED },
604	{ NULL, NULL,		TSTAT_ENT_RESERVED },
605	{ NULL, NULL,		TSTAT_ENT_RESERVED },
606	{ NULL, NULL,		TSTAT_ENT_RESERVED },
607	{ NULL, NULL,		TSTAT_ENT_RESERVED },
608	{ NULL, NULL,		TSTAT_ENT_RESERVED },
609	{ NULL, NULL,		TSTAT_ENT_RESERVED },
610	{ NULL, NULL,		TSTAT_ENT_RESERVED },
611	{ NULL, NULL,		TSTAT_ENT_RESERVED },
612	{ NULL, NULL,		TSTAT_ENT_RESERVED },
613	{ NULL, NULL,		TSTAT_ENT_RESERVED },
614	{ NULL, NULL,		TSTAT_ENT_RESERVED },
615	{ NULL, NULL,		TSTAT_ENT_RESERVED },
616	{ NULL, NULL,		TSTAT_ENT_RESERVED },
617	{ NULL, NULL,		TSTAT_ENT_RESERVED },
618	{ NULL, NULL,		TSTAT_ENT_RESERVED },
619	{ NULL, NULL,		TSTAT_ENT_RESERVED },
620	{ NULL, NULL,		TSTAT_ENT_RESERVED },
621	{ NULL, NULL,		TSTAT_ENT_RESERVED },
622	{ NULL, NULL,		TSTAT_ENT_RESERVED },
623	{ NULL, NULL,		TSTAT_ENT_RESERVED },
624	{ NULL, NULL,		TSTAT_ENT_RESERVED },
625	{ NULL, NULL,		TSTAT_ENT_RESERVED },
626	{ NULL, NULL,		TSTAT_ENT_RESERVED },
627	{ NULL, NULL,		TSTAT_ENT_RESERVED },
628	{ NULL, NULL,		TSTAT_ENT_RESERVED },
629	{ NULL, NULL,		TSTAT_ENT_RESERVED },
630	{ NULL, NULL,		TSTAT_ENT_RESERVED },
631	{ NULL, NULL,		TSTAT_ENT_RESERVED },
632	{ NULL, NULL,		TSTAT_ENT_RESERVED },
633	{ NULL, NULL,		TSTAT_ENT_RESERVED },
634	{ NULL, NULL,		TSTAT_ENT_RESERVED },
635	{ NULL, NULL,		TSTAT_ENT_RESERVED },
636	{ NULL, NULL,		TSTAT_ENT_RESERVED },
637	{ NULL, NULL,		TSTAT_ENT_RESERVED },
638	{ NULL, NULL,		TSTAT_ENT_RESERVED },
639	{ NULL, NULL,		TSTAT_ENT_RESERVED },
640	{ NULL, NULL,		TSTAT_ENT_RESERVED },
641	{ NULL, NULL,		TSTAT_ENT_RESERVED },
642	{ NULL, NULL,		TSTAT_ENT_RESERVED },
643	{ NULL, NULL,		TSTAT_ENT_RESERVED },
644	{ NULL, NULL,		TSTAT_ENT_RESERVED },
645	{ NULL, NULL,		TSTAT_ENT_RESERVED },
646	{ NULL, NULL,		TSTAT_ENT_RESERVED },
647	{ NULL, NULL,		TSTAT_ENT_RESERVED },
648	{ NULL, NULL,		TSTAT_ENT_RESERVED },
649	{ NULL, NULL,		TSTAT_ENT_RESERVED },
650	{ NULL, NULL,		TSTAT_ENT_RESERVED },
651	{ NULL, NULL,		TSTAT_ENT_RESERVED },
652	{ NULL, NULL,		TSTAT_ENT_RESERVED },
653	{ NULL, NULL,		TSTAT_ENT_RESERVED },
654	{ NULL, NULL,		TSTAT_ENT_RESERVED },
655	{ NULL, NULL,		TSTAT_ENT_RESERVED },
656	{ NULL, NULL,		TSTAT_ENT_RESERVED },
657	{ NULL, NULL,		TSTAT_ENT_RESERVED },
658	{ NULL, NULL,		TSTAT_ENT_RESERVED },
659	{ NULL, NULL,		TSTAT_ENT_RESERVED },
660	{ NULL, NULL,		TSTAT_ENT_RESERVED },
661	{ NULL, NULL,		TSTAT_ENT_RESERVED },
662	{ NULL, NULL,		TSTAT_ENT_RESERVED },
663	{ NULL, NULL,		TSTAT_ENT_RESERVED },
664	{ NULL, NULL,		TSTAT_ENT_RESERVED },
665	{ NULL, NULL,		TSTAT_ENT_RESERVED },
666	{ NULL, NULL,		TSTAT_ENT_RESERVED },
667	{ NULL, NULL,		TSTAT_ENT_RESERVED },
668	{ NULL, NULL,		TSTAT_ENT_RESERVED },
669	{ NULL, NULL,		TSTAT_ENT_RESERVED },
670	{ NULL, NULL,		TSTAT_ENT_RESERVED },
671	{ NULL, NULL,		TSTAT_ENT_RESERVED },
672	{ NULL, NULL,		TSTAT_ENT_RESERVED }
673};
674
675tstat_ent_t *
676get_trap_ent(int ndx)
677{
678	return (&g_traps[ndx]);
679}
680