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
29#include <sys/cpuvar.h>
30#include <sys/kdi_impl.h>
31
32kdi_memrange_t	MR_SIZE
33		mr_base
34		mr_lim
35
36kdi_crumb_t	KRM_SIZE
37		krm_cpu_state
38		krm_pc
39		krm_sp
40		krm_trapno
41		krm_flag
42
43kdi_drreg_t
44		dr_ctl
45		dr_stat
46		dr_addr
47
48kdi_cpusave_t	KRS_SIZE
49		krs_gregs
50		krs_dr
51		krs_dr.dr_ctl			KRS_DRCTL
52		krs_dr.dr_stat			KRS_DRSTAT
53		krs_gdt
54		krs_idt
55		krs_cr0
56		krs_cpu_state
57		krs_curcrumbidx
58		krs_curcrumb
59		krs_crumbs
60
61greg_t		KREG_SIZE
62
63\#define	REG_SHIFT		3
64
65\#define	DRADDR_IDX(num)		_CONST(_MUL(num, DR_ADDR_INCR))
66\#define	DRADDR_OFF(num)		_CONST(DRADDR_IDX(num) + DR_ADDR)
67\#define	KRS_DROFF(num)		_CONST(DRADDR_OFF(num) + KRS_DR)
68\#define	REG_OFF(reg)		_CONST(_CONST(reg) << REG_SHIFT)
69\#define	KDIREG_OFF(reg)		_CONST(_MUL(KREG_SIZE, reg) + KRS_GREGS)
70