blob: a3e624da1578860b8f9bcc97177c353d04200c8e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
*/
#ifndef _PLATSVC_H
#define _PLATSVC_H
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
#include <sys/ds.h>
#define MAX_REASON_SIZE 1
#define SUSPEND_MAX_REASON_SIZE 256
/*
* PLATSVC STATUS
*/
#define PLATSVC_SUCCESS 0x0
#define PLATSVC_FAILURE 0x1
#define PLATSVC_INVALID_MESG 0x2
#define MD_UPDATE_SUCCESS PLATSVC_SUCCESS
#define MD_UPDATE_FAILURE PLATSVC_FAILURE
#define MD_UPDATE_INVALID_MSG PLATSVC_INVALID_MESG
#define DOMAIN_SHUTDOWN_SUCCESS PLATSVC_SUCCESS
#define DOMAIN_SHUTDOWN_FAILURE PLATSVC_FAILURE
#define DOMAIN_SHUTDOWN_INVALID_MSG PLATSVC_INVALID_MESG
#define DOMAIN_PANIC_SUCCESS PLATSVC_SUCCESS
#define DOMAIN_PANIC_FAILURE PLATSVC_FAILURE
#define DOMAIN_PANIC_INVALID_MSG PLATSVC_INVALID_MESG
/*
* Suspend message types.
*/
#define DOMAIN_SUSPEND_SUSPEND 0x0
/*
* Suspend response result values.
*/
#define DOMAIN_SUSPEND_PRE_SUCCESS PLATSVC_SUCCESS
#define DOMAIN_SUSPEND_PRE_FAILURE PLATSVC_FAILURE
#define DOMAIN_SUSPEND_INVALID_MSG PLATSVC_INVALID_MESG
#define DOMAIN_SUSPEND_INPROGRESS 0x3
#define DOMAIN_SUSPEND_SUSPEND_FAILURE 0x4
#define DOMAIN_SUSPEND_POST_SUCCESS 0x5
#define DOMAIN_SUSPEND_POST_FAILURE 0x6
/*
* Suspend recovery result values.
*/
#define DOMAIN_SUSPEND_REC_SUCCESS 0x0
#define DOMAIN_SUSPEND_REC_FAILURE 0x1
/*
* String used as the error reason in the failure response when a
* suspend request is denied due to an ongoing DR operation.
*/
#define DOMAIN_SUSPEND_DR_ERROR_STR \
"suspend failure: DR operation in progress"
typedef struct platsvc_md_update_req {
uint64_t req_num;
} platsvc_md_update_req_t;
typedef struct platsvc_md_update_resp {
uint64_t req_num;
uint32_t result;
} platsvc_md_update_resp_t;
typedef struct platsvc_shutdown_req {
uint64_t req_num;
uint32_t delay;
} platsvc_shutdown_req_t;
typedef struct platsvc_shutdown_resp {
uint64_t req_num;
uint32_t result;
char reason[MAX_REASON_SIZE];
} platsvc_shutdown_resp_t;
typedef struct platsvc_panic_req {
uint64_t req_num;
} platsvc_panic_req_t;
typedef struct platsvc_panic_resp {
uint64_t req_num;
uint32_t result;
char reason[MAX_REASON_SIZE];
} platsvc_panic_resp_t;
typedef struct platsvc_suspend_req {
uint64_t req_num;
uint64_t type;
} platsvc_suspend_req_t;
typedef struct platsvc_suspend_resp {
uint64_t req_num;
uint32_t result;
uint32_t rec_result;
char reason[MAX_REASON_SIZE];
} platsvc_suspend_resp_t;
#ifdef __cplusplus
}
#endif
#endif /* _PLATSVC_H */
|