xref: /illumos-gate/usr/src/uts/intel/kdi/kdi_offsets.in (revision 399ca3a7ff315244c51a7bbd1d3ce2709ef6c7c6)
1\
2\ Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3\ Use is subject to license terms.
4\
5\ Copyright 2018 Joyent, Inc.
6\
7\ CDDL HEADER START
8\
9\ The contents of this file are subject to the terms of the
10\ Common Development and Distribution License (the "License").
11\ You may not use this file except in compliance with the License.
12\
13\ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14\ or http://www.opensolaris.org/os/licensing.
15\ See the License for the specific language governing permissions
16\ and limitations under the License.
17\
18\ When distributing Covered Code, include this CDDL HEADER in each
19\ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20\ If applicable, add the following below this CDDL HEADER, with the
21\ fields enclosed by brackets "[]" replaced with your own identifying
22\ information: Portions Copyright [yyyy] [name of copyright owner]
23\
24\ CDDL HEADER END
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_cpusave_t	KRS_SIZE
51		krs_gregs
52		krs_dr
53		krs_dr.dr_ctl			KRS_DRCTL
54		krs_dr.dr_stat			KRS_DRSTAT
55		krs_gdt
56		krs_idt
57		krs_cr0
58		krs_cpu_state
59		krs_curcrumbidx
60		krs_curcrumb
61		krs_crumbs
62
63cpu
64		cpu_id
65
66greg_t		KREG_SIZE
67
68#if defined(__amd64)
69\#define	REG_SHIFT		3
70#else
71\#define	REG_SHIFT		2
72#endif
73
74\#define	DRADDR_IDX(num)		_CONST(_MUL(num, DR_ADDR_INCR))
75\#define	DRADDR_OFF(num)		_CONST(DRADDR_IDX(num) + DR_ADDR)
76\#define	KRS_DROFF(num)		_CONST(DRADDR_OFF(num) + KRS_DR)
77\#define	REG_OFF(reg)		_CONST(_CONST(reg) << REG_SHIFT)
78\#define	KDIREG_OFF(reg)		_CONST(_MUL(KREG_SIZE, reg) + KRS_GREGS)
79