1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  * Copyright (c) 2000-2001 by Sun Microsystems, Inc.
24  * All rights reserved.
25  */
26 
27 #ifndef _SYS_SGEVENTS_H
28 #define	_SYS_SGEVENTS_H
29 
30 #pragma ident	"%Z%%M%	%I%	%E% SMI"
31 
32 #ifdef	__cplusplus
33 extern "C" {
34 #endif
35 
36 /*
37  * sgevents.h - Serengeti Events defintions
38  *
39  * This header file contains the common definitions and macros for the
40  * events support on the Serengeti platform.
41  */
42 
43 /*
44  * Serengeti Events Payloads (events are defined in sgsbbc_mailbox.h)
45  */
46 
47 /*
48  * there are a class of events which are consider generic. They all have
49  * the same msg_type and payload.  There is a detail that comes with it to
50  * let the client know what actualy happened. This can be found in the
51  * event_details as defined below
52  */
53 
54 
55 #define	SG_EVT_BOARD_ABSENT		0x10
56 #define	SG_EVT_BOARD_PRESENT		0x11
57 #define	SG_EVT_UNASSIGN			0x20
58 #define	SG_EVT_ASSIGN			0x21
59 #define	SG_EVT_UNAVAILABLE		0x30
60 #define	SG_EVT_AVAILABLE		0x31
61 #define	SG_EVT_POWER_OFF		0x40
62 #define	SG_EVT_POWER_ON			0x41
63 #define	SG_EVT_PASSED_TEST		0x50
64 #define	SG_EVT_FAILED_TEST		0x51
65 
66 
67 /*
68  * Miscallaneous defintions
69  */
70 
71 /* Payload of ENV event */
72 #define	SC_EVENT_FAN		0x4
73 #define	SC_EVENT_ENV		0x7
74 
75 /* Payload of PANIC_SHUTDOWN event */
76 #define	SC_EVENT_PANIC_ENV		0x1
77 #define	SC_EVENT_PANIC_KEYSWITCH	0x2
78 
79 
80 /*
81  * Generic event payload.
82  */
83 typedef struct {
84 	int node;		/* wildcat node number */
85 	int slot;		/* Slot number for this event */
86 	uint64_t parent_hdl;	/* Parent fru handle */
87 	uint64_t child_hdl;	/* Child fru handle */
88 	int event_details;
89 } sg_system_fru_descriptor_t;
90 
91 
92 /*
93  * Domain State event payload.
94  *
95  * Possible values for this are defined in serengeti.h (SG_KEY_POSN_XXX)
96  */
97 typedef int	sg_event_key_position_t;
98 
99 
100 /*
101  * Environmental event payloads.
102  */
103 typedef struct sg_event_env_changed {
104 	int32_t		event_type;
105 
106 } sg_event_env_changed_t;
107 
108 typedef struct sg_event_fan_status {
109 	int32_t		event_type;
110 	int32_t		node_id;
111 	int32_t		slot_number;
112 	int32_t		fan_speed;
113 
114 } sg_event_fan_status_t;
115 
116 
117 /*
118  * Panic Shutdown event payload.
119  */
120 typedef int	sg_panic_shutdown_t;
121 
122 
123 #ifdef	__cplusplus
124 }
125 #endif
126 
127 #endif	/* _SYS_SGEVENTS_H */
128