/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (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) 2000-2001 by Sun Microsystems, Inc.
* All rights reserved.
*/
#ifndef _SYS_SGEVENTS_H
#define _SYS_SGEVENTS_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* sgevents.h - Serengeti Events defintions
*
* This header file contains the common definitions and macros for the
* events support on the Serengeti platform.
*/
/*
* Serengeti Events Payloads (events are defined in sgsbbc_mailbox.h)
*/
/*
* there are a class of events which are consider generic. They all have
* the same msg_type and payload. There is a detail that comes with it to
* let the client know what actualy happened. This can be found in the
* event_details as defined below
*/
#define SG_EVT_BOARD_ABSENT 0x10
#define SG_EVT_BOARD_PRESENT 0x11
#define SG_EVT_UNASSIGN 0x20
#define SG_EVT_ASSIGN 0x21
#define SG_EVT_UNAVAILABLE 0x30
#define SG_EVT_AVAILABLE 0x31
#define SG_EVT_POWER_OFF 0x40
#define SG_EVT_POWER_ON 0x41
#define SG_EVT_PASSED_TEST 0x50
#define SG_EVT_FAILED_TEST 0x51
/*
* Miscallaneous defintions
*/
/* Payload of ENV event */
#define SC_EVENT_FAN 0x4
#define SC_EVENT_ENV 0x7
/* Payload of PANIC_SHUTDOWN event */
#define SC_EVENT_PANIC_ENV 0x1
#define SC_EVENT_PANIC_KEYSWITCH 0x2
/*
* Generic event payload.
*/
typedef struct {
int node; /* wildcat node number */
int slot; /* Slot number for this event */
uint64_t parent_hdl; /* Parent fru handle */
uint64_t child_hdl; /* Child fru handle */
int event_details;
} sg_system_fru_descriptor_t;
/*
* Domain State event payload.
*
* Possible values for this are defined in serengeti.h (SG_KEY_POSN_XXX)
*/
typedef int sg_event_key_position_t;
/*
* Environmental event payloads.
*/
typedef struct sg_event_env_changed {
int32_t event_type;
} sg_event_env_changed_t;
typedef struct sg_event_fan_status {
int32_t event_type;
int32_t node_id;
int32_t slot_number;
int32_t fan_speed;
} sg_event_fan_status_t;
/*
* Panic Shutdown event payload.
*/
typedef int sg_panic_shutdown_t;
#ifdef __cplusplus
}
#endif
#endif /* _SYS_SGEVENTS_H */