xref: /illumos-gate/usr/src/uts/i86pc/sys/sbd_ioctl.h (revision a31148363f598def767ac48c5d82e1572e44b935)
1*a3114836SGerry Liu /*
2*a3114836SGerry Liu  * CDDL HEADER START
3*a3114836SGerry Liu  *
4*a3114836SGerry Liu  * The contents of this file are subject to the terms of the
5*a3114836SGerry Liu  * Common Development and Distribution License (the "License").
6*a3114836SGerry Liu  * You may not use this file except in compliance with the License.
7*a3114836SGerry Liu  *
8*a3114836SGerry Liu  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*a3114836SGerry Liu  * or http://www.opensolaris.org/os/licensing.
10*a3114836SGerry Liu  * See the License for the specific language governing permissions
11*a3114836SGerry Liu  * and limitations under the License.
12*a3114836SGerry Liu  *
13*a3114836SGerry Liu  * When distributing Covered Code, include this CDDL HEADER in each
14*a3114836SGerry Liu  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*a3114836SGerry Liu  * If applicable, add the following below this CDDL HEADER, with the
16*a3114836SGerry Liu  * fields enclosed by brackets "[]" replaced with your own identifying
17*a3114836SGerry Liu  * information: Portions Copyright [yyyy] [name of copyright owner]
18*a3114836SGerry Liu  *
19*a3114836SGerry Liu  * CDDL HEADER END
20*a3114836SGerry Liu  */
21*a3114836SGerry Liu /*
22*a3114836SGerry Liu  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23*a3114836SGerry Liu  * Use is subject to license terms.
24*a3114836SGerry Liu  */
25*a3114836SGerry Liu /*
26*a3114836SGerry Liu  * Copyright (c) 2010, Intel Corporation.
27*a3114836SGerry Liu  * All rights reserved.
28*a3114836SGerry Liu  */
29*a3114836SGerry Liu 
30*a3114836SGerry Liu #ifndef	_SBD_IOCTL_H
31*a3114836SGerry Liu #define	_SBD_IOCTL_H
32*a3114836SGerry Liu 
33*a3114836SGerry Liu #ifndef	_ASM
34*a3114836SGerry Liu #include <sys/types.h>
35*a3114836SGerry Liu #include <sys/obpdefs.h>
36*a3114836SGerry Liu #include <sys/processor.h>
37*a3114836SGerry Liu #include <sys/param.h>
38*a3114836SGerry Liu #endif
39*a3114836SGerry Liu 
40*a3114836SGerry Liu #ifdef	__cplusplus
41*a3114836SGerry Liu extern "C" {
42*a3114836SGerry Liu #endif
43*a3114836SGerry Liu 
44*a3114836SGerry Liu #ifndef	_ASM
45*a3114836SGerry Liu typedef enum {
46*a3114836SGerry Liu 	SBD_COMP_NONE,
47*a3114836SGerry Liu 	SBD_COMP_CPU,
48*a3114836SGerry Liu 	SBD_COMP_MEM,
49*a3114836SGerry Liu 	SBD_COMP_IO,
50*a3114836SGerry Liu 	SBD_COMP_CMP,
51*a3114836SGerry Liu 	SBD_COMP_UNKNOWN
52*a3114836SGerry Liu } sbd_comp_type_t;
53*a3114836SGerry Liu 
54*a3114836SGerry Liu typedef enum {
55*a3114836SGerry Liu 	SBD_STAT_NONE = 0,
56*a3114836SGerry Liu 	SBD_STAT_EMPTY,
57*a3114836SGerry Liu 	SBD_STAT_DISCONNECTED,
58*a3114836SGerry Liu 	SBD_STAT_CONNECTED,
59*a3114836SGerry Liu 	SBD_STAT_UNCONFIGURED,
60*a3114836SGerry Liu 	SBD_STAT_CONFIGURED
61*a3114836SGerry Liu } sbd_state_t;
62*a3114836SGerry Liu 
63*a3114836SGerry Liu typedef enum {
64*a3114836SGerry Liu 	SBD_COND_UNKNOWN = 0,
65*a3114836SGerry Liu 	SBD_COND_OK,
66*a3114836SGerry Liu 	SBD_COND_FAILING,
67*a3114836SGerry Liu 	SBD_COND_FAILED,
68*a3114836SGerry Liu 	SBD_COND_UNUSABLE
69*a3114836SGerry Liu } sbd_cond_t;
70*a3114836SGerry Liu 
71*a3114836SGerry Liu typedef	int	sbd_busy_t;
72*a3114836SGerry Liu 
73*a3114836SGerry Liu #define	SBD_MAX_UNSAFE		16
74*a3114836SGerry Liu #define	SBD_TYPE_LEN		12
75*a3114836SGerry Liu #define	SBD_NULL_UNIT		-1
76*a3114836SGerry Liu 
77*a3114836SGerry Liu typedef struct {
78*a3114836SGerry Liu 	sbd_comp_type_t	c_type;
79*a3114836SGerry Liu 	int		c_unit;
80*a3114836SGerry Liu 	char		c_name[OBP_MAXPROPNAME];
81*a3114836SGerry Liu } sbd_comp_id_t;
82*a3114836SGerry Liu 
83*a3114836SGerry Liu typedef struct {
84*a3114836SGerry Liu 	sbd_comp_id_t	c_id;
85*a3114836SGerry Liu 	sbd_state_t	c_ostate;
86*a3114836SGerry Liu 	sbd_cond_t	c_cond;
87*a3114836SGerry Liu 	sbd_busy_t	c_busy;
88*a3114836SGerry Liu 	uint_t		c_sflags;
89*a3114836SGerry Liu 	time_t		c_time;
90*a3114836SGerry Liu } sbd_cm_stat_t;
91*a3114836SGerry Liu 
92*a3114836SGerry Liu #define	ci_type		c_id.c_type
93*a3114836SGerry Liu #define	ci_unit		c_id.c_unit
94*a3114836SGerry Liu #define	ci_name		c_id.c_name
95*a3114836SGerry Liu 
96*a3114836SGerry Liu typedef struct {
97*a3114836SGerry Liu 	sbd_cm_stat_t	cs_cm;
98*a3114836SGerry Liu 	int		cs_isbootproc;
99*a3114836SGerry Liu 	processorid_t	cs_cpuid;
100*a3114836SGerry Liu 	int		cs_speed;
101*a3114836SGerry Liu 	int		cs_ecache;
102*a3114836SGerry Liu } sbd_cpu_stat_t;
103*a3114836SGerry Liu 
104*a3114836SGerry Liu #define	cs_type		cs_cm.ci_type
105*a3114836SGerry Liu #define	cs_unit		cs_cm.ci_unit
106*a3114836SGerry Liu #define	cs_name		cs_cm.ci_name
107*a3114836SGerry Liu #define	cs_ostate	cs_cm.c_ostate
108*a3114836SGerry Liu #define	cs_cond		cs_cm.c_cond
109*a3114836SGerry Liu #define	cs_busy		cs_cm.c_busy
110*a3114836SGerry Liu #define	cs_suspend	cs_cm.c_sflags
111*a3114836SGerry Liu #define	cs_time		cs_cm.c_time
112*a3114836SGerry Liu 
113*a3114836SGerry Liu typedef struct {
114*a3114836SGerry Liu 	sbd_cm_stat_t	ms_cm;
115*a3114836SGerry Liu 	int		ms_interleave;
116*a3114836SGerry Liu 	pfn_t		ms_basepfn;
117*a3114836SGerry Liu 	pgcnt_t		ms_totpages;
118*a3114836SGerry Liu 	pgcnt_t		ms_detpages;
119*a3114836SGerry Liu 	pgcnt_t		ms_pageslost;
120*a3114836SGerry Liu 	pgcnt_t		ms_managed_pages;
121*a3114836SGerry Liu 	pgcnt_t		ms_noreloc_pages;
122*a3114836SGerry Liu 	pgcnt_t		ms_noreloc_first;
123*a3114836SGerry Liu 	pgcnt_t		ms_noreloc_last;
124*a3114836SGerry Liu 	int		ms_cage_enabled;
125*a3114836SGerry Liu 	int		ms_peer_is_target;	/* else peer is source */
126*a3114836SGerry Liu 	char		ms_peer_ap_id[MAXPATHLEN];	/* board's AP name */
127*a3114836SGerry Liu } sbd_mem_stat_t;
128*a3114836SGerry Liu 
129*a3114836SGerry Liu #define	ms_type		ms_cm.ci_type
130*a3114836SGerry Liu #define	ms_unit		ms_cm.ci_unit
131*a3114836SGerry Liu #define	ms_name		ms_cm.ci_name
132*a3114836SGerry Liu #define	ms_ostate	ms_cm.c_ostate
133*a3114836SGerry Liu #define	ms_cond		ms_cm.c_cond
134*a3114836SGerry Liu #define	ms_busy		ms_cm.c_busy
135*a3114836SGerry Liu #define	ms_suspend	ms_cm.c_sflags
136*a3114836SGerry Liu #define	ms_time		ms_cm.c_time
137*a3114836SGerry Liu 
138*a3114836SGerry Liu typedef struct {
139*a3114836SGerry Liu 	sbd_cm_stat_t	is_cm;
140*a3114836SGerry Liu 	int		is_referenced;
141*a3114836SGerry Liu 	int		is_unsafe_count;
142*a3114836SGerry Liu 	int		is_unsafe_list[SBD_MAX_UNSAFE];
143*a3114836SGerry Liu 	char		is_pathname[MAXPATHLEN];
144*a3114836SGerry Liu } sbd_io_stat_t;
145*a3114836SGerry Liu 
146*a3114836SGerry Liu #define	is_type		is_cm.ci_type
147*a3114836SGerry Liu #define	is_unit		is_cm.ci_unit
148*a3114836SGerry Liu #define	is_name		is_cm.ci_name
149*a3114836SGerry Liu #define	is_ostate	is_cm.c_ostate
150*a3114836SGerry Liu #define	is_cond		is_cm.c_cond
151*a3114836SGerry Liu #define	is_busy		is_cm.c_busy
152*a3114836SGerry Liu #define	is_suspend	is_cm.c_sflags
153*a3114836SGerry Liu #define	is_time		is_cm.c_time
154*a3114836SGerry Liu 
155*a3114836SGerry Liu /* This constant must be the max of the max cores on all platforms */
156*a3114836SGerry Liu #define	SBD_MAX_CORES_PER_CMP	64
157*a3114836SGerry Liu 
158*a3114836SGerry Liu typedef struct {
159*a3114836SGerry Liu 	sbd_cm_stat_t	ps_cm;
160*a3114836SGerry Liu 	processorid_t	ps_cpuid[SBD_MAX_CORES_PER_CMP];
161*a3114836SGerry Liu 	int		ps_ncores;
162*a3114836SGerry Liu 	int		ps_speed;
163*a3114836SGerry Liu 	int		ps_ecache;
164*a3114836SGerry Liu } sbd_cmp_stat_t;
165*a3114836SGerry Liu 
166*a3114836SGerry Liu #define	ps_type		ps_cm.ci_type
167*a3114836SGerry Liu #define	ps_unit		ps_cm.ci_unit
168*a3114836SGerry Liu #define	ps_name		ps_cm.ci_name
169*a3114836SGerry Liu #define	ps_ostate	ps_cm.c_ostate
170*a3114836SGerry Liu #define	ps_cond		ps_cm.c_cond
171*a3114836SGerry Liu #define	ps_busy		ps_cm.c_busy
172*a3114836SGerry Liu #define	ps_suspend	ps_cm.c_sflags
173*a3114836SGerry Liu #define	ps_time		ps_cm.c_time
174*a3114836SGerry Liu 
175*a3114836SGerry Liu typedef union {
176*a3114836SGerry Liu 	sbd_cm_stat_t	d_cm;
177*a3114836SGerry Liu 	sbd_cpu_stat_t	d_cpu;
178*a3114836SGerry Liu 	sbd_mem_stat_t	d_mem;
179*a3114836SGerry Liu 	sbd_io_stat_t	d_io;
180*a3114836SGerry Liu 	sbd_cmp_stat_t	d_cmp;
181*a3114836SGerry Liu } sbd_dev_stat_t;
182*a3114836SGerry Liu 
183*a3114836SGerry Liu #define	ds_type		d_cm.ci_type
184*a3114836SGerry Liu #define	ds_unit		d_cm.ci_unit
185*a3114836SGerry Liu #define	ds_name		d_cm.ci_name
186*a3114836SGerry Liu #define	ds_ostate	d_cm.c_ostate
187*a3114836SGerry Liu #define	ds_cond		d_cm.c_cond
188*a3114836SGerry Liu #define	ds_busy		d_cm.c_busy
189*a3114836SGerry Liu #define	ds_suspend	d_cm.c_sflags
190*a3114836SGerry Liu #define	ds_time		d_cm.c_time
191*a3114836SGerry Liu 
192*a3114836SGerry Liu #define	SBD_MAX_INFO	256
193*a3114836SGerry Liu 
194*a3114836SGerry Liu typedef struct {
195*a3114836SGerry Liu 	int		s_board;
196*a3114836SGerry Liu 	char		s_type[SBD_TYPE_LEN];
197*a3114836SGerry Liu 	char		s_info[SBD_MAX_INFO];
198*a3114836SGerry Liu 	sbd_state_t	s_rstate;
199*a3114836SGerry Liu 	sbd_state_t	s_ostate;
200*a3114836SGerry Liu 	sbd_cond_t	s_cond;
201*a3114836SGerry Liu 	sbd_busy_t	s_busy;
202*a3114836SGerry Liu 	time_t		s_time;
203*a3114836SGerry Liu 	uint_t		s_power:1;
204*a3114836SGerry Liu 	uint_t		s_assigned:1;
205*a3114836SGerry Liu 	uint_t		s_platopts;
206*a3114836SGerry Liu 	int		s_nstat;
207*a3114836SGerry Liu 	sbd_dev_stat_t	s_stat[1];
208*a3114836SGerry Liu } sbd_stat_t;
209*a3114836SGerry Liu 
210*a3114836SGerry Liu typedef struct {
211*a3114836SGerry Liu 	sbd_comp_id_t	c_id;
212*a3114836SGerry Liu 	uint_t		c_flags;
213*a3114836SGerry Liu 	int		c_len;
214*a3114836SGerry Liu 	caddr_t		c_opts;
215*a3114836SGerry Liu } sbd_cm_cmd_t;
216*a3114836SGerry Liu 
217*a3114836SGerry Liu typedef struct {
218*a3114836SGerry Liu 	sbd_cm_cmd_t	g_cm;
219*a3114836SGerry Liu 	int		g_ncm;
220*a3114836SGerry Liu } sbd_getncm_cmd_t;
221*a3114836SGerry Liu 
222*a3114836SGerry Liu typedef struct {
223*a3114836SGerry Liu 	sbd_cm_cmd_t	s_cm;
224*a3114836SGerry Liu 	int		s_nbytes;
225*a3114836SGerry Liu 	caddr_t		s_statp;
226*a3114836SGerry Liu } sbd_stat_cmd_t;
227*a3114836SGerry Liu 
228*a3114836SGerry Liu typedef union {
229*a3114836SGerry Liu 	sbd_cm_cmd_t		cmd_cm;
230*a3114836SGerry Liu 	sbd_getncm_cmd_t	cmd_getncm;
231*a3114836SGerry Liu 	sbd_stat_cmd_t		cmd_stat;
232*a3114836SGerry Liu } sbd_cmd_t;
233*a3114836SGerry Liu 
234*a3114836SGerry Liu typedef struct {
235*a3114836SGerry Liu 	int		e_code;
236*a3114836SGerry Liu 	char		e_rsc[MAXPATHLEN];
237*a3114836SGerry Liu } sbd_error_t;
238*a3114836SGerry Liu 
239*a3114836SGerry Liu typedef struct {
240*a3114836SGerry Liu 	sbd_cmd_t	i_cmd;
241*a3114836SGerry Liu 	sbd_error_t	i_err;
242*a3114836SGerry Liu } sbd_ioctl_arg_t;
243*a3114836SGerry Liu 
244*a3114836SGerry Liu typedef struct {
245*a3114836SGerry Liu 	int		t_base;
246*a3114836SGerry Liu 	int		t_bnd;
247*a3114836SGerry Liu 	char		**t_text;
248*a3114836SGerry Liu } sbd_etab_t;
249*a3114836SGerry Liu 
250*a3114836SGerry Liu #define	i_flags		i_cmd.cmd_cm.c_flags
251*a3114836SGerry Liu #define	i_len		i_cmd.cmd_cm.c_len
252*a3114836SGerry Liu #define	i_opts		i_cmd.cmd_cm.c_opts
253*a3114836SGerry Liu #define	ic_type		i_cmd.cmd_cm.ci_type
254*a3114836SGerry Liu #define	ic_name		i_cmd.cmd_cm.ci_name
255*a3114836SGerry Liu #define	ic_unit		i_cmd.cmd_cm.ci_unit
256*a3114836SGerry Liu #define	ie_code		i_err.e_code
257*a3114836SGerry Liu #define	ie_rsc		i_err.e_rsc
258*a3114836SGerry Liu 
259*a3114836SGerry Liu #define	_SBD_IOC		(('D' << 16) | ('R' << 8))
260*a3114836SGerry Liu 
261*a3114836SGerry Liu #define	SBD_CMD_ASSIGN		(_SBD_IOC | 0x01)
262*a3114836SGerry Liu #define	SBD_CMD_UNASSIGN	(_SBD_IOC | 0x02)
263*a3114836SGerry Liu #define	SBD_CMD_POWERON		(_SBD_IOC | 0x03)
264*a3114836SGerry Liu #define	SBD_CMD_POWEROFF	(_SBD_IOC | 0x04)
265*a3114836SGerry Liu #define	SBD_CMD_TEST		(_SBD_IOC | 0x05)
266*a3114836SGerry Liu #define	SBD_CMD_CONNECT		(_SBD_IOC | 0x06)
267*a3114836SGerry Liu #define	SBD_CMD_CONFIGURE	(_SBD_IOC | 0x07)
268*a3114836SGerry Liu #define	SBD_CMD_UNCONFIGURE	(_SBD_IOC | 0x08)
269*a3114836SGerry Liu #define	SBD_CMD_DISCONNECT	(_SBD_IOC | 0x09)
270*a3114836SGerry Liu #define	SBD_CMD_STATUS		(_SBD_IOC | 0x0a)
271*a3114836SGerry Liu #define	SBD_CMD_GETNCM		(_SBD_IOC | 0x0b)
272*a3114836SGerry Liu #define	SBD_CMD_PASSTHRU	(_SBD_IOC | 0x0c)
273*a3114836SGerry Liu 
274*a3114836SGerry Liu #define	SBD_CHECK_SUSPEND(cmd, c_sflags) \
275*a3114836SGerry Liu 		(((c_sflags) >> (((cmd) & 0xf) - 1)) & 0x01)
276*a3114836SGerry Liu 
277*a3114836SGerry Liu #define	SBD_SET_SUSPEND(cmd, c_sflags) \
278*a3114836SGerry Liu 		((c_sflags) |= (0x01 << (((cmd) & 0xf) - 1)))
279*a3114836SGerry Liu 
280*a3114836SGerry Liu #define	SBD_CHECK_PLATOPTS(cmd, c_platopts) \
281*a3114836SGerry Liu 		(((c_platopts) >> (((cmd) & 0xf) - 1)) & 0x01)
282*a3114836SGerry Liu 
283*a3114836SGerry Liu #define	SBD_SET_PLATOPTS(cmd, c_platopts) \
284*a3114836SGerry Liu 		((c_platopts) &= ~(0x01 << (((cmd) & 0xf) - 1)))
285*a3114836SGerry Liu 
286*a3114836SGerry Liu #define	SBD_FLAG_FORCE		0x1
287*a3114836SGerry Liu #define	SBD_FLAG_ALLCMP		0x2
288*a3114836SGerry Liu #define	SBD_FLAG_QUIESCE_OKAY	0x4
289*a3114836SGerry Liu 
290*a3114836SGerry Liu #if defined(_SYSCALL32)
291*a3114836SGerry Liu 
292*a3114836SGerry Liu typedef struct {
293*a3114836SGerry Liu 	int32_t		c_type;
294*a3114836SGerry Liu 	int32_t		c_unit;
295*a3114836SGerry Liu 	char		c_name[OBP_MAXPROPNAME];
296*a3114836SGerry Liu } sbd_comp_id32_t;
297*a3114836SGerry Liu 
298*a3114836SGerry Liu typedef struct {
299*a3114836SGerry Liu 	sbd_comp_id32_t	c_id;
300*a3114836SGerry Liu 	int32_t		c_ostate;
301*a3114836SGerry Liu 	int32_t		c_cond;
302*a3114836SGerry Liu 	int32_t		c_busy;
303*a3114836SGerry Liu 	uint32_t	c_sflags;
304*a3114836SGerry Liu 	time32_t	c_time;
305*a3114836SGerry Liu } sbd_cm_stat32_t;
306*a3114836SGerry Liu 
307*a3114836SGerry Liu typedef struct {
308*a3114836SGerry Liu 	sbd_cm_stat32_t	cs_cm;
309*a3114836SGerry Liu 	int32_t		cs_isbootproc;
310*a3114836SGerry Liu 	int32_t		cs_cpuid;
311*a3114836SGerry Liu 	int32_t		cs_speed;
312*a3114836SGerry Liu 	int32_t		cs_ecache;
313*a3114836SGerry Liu } sbd_cpu_stat32_t;
314*a3114836SGerry Liu 
315*a3114836SGerry Liu typedef struct {
316*a3114836SGerry Liu 	sbd_cm_stat32_t	ms_cm;
317*a3114836SGerry Liu 	int32_t		ms_interleave;
318*a3114836SGerry Liu 	uint32_t	ms_basepfn;
319*a3114836SGerry Liu 	uint32_t	ms_totpages;
320*a3114836SGerry Liu 	uint32_t	ms_detpages;
321*a3114836SGerry Liu 	int32_t		ms_pageslost;
322*a3114836SGerry Liu 	uint32_t	ms_managed_pages;
323*a3114836SGerry Liu 	uint32_t	ms_noreloc_pages;
324*a3114836SGerry Liu 	uint32_t	ms_noreloc_first;
325*a3114836SGerry Liu 	uint32_t	ms_noreloc_last;
326*a3114836SGerry Liu 	int32_t		ms_cage_enabled;
327*a3114836SGerry Liu 	int32_t		ms_peer_is_target;
328*a3114836SGerry Liu 	char		ms_peer_ap_id[MAXPATHLEN];
329*a3114836SGerry Liu } sbd_mem_stat32_t;
330*a3114836SGerry Liu 
331*a3114836SGerry Liu typedef struct {
332*a3114836SGerry Liu 	sbd_cm_stat32_t	is_cm;
333*a3114836SGerry Liu 	int32_t		is_referenced;
334*a3114836SGerry Liu 	int32_t		is_unsafe_count;
335*a3114836SGerry Liu 	int32_t		is_unsafe_list[SBD_MAX_UNSAFE];
336*a3114836SGerry Liu 	char		is_pathname[MAXPATHLEN];
337*a3114836SGerry Liu } sbd_io_stat32_t;
338*a3114836SGerry Liu 
339*a3114836SGerry Liu typedef struct {
340*a3114836SGerry Liu 	sbd_cm_stat32_t	ps_cm;
341*a3114836SGerry Liu 	int32_t		ps_cpuid[SBD_MAX_CORES_PER_CMP];
342*a3114836SGerry Liu 	int32_t		ps_ncores;
343*a3114836SGerry Liu 	int32_t		ps_speed;
344*a3114836SGerry Liu 	int32_t		ps_ecache;
345*a3114836SGerry Liu } sbd_cmp_stat32_t;
346*a3114836SGerry Liu 
347*a3114836SGerry Liu typedef union {
348*a3114836SGerry Liu 	sbd_cm_stat32_t		d_cm;
349*a3114836SGerry Liu 	sbd_cpu_stat32_t	d_cpu;
350*a3114836SGerry Liu 	sbd_mem_stat32_t	d_mem;
351*a3114836SGerry Liu 	sbd_io_stat32_t		d_io;
352*a3114836SGerry Liu 	sbd_cmp_stat32_t	d_cmp;
353*a3114836SGerry Liu } sbd_dev_stat32_t;
354*a3114836SGerry Liu 
355*a3114836SGerry Liu typedef struct {
356*a3114836SGerry Liu 	int32_t			s_board;
357*a3114836SGerry Liu 	char			s_type[SBD_TYPE_LEN];
358*a3114836SGerry Liu 	char			s_info[SBD_MAX_INFO];
359*a3114836SGerry Liu 	int32_t			s_rstate;
360*a3114836SGerry Liu 	int32_t			s_ostate;
361*a3114836SGerry Liu 	int32_t			s_cond;
362*a3114836SGerry Liu 	int32_t			s_busy;
363*a3114836SGerry Liu 	time32_t		s_time;
364*a3114836SGerry Liu 	uint32_t		s_power:1;
365*a3114836SGerry Liu 	uint32_t		s_assigned:1;
366*a3114836SGerry Liu 	uint32_t		s_platopts;
367*a3114836SGerry Liu 	int32_t			s_nstat;
368*a3114836SGerry Liu 	sbd_dev_stat32_t	s_stat[1];
369*a3114836SGerry Liu } sbd_stat32_t;
370*a3114836SGerry Liu 
371*a3114836SGerry Liu typedef struct {
372*a3114836SGerry Liu 	int32_t			e_code;
373*a3114836SGerry Liu 	char			e_rsc[MAXPATHLEN];
374*a3114836SGerry Liu } sbd_error32_t;
375*a3114836SGerry Liu 
376*a3114836SGerry Liu typedef struct {
377*a3114836SGerry Liu 	sbd_comp_id32_t		c_id;
378*a3114836SGerry Liu 	uint32_t		c_flags;
379*a3114836SGerry Liu 	int32_t			c_len;
380*a3114836SGerry Liu 	caddr32_t		c_opts;
381*a3114836SGerry Liu } sbd_cm_cmd32_t;
382*a3114836SGerry Liu 
383*a3114836SGerry Liu typedef struct {
384*a3114836SGerry Liu 	sbd_cm_cmd32_t	g_cm;
385*a3114836SGerry Liu 	int32_t		g_ncm;
386*a3114836SGerry Liu } sbd_getncm_cmd32_t;
387*a3114836SGerry Liu 
388*a3114836SGerry Liu typedef struct {
389*a3114836SGerry Liu 	sbd_cm_cmd32_t	s_cm;
390*a3114836SGerry Liu 	int32_t		s_nbytes;
391*a3114836SGerry Liu 	caddr32_t	s_statp;
392*a3114836SGerry Liu } sbd_stat_cmd32_t;
393*a3114836SGerry Liu 
394*a3114836SGerry Liu typedef union {
395*a3114836SGerry Liu 	sbd_cm_cmd32_t		cmd_cm;
396*a3114836SGerry Liu 	sbd_getncm_cmd32_t	cmd_getncm;
397*a3114836SGerry Liu 	sbd_stat_cmd32_t	cmd_stat;
398*a3114836SGerry Liu } sbd_cmd32_t;
399*a3114836SGerry Liu 
400*a3114836SGerry Liu typedef struct {
401*a3114836SGerry Liu 	sbd_cmd32_t		i_cmd;
402*a3114836SGerry Liu 	sbd_error32_t		i_err;
403*a3114836SGerry Liu } sbd_ioctl_arg32_t;
404*a3114836SGerry Liu 
405*a3114836SGerry Liu typedef struct {
406*a3114836SGerry Liu 	int32_t			t_base;
407*a3114836SGerry Liu 	int32_t			t_bnd;
408*a3114836SGerry Liu 	char			**t_text;
409*a3114836SGerry Liu } sbd_etab32_t;
410*a3114836SGerry Liu 
411*a3114836SGerry Liu #endif	/* _SYSCALL32 */
412*a3114836SGerry Liu #endif	/* _ASM */
413*a3114836SGerry Liu 
414*a3114836SGerry Liu /* Common error codes */
415*a3114836SGerry Liu 
416*a3114836SGerry Liu #define	ESBD_NOERROR		0	/* no error */
417*a3114836SGerry Liu #define	ESBD_INTERNAL		1	/* Internal error */
418*a3114836SGerry Liu #define	ESBD_NOMEM		2	/* Insufficient memory */
419*a3114836SGerry Liu #define	ESBD_PROTO		3	/* Protocol error */
420*a3114836SGerry Liu #define	ESBD_BUSY		4	/* Device busy */
421*a3114836SGerry Liu #define	ESBD_NODEV		5	/* No such device */
422*a3114836SGerry Liu #define	ESBD_ALREADY		6	/* Operation already in progress */
423*a3114836SGerry Liu #define	ESBD_IO			7	/* I/O error */
424*a3114836SGerry Liu #define	ESBD_FAULT		8	/* Bad address */
425*a3114836SGerry Liu #define	ESBD_EMPTY_BD		9	/* No device(s) on board */
426*a3114836SGerry Liu #define	ESBD_INVAL		10	/* Invalid argument */
427*a3114836SGerry Liu #define	ESBD_STATE		11	/* Invalid state transition */
428*a3114836SGerry Liu #define	ESBD_FATAL_STATE	12	/* Device in fatal state */
429*a3114836SGerry Liu #define	ESBD_OUTSTANDING	13	/* Outstanding error */
430*a3114836SGerry Liu #define	ESBD_SUSPEND		14	/* Device failed to suspend */
431*a3114836SGerry Liu #define	ESBD_RESUME		15	/* Device failed to resume */
432*a3114836SGerry Liu #define	ESBD_UTHREAD		16	/* Cannot stop user thread */
433*a3114836SGerry Liu #define	ESBD_RTTHREAD		17	/* Cannot quiesce realtime thread */
434*a3114836SGerry Liu #define	ESBD_KTHREAD		18	/* Cannot stop kernel thread  */
435*a3114836SGerry Liu #define	ESBD_OFFLINE		19	/* Failed to off-line */
436*a3114836SGerry Liu #define	ESBD_ONLINE		20	/* Failed to on-line */
437*a3114836SGerry Liu #define	ESBD_CPUSTART		21	/* Failed to start CPU */
438*a3114836SGerry Liu #define	ESBD_CPUSTOP		22	/* Failed to stop CPU */
439*a3114836SGerry Liu #define	ESBD_INVAL_COMP		23	/* Invalid component type */
440*a3114836SGerry Liu #define	ESBD_KCAGE_OFF		24	/* Kernel cage is disabled */
441*a3114836SGerry Liu #define	ESBD_NO_TARGET		25	/* No available memory target */
442*a3114836SGerry Liu #define	ESBD_HW_PROGRAM		26	/* Hardware programming error */
443*a3114836SGerry Liu #define	ESBD_MEM_NOTVIABLE	27	/* VM viability test failed */
444*a3114836SGerry Liu #define	ESBD_MEM_REFUSED	28	/* Memory operation refused */
445*a3114836SGerry Liu #define	ESBD_MEM_NONRELOC	29	/* Non-relocatable pages in span */
446*a3114836SGerry Liu #define	ESBD_MEM_CANCELLED	30	/* Memory operation cancelled */
447*a3114836SGerry Liu #define	ESBD_MEMFAIL		31	/* Memory operation failed */
448*a3114836SGerry Liu #define	ESBD_MEMONLINE		32	/* Can't unconfig cpu if mem online */
449*a3114836SGerry Liu #define	ESBD_QUIESCE_REQD	33
450*a3114836SGerry Liu 	/* Operator confirmation for quiesce is required */
451*a3114836SGerry Liu #define	ESBD_MEMINTLV		34
452*a3114836SGerry Liu 	/* Memory is interleaved across boards */
453*a3114836SGerry Liu #define	ESBD_CPUONLINE		35
454*a3114836SGerry Liu 	/* Can't config memory if not all cpus are online */
455*a3114836SGerry Liu #define	ESBD_UNSAFE		36	/* Unsafe driver present */
456*a3114836SGerry Liu #define	ESBD_INVAL_OPT		37	/* option invalid */
457*a3114836SGerry Liu 
458*a3114836SGerry Liu /* Starcat error codes */
459*a3114836SGerry Liu 
460*a3114836SGerry Liu #define	ESTC_NONE		1000	/* No error */
461*a3114836SGerry Liu #define	ESTC_GETPROP		1001	/* Cannot read property value */
462*a3114836SGerry Liu #define	ESTC_BNUM		1002	/* Invalid board number */
463*a3114836SGerry Liu #define	ESTC_CONFIGBUSY		1003
464*a3114836SGerry Liu 	/* Cannot proceed; Board is configured or busy */
465*a3114836SGerry Liu #define	ESTC_PROBE		1004	/* Solaris failed to probe */
466*a3114836SGerry Liu #define	ESTC_DEPROBE		1005	/* Solaris failed to deprobe */
467*a3114836SGerry Liu #define	ESTC_MOVESIGB		1006	/* Firmware move-cpu0 failed */
468*a3114836SGerry Liu #define	ESTC_SUPPORT		1007	/* Operation not supported */
469*a3114836SGerry Liu #define	ESTC_DRVFAIL		1008	/* Device driver failure */
470*a3114836SGerry Liu #define	ESTC_UNKPTCMD		1012	/* Unrecognized platform command */
471*a3114836SGerry Liu #define	ESTC_NOTID		1013
472*a3114836SGerry Liu 	/* drmach parameter is not a valid ID */
473*a3114836SGerry Liu #define	ESTC_INAPPROP		1014
474*a3114836SGerry Liu 	/* drmach parameter is inappropriate for operation */
475*a3114836SGerry Liu #define	ESTC_INTERNAL		1015	/* Unexpected internal condition */
476*a3114836SGerry Liu #define	ESTC_MBXRQST		1016
477*a3114836SGerry Liu 	/* Mailbox framework failure: outgoing */
478*a3114836SGerry Liu #define	ESTC_MBXRPLY		1017
479*a3114836SGerry Liu 	/* Mailbox framework failure: incoming */
480*a3114836SGerry Liu #define	ESTC_NOACL		1018	/* Board is not in domain ACL */
481*a3114836SGerry Liu #define	ESTC_NOT_ASSIGNED	1019	/* Board is not assigned to domain */
482*a3114836SGerry Liu #define	ESTC_NOT_ACTIVE		1020	/* Board is not active */
483*a3114836SGerry Liu #define	ESTC_EMPTY_SLOT		1021	/* Slot is empty */
484*a3114836SGerry Liu #define	ESTC_POWER_OFF		1022	/* Board is powered off */
485*a3114836SGerry Liu #define	ESTC_TEST_IN_PROGRESS	1023	/* Board is already being tested */
486*a3114836SGerry Liu #define	ESTC_TESTING_BUSY	1024
487*a3114836SGerry Liu 	/* Wait: All SC test resources are in use */
488*a3114836SGerry Liu #define	ESTC_TEST_REQUIRED	1025	/* Board requires test prior to use */
489*a3114836SGerry Liu #define	ESTC_TEST_ABORTED	1026	/* Board test has been aborted */
490*a3114836SGerry Liu #define	ESTC_MBOX_UNKNOWN	1027
491*a3114836SGerry Liu 	/* Unknown error type received from SC */
492*a3114836SGerry Liu #define	ESTC_TEST_STATUS_UNKNOWN	1028
493*a3114836SGerry Liu 	/* Test completed with unknown status */
494*a3114836SGerry Liu #define	ESTC_TEST_RESULT_UNKNOWN	1029
495*a3114836SGerry Liu 	/* Unknown test result returned by SC */
496*a3114836SGerry Liu #define	ESTC_TEST_FAILED	1030
497*a3114836SGerry Liu 	/* SMS hpost reported error, see POST log for details */
498*a3114836SGerry Liu #define	ESTC_UNAVAILABLE	1031	/* Slot is unavailable to the domain */
499*a3114836SGerry Liu #define	ESTC_NZ_LPA		1032	/* Nonzero LPA not yet supported */
500*a3114836SGerry Liu #define	ESTC_IOSWITCH		1033
501*a3114836SGerry Liu 	/* Cannot unconfigure I/O board: tunnel switch failed */
502*a3114836SGerry Liu #define	ESTC_IOCAGE_NO_CPU_AVAIL	1034
503*a3114836SGerry Liu 	/* No CPU available for I/O cage test. */
504*a3114836SGerry Liu #define	ESTC_SMS_ERR_RECOVERABLE	1035
505*a3114836SGerry Liu 	/* SMS reported recoverable error: check SMS status and Retry */
506*a3114836SGerry Liu #define	ESTC_SMS_ERR_UNRECOVERABLE	1036
507*a3114836SGerry Liu 	/* SMS reported unrecoverable error: Board is Unusable */
508*a3114836SGerry Liu #define	ESTC_NWSWITCH		1037
509*a3114836SGerry Liu 	/* Cannot unconfigure I/O board: network switch failed */
510*a3114836SGerry Liu 
511*a3114836SGerry Liu /* Starfire error codes */
512*a3114836SGerry Liu 
513*a3114836SGerry Liu #define	ESTF_NONE		2000	/* No error */
514*a3114836SGerry Liu #define	ESTF_GETPROP		2001	/* Cannot read property value */
515*a3114836SGerry Liu #define	ESTF_GETPROPLEN		2002	/* Cannot determine property length */
516*a3114836SGerry Liu #define	ESTF_BNUM		2003	/* Invalid board number */
517*a3114836SGerry Liu #define	ESTF_CONFIGBUSY		2004
518*a3114836SGerry Liu 	/* Cannot proceed; Board is configured or busy */
519*a3114836SGerry Liu #define	ESTF_NOCPUID		2005	/* No CPU specified for connect */
520*a3114836SGerry Liu #define	ESTF_PROBE		2006	/* Firmware probe failed */
521*a3114836SGerry Liu #define	ESTF_DEPROBE		2007	/* Firmware deprobe failed */
522*a3114836SGerry Liu #define	ESTF_MOVESIGB		2008	/* Firmware move-cpu0 failed */
523*a3114836SGerry Liu #define	ESTF_JUGGLE		2009	/* Cannot move SIGB assignment */
524*a3114836SGerry Liu #define	ESTF_HASSIGB		2010
525*a3114836SGerry Liu 	/* Cannot disconnect CPU; SIGB is currently assigned */
526*a3114836SGerry Liu #define	ESTF_SUPPORT		2011	/* Operation not supported */
527*a3114836SGerry Liu #define	ESTF_DRVFAIL		2012	/* Device driver failure */
528*a3114836SGerry Liu #define	ESTF_SETCPUVAL		2013
529*a3114836SGerry Liu 	/* Must specify a CPU on the given board */
530*a3114836SGerry Liu #define	ESTF_NODEV		2014	/* No such device */
531*a3114836SGerry Liu #define	ESTF_INTERBOARD		2015
532*a3114836SGerry Liu 	/* Memory configured with inter-board interleaving */
533*a3114836SGerry Liu #define	ESTF_UNKPTCMD		2016	/* Unrecognized platform command */
534*a3114836SGerry Liu #define	ESTF_NOTID		2017	/* drmach parameter is not a valid ID */
535*a3114836SGerry Liu #define	ESTF_INAPPROP		2018
536*a3114836SGerry Liu 	/* drmach parameter is inappropriate for operation */
537*a3114836SGerry Liu #define	ESTF_INTERNAL		2019	/* Unexpected internal condition */
538*a3114836SGerry Liu 
539*a3114836SGerry Liu /* Daktari error codes */
540*a3114836SGerry Liu 
541*a3114836SGerry Liu #define	EDAK_NONE		3000	/* no error */
542*a3114836SGerry Liu #define	EDAK_INTERNAL		3001	/* Internal error */
543*a3114836SGerry Liu #define	EDAK_NOFRUINFO		3002	/* Didn't receive fru info */
544*a3114836SGerry Liu #define	EDAK_NONDR_BOARD	3003
545*a3114836SGerry Liu 	/* DR is not supported on this board type */
546*a3114836SGerry Liu #define	EDAK_POWERON		3004	/* Power on request failed */
547*a3114836SGerry Liu #define	EDAK_POWEROK		3005	/* Failed to power on */
548*a3114836SGerry Liu #define	EDAK_INTERRUPTED	3006	/* Operation interrupted */
549*a3114836SGerry Liu #define	EDAK_BOARDINIT		3007	/* Board initialization failed */
550*a3114836SGerry Liu #define	EDAK_CPUINIT		3008	/* CPU intialization failed */
551*a3114836SGerry Liu #define	EDAK_MEMFAIL		3009	/* Memory operation failed */
552*a3114836SGerry Liu 
553*a3114836SGerry Liu /* Serengeti error codes */
554*a3114836SGerry Liu 
555*a3114836SGerry Liu #define	ESGT_NONE		4000	/* no error */
556*a3114836SGerry Liu #define	ESGT_INTERNAL		4001	/* Internal error */
557*a3114836SGerry Liu #define	ESGT_INVAL		4002	/* Invalid argument */
558*a3114836SGerry Liu #define	ESGT_MEMFAIL		4003	/* Memory operation failed */
559*a3114836SGerry Liu #define	ESGT_PROBE		4004	/* Board probe failed */
560*a3114836SGerry Liu #define	ESGT_DEPROBE		4005	/* Board deprobe failed */
561*a3114836SGerry Liu #define	ESGT_JUGGLE_BOOTPROC	4006	/* Failed to juggle bootproc */
562*a3114836SGerry Liu #define	ESGT_NOT_CPUTYPE	4007	/* Not a cpu device */
563*a3114836SGerry Liu #define	ESGT_NO_DEV_TYPE	4008	/* Cannot find device type */
564*a3114836SGerry Liu #define	ESGT_BAD_PORTID		4009	/* Bad port id */
565*a3114836SGerry Liu #define	ESGT_RESUME		4010	/* Failed to resume device */
566*a3114836SGerry Liu #define	ESGT_SUSPEND		4011	/* Failed to suspend device */
567*a3114836SGerry Liu #define	ESGT_KTHREAD		4012	/* failed to stop kernel thd */
568*a3114836SGerry Liu #define	ESGT_UNSAFE		4013	/* unsafe */
569*a3114836SGerry Liu #define	ESGT_RTTHREAD		4014	/* real time threads */
570*a3114836SGerry Liu #define	ESGT_UTHREAD		4015	/* failed to stop user thd */
571*a3114836SGerry Liu #define	ESGT_PROM_ATTACH	4016	/* prom failed attach board */
572*a3114836SGerry Liu #define	ESGT_PROM_DETACH	4017	/* prom failed detach board */
573*a3114836SGerry Liu #define	ESGT_SC_ERR		4018	/* sc return a failure */
574*a3114836SGerry Liu #define	ESGT_GET_BOARD_STAT	4019	/* Failed to obtain board information */
575*a3114836SGerry Liu #define	ESGT_WAKEUPCPU		4020	/* Failed to wake up cpu */
576*a3114836SGerry Liu #define	ESGT_STOPCPU		4021	/* Failed to stop cpu */
577*a3114836SGerry Liu /* Serengeti SC return codes */
578*a3114836SGerry Liu #define	ESGT_HW_FAIL		4022	/* Hardware Failure */
579*a3114836SGerry Liu #define	ESGT_BD_ACCESS		4023	/* Board access denied */
580*a3114836SGerry Liu #define	ESGT_STALE_CMP		4024	/* Stale components */
581*a3114836SGerry Liu #define	ESGT_STALE_OBJ		4025	/* Stale objects */
582*a3114836SGerry Liu #define	ESGT_NO_SEPROM_SPACE	4026	/* No SEPROM space */
583*a3114836SGerry Liu #define	ESGT_NOT_SUPP		4027	/* Operation not supported */
584*a3114836SGerry Liu #define	ESGT_NO_MEM		4028	/* No Memory */
585*a3114836SGerry Liu 
586*a3114836SGerry Liu /* OPL error codes */
587*a3114836SGerry Liu 
588*a3114836SGerry Liu #define	EOPL_GETPROP		5001	/* Cannot read property value */
589*a3114836SGerry Liu #define	EOPL_BNUM		5002	/* Invalid board number */
590*a3114836SGerry Liu #define	EOPL_CONFIGBUSY		5003
591*a3114836SGerry Liu 	/* Cannot proceed; Board is configured or busy */
592*a3114836SGerry Liu #define	EOPL_PROBE		5004	/* Firmware probe failed */
593*a3114836SGerry Liu #define	EOPL_DEPROBE		5005	/* Firmware deprobe failed */
594*a3114836SGerry Liu #define	EOPL_SUPPORT		5006	/* Operation not supported */
595*a3114836SGerry Liu #define	EOPL_DRVFAIL		5007	/* Device driver failure */
596*a3114836SGerry Liu #define	EOPL_UNKPTCMD		5008	/* Unrecognized platform command */
597*a3114836SGerry Liu #define	EOPL_NOTID		5009	/* drmach parameter is not a valid ID */
598*a3114836SGerry Liu #define	EOPL_INAPPROP		5010
599*a3114836SGerry Liu 	/* drmach parameter is inappropriate for operation */
600*a3114836SGerry Liu #define	EOPL_INTERNAL		5011	/* Unexpected internal condition */
601*a3114836SGerry Liu #define	EOPL_FINDDEVICE		5012	/* Firmware cannot find node. */
602*a3114836SGerry Liu #define	EOPL_MC_SETUP		5013	/* Cannot setup memory node */
603*a3114836SGerry Liu #define	EOPL_CPU_STATE		5014	/* Invalid CPU/core state */
604*a3114836SGerry Liu #define	EOPL_MC_OPL		5015	/* Cannot find mc-opl interface */
605*a3114836SGerry Liu #define	EOPL_SCF_FMEM		5016	/* Cannot find scf_fmem interface */
606*a3114836SGerry Liu #define	EOPL_FMEM_SETUP		5017	/* Error setting up FMEM buffer */
607*a3114836SGerry Liu #define	EOPL_SCF_FMEM_START	5018	/* scf_fmem_start error */
608*a3114836SGerry Liu #define	EOPL_FMEM_ERROR		5019	/* FMEM error */
609*a3114836SGerry Liu #define	EOPL_SCF_FMEM_CANCEL	5020	/* scf_fmem_cancel error */
610*a3114836SGerry Liu #define	EOPL_FMEM_XC_TIMEOUT	5021	/* xcall timeout */
611*a3114836SGerry Liu #define	EOPL_FMEM_COPY_TIMEOUT	5022	/* DR parellel copy timeout */
612*a3114836SGerry Liu #define	EOPL_FMEM_SCF_BUSY	5023	/* SCF busy */
613*a3114836SGerry Liu #define	EOPL_FMEM_RETRY_OUT	5024	/* SCF IO Retry Error */
614*a3114836SGerry Liu #define	EOPL_FMEM_TIMEOUT	5025	/* FMEM command timeout */
615*a3114836SGerry Liu #define	EOPL_FMEM_HW_ERROR	5026	/* Hardware error */
616*a3114836SGerry Liu #define	EOPL_FMEM_TERMINATE	5027	/* FMEM operation Terminated */
617*a3114836SGerry Liu #define	EOPL_FMEM_COPY_ERROR	5028	/* Memory copy error */
618*a3114836SGerry Liu #define	EOPL_FMEM_SCF_ERR	5029	/* SCF error */
619*a3114836SGerry Liu #define	EOPL_MIXED_CPU		5030
620*a3114836SGerry Liu 	/* Cannot add SPARC64-VI to domain booted with all SPARC64-VII CPUs */
621*a3114836SGerry Liu #define	EOPL_FMEM_SCF_OFFLINE	5031	/* SCF OFFLINE */
622*a3114836SGerry Liu 
623*a3114836SGerry Liu /* X86 error codes */
624*a3114836SGerry Liu 
625*a3114836SGerry Liu #define	EX86_GETPROP		10001	/* Cannot read property value */
626*a3114836SGerry Liu #define	EX86_BNUM		10002	/* Invalid board number */
627*a3114836SGerry Liu #define	EX86_NOTID		10003	/* drmach parameter is not a valid ID */
628*a3114836SGerry Liu #define	EX86_INAPPROP		10004
629*a3114836SGerry Liu 	/* drmach parameter is inappropriate for operation */
630*a3114836SGerry Liu #define	EX86_PROBE		10005	/* Firmware probe failed */
631*a3114836SGerry Liu #define	EX86_DEPROBE		10006	/* Firmware deprobe failed */
632*a3114836SGerry Liu #define	EX86_SUPPORT		10007	/* Operation not supported */
633*a3114836SGerry Liu #define	EX86_INTERNAL		10008	/* Unexpected internal condition */
634*a3114836SGerry Liu #define	EX86_CONFIGBUSY		10009
635*a3114836SGerry Liu 	/* Cannot proceed, board is configured or busy */
636*a3114836SGerry Liu #define	EX86_POWERBUSY		10010	/* Cannot proceed, board is powered */
637*a3114836SGerry Liu #define	EX86_CONNECTBUSY	10011	/* Cannot proceed, board is connected */
638*a3114836SGerry Liu #define	EX86_INVALID_ARG	10012	/* Invalid argument */
639*a3114836SGerry Liu #define	EX86_DRVFAIL		10013	/* Device driver failure */
640*a3114836SGerry Liu #define	EX86_UNKPTCMD		10014	/* Unrecognized platform command */
641*a3114836SGerry Liu #define	EX86_ALLOC_CPUID	10015	/* Failed to allocate processor id */
642*a3114836SGerry Liu #define	EX86_FREE_CPUID		10016	/* Failed to release processor id */
643*a3114836SGerry Liu #define	EX86_POWERON		10017	/* Failed to power on board */
644*a3114836SGerry Liu #define	EX86_POWEROFF		10018	/* Failed to power off board */
645*a3114836SGerry Liu #define	EX86_MC_SETUP		10019	/* Cannot setup memory node */
646*a3114836SGerry Liu #define	EX86_ACPIWALK		10020	/* Cannot walk ACPI namespace */
647*a3114836SGerry Liu #define	EX86_WALK_DEPENDENCY	10021
648*a3114836SGerry Liu 	/* Failed to check dependency for board */
649*a3114836SGerry Liu #define	EX86_IN_FAILURE		10022	/* Board is in failure state */
650*a3114836SGerry Liu 
651*a3114836SGerry Liu #ifdef	__cplusplus
652*a3114836SGerry Liu }
653*a3114836SGerry Liu #endif
654*a3114836SGerry Liu 
655*a3114836SGerry Liu #endif	/* _SBD_IOCTL_H */
656