1*ae115bc7Smrj /* 2*ae115bc7Smrj * CDDL HEADER START 3*ae115bc7Smrj * 4*ae115bc7Smrj * The contents of this file are subject to the terms of the 5*ae115bc7Smrj * Common Development and Distribution License (the "License"). 6*ae115bc7Smrj * You may not use this file except in compliance with the License. 7*ae115bc7Smrj * 8*ae115bc7Smrj * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*ae115bc7Smrj * or http://www.opensolaris.org/os/licensing. 10*ae115bc7Smrj * See the License for the specific language governing permissions 11*ae115bc7Smrj * and limitations under the License. 12*ae115bc7Smrj * 13*ae115bc7Smrj * When distributing Covered Code, include this CDDL HEADER in each 14*ae115bc7Smrj * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*ae115bc7Smrj * If applicable, add the following below this CDDL HEADER, with the 16*ae115bc7Smrj * fields enclosed by brackets "[]" replaced with your own identifying 17*ae115bc7Smrj * information: Portions Copyright [yyyy] [name of copyright owner] 18*ae115bc7Smrj * 19*ae115bc7Smrj * CDDL HEADER END 20*ae115bc7Smrj */ 21*ae115bc7Smrj 22*ae115bc7Smrj /* 23*ae115bc7Smrj * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24*ae115bc7Smrj * Use is subject to license terms. 25*ae115bc7Smrj */ 26*ae115bc7Smrj 27*ae115bc7Smrj #ifndef _AMD64_SYS_KDI_REGS_H 28*ae115bc7Smrj #define _AMD64_SYS_KDI_REGS_H 29*ae115bc7Smrj 30*ae115bc7Smrj #pragma ident "%Z%%M% %I% %E% SMI" 31*ae115bc7Smrj 32*ae115bc7Smrj #ifdef __cplusplus 33*ae115bc7Smrj extern "C" { 34*ae115bc7Smrj #endif 35*ae115bc7Smrj 36*ae115bc7Smrj #define KDIREG_NGREG 31 37*ae115bc7Smrj 38*ae115bc7Smrj /* 39*ae115bc7Smrj * A modified version of struct regs layout. 40*ae115bc7Smrj */ 41*ae115bc7Smrj 42*ae115bc7Smrj #define KDIREG_SAVFP 0 43*ae115bc7Smrj #define KDIREG_SAVPC 1 44*ae115bc7Smrj #define KDIREG_RDI 2 45*ae115bc7Smrj #define KDIREG_RSI 3 46*ae115bc7Smrj #define KDIREG_RDX 4 47*ae115bc7Smrj #define KDIREG_RCX 5 48*ae115bc7Smrj #define KDIREG_R8 6 49*ae115bc7Smrj #define KDIREG_R9 7 50*ae115bc7Smrj #define KDIREG_RAX 8 51*ae115bc7Smrj #define KDIREG_RBX 9 52*ae115bc7Smrj #define KDIREG_RBP 10 53*ae115bc7Smrj #define KDIREG_R10 11 54*ae115bc7Smrj #define KDIREG_R11 12 55*ae115bc7Smrj #define KDIREG_R12 13 56*ae115bc7Smrj #define KDIREG_R13 14 57*ae115bc7Smrj #define KDIREG_R14 15 58*ae115bc7Smrj #define KDIREG_R15 16 59*ae115bc7Smrj #define KDIREG_FSBASE 17 60*ae115bc7Smrj #define KDIREG_GSBASE 18 61*ae115bc7Smrj #define KDIREG_KGSBASE 19 62*ae115bc7Smrj #define KDIREG_DS 20 63*ae115bc7Smrj #define KDIREG_ES 21 64*ae115bc7Smrj #define KDIREG_FS 22 65*ae115bc7Smrj #define KDIREG_GS 23 66*ae115bc7Smrj #define KDIREG_TRAPNO 24 67*ae115bc7Smrj #define KDIREG_ERR 25 68*ae115bc7Smrj #define KDIREG_RIP 26 69*ae115bc7Smrj #define KDIREG_CS 27 70*ae115bc7Smrj #define KDIREG_RFLAGS 28 71*ae115bc7Smrj #define KDIREG_RSP 29 72*ae115bc7Smrj #define KDIREG_SS 30 73*ae115bc7Smrj 74*ae115bc7Smrj #define KDIREG_PC KDIREG_RIP 75*ae115bc7Smrj #define KDIREG_SP KDIREG_RSP 76*ae115bc7Smrj #define KDIREG_FP KDIREG_RBP 77*ae115bc7Smrj 78*ae115bc7Smrj #ifdef _ASM 79*ae115bc7Smrj 80*ae115bc7Smrj /* Patch point for MSR clearing. */ 81*ae115bc7Smrj #define KDI_MSR_PATCH \ 82*ae115bc7Smrj nop; nop; nop; nop; \ 83*ae115bc7Smrj nop; nop; nop; nop; \ 84*ae115bc7Smrj nop; nop; nop; nop; \ 85*ae115bc7Smrj nop; nop; nop; nop; \ 86*ae115bc7Smrj nop 87*ae115bc7Smrj 88*ae115bc7Smrj #endif /* _ASM */ 89*ae115bc7Smrj 90*ae115bc7Smrj #define KDI_MSR_PATCHOFF 8 /* bytes of code before patch point */ 91*ae115bc7Smrj #define KDI_MSR_PATCHSZ 17 /* bytes in KDI_MSR_PATCH, above */ 92*ae115bc7Smrj 93*ae115bc7Smrj #ifdef __cplusplus 94*ae115bc7Smrj } 95*ae115bc7Smrj #endif 96*ae115bc7Smrj 97*ae115bc7Smrj #endif /* _AMD64_SYS_KDI_REGS_H */ 98