1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo/*
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * CDDL HEADER START
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo *
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * The contents of this file are subject to the terms of the
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Common Development and Distribution License (the "License").
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * You may not use this file except in compliance with the License.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo *
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * or http://www.opensolaris.org/os/licensing.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * See the License for the specific language governing permissions
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * and limitations under the License.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo *
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * When distributing Covered Code, include this CDDL HEADER in each
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * If applicable, add the following below this CDDL HEADER, with the
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * fields enclosed by brackets "[]" replaced with your own identifying
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * information: Portions Copyright [yyyy] [name of copyright owner]
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo *
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * CDDL HEADER END
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo/*
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#ifndef _PLATSVC_H
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define _PLATSVC_H
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#ifdef __cplusplus
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppoextern "C" {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#endif
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#include <sys/types.h>
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#include <sys/ds.h>
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define MAX_REASON_SIZE 1
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define SUSPEND_MAX_REASON_SIZE 256
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo/*
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * PLATSVC STATUS
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define PLATSVC_SUCCESS 0x0
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define PLATSVC_FAILURE 0x1
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define PLATSVC_INVALID_MESG 0x2
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define MD_UPDATE_SUCCESS PLATSVC_SUCCESS
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define MD_UPDATE_FAILURE PLATSVC_FAILURE
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define MD_UPDATE_INVALID_MSG PLATSVC_INVALID_MESG
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define DOMAIN_SHUTDOWN_SUCCESS PLATSVC_SUCCESS
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define DOMAIN_SHUTDOWN_FAILURE PLATSVC_FAILURE
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define DOMAIN_SHUTDOWN_INVALID_MSG PLATSVC_INVALID_MESG
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define DOMAIN_PANIC_SUCCESS PLATSVC_SUCCESS
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define DOMAIN_PANIC_FAILURE PLATSVC_FAILURE
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define DOMAIN_PANIC_INVALID_MSG PLATSVC_INVALID_MESG
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian/*
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian * Suspend message types.
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian */
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_SUSPEND 0x0
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian/*
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian * Suspend response result values.
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian */
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_PRE_SUCCESS PLATSVC_SUCCESS
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_PRE_FAILURE PLATSVC_FAILURE
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_INVALID_MSG PLATSVC_INVALID_MESG
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_INPROGRESS 0x3
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_SUSPEND_FAILURE 0x4
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_POST_SUCCESS 0x5
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_POST_FAILURE 0x6
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian/*
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian * Suspend recovery result values.
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian */
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_REC_SUCCESS 0x0
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian#define DOMAIN_SUSPEND_REC_FAILURE 0x1
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian/*
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian * String used as the error reason in the failure response when a
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian * suspend request is denied due to an ongoing DR operation.
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian */
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian#define DOMAIN_SUSPEND_DR_ERROR_STR \
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian "suspend failure: DR operation in progress"
02b4e56ca3a4e4a4fe9e52fca9c2972101f0e57fHaik Aftandilian
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct platsvc_md_update_req {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t req_num;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo} platsvc_md_update_req_t;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct platsvc_md_update_resp {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t req_num;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint32_t result;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo} platsvc_md_update_resp_t;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct platsvc_shutdown_req {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t req_num;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint32_t delay;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo} platsvc_shutdown_req_t;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct platsvc_shutdown_resp {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t req_num;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint32_t result;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo char reason[MAX_REASON_SIZE];
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo} platsvc_shutdown_resp_t;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct platsvc_panic_req {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t req_num;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo} platsvc_panic_req_t;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct platsvc_panic_resp {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t req_num;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint32_t result;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo char reason[MAX_REASON_SIZE];
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo} platsvc_panic_resp_t;
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandiliantypedef struct platsvc_suspend_req {
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian uint64_t req_num;
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian uint64_t type;
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian} platsvc_suspend_req_t;
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandiliantypedef struct platsvc_suspend_resp {
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian uint64_t req_num;
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian uint32_t result;
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian uint32_t rec_result;
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian char reason[MAX_REASON_SIZE];
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian} platsvc_suspend_resp_t;
023e71de9e5670cebc23dd51162833661d3d2d3bHaik Aftandilian
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#ifdef __cplusplus
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo}
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#endif
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#endif /* _PLATSVC_H */