11ae08745Sheppo /* 21ae08745Sheppo * CDDL HEADER START 31ae08745Sheppo * 41ae08745Sheppo * The contents of this file are subject to the terms of the 51ae08745Sheppo * Common Development and Distribution License (the "License"). 61ae08745Sheppo * You may not use this file except in compliance with the License. 71ae08745Sheppo * 81ae08745Sheppo * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 91ae08745Sheppo * or http://www.opensolaris.org/os/licensing. 101ae08745Sheppo * See the License for the specific language governing permissions 111ae08745Sheppo * and limitations under the License. 121ae08745Sheppo * 131ae08745Sheppo * When distributing Covered Code, include this CDDL HEADER in each 141ae08745Sheppo * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 151ae08745Sheppo * If applicable, add the following below this CDDL HEADER, with the 161ae08745Sheppo * fields enclosed by brackets "[]" replaced with your own identifying 171ae08745Sheppo * information: Portions Copyright [yyyy] [name of copyright owner] 181ae08745Sheppo * 191ae08745Sheppo * CDDL HEADER END 201ae08745Sheppo */ 211ae08745Sheppo 221ae08745Sheppo /* 23*02b4e56cSHaik Aftandilian * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. 241ae08745Sheppo */ 251ae08745Sheppo 261ae08745Sheppo #ifndef _PLATSVC_H 271ae08745Sheppo #define _PLATSVC_H 281ae08745Sheppo 291ae08745Sheppo #ifdef __cplusplus 301ae08745Sheppo extern "C" { 311ae08745Sheppo #endif 321ae08745Sheppo 331ae08745Sheppo #include <sys/types.h> 341ae08745Sheppo #include <sys/ds.h> 351ae08745Sheppo 361ae08745Sheppo #define MAX_REASON_SIZE 1 37023e71deSHaik Aftandilian #define SUSPEND_MAX_REASON_SIZE 256 381ae08745Sheppo 391ae08745Sheppo /* 401ae08745Sheppo * PLATSVC STATUS 411ae08745Sheppo */ 421ae08745Sheppo #define PLATSVC_SUCCESS 0x0 431ae08745Sheppo #define PLATSVC_FAILURE 0x1 441ae08745Sheppo #define PLATSVC_INVALID_MESG 0x2 451ae08745Sheppo 461ae08745Sheppo #define MD_UPDATE_SUCCESS PLATSVC_SUCCESS 471ae08745Sheppo #define MD_UPDATE_FAILURE PLATSVC_FAILURE 481ae08745Sheppo #define MD_UPDATE_INVALID_MSG PLATSVC_INVALID_MESG 491ae08745Sheppo 501ae08745Sheppo #define DOMAIN_SHUTDOWN_SUCCESS PLATSVC_SUCCESS 511ae08745Sheppo #define DOMAIN_SHUTDOWN_FAILURE PLATSVC_FAILURE 521ae08745Sheppo #define DOMAIN_SHUTDOWN_INVALID_MSG PLATSVC_INVALID_MESG 531ae08745Sheppo 541ae08745Sheppo #define DOMAIN_PANIC_SUCCESS PLATSVC_SUCCESS 551ae08745Sheppo #define DOMAIN_PANIC_FAILURE PLATSVC_FAILURE 561ae08745Sheppo #define DOMAIN_PANIC_INVALID_MSG PLATSVC_INVALID_MESG 571ae08745Sheppo 58023e71deSHaik Aftandilian /* 59023e71deSHaik Aftandilian * Suspend message types. 60023e71deSHaik Aftandilian */ 61023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_SUSPEND 0x0 62023e71deSHaik Aftandilian 63023e71deSHaik Aftandilian /* 64023e71deSHaik Aftandilian * Suspend response result values. 65023e71deSHaik Aftandilian */ 66023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_PRE_SUCCESS PLATSVC_SUCCESS 67023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_PRE_FAILURE PLATSVC_FAILURE 68023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_INVALID_MSG PLATSVC_INVALID_MESG 69023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_INPROGRESS 0x3 70023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_SUSPEND_FAILURE 0x4 71023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_POST_SUCCESS 0x5 72023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_POST_FAILURE 0x6 73023e71deSHaik Aftandilian 74023e71deSHaik Aftandilian /* 75023e71deSHaik Aftandilian * Suspend recovery result values. 76023e71deSHaik Aftandilian */ 77023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_REC_SUCCESS 0x0 78023e71deSHaik Aftandilian #define DOMAIN_SUSPEND_REC_FAILURE 0x1 79023e71deSHaik Aftandilian 80*02b4e56cSHaik Aftandilian /* 81*02b4e56cSHaik Aftandilian * String used as the error reason in the failure response when a 82*02b4e56cSHaik Aftandilian * suspend request is denied due to an ongoing DR operation. 83*02b4e56cSHaik Aftandilian */ 84*02b4e56cSHaik Aftandilian #define DOMAIN_SUSPEND_DR_ERROR_STR \ 85*02b4e56cSHaik Aftandilian "suspend failure: DR operation in progress" 86*02b4e56cSHaik Aftandilian 871ae08745Sheppo typedef struct platsvc_md_update_req { 881ae08745Sheppo uint64_t req_num; 891ae08745Sheppo } platsvc_md_update_req_t; 901ae08745Sheppo 911ae08745Sheppo typedef struct platsvc_md_update_resp { 921ae08745Sheppo uint64_t req_num; 931ae08745Sheppo uint32_t result; 941ae08745Sheppo } platsvc_md_update_resp_t; 951ae08745Sheppo 961ae08745Sheppo typedef struct platsvc_shutdown_req { 971ae08745Sheppo uint64_t req_num; 981ae08745Sheppo uint32_t delay; 991ae08745Sheppo } platsvc_shutdown_req_t; 1001ae08745Sheppo 1011ae08745Sheppo typedef struct platsvc_shutdown_resp { 1021ae08745Sheppo uint64_t req_num; 1031ae08745Sheppo uint32_t result; 1041ae08745Sheppo char reason[MAX_REASON_SIZE]; 1051ae08745Sheppo } platsvc_shutdown_resp_t; 1061ae08745Sheppo 1071ae08745Sheppo typedef struct platsvc_panic_req { 1081ae08745Sheppo uint64_t req_num; 1091ae08745Sheppo } platsvc_panic_req_t; 1101ae08745Sheppo 1111ae08745Sheppo typedef struct platsvc_panic_resp { 1121ae08745Sheppo uint64_t req_num; 1131ae08745Sheppo uint32_t result; 1141ae08745Sheppo char reason[MAX_REASON_SIZE]; 1151ae08745Sheppo } platsvc_panic_resp_t; 1161ae08745Sheppo 117023e71deSHaik Aftandilian typedef struct platsvc_suspend_req { 118023e71deSHaik Aftandilian uint64_t req_num; 119023e71deSHaik Aftandilian uint64_t type; 120023e71deSHaik Aftandilian } platsvc_suspend_req_t; 121023e71deSHaik Aftandilian 122023e71deSHaik Aftandilian typedef struct platsvc_suspend_resp { 123023e71deSHaik Aftandilian uint64_t req_num; 124023e71deSHaik Aftandilian uint32_t result; 125023e71deSHaik Aftandilian uint32_t rec_result; 126023e71deSHaik Aftandilian char reason[MAX_REASON_SIZE]; 127023e71deSHaik Aftandilian } platsvc_suspend_resp_t; 128023e71deSHaik Aftandilian 1291ae08745Sheppo #ifdef __cplusplus 1301ae08745Sheppo } 1311ae08745Sheppo #endif 1321ae08745Sheppo 1331ae08745Sheppo #endif /* _PLATSVC_H */ 134