xref: /titanic_50/usr/src/uts/i86pc/sys/debug_info.h (revision 843e19887f64dde75055cf8842fc4db2171eff45)
1ae115bc7Smrj /*
2ae115bc7Smrj  * CDDL HEADER START
3ae115bc7Smrj  *
4ae115bc7Smrj  * The contents of this file are subject to the terms of the
5ae115bc7Smrj  * Common Development and Distribution License (the "License").
6ae115bc7Smrj  * You may not use this file except in compliance with the License.
7ae115bc7Smrj  *
8ae115bc7Smrj  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9ae115bc7Smrj  * or http://www.opensolaris.org/os/licensing.
10ae115bc7Smrj  * See the License for the specific language governing permissions
11ae115bc7Smrj  * and limitations under the License.
12ae115bc7Smrj  *
13ae115bc7Smrj  * When distributing Covered Code, include this CDDL HEADER in each
14ae115bc7Smrj  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15ae115bc7Smrj  * If applicable, add the following below this CDDL HEADER, with the
16ae115bc7Smrj  * fields enclosed by brackets "[]" replaced with your own identifying
17ae115bc7Smrj  * information: Portions Copyright [yyyy] [name of copyright owner]
18ae115bc7Smrj  *
19ae115bc7Smrj  * CDDL HEADER END
20ae115bc7Smrj  */
21ae115bc7Smrj /*
22ae115bc7Smrj  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23ae115bc7Smrj  * Use is subject to license terms.
24ae115bc7Smrj  */
25ae115bc7Smrj 
26ae115bc7Smrj #ifndef _SYS_DEBUG_INFO_H
27ae115bc7Smrj #define	_SYS_DEBUG_INFO_H
28ae115bc7Smrj 
29ae115bc7Smrj #pragma ident	"%Z%%M%	%I%	%E% SMI"
30ae115bc7Smrj 
31ae115bc7Smrj #ifdef	__cplusplus
32ae115bc7Smrj extern "C" {
33ae115bc7Smrj #endif
34ae115bc7Smrj 
35ae115bc7Smrj #define	DEBUG_INFO_MAGIC 0xdeb116ed
36ae115bc7Smrj #define	DEBUG_INFO_VERSION 0x1
37ae115bc7Smrj 
38*843e1988Sjohnlev /*
39*843e1988Sjohnlev  * We place this structure at a well-known DEBUG_INFO_VA to allow 'external'
40*843e1988Sjohnlev  * debuggers to bootstrap themselves; in particular libkvm when applied to
41*843e1988Sjohnlev  * hypervisor domains or their core files.
42*843e1988Sjohnlev  */
43ae115bc7Smrj typedef struct debug_info {
44ae115bc7Smrj 	uint32_t di_magic;
45ae115bc7Smrj 	uint32_t di_version;
46*843e1988Sjohnlev 	/* address of 'modules' */
47*843e1988Sjohnlev 	uintptr_t di_modules;
48*843e1988Sjohnlev 	uintptr_t di_s_text;
49*843e1988Sjohnlev 	uintptr_t di_e_text;
50*843e1988Sjohnlev 	uintptr_t di_s_data;
51*843e1988Sjohnlev 	uintptr_t di_e_data;
52*843e1988Sjohnlev 	size_t di_hat_htable_off;
53*843e1988Sjohnlev 	size_t di_ht_pfn_off;
54ae115bc7Smrj } debug_info_t;
55ae115bc7Smrj 
56ae115bc7Smrj #ifdef	__cplusplus
57ae115bc7Smrj }
58ae115bc7Smrj #endif
59ae115bc7Smrj 
60ae115bc7Smrj #endif /* _SYS_DEBUG_INFO_H */
61