xref: /illumos-gate/usr/src/uts/sun4v/sys/soft_state.h (revision 3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6a)
1*3b890a5bSjb145095 /*
2*3b890a5bSjb145095  * CDDL HEADER START
3*3b890a5bSjb145095  *
4*3b890a5bSjb145095  * The contents of this file are subject to the terms of the
5*3b890a5bSjb145095  * Common Development and Distribution License (the "License").
6*3b890a5bSjb145095  * You may not use this file except in compliance with the License.
7*3b890a5bSjb145095  *
8*3b890a5bSjb145095  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*3b890a5bSjb145095  * or http://www.opensolaris.org/os/licensing.
10*3b890a5bSjb145095  * See the License for the specific language governing permissions
11*3b890a5bSjb145095  * and limitations under the License.
12*3b890a5bSjb145095  *
13*3b890a5bSjb145095  * When distributing Covered Code, include this CDDL HEADER in each
14*3b890a5bSjb145095  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*3b890a5bSjb145095  * If applicable, add the following below this CDDL HEADER, with the
16*3b890a5bSjb145095  * fields enclosed by brackets "[]" replaced with your own identifying
17*3b890a5bSjb145095  * information: Portions Copyright [yyyy] [name of copyright owner]
18*3b890a5bSjb145095  *
19*3b890a5bSjb145095  * CDDL HEADER END
20*3b890a5bSjb145095  */
21*3b890a5bSjb145095 
22*3b890a5bSjb145095 /*
23*3b890a5bSjb145095  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24*3b890a5bSjb145095  * Use is subject to license terms.
25*3b890a5bSjb145095  */
26*3b890a5bSjb145095 
27*3b890a5bSjb145095 #ifndef _SYS_SOFT_STATE_H
28*3b890a5bSjb145095 #define	_SYS_SOFT_STATE_H
29*3b890a5bSjb145095 
30*3b890a5bSjb145095 #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*3b890a5bSjb145095 
32*3b890a5bSjb145095 /*
33*3b890a5bSjb145095  * sun4v Hypervisor Guest State API
34*3b890a5bSjb145095  */
35*3b890a5bSjb145095 
36*3b890a5bSjb145095 #ifdef __cplusplus
37*3b890a5bSjb145095 extern "C" {
38*3b890a5bSjb145095 #endif
39*3b890a5bSjb145095 
40*3b890a5bSjb145095 /*
41*3b890a5bSjb145095  * String definitions for Solaris
42*3b890a5bSjb145095  */
43*3b890a5bSjb145095 
44*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_BOOT_MSG_STR		"Solaris booting"
45*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_RUN_MSG_STR		"Solaris running"
46*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_HALT_MSG_STR		"Solaris halting"
47*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_POWER_MSG_STR	"Solaris powering down"
48*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_PANIC_MSG_STR	"Solaris panicking"
49*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_REBOOT_MSG_STR	"Solaris rebooting"
50*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_DEBUG_MSG_STR	"Solaris debugging"
51*3b890a5bSjb145095 #define	SSM_SIZE				32
52*3b890a5bSjb145095 
53*3b890a5bSjb145095 #ifndef _ASM
54*3b890a5bSjb145095 
55*3b890a5bSjb145095 extern char	soft_state_message_strings[][SSM_SIZE];
56*3b890a5bSjb145095 
57*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_BOOT_MSG		soft_state_message_ra[0]
58*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_RUN_MSG		soft_state_message_ra[1]
59*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_HALT_MSG		soft_state_message_ra[2]
60*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_POWER_MSG		soft_state_message_ra[3]
61*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_PANIC_MSG		soft_state_message_ra[4]
62*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_REBOOT_MSG		soft_state_message_ra[5]
63*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_DEBUG_MSG		soft_state_message_ra[6]
64*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_SAVED_MSG		soft_state_message_ra[7]
65*3b890a5bSjb145095 #define	SOLARIS_SOFT_STATE_MSG_CNT		8
66*3b890a5bSjb145095 
67*3b890a5bSjb145095 extern uint64_t	soft_state_message_ra[SOLARIS_SOFT_STATE_MSG_CNT];
68*3b890a5bSjb145095 
69*3b890a5bSjb145095 extern void mach_get_soft_state(uint64_t *state,
70*3b890a5bSjb145095 		uint64_t *string_ra);
71*3b890a5bSjb145095 
72*3b890a5bSjb145095 extern void mach_set_soft_state(uint64_t state,
73*3b890a5bSjb145095 		uint64_t *description_ra);
74*3b890a5bSjb145095 
75*3b890a5bSjb145095 extern void prom_sun4v_soft_state_supported(void);
76*3b890a5bSjb145095 
77*3b890a5bSjb145095 #endif	/* _ASM */
78*3b890a5bSjb145095 
79*3b890a5bSjb145095 #ifdef __cplusplus
80*3b890a5bSjb145095 }
81*3b890a5bSjb145095 #endif
82*3b890a5bSjb145095 
83*3b890a5bSjb145095 #endif /* _SYS_SOFT_STATE_H */
84