xref: /titanic_51/usr/src/uts/sun4u/sys/sbd_ioctl.h (revision 4fe85d41bb4eb0db41934722f4b06c8acec2d25a)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
525cf1a30Sjl139090  * Common Development and Distribution License (the "License").
625cf1a30Sjl139090  * You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate  *
87c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate  * and limitations under the License.
127c478bd9Sstevel@tonic-gate  *
137c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate  *
197c478bd9Sstevel@tonic-gate  * CDDL HEADER END
207c478bd9Sstevel@tonic-gate  */
217c478bd9Sstevel@tonic-gate /*
22*4fe85d41SJames Anderson  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
237c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
247c478bd9Sstevel@tonic-gate  */
257c478bd9Sstevel@tonic-gate 
267c478bd9Sstevel@tonic-gate #ifndef	_SBD_IOCTL_H
277c478bd9Sstevel@tonic-gate #define	_SBD_IOCTL_H
287c478bd9Sstevel@tonic-gate 
29b307f191Sbm42561 #ifndef	_ASM
307c478bd9Sstevel@tonic-gate #include <sys/types.h>
317c478bd9Sstevel@tonic-gate #include <sys/obpdefs.h>
327c478bd9Sstevel@tonic-gate #include <sys/processor.h>
337c478bd9Sstevel@tonic-gate #include <sys/param.h>
34b307f191Sbm42561 #endif
357c478bd9Sstevel@tonic-gate 
367c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
377c478bd9Sstevel@tonic-gate extern "C" {
387c478bd9Sstevel@tonic-gate #endif
397c478bd9Sstevel@tonic-gate 
40b307f191Sbm42561 #ifndef	_ASM
417c478bd9Sstevel@tonic-gate typedef enum {
427c478bd9Sstevel@tonic-gate 	SBD_COMP_NONE,
437c478bd9Sstevel@tonic-gate 	SBD_COMP_CPU,
447c478bd9Sstevel@tonic-gate 	SBD_COMP_MEM,
457c478bd9Sstevel@tonic-gate 	SBD_COMP_IO,
467c478bd9Sstevel@tonic-gate 	SBD_COMP_CMP,
477c478bd9Sstevel@tonic-gate 	SBD_COMP_UNKNOWN
487c478bd9Sstevel@tonic-gate } sbd_comp_type_t;
497c478bd9Sstevel@tonic-gate 
507c478bd9Sstevel@tonic-gate typedef enum {
517c478bd9Sstevel@tonic-gate 	SBD_STAT_NONE = 0,
527c478bd9Sstevel@tonic-gate 	SBD_STAT_EMPTY,
537c478bd9Sstevel@tonic-gate 	SBD_STAT_DISCONNECTED,
547c478bd9Sstevel@tonic-gate 	SBD_STAT_CONNECTED,
557c478bd9Sstevel@tonic-gate 	SBD_STAT_UNCONFIGURED,
567c478bd9Sstevel@tonic-gate 	SBD_STAT_CONFIGURED
577c478bd9Sstevel@tonic-gate } sbd_state_t;
587c478bd9Sstevel@tonic-gate 
597c478bd9Sstevel@tonic-gate typedef enum {
607c478bd9Sstevel@tonic-gate 	SBD_COND_UNKNOWN = 0,
617c478bd9Sstevel@tonic-gate 	SBD_COND_OK,
627c478bd9Sstevel@tonic-gate 	SBD_COND_FAILING,
637c478bd9Sstevel@tonic-gate 	SBD_COND_FAILED,
647c478bd9Sstevel@tonic-gate 	SBD_COND_UNUSABLE
657c478bd9Sstevel@tonic-gate } sbd_cond_t;
667c478bd9Sstevel@tonic-gate 
677c478bd9Sstevel@tonic-gate typedef	int	sbd_busy_t;
687c478bd9Sstevel@tonic-gate 
697c478bd9Sstevel@tonic-gate #define	SBD_MAX_UNSAFE		16
707c478bd9Sstevel@tonic-gate #define	SBD_TYPE_LEN		12
717c478bd9Sstevel@tonic-gate #define	SBD_NULL_UNIT		-1
727c478bd9Sstevel@tonic-gate 
737c478bd9Sstevel@tonic-gate typedef struct {
747c478bd9Sstevel@tonic-gate 	sbd_comp_type_t	c_type;
757c478bd9Sstevel@tonic-gate 	int		c_unit;
767c478bd9Sstevel@tonic-gate 	char		c_name[OBP_MAXPROPNAME];
777c478bd9Sstevel@tonic-gate } sbd_comp_id_t;
787c478bd9Sstevel@tonic-gate 
797c478bd9Sstevel@tonic-gate typedef struct {
807c478bd9Sstevel@tonic-gate 	sbd_comp_id_t	c_id;
817c478bd9Sstevel@tonic-gate 	sbd_state_t	c_ostate;
827c478bd9Sstevel@tonic-gate 	sbd_cond_t	c_cond;
837c478bd9Sstevel@tonic-gate 	sbd_busy_t	c_busy;
847c478bd9Sstevel@tonic-gate 	uint_t		c_sflags;
857c478bd9Sstevel@tonic-gate 	time_t		c_time;
867c478bd9Sstevel@tonic-gate } sbd_cm_stat_t;
877c478bd9Sstevel@tonic-gate 
887c478bd9Sstevel@tonic-gate #define	ci_type		c_id.c_type
897c478bd9Sstevel@tonic-gate #define	ci_unit		c_id.c_unit
907c478bd9Sstevel@tonic-gate #define	ci_name		c_id.c_name
917c478bd9Sstevel@tonic-gate 
927c478bd9Sstevel@tonic-gate typedef struct {
937c478bd9Sstevel@tonic-gate 	sbd_cm_stat_t	cs_cm;
947c478bd9Sstevel@tonic-gate 	int		cs_isbootproc;
957c478bd9Sstevel@tonic-gate 	processorid_t	cs_cpuid;
967c478bd9Sstevel@tonic-gate 	int		cs_speed;
977c478bd9Sstevel@tonic-gate 	int		cs_ecache;
987c478bd9Sstevel@tonic-gate } sbd_cpu_stat_t;
997c478bd9Sstevel@tonic-gate 
1007c478bd9Sstevel@tonic-gate #define	cs_type		cs_cm.ci_type
1017c478bd9Sstevel@tonic-gate #define	cs_unit		cs_cm.ci_unit
1027c478bd9Sstevel@tonic-gate #define	cs_name		cs_cm.ci_name
1037c478bd9Sstevel@tonic-gate #define	cs_ostate	cs_cm.c_ostate
1047c478bd9Sstevel@tonic-gate #define	cs_cond		cs_cm.c_cond
1057c478bd9Sstevel@tonic-gate #define	cs_busy		cs_cm.c_busy
1067c478bd9Sstevel@tonic-gate #define	cs_suspend	cs_cm.c_sflags
1077c478bd9Sstevel@tonic-gate #define	cs_time		cs_cm.c_time
1087c478bd9Sstevel@tonic-gate 
1097c478bd9Sstevel@tonic-gate typedef struct {
1107c478bd9Sstevel@tonic-gate 	sbd_cm_stat_t	ms_cm;
1117c478bd9Sstevel@tonic-gate 	int		ms_interleave;
1127c478bd9Sstevel@tonic-gate 	pfn_t		ms_basepfn;
1137c478bd9Sstevel@tonic-gate 	pgcnt_t		ms_totpages;
1147c478bd9Sstevel@tonic-gate 	pgcnt_t		ms_detpages;
1157c478bd9Sstevel@tonic-gate 	pgcnt_t		ms_pageslost;
1167c478bd9Sstevel@tonic-gate 	pgcnt_t		ms_managed_pages;
1177c478bd9Sstevel@tonic-gate 	pgcnt_t		ms_noreloc_pages;
1187c478bd9Sstevel@tonic-gate 	pgcnt_t		ms_noreloc_first;
1197c478bd9Sstevel@tonic-gate 	pgcnt_t		ms_noreloc_last;
1207c478bd9Sstevel@tonic-gate 	int		ms_cage_enabled;
1217c478bd9Sstevel@tonic-gate 	int		ms_peer_is_target;	/* else peer is source */
1227c478bd9Sstevel@tonic-gate 	char		ms_peer_ap_id[MAXPATHLEN];	/* board's AP name */
1237c478bd9Sstevel@tonic-gate } sbd_mem_stat_t;
1247c478bd9Sstevel@tonic-gate 
1257c478bd9Sstevel@tonic-gate #define	ms_type		ms_cm.ci_type
1267c478bd9Sstevel@tonic-gate #define	ms_unit		ms_cm.ci_unit
1277c478bd9Sstevel@tonic-gate #define	ms_name		ms_cm.ci_name
1287c478bd9Sstevel@tonic-gate #define	ms_ostate	ms_cm.c_ostate
1297c478bd9Sstevel@tonic-gate #define	ms_cond		ms_cm.c_cond
1307c478bd9Sstevel@tonic-gate #define	ms_busy		ms_cm.c_busy
1317c478bd9Sstevel@tonic-gate #define	ms_suspend	ms_cm.c_sflags
1327c478bd9Sstevel@tonic-gate #define	ms_time		ms_cm.c_time
1337c478bd9Sstevel@tonic-gate 
1347c478bd9Sstevel@tonic-gate typedef struct {
1357c478bd9Sstevel@tonic-gate 	sbd_cm_stat_t	is_cm;
1367c478bd9Sstevel@tonic-gate 	int		is_referenced;
1377c478bd9Sstevel@tonic-gate 	int		is_unsafe_count;
1387c478bd9Sstevel@tonic-gate 	int		is_unsafe_list[SBD_MAX_UNSAFE];
1397c478bd9Sstevel@tonic-gate 	char		is_pathname[MAXPATHLEN];
1407c478bd9Sstevel@tonic-gate } sbd_io_stat_t;
1417c478bd9Sstevel@tonic-gate 
1427c478bd9Sstevel@tonic-gate #define	is_type		is_cm.ci_type
1437c478bd9Sstevel@tonic-gate #define	is_unit		is_cm.ci_unit
1447c478bd9Sstevel@tonic-gate #define	is_name		is_cm.ci_name
1457c478bd9Sstevel@tonic-gate #define	is_ostate	is_cm.c_ostate
1467c478bd9Sstevel@tonic-gate #define	is_cond		is_cm.c_cond
1477c478bd9Sstevel@tonic-gate #define	is_busy		is_cm.c_busy
1487c478bd9Sstevel@tonic-gate #define	is_suspend	is_cm.c_sflags
1497c478bd9Sstevel@tonic-gate #define	is_time		is_cm.c_time
1507c478bd9Sstevel@tonic-gate 
15125cf1a30Sjl139090 /* This constant must be the max of the max cores on all platforms */
15225cf1a30Sjl139090 
15325cf1a30Sjl139090 #define	SBD_MAX_CORES_PER_CMP	8
1547c478bd9Sstevel@tonic-gate 
1557c478bd9Sstevel@tonic-gate typedef struct {
1567c478bd9Sstevel@tonic-gate 	sbd_cm_stat_t	ps_cm;
1577c478bd9Sstevel@tonic-gate 	processorid_t	ps_cpuid[SBD_MAX_CORES_PER_CMP];
1587c478bd9Sstevel@tonic-gate 	int		ps_ncores;
1597c478bd9Sstevel@tonic-gate 	int		ps_speed;
1607c478bd9Sstevel@tonic-gate 	int		ps_ecache;
1617c478bd9Sstevel@tonic-gate } sbd_cmp_stat_t;
1627c478bd9Sstevel@tonic-gate 
1637c478bd9Sstevel@tonic-gate #define	ps_type		ps_cm.ci_type
1647c478bd9Sstevel@tonic-gate #define	ps_unit		ps_cm.ci_unit
1657c478bd9Sstevel@tonic-gate #define	ps_name		ps_cm.ci_name
1667c478bd9Sstevel@tonic-gate #define	ps_ostate	ps_cm.c_ostate
1677c478bd9Sstevel@tonic-gate #define	ps_cond		ps_cm.c_cond
1687c478bd9Sstevel@tonic-gate #define	ps_busy		ps_cm.c_busy
1697c478bd9Sstevel@tonic-gate #define	ps_suspend	ps_cm.c_sflags
1707c478bd9Sstevel@tonic-gate #define	ps_time		ps_cm.c_time
1717c478bd9Sstevel@tonic-gate 
1727c478bd9Sstevel@tonic-gate typedef union {
1737c478bd9Sstevel@tonic-gate 	sbd_cm_stat_t	d_cm;
1747c478bd9Sstevel@tonic-gate 	sbd_cpu_stat_t	d_cpu;
1757c478bd9Sstevel@tonic-gate 	sbd_mem_stat_t	d_mem;
1767c478bd9Sstevel@tonic-gate 	sbd_io_stat_t	d_io;
1777c478bd9Sstevel@tonic-gate 	sbd_cmp_stat_t	d_cmp;
1787c478bd9Sstevel@tonic-gate } sbd_dev_stat_t;
1797c478bd9Sstevel@tonic-gate 
1807c478bd9Sstevel@tonic-gate #define	ds_type		d_cm.ci_type
1817c478bd9Sstevel@tonic-gate #define	ds_unit		d_cm.ci_unit
1827c478bd9Sstevel@tonic-gate #define	ds_name		d_cm.ci_name
1837c478bd9Sstevel@tonic-gate #define	ds_ostate	d_cm.c_ostate
1847c478bd9Sstevel@tonic-gate #define	ds_cond		d_cm.c_cond
1857c478bd9Sstevel@tonic-gate #define	ds_busy		d_cm.c_busy
1867c478bd9Sstevel@tonic-gate #define	ds_suspend	d_cm.c_sflags
1877c478bd9Sstevel@tonic-gate #define	ds_time		d_cm.c_time
1887c478bd9Sstevel@tonic-gate 
1897c478bd9Sstevel@tonic-gate #define	SBD_MAX_INFO	64
1907c478bd9Sstevel@tonic-gate 
1917c478bd9Sstevel@tonic-gate typedef struct {
1927c478bd9Sstevel@tonic-gate 	int		s_board;
1937c478bd9Sstevel@tonic-gate 	char		s_type[SBD_TYPE_LEN];
1947c478bd9Sstevel@tonic-gate 	char		s_info[SBD_MAX_INFO];
1957c478bd9Sstevel@tonic-gate 	sbd_state_t	s_rstate;
1967c478bd9Sstevel@tonic-gate 	sbd_state_t	s_ostate;
1977c478bd9Sstevel@tonic-gate 	sbd_cond_t	s_cond;
1987c478bd9Sstevel@tonic-gate 	sbd_busy_t	s_busy;
1997c478bd9Sstevel@tonic-gate 	time_t		s_time;
2007c478bd9Sstevel@tonic-gate 	uint_t		s_power:1;
2017c478bd9Sstevel@tonic-gate 	uint_t		s_assigned:1;
2027c478bd9Sstevel@tonic-gate 	uint_t		s_platopts;
2037c478bd9Sstevel@tonic-gate 	int		s_nstat;
2047c478bd9Sstevel@tonic-gate 	sbd_dev_stat_t	s_stat[1];
2057c478bd9Sstevel@tonic-gate } sbd_stat_t;
2067c478bd9Sstevel@tonic-gate 
2077c478bd9Sstevel@tonic-gate typedef struct {
2087c478bd9Sstevel@tonic-gate 	sbd_comp_id_t	c_id;
2097c478bd9Sstevel@tonic-gate 	uint_t		c_flags;
2107c478bd9Sstevel@tonic-gate 	int		c_len;
2117c478bd9Sstevel@tonic-gate 	caddr_t		c_opts;
2127c478bd9Sstevel@tonic-gate } sbd_cm_cmd_t;
2137c478bd9Sstevel@tonic-gate 
2147c478bd9Sstevel@tonic-gate typedef struct {
2157c478bd9Sstevel@tonic-gate 	sbd_cm_cmd_t	g_cm;
2167c478bd9Sstevel@tonic-gate 	int		g_ncm;
2177c478bd9Sstevel@tonic-gate } sbd_getncm_cmd_t;
2187c478bd9Sstevel@tonic-gate 
2197c478bd9Sstevel@tonic-gate typedef struct {
2207c478bd9Sstevel@tonic-gate 	sbd_cm_cmd_t	s_cm;
2217c478bd9Sstevel@tonic-gate 	int		s_nbytes;
2227c478bd9Sstevel@tonic-gate 	caddr_t		s_statp;
2237c478bd9Sstevel@tonic-gate } sbd_stat_cmd_t;
2247c478bd9Sstevel@tonic-gate 
2257c478bd9Sstevel@tonic-gate typedef union {
2267c478bd9Sstevel@tonic-gate 	sbd_cm_cmd_t		cmd_cm;
2277c478bd9Sstevel@tonic-gate 	sbd_getncm_cmd_t	cmd_getncm;
2287c478bd9Sstevel@tonic-gate 	sbd_stat_cmd_t		cmd_stat;
2297c478bd9Sstevel@tonic-gate } sbd_cmd_t;
2307c478bd9Sstevel@tonic-gate 
2317c478bd9Sstevel@tonic-gate typedef struct {
2327c478bd9Sstevel@tonic-gate 	int		e_code;
2337c478bd9Sstevel@tonic-gate 	char		e_rsc[MAXPATHLEN];
2347c478bd9Sstevel@tonic-gate } sbd_error_t;
2357c478bd9Sstevel@tonic-gate 
2367c478bd9Sstevel@tonic-gate typedef struct {
2377c478bd9Sstevel@tonic-gate 	sbd_cmd_t	i_cmd;
2387c478bd9Sstevel@tonic-gate 	sbd_error_t	i_err;
2397c478bd9Sstevel@tonic-gate } sbd_ioctl_arg_t;
2407c478bd9Sstevel@tonic-gate 
2417c478bd9Sstevel@tonic-gate typedef struct {
2427c478bd9Sstevel@tonic-gate 	int		t_base;
2437c478bd9Sstevel@tonic-gate 	int		t_bnd;
2447c478bd9Sstevel@tonic-gate 	char		**t_text;
2457c478bd9Sstevel@tonic-gate } sbd_etab_t;
2467c478bd9Sstevel@tonic-gate 
2477c478bd9Sstevel@tonic-gate #define	i_flags		i_cmd.cmd_cm.c_flags
2487c478bd9Sstevel@tonic-gate #define	i_len		i_cmd.cmd_cm.c_len
2497c478bd9Sstevel@tonic-gate #define	i_opts		i_cmd.cmd_cm.c_opts
2507c478bd9Sstevel@tonic-gate #define	ic_type		i_cmd.cmd_cm.ci_type
2517c478bd9Sstevel@tonic-gate #define	ic_name		i_cmd.cmd_cm.ci_name
2527c478bd9Sstevel@tonic-gate #define	ic_unit		i_cmd.cmd_cm.ci_unit
2537c478bd9Sstevel@tonic-gate #define	ie_code		i_err.e_code
2547c478bd9Sstevel@tonic-gate #define	ie_rsc		i_err.e_rsc
2557c478bd9Sstevel@tonic-gate 
2567c478bd9Sstevel@tonic-gate #define	_SBD_IOC		(('D' << 16) | ('R' << 8))
2577c478bd9Sstevel@tonic-gate 
2587c478bd9Sstevel@tonic-gate #define	SBD_CMD_ASSIGN		(_SBD_IOC | 0x01)
2597c478bd9Sstevel@tonic-gate #define	SBD_CMD_UNASSIGN	(_SBD_IOC | 0x02)
2607c478bd9Sstevel@tonic-gate #define	SBD_CMD_POWERON		(_SBD_IOC | 0x03)
2617c478bd9Sstevel@tonic-gate #define	SBD_CMD_POWEROFF	(_SBD_IOC | 0x04)
2627c478bd9Sstevel@tonic-gate #define	SBD_CMD_TEST		(_SBD_IOC | 0x05)
2637c478bd9Sstevel@tonic-gate #define	SBD_CMD_CONNECT		(_SBD_IOC | 0x06)
2647c478bd9Sstevel@tonic-gate #define	SBD_CMD_CONFIGURE	(_SBD_IOC | 0x07)
2657c478bd9Sstevel@tonic-gate #define	SBD_CMD_UNCONFIGURE	(_SBD_IOC | 0x08)
2667c478bd9Sstevel@tonic-gate #define	SBD_CMD_DISCONNECT	(_SBD_IOC | 0x09)
2677c478bd9Sstevel@tonic-gate #define	SBD_CMD_STATUS		(_SBD_IOC | 0x0a)
2687c478bd9Sstevel@tonic-gate #define	SBD_CMD_GETNCM		(_SBD_IOC | 0x0b)
2697c478bd9Sstevel@tonic-gate #define	SBD_CMD_PASSTHRU	(_SBD_IOC | 0x0c)
2707c478bd9Sstevel@tonic-gate 
2717c478bd9Sstevel@tonic-gate #define	SBD_CHECK_SUSPEND(cmd, c_sflags) \
2727c478bd9Sstevel@tonic-gate 		(((c_sflags) >> (((cmd) & 0xf) - 1)) & 0x01)
2737c478bd9Sstevel@tonic-gate 
2747c478bd9Sstevel@tonic-gate #define	SBD_SET_SUSPEND(cmd, c_sflags) \
2757c478bd9Sstevel@tonic-gate 		((c_sflags) |= (0x01 << (((cmd) & 0xf) - 1)))
2767c478bd9Sstevel@tonic-gate 
2777c478bd9Sstevel@tonic-gate #define	SBD_CHECK_PLATOPTS(cmd, c_platopts) \
2787c478bd9Sstevel@tonic-gate 		(((c_platopts) >> (((cmd) & 0xf) - 1)) & 0x01)
2797c478bd9Sstevel@tonic-gate 
2807c478bd9Sstevel@tonic-gate #define	SBD_SET_PLATOPTS(cmd, c_platopts) \
2817c478bd9Sstevel@tonic-gate 		((c_platopts) &= ~(0x01 << (((cmd) & 0xf) - 1)))
2827c478bd9Sstevel@tonic-gate 
2837c478bd9Sstevel@tonic-gate #define	SBD_FLAG_FORCE		0x1
2847c478bd9Sstevel@tonic-gate #define	SBD_FLAG_ALLCMP		0x2
2857c478bd9Sstevel@tonic-gate #define	SBD_FLAG_QUIESCE_OKAY	0x4
2867c478bd9Sstevel@tonic-gate 
2877c478bd9Sstevel@tonic-gate #if defined(_SYSCALL32)
2887c478bd9Sstevel@tonic-gate 
2897c478bd9Sstevel@tonic-gate typedef struct {
2907c478bd9Sstevel@tonic-gate 	int32_t		c_type;
2917c478bd9Sstevel@tonic-gate 	int32_t		c_unit;
2927c478bd9Sstevel@tonic-gate 	char		c_name[OBP_MAXPROPNAME];
2937c478bd9Sstevel@tonic-gate } sbd_comp_id32_t;
2947c478bd9Sstevel@tonic-gate 
2957c478bd9Sstevel@tonic-gate typedef struct {
2967c478bd9Sstevel@tonic-gate 	sbd_comp_id32_t	c_id;
2977c478bd9Sstevel@tonic-gate 	int32_t		c_ostate;
2987c478bd9Sstevel@tonic-gate 	int32_t		c_cond;
2997c478bd9Sstevel@tonic-gate 	int32_t		c_busy;
3007c478bd9Sstevel@tonic-gate 	uint32_t	c_sflags;
3017c478bd9Sstevel@tonic-gate 	time32_t	c_time;
3027c478bd9Sstevel@tonic-gate } sbd_cm_stat32_t;
3037c478bd9Sstevel@tonic-gate 
3047c478bd9Sstevel@tonic-gate typedef struct {
3057c478bd9Sstevel@tonic-gate 	sbd_cm_stat32_t	cs_cm;
3067c478bd9Sstevel@tonic-gate 	int32_t		cs_isbootproc;
3077c478bd9Sstevel@tonic-gate 	int32_t		cs_cpuid;
3087c478bd9Sstevel@tonic-gate 	int32_t		cs_speed;
3097c478bd9Sstevel@tonic-gate 	int32_t		cs_ecache;
3107c478bd9Sstevel@tonic-gate } sbd_cpu_stat32_t;
3117c478bd9Sstevel@tonic-gate 
3127c478bd9Sstevel@tonic-gate typedef struct {
3137c478bd9Sstevel@tonic-gate 	sbd_cm_stat32_t	ms_cm;
3147c478bd9Sstevel@tonic-gate 	int32_t		ms_interleave;
3157c478bd9Sstevel@tonic-gate 	uint32_t	ms_basepfn;
3167c478bd9Sstevel@tonic-gate 	uint32_t	ms_totpages;
3177c478bd9Sstevel@tonic-gate 	uint32_t	ms_detpages;
3187c478bd9Sstevel@tonic-gate 	int32_t		ms_pageslost;
3197c478bd9Sstevel@tonic-gate 	uint32_t	ms_managed_pages;
3207c478bd9Sstevel@tonic-gate 	uint32_t	ms_noreloc_pages;
3217c478bd9Sstevel@tonic-gate 	uint32_t	ms_noreloc_first;
3227c478bd9Sstevel@tonic-gate 	uint32_t	ms_noreloc_last;
3237c478bd9Sstevel@tonic-gate 	int32_t		ms_cage_enabled;
3247c478bd9Sstevel@tonic-gate 	int32_t		ms_peer_is_target;
3257c478bd9Sstevel@tonic-gate 	char		ms_peer_ap_id[MAXPATHLEN];
3267c478bd9Sstevel@tonic-gate } sbd_mem_stat32_t;
3277c478bd9Sstevel@tonic-gate 
3287c478bd9Sstevel@tonic-gate typedef struct {
3297c478bd9Sstevel@tonic-gate 	sbd_cm_stat32_t	is_cm;
3307c478bd9Sstevel@tonic-gate 	int32_t		is_referenced;
3317c478bd9Sstevel@tonic-gate 	int32_t		is_unsafe_count;
3327c478bd9Sstevel@tonic-gate 	int32_t		is_unsafe_list[SBD_MAX_UNSAFE];
3337c478bd9Sstevel@tonic-gate 	char		is_pathname[MAXPATHLEN];
3347c478bd9Sstevel@tonic-gate } sbd_io_stat32_t;
3357c478bd9Sstevel@tonic-gate 
3367c478bd9Sstevel@tonic-gate typedef struct {
3377c478bd9Sstevel@tonic-gate 	sbd_cm_stat32_t	ps_cm;
3387c478bd9Sstevel@tonic-gate 	int32_t		ps_cpuid[SBD_MAX_CORES_PER_CMP];
3397c478bd9Sstevel@tonic-gate 	int32_t		ps_ncores;
3407c478bd9Sstevel@tonic-gate 	int32_t		ps_speed;
3417c478bd9Sstevel@tonic-gate 	int32_t		ps_ecache;
3427c478bd9Sstevel@tonic-gate } sbd_cmp_stat32_t;
3437c478bd9Sstevel@tonic-gate 
3447c478bd9Sstevel@tonic-gate typedef union {
3457c478bd9Sstevel@tonic-gate 	sbd_cm_stat32_t		d_cm;
3467c478bd9Sstevel@tonic-gate 	sbd_cpu_stat32_t	d_cpu;
3477c478bd9Sstevel@tonic-gate 	sbd_mem_stat32_t	d_mem;
3487c478bd9Sstevel@tonic-gate 	sbd_io_stat32_t		d_io;
3497c478bd9Sstevel@tonic-gate 	sbd_cmp_stat32_t	d_cmp;
3507c478bd9Sstevel@tonic-gate } sbd_dev_stat32_t;
3517c478bd9Sstevel@tonic-gate 
3527c478bd9Sstevel@tonic-gate typedef struct {
3537c478bd9Sstevel@tonic-gate 	int32_t			s_board;
3547c478bd9Sstevel@tonic-gate 	char			s_type[SBD_TYPE_LEN];
3557c478bd9Sstevel@tonic-gate 	char			s_info[SBD_MAX_INFO];
3567c478bd9Sstevel@tonic-gate 	int32_t			s_rstate;
3577c478bd9Sstevel@tonic-gate 	int32_t			s_ostate;
3587c478bd9Sstevel@tonic-gate 	int32_t			s_cond;
3597c478bd9Sstevel@tonic-gate 	int32_t			s_busy;
3607c478bd9Sstevel@tonic-gate 	time32_t		s_time;
3617c478bd9Sstevel@tonic-gate 	uint32_t		s_power:1;
3627c478bd9Sstevel@tonic-gate 	uint32_t		s_assigned:1;
3637c478bd9Sstevel@tonic-gate 	uint32_t		s_platopts;
3647c478bd9Sstevel@tonic-gate 	int32_t			s_nstat;
3657c478bd9Sstevel@tonic-gate 	sbd_dev_stat32_t	s_stat[1];
3667c478bd9Sstevel@tonic-gate } sbd_stat32_t;
3677c478bd9Sstevel@tonic-gate 
3687c478bd9Sstevel@tonic-gate typedef struct {
3697c478bd9Sstevel@tonic-gate 	int32_t			e_code;
3707c478bd9Sstevel@tonic-gate 	char			e_rsc[MAXPATHLEN];
3717c478bd9Sstevel@tonic-gate } sbd_error32_t;
3727c478bd9Sstevel@tonic-gate 
3737c478bd9Sstevel@tonic-gate typedef struct {
3747c478bd9Sstevel@tonic-gate 	sbd_comp_id32_t		c_id;
3757c478bd9Sstevel@tonic-gate 	uint32_t		c_flags;
3767c478bd9Sstevel@tonic-gate 	int32_t			c_len;
3777c478bd9Sstevel@tonic-gate 	caddr32_t		c_opts;
3787c478bd9Sstevel@tonic-gate } sbd_cm_cmd32_t;
3797c478bd9Sstevel@tonic-gate 
3807c478bd9Sstevel@tonic-gate typedef struct {
3817c478bd9Sstevel@tonic-gate 	sbd_cm_cmd32_t	g_cm;
3827c478bd9Sstevel@tonic-gate 	int32_t		g_ncm;
3837c478bd9Sstevel@tonic-gate } sbd_getncm_cmd32_t;
3847c478bd9Sstevel@tonic-gate 
3857c478bd9Sstevel@tonic-gate typedef struct {
3867c478bd9Sstevel@tonic-gate 	sbd_cm_cmd32_t	s_cm;
3877c478bd9Sstevel@tonic-gate 	int32_t		s_nbytes;
3887c478bd9Sstevel@tonic-gate 	caddr32_t	s_statp;
3897c478bd9Sstevel@tonic-gate } sbd_stat_cmd32_t;
3907c478bd9Sstevel@tonic-gate 
3917c478bd9Sstevel@tonic-gate typedef union {
3927c478bd9Sstevel@tonic-gate 	sbd_cm_cmd32_t		cmd_cm;
3937c478bd9Sstevel@tonic-gate 	sbd_getncm_cmd32_t	cmd_getncm;
3947c478bd9Sstevel@tonic-gate 	sbd_stat_cmd32_t	cmd_stat;
3957c478bd9Sstevel@tonic-gate } sbd_cmd32_t;
3967c478bd9Sstevel@tonic-gate 
3977c478bd9Sstevel@tonic-gate typedef struct {
3987c478bd9Sstevel@tonic-gate 	sbd_cmd32_t		i_cmd;
3997c478bd9Sstevel@tonic-gate 	sbd_error32_t		i_err;
4007c478bd9Sstevel@tonic-gate } sbd_ioctl_arg32_t;
4017c478bd9Sstevel@tonic-gate 
4027c478bd9Sstevel@tonic-gate typedef struct {
4037c478bd9Sstevel@tonic-gate 	int32_t			t_base;
4047c478bd9Sstevel@tonic-gate 	int32_t			t_bnd;
4057c478bd9Sstevel@tonic-gate 	char			**t_text;
4067c478bd9Sstevel@tonic-gate } sbd_etab32_t;
4077c478bd9Sstevel@tonic-gate 
4087c478bd9Sstevel@tonic-gate #endif	/* _SYSCALL32 */
409b307f191Sbm42561 #endif	/* _ASM */
4107c478bd9Sstevel@tonic-gate 
4117c478bd9Sstevel@tonic-gate /* Common error codes */
4127c478bd9Sstevel@tonic-gate 
4137c478bd9Sstevel@tonic-gate #define	ESBD_NOERROR		0	/* no error */
4147c478bd9Sstevel@tonic-gate #define	ESBD_INTERNAL		1	/* Internal error */
4157c478bd9Sstevel@tonic-gate #define	ESBD_NOMEM		2	/* Insufficient memory */
4167c478bd9Sstevel@tonic-gate #define	ESBD_PROTO		3	/* Protocol error */
4177c478bd9Sstevel@tonic-gate #define	ESBD_BUSY		4	/* Device busy */
4187c478bd9Sstevel@tonic-gate #define	ESBD_NODEV		5	/* No such device */
4197c478bd9Sstevel@tonic-gate #define	ESBD_ALREADY		6	/* Operation already in progress */
4207c478bd9Sstevel@tonic-gate #define	ESBD_IO			7	/* I/O error */
4217c478bd9Sstevel@tonic-gate #define	ESBD_FAULT		8	/* Bad address */
4227c478bd9Sstevel@tonic-gate #define	ESBD_EMPTY_BD		9	/* No device(s) on board */
4237c478bd9Sstevel@tonic-gate #define	ESBD_INVAL		10	/* Invalid argument */
4247c478bd9Sstevel@tonic-gate #define	ESBD_STATE		11	/* Invalid state transition */
4257c478bd9Sstevel@tonic-gate #define	ESBD_FATAL_STATE	12	/* Device in fatal state */
4267c478bd9Sstevel@tonic-gate #define	ESBD_OUTSTANDING	13	/* Outstanding error */
4277c478bd9Sstevel@tonic-gate #define	ESBD_SUSPEND		14	/* Device failed to suspend */
4287c478bd9Sstevel@tonic-gate #define	ESBD_RESUME		15	/* Device failed to resume */
4297c478bd9Sstevel@tonic-gate #define	ESBD_UTHREAD		16	/* Cannot stop user thread */
4307c478bd9Sstevel@tonic-gate #define	ESBD_RTTHREAD		17	/* Cannot quiesce realtime thread */
4317c478bd9Sstevel@tonic-gate #define	ESBD_KTHREAD		18	/* Cannot stop kernel thread  */
4327c478bd9Sstevel@tonic-gate #define	ESBD_OFFLINE		19	/* Failed to off-line */
4337c478bd9Sstevel@tonic-gate #define	ESBD_ONLINE		20	/* Failed to on-line */
4347c478bd9Sstevel@tonic-gate #define	ESBD_CPUSTART		21	/* Failed to start CPU */
4357c478bd9Sstevel@tonic-gate #define	ESBD_CPUSTOP		22	/* Failed to stop CPU */
4367c478bd9Sstevel@tonic-gate #define	ESBD_INVAL_COMP		23	/* Invalid component type */
4377c478bd9Sstevel@tonic-gate #define	ESBD_KCAGE_OFF		24	/* Kernel cage is disabled */
4387c478bd9Sstevel@tonic-gate #define	ESBD_NO_TARGET		25	/* No available memory target */
4397c478bd9Sstevel@tonic-gate #define	ESBD_HW_PROGRAM		26	/* Hardware programming error */
4407c478bd9Sstevel@tonic-gate #define	ESBD_MEM_NOTVIABLE	27	/* VM viability test failed */
4417c478bd9Sstevel@tonic-gate #define	ESBD_MEM_REFUSED	28	/* Memory operation refused */
4427c478bd9Sstevel@tonic-gate #define	ESBD_MEM_NONRELOC	29	/* Non-relocatable pages in span */
4437c478bd9Sstevel@tonic-gate #define	ESBD_MEM_CANCELLED	30	/* Memory operation cancelled */
4447c478bd9Sstevel@tonic-gate #define	ESBD_MEMFAIL		31	/* Memory operation failed */
4457c478bd9Sstevel@tonic-gate #define	ESBD_MEMONLINE		32	/* Can't unconfig cpu if mem online */
4467c478bd9Sstevel@tonic-gate #define	ESBD_QUIESCE_REQD	33
4477c478bd9Sstevel@tonic-gate 	/* Operator confirmation for quiesce is required */
4487c478bd9Sstevel@tonic-gate #define	ESBD_MEMINTLV		34
4497c478bd9Sstevel@tonic-gate 	/* Memory is interleaved across boards */
4507c478bd9Sstevel@tonic-gate #define	ESBD_CPUONLINE		35
4517c478bd9Sstevel@tonic-gate 	/* Can't config memory if not all cpus are online */
4527c478bd9Sstevel@tonic-gate #define	ESBD_UNSAFE		36	/* Unsafe driver present */
4537c478bd9Sstevel@tonic-gate #define	ESBD_INVAL_OPT		37	/* option invalid */
4547c478bd9Sstevel@tonic-gate 
4557c478bd9Sstevel@tonic-gate /* Starcat error codes */
4567c478bd9Sstevel@tonic-gate 
4577c478bd9Sstevel@tonic-gate #define	ESTC_NONE		1000	/* No error */
4587c478bd9Sstevel@tonic-gate #define	ESTC_GETPROP		1001	/* Cannot read property value */
4597c478bd9Sstevel@tonic-gate #define	ESTC_BNUM		1002	/* Invalid board number */
4607c478bd9Sstevel@tonic-gate #define	ESTC_CONFIGBUSY		1003
4617c478bd9Sstevel@tonic-gate 	/* Cannot proceed; Board is configured or busy */
4627c478bd9Sstevel@tonic-gate #define	ESTC_PROBE		1004	/* Solaris failed to probe */
4637c478bd9Sstevel@tonic-gate #define	ESTC_DEPROBE		1005	/* Solaris failed to deprobe */
4647c478bd9Sstevel@tonic-gate #define	ESTC_MOVESIGB		1006	/* Firmware move-cpu0 failed */
4657c478bd9Sstevel@tonic-gate #define	ESTC_SUPPORT		1007	/* Operation not supported */
4667c478bd9Sstevel@tonic-gate #define	ESTC_DRVFAIL		1008	/* Device driver failure */
4677c478bd9Sstevel@tonic-gate #define	ESTC_UNKPTCMD		1012	/* Unrecognized platform command */
4687c478bd9Sstevel@tonic-gate #define	ESTC_NOTID		1013
4697c478bd9Sstevel@tonic-gate 	/* drmach parameter is not a valid ID */
4707c478bd9Sstevel@tonic-gate #define	ESTC_INAPPROP		1014
4717c478bd9Sstevel@tonic-gate 	/* drmach parameter is inappropriate for operation */
4727c478bd9Sstevel@tonic-gate #define	ESTC_INTERNAL		1015	/* Unexpected internal condition */
4737c478bd9Sstevel@tonic-gate #define	ESTC_MBXRQST		1016
4747c478bd9Sstevel@tonic-gate 	/* Mailbox framework failure: outgoing */
4757c478bd9Sstevel@tonic-gate #define	ESTC_MBXRPLY		1017
4767c478bd9Sstevel@tonic-gate 	/* Mailbox framework failure: incoming */
4777c478bd9Sstevel@tonic-gate #define	ESTC_NOACL		1018	/* Board is not in domain ACL */
4787c478bd9Sstevel@tonic-gate #define	ESTC_NOT_ASSIGNED	1019	/* Board is not assigned to domain */
4797c478bd9Sstevel@tonic-gate #define	ESTC_NOT_ACTIVE		1020	/* Board is not active */
4807c478bd9Sstevel@tonic-gate #define	ESTC_EMPTY_SLOT		1021	/* Slot is empty */
4817c478bd9Sstevel@tonic-gate #define	ESTC_POWER_OFF		1022	/* Board is powered off */
4827c478bd9Sstevel@tonic-gate #define	ESTC_TEST_IN_PROGRESS	1023	/* Board is already being tested */
4837c478bd9Sstevel@tonic-gate #define	ESTC_TESTING_BUSY	1024
4847c478bd9Sstevel@tonic-gate 	/* Wait: All SC test resources are in use */
4857c478bd9Sstevel@tonic-gate #define	ESTC_TEST_REQUIRED	1025	/* Board requires test prior to use */
4867c478bd9Sstevel@tonic-gate #define	ESTC_TEST_ABORTED	1026	/* Board test has been aborted */
4877c478bd9Sstevel@tonic-gate #define	ESTC_MBOX_UNKNOWN	1027
4887c478bd9Sstevel@tonic-gate 	/* Unknown error type received from SC */
4897c478bd9Sstevel@tonic-gate #define	ESTC_TEST_STATUS_UNKNOWN	1028
4907c478bd9Sstevel@tonic-gate 	/* Test completed with unknown status */
4917c478bd9Sstevel@tonic-gate #define	ESTC_TEST_RESULT_UNKNOWN	1029
4927c478bd9Sstevel@tonic-gate 	/* Unknown test result returned by SC */
4937c478bd9Sstevel@tonic-gate #define	ESTC_TEST_FAILED	1030
4947c478bd9Sstevel@tonic-gate 	/* SMS hpost reported error, see POST log for details */
4957c478bd9Sstevel@tonic-gate #define	ESTC_UNAVAILABLE	1031	/* Slot is unavailable to the domain */
4967c478bd9Sstevel@tonic-gate #define	ESTC_NZ_LPA		1032	/* Nonzero LPA not yet supported */
4977c478bd9Sstevel@tonic-gate #define	ESTC_IOSWITCH		1033
4987c478bd9Sstevel@tonic-gate 	/* Cannot unconfigure I/O board: tunnel switch failed */
4997c478bd9Sstevel@tonic-gate #define	ESTC_IOCAGE_NO_CPU_AVAIL	1034
5007c478bd9Sstevel@tonic-gate 	/* No CPU available for I/O cage test. */
5017c478bd9Sstevel@tonic-gate #define	ESTC_SMS_ERR_RECOVERABLE	1035
5027c478bd9Sstevel@tonic-gate 	/* SMS reported recoverable error: check SMS status and Retry */
5037c478bd9Sstevel@tonic-gate #define	ESTC_SMS_ERR_UNRECOVERABLE	1036
5047c478bd9Sstevel@tonic-gate 	/* SMS reported unrecoverable error: Board is Unusable */
5057c478bd9Sstevel@tonic-gate #define	ESTC_NWSWITCH		1037
5067c478bd9Sstevel@tonic-gate 	/* Cannot unconfigure I/O board: network switch failed */
5077c478bd9Sstevel@tonic-gate 
5087c478bd9Sstevel@tonic-gate /* Starfire error codes */
5097c478bd9Sstevel@tonic-gate 
5107c478bd9Sstevel@tonic-gate #define	ESTF_NONE		2000	/* No error */
5117c478bd9Sstevel@tonic-gate #define	ESTF_GETPROP		2001	/* Cannot read property value */
5127c478bd9Sstevel@tonic-gate #define	ESTF_GETPROPLEN		2002	/* Cannot determine property length */
5137c478bd9Sstevel@tonic-gate #define	ESTF_BNUM		2003	/* Invalid board number */
5147c478bd9Sstevel@tonic-gate #define	ESTF_CONFIGBUSY		2004
5157c478bd9Sstevel@tonic-gate 	/* Cannot proceed; Board is configured or busy */
5167c478bd9Sstevel@tonic-gate #define	ESTF_NOCPUID		2005	/* No CPU specified for connect */
5177c478bd9Sstevel@tonic-gate #define	ESTF_PROBE		2006	/* Firmware probe failed */
5187c478bd9Sstevel@tonic-gate #define	ESTF_DEPROBE		2007	/* Firmware deprobe failed */
5197c478bd9Sstevel@tonic-gate #define	ESTF_MOVESIGB		2008	/* Firmware move-cpu0 failed */
5207c478bd9Sstevel@tonic-gate #define	ESTF_JUGGLE		2009	/* Cannot move SIGB assignment */
5217c478bd9Sstevel@tonic-gate #define	ESTF_HASSIGB		2010
5227c478bd9Sstevel@tonic-gate 	/* Cannot disconnect CPU; SIGB is currently assigned */
5237c478bd9Sstevel@tonic-gate #define	ESTF_SUPPORT		2011	/* Operation not supported */
5247c478bd9Sstevel@tonic-gate #define	ESTF_DRVFAIL		2012	/* Device driver failure */
5257c478bd9Sstevel@tonic-gate #define	ESTF_SETCPUVAL		2013
5267c478bd9Sstevel@tonic-gate 	/* Must specify a CPU on the given board */
5277c478bd9Sstevel@tonic-gate #define	ESTF_NODEV		2014	/* No such device */
5287c478bd9Sstevel@tonic-gate #define	ESTF_INTERBOARD		2015
5297c478bd9Sstevel@tonic-gate 	/* Memory configured with inter-board interleaving */
5307c478bd9Sstevel@tonic-gate #define	ESTF_UNKPTCMD		2016	/* Unrecognized platform command */
5317c478bd9Sstevel@tonic-gate #define	ESTF_NOTID		2017	/* drmach parameter is not a valid ID */
5327c478bd9Sstevel@tonic-gate #define	ESTF_INAPPROP		2018
5337c478bd9Sstevel@tonic-gate 	/* drmach parameter is inappropriate for operation */
5347c478bd9Sstevel@tonic-gate #define	ESTF_INTERNAL		2019	/* Unexpected internal condition */
5357c478bd9Sstevel@tonic-gate 
5367c478bd9Sstevel@tonic-gate /* Daktari error codes */
5377c478bd9Sstevel@tonic-gate 
5387c478bd9Sstevel@tonic-gate #define	EDAK_NONE		3000	/* no error */
5397c478bd9Sstevel@tonic-gate #define	EDAK_INTERNAL		3001	/* Internal error */
5407c478bd9Sstevel@tonic-gate #define	EDAK_NOFRUINFO		3002	/* Didn't receive fru info */
5417c478bd9Sstevel@tonic-gate #define	EDAK_NONDR_BOARD	3003
5427c478bd9Sstevel@tonic-gate 	/* DR is not supported on this board type */
5437c478bd9Sstevel@tonic-gate #define	EDAK_POWERON		3004	/* Power on request failed */
5447c478bd9Sstevel@tonic-gate #define	EDAK_POWEROK		3005	/* Failed to power on */
5457c478bd9Sstevel@tonic-gate #define	EDAK_INTERRUPTED	3006	/* Operation interrupted */
5467c478bd9Sstevel@tonic-gate #define	EDAK_BOARDINIT		3007	/* Board initialization failed */
5477c478bd9Sstevel@tonic-gate #define	EDAK_CPUINIT		3008	/* CPU intialization failed */
5487c478bd9Sstevel@tonic-gate #define	EDAK_MEMFAIL		3009	/* Memory operation failed */
5497c478bd9Sstevel@tonic-gate 
5507c478bd9Sstevel@tonic-gate /* Serengeti error codes */
5517c478bd9Sstevel@tonic-gate 
5527c478bd9Sstevel@tonic-gate #define	ESGT_NONE		4000	/* no error */
5537c478bd9Sstevel@tonic-gate #define	ESGT_INTERNAL		4001	/* Internal error */
5547c478bd9Sstevel@tonic-gate #define	ESGT_INVAL		4002	/* Invalid argument */
5557c478bd9Sstevel@tonic-gate #define	ESGT_MEMFAIL		4003	/* Memory operation failed */
5567c478bd9Sstevel@tonic-gate #define	ESGT_PROBE		4004	/* Board probe failed */
5577c478bd9Sstevel@tonic-gate #define	ESGT_DEPROBE		4005	/* Board deprobe failed */
5587c478bd9Sstevel@tonic-gate #define	ESGT_JUGGLE_BOOTPROC	4006	/* Failed to juggle bootproc */
5597c478bd9Sstevel@tonic-gate #define	ESGT_NOT_CPUTYPE	4007	/* Not a cpu device */
5607c478bd9Sstevel@tonic-gate #define	ESGT_NO_DEV_TYPE	4008	/* Cannot find device type */
5617c478bd9Sstevel@tonic-gate #define	ESGT_BAD_PORTID		4009	/* Bad port id */
5627c478bd9Sstevel@tonic-gate #define	ESGT_RESUME		4010	/* Failed to resume device */
5637c478bd9Sstevel@tonic-gate #define	ESGT_SUSPEND		4011	/* Failed to suspend device */
5647c478bd9Sstevel@tonic-gate #define	ESGT_KTHREAD		4012	/* failed to stop kernel thd */
5657c478bd9Sstevel@tonic-gate #define	ESGT_UNSAFE		4013	/* unsafe */
5667c478bd9Sstevel@tonic-gate #define	ESGT_RTTHREAD		4014	/* real time threads */
5677c478bd9Sstevel@tonic-gate #define	ESGT_UTHREAD		4015	/* failed to stop user thd */
5687c478bd9Sstevel@tonic-gate #define	ESGT_PROM_ATTACH	4016	/* prom failed attach board */
5697c478bd9Sstevel@tonic-gate #define	ESGT_PROM_DETACH	4017	/* prom failed detach board */
5707c478bd9Sstevel@tonic-gate #define	ESGT_SC_ERR		4018	/* sc return a failure */
5717c478bd9Sstevel@tonic-gate #define	ESGT_GET_BOARD_STAT	4019	/* Failed to obtain board information */
5727c478bd9Sstevel@tonic-gate #define	ESGT_WAKEUPCPU		4020	/* Failed to wake up cpu */
5737c478bd9Sstevel@tonic-gate #define	ESGT_STOPCPU		4021	/* Failed to stop cpu */
5747c478bd9Sstevel@tonic-gate /* Serengeti SC return codes */
5757c478bd9Sstevel@tonic-gate #define	ESGT_HW_FAIL		4022	/* Hardware Failure */
5767c478bd9Sstevel@tonic-gate #define	ESGT_BD_ACCESS		4023	/* Board access denied */
5777c478bd9Sstevel@tonic-gate #define	ESGT_STALE_CMP		4024	/* Stale components */
5787c478bd9Sstevel@tonic-gate #define	ESGT_STALE_OBJ		4025	/* Stale objects */
5797c478bd9Sstevel@tonic-gate #define	ESGT_NO_SEPROM_SPACE	4026	/* No SEPROM space */
5807c478bd9Sstevel@tonic-gate #define	ESGT_NOT_SUPP		4027	/* Operation not supported */
5817c478bd9Sstevel@tonic-gate #define	ESGT_NO_MEM		4028	/* No Memory */
5827c478bd9Sstevel@tonic-gate 
583e98fafb9Sjl139090 /* OPL error codes */
58425cf1a30Sjl139090 
58525cf1a30Sjl139090 #define	EOPL_GETPROP		5001	/* Cannot read property value */
58625cf1a30Sjl139090 #define	EOPL_BNUM		5002	/* Invalid board number */
58725cf1a30Sjl139090 #define	EOPL_CONFIGBUSY		5003
58825cf1a30Sjl139090 	/* Cannot proceed; Board is configured or busy */
58925cf1a30Sjl139090 #define	EOPL_PROBE		5004	/* Firmware probe failed */
59025cf1a30Sjl139090 #define	EOPL_DEPROBE		5005	/* Firmware deprobe failed */
59125cf1a30Sjl139090 #define	EOPL_SUPPORT		5006	/* Operation not supported */
59225cf1a30Sjl139090 #define	EOPL_DRVFAIL		5007	/* Device driver failure */
59325cf1a30Sjl139090 #define	EOPL_UNKPTCMD		5008	/* Unrecognized platform command */
59425cf1a30Sjl139090 #define	EOPL_NOTID		5009	/* drmach parameter is not a valid ID */
59525cf1a30Sjl139090 #define	EOPL_INAPPROP		5010
59625cf1a30Sjl139090 	/* drmach parameter is inappropriate for operation */
59725cf1a30Sjl139090 #define	EOPL_INTERNAL		5011	/* Unexpected internal condition */
59825cf1a30Sjl139090 #define	EOPL_FINDDEVICE		5012	/* Firmware cannot find node. */
59968ac2337Sjl139090 #define	EOPL_MC_SETUP		5013	/* Cannot setup memory node */
60068ac2337Sjl139090 #define	EOPL_CPU_STATE		5014	/* Invalid CPU/core state */
60168ac2337Sjl139090 #define	EOPL_MC_OPL		5015	/* Cannot find mc-opl interface */
60268ac2337Sjl139090 #define	EOPL_SCF_FMEM		5016	/* Cannot find scf_fmem interface */
60368ac2337Sjl139090 #define	EOPL_FMEM_SETUP		5017	/* Error setting up FMEM buffer */
60468ac2337Sjl139090 #define	EOPL_SCF_FMEM_START	5018	/* scf_fmem_start error */
60568ac2337Sjl139090 #define	EOPL_FMEM_ERROR		5019	/* FMEM error */
60668ac2337Sjl139090 #define	EOPL_SCF_FMEM_CANCEL	5020	/* scf_fmem_cancel error */
607b307f191Sbm42561 #define	EOPL_FMEM_XC_TIMEOUT	5021	/* xcall timeout */
608b307f191Sbm42561 #define	EOPL_FMEM_COPY_TIMEOUT	5022	/* DR parellel copy timeout */
609b307f191Sbm42561 #define	EOPL_FMEM_SCF_BUSY	5023	/* SCF busy */
610b307f191Sbm42561 #define	EOPL_FMEM_RETRY_OUT	5024	/* SCF IO Retry Error */
611b307f191Sbm42561 #define	EOPL_FMEM_TIMEOUT	5025	/* FMEM command timeout */
612b307f191Sbm42561 #define	EOPL_FMEM_HW_ERROR	5026	/* Hardware error */
613b307f191Sbm42561 #define	EOPL_FMEM_TERMINATE	5027	/* FMEM operation Terminated */
614b307f191Sbm42561 #define	EOPL_FMEM_COPY_ERROR	5028	/* Memory copy error */
615b307f191Sbm42561 #define	EOPL_FMEM_SCF_ERR	5029	/* SCF error */
616e98fafb9Sjl139090 #define	EOPL_MIXED_CPU		5030
617e98fafb9Sjl139090 	/* Cannot add SPARC64-VI to domain booted with all SPARC64-VII CPUs */
618*4fe85d41SJames Anderson #define	EOPL_FMEM_SCF_OFFLINE	5031	/* SCF OFFLINE */
61925cf1a30Sjl139090 
6207c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
6217c478bd9Sstevel@tonic-gate }
6227c478bd9Sstevel@tonic-gate #endif
6237c478bd9Sstevel@tonic-gate 
6247c478bd9Sstevel@tonic-gate #endif	/* _SBD_IOCTL_H */
625