xref: /illumos-gate/usr/src/uts/i86pc/sys/debug_info.h (revision 2d6eb4a5)
170025d76Sjohnny /*
270025d76Sjohnny  * CDDL HEADER START
370025d76Sjohnny  *
470025d76Sjohnny  * The contents of this file are subject to the terms of the
5337fc9e2Sanish  * Common Development and Distribution License (the "License").
6337fc9e2Sanish  * You may not use this file except in compliance with the License.
770025d76Sjohnny  *
870025d76Sjohnny  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
970025d76Sjohnny  * or http://www.opensolaris.org/os/licensing.
1070025d76Sjohnny  * See the License for the specific language governing permissions
1170025d76Sjohnny  * and limitations under the License.
1270025d76Sjohnny  *
1370025d76Sjohnny  * When distributing Covered Code, include this CDDL HEADER in each
1470025d76Sjohnny  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1570025d76Sjohnny  * If applicable, add the following below this CDDL HEADER, with the
1670025d76Sjohnny  * fields enclosed by brackets "[]" replaced with your own identifying
1770025d76Sjohnny  * information: Portions Copyright [yyyy] [name of copyright owner]
1870025d76Sjohnny  *
1970025d76Sjohnny  * CDDL HEADER END
2070025d76Sjohnny  */
2170025d76Sjohnny /*
22ae115bc7Smrj  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
2370025d76Sjohnny  * Use is subject to license terms.
2470025d76Sjohnny  */
2570025d76Sjohnny 
26ae115bc7Smrj #ifndef _SYS_DEBUG_INFO_H
27ae115bc7Smrj #define	_SYS_DEBUG_INFO_H
2870025d76Sjohnny 
2970025d76Sjohnny #ifdef	__cplusplus
3070025d76Sjohnny extern "C" {
3170025d76Sjohnny #endif
3270025d76Sjohnny 
33ae115bc7Smrj #define	DEBUG_INFO_MAGIC 0xdeb116ed
34ae115bc7Smrj #define	DEBUG_INFO_VERSION 0x1
3570025d76Sjohnny 
36*843e1988Sjohnlev /*
37*843e1988Sjohnlev  * We place this structure at a well-known DEBUG_INFO_VA to allow 'external'
38*843e1988Sjohnlev  * debuggers to bootstrap themselves; in particular libkvm when applied to
39*843e1988Sjohnlev  * hypervisor domains or their core files.
40*843e1988Sjohnlev  */
41ae115bc7Smrj typedef struct debug_info {
42ae115bc7Smrj 	uint32_t di_magic;
43ae115bc7Smrj 	uint32_t di_version;
44*843e1988Sjohnlev 	/* address of 'modules' */
45*843e1988Sjohnlev 	uintptr_t di_modules;
46*843e1988Sjohnlev 	uintptr_t di_s_text;
47*843e1988Sjohnlev 	uintptr_t di_e_text;
48*843e1988Sjohnlev 	uintptr_t di_s_data;
49*843e1988Sjohnlev 	uintptr_t di_e_data;
50*843e1988Sjohnlev 	size_t di_hat_htable_off;
51*843e1988Sjohnlev 	size_t di_ht_pfn_off;
52ae115bc7Smrj } debug_info_t;
5370025d76Sjohnny 
5470025d76Sjohnny #ifdef	__cplusplus
5570025d76Sjohnny }
5670025d76Sjohnny #endif
5770025d76Sjohnny 
58ae115bc7Smrj #endif /* _SYS_DEBUG_INFO_H */
59