3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb/*
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * CDDL HEADER START
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb *
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * The contents of this file are subject to the terms of the
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * Common Development and Distribution License (the "License").
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * You may not use this file except in compliance with the License.
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb *
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * or http://www.opensolaris.org/os/licensing.
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * See the License for the specific language governing permissions
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * and limitations under the License.
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb *
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * When distributing Covered Code, include this CDDL HEADER in each
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * If applicable, add the following below this CDDL HEADER, with the
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * fields enclosed by brackets "[]" replaced with your own identifying
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * information: Portions Copyright [yyyy] [name of copyright owner]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb *
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * CDDL HEADER END
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb */
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb/*
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * Use is subject to license terms.
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb */
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#ifndef _SYS_SOFT_STATE_H
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define _SYS_SOFT_STATE_H
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#pragma ident "%Z%%M% %I% %E% SMI"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb/*
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * sun4v Hypervisor Guest State API
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb */
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#ifdef __cplusplus
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajbextern "C" {
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#endif
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb/*
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb * String definitions for Solaris
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb */
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_BOOT_MSG_STR "Solaris booting"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_RUN_MSG_STR "Solaris running"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_HALT_MSG_STR "Solaris halting"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_POWER_MSG_STR "Solaris powering down"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_PANIC_MSG_STR "Solaris panicking"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_REBOOT_MSG_STR "Solaris rebooting"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_DEBUG_MSG_STR "Solaris debugging"
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SSM_SIZE 32
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#ifndef _ASM
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajbextern char soft_state_message_strings[][SSM_SIZE];
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_BOOT_MSG soft_state_message_ra[0]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_RUN_MSG soft_state_message_ra[1]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_HALT_MSG soft_state_message_ra[2]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_POWER_MSG soft_state_message_ra[3]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_PANIC_MSG soft_state_message_ra[4]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_REBOOT_MSG soft_state_message_ra[5]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_DEBUG_MSG soft_state_message_ra[6]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_SAVED_MSG soft_state_message_ra[7]
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define SOLARIS_SOFT_STATE_MSG_CNT 8
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajbextern uint64_t soft_state_message_ra[SOLARIS_SOFT_STATE_MSG_CNT];
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajbextern void mach_get_soft_state(uint64_t *state,
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb uint64_t *string_ra);
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajbextern void mach_set_soft_state(uint64_t state,
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb uint64_t *description_ra);
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajbextern void prom_sun4v_soft_state_supported(void);
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#endif /* _ASM */
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#ifdef __cplusplus
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb}
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#endif
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#endif /* _SYS_SOFT_STATE_H */