xref: /illumos-gate/usr/src/uts/intel/kdi/kdi_offsets.in (revision f5488aa822e08905cde61d596e965030a1dfffcd)
1\
2\ Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3\ Use is subject to license terms.
4\
5\ CDDL HEADER START
6\
7\ The contents of this file are subject to the terms of the
8\ Common Development and Distribution License (the "License").
9\ You may not use this file except in compliance with the License.
10\
11\ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12\ or http://www.opensolaris.org/os/licensing.
13\ See the License for the specific language governing permissions
14\ and limitations under the License.
15\
16\ When distributing Covered Code, include this CDDL HEADER in each
17\ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18\ If applicable, add the following below this CDDL HEADER, with the
19\ fields enclosed by brackets "[]" replaced with your own identifying
20\ information: Portions Copyright [yyyy] [name of copyright owner]
21\
22\ CDDL HEADER END
23\
24\ ident	"%Z%%M%	%I%	%E% SMI"
25\
26\ CPU-save structure offsets for use in assembly code.
27\
28\ Keep in sync with kdi_state.h
29\
30
31#include <sys/cpuvar.h>
32#include <sys/kdi_impl.h>
33
34kdi_memrange_t	MR_SIZE
35		mr_base
36		mr_lim
37
38kdi_crumb_t	KRM_SIZE
39		krm_cpu_state
40		krm_pc
41		krm_sp
42		krm_trapno
43		krm_flag
44
45kdi_drreg_t
46		dr_ctl
47		dr_stat
48		dr_addr
49
50kdi_msr_t	MSR_SIZE
51		msr_num
52		msr_type
53		_u._msr_valp			MSR_VALP
54		_u._msr_val			MSR_VAL
55
56kdi_cpusave_t	KRS_SIZE
57		krs_gregs
58		krs_dr
59		krs_dr.dr_ctl			KRS_DRCTL
60		krs_dr.dr_stat			KRS_DRSTAT
61		krs_gdt
62		krs_idt
63		krs_cr0
64		krs_msr
65		krs_cpu_state
66		krs_curcrumbidx
67		krs_curcrumb
68		krs_crumbs
69
70cpu
71		cpu_id
72
73greg_t		KREG_SIZE
74
75#if defined(__amd64)
76\#define	REG_SHIFT		3
77#else
78\#define	REG_SHIFT		2
79#endif
80
81\#define	DRADDR_IDX(num)		_CONST(_MUL(num, DR_ADDR_INCR))
82\#define	DRADDR_OFF(num)		_CONST(DRADDR_IDX(num) + DR_ADDR)
83\#define	KRS_DROFF(num)		_CONST(DRADDR_OFF(num) + KRS_DR)
84\#define	REG_OFF(reg)		_CONST(_CONST(reg) << REG_SHIFT)
85\#define	KDIREG_OFF(reg)		_CONST(_MUL(KREG_SIZE, reg) + KRS_GREGS)
86