/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_MPI_IOC_H
#define _SYS_MPI_IOC_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* IOCInit message
*/
typedef struct msg_ioc_init {
/* following used in new mpi implementations */
typedef struct msg_ioc_init_reply {
/*
* WhoInit values
*/
/*
* Flags values
*/
#define MPI_IOCINIT_MSGVERSION_MINOR_SHIFT (0)
#define MPI_IOCINIT_HEADERVERSION_DEV_SHIFT (0)
/*
* IOC Facts message
*/
typedef struct msg_ioc_facts {
/*
* FW version
*/
typedef struct mpi_fw_version_struct {
typedef union mpi_fw_version {
/*
* IOC Facts Reply
*/
typedef struct msg_ioc_facts_reply {
/* following used in newer mpi implementations */
/*
* Port Facts message and Reply
*/
typedef struct msg_port_facts {
typedef struct msg_port_facts_reply {
/*
* PortTypes values
*/
/*
* ProtocolFlags values
*/
/*
* Port Enable Message
*/
typedef struct msg_port_enable {
typedef struct msg_port_enable_reply {
/*
* Event Notification messages
*/
typedef struct msg_event_notify {
/*
* Event Notification Reply
*/
typedef struct msg_event_notify_reply {
/*
* Event Acknowledge
*/
typedef struct msg_event_ack {
typedef struct msg_event_ack_reply {
/*
* Switch
*/
/*
* Event
*/
/*
* AckRequired field values
*/
/*
* Eventchange event data
*/
typedef struct event_data_event_change {
/*
* SCSI Event data for Port, Bus and Device forms)
*/
typedef struct event_data_scsi {
/*
* SCSI Device Status Change Event data
*/
typedef struct event_data_scsi_device_status_change {
/*
* SCSI Device Status Change Event data ReasonCode values
*/
/*
* SAS Device Status Change event data
*/
typedef struct event_data_sas_device_status_change {
/*
* SCSI event data for queue full event
*/
typedef struct event_data_queue_full {
/*
* MPI Link Status Change Event data
*/
typedef struct event_data_link_status {
/* MPI Loop State Change Event data */
typedef struct event_data_loop_state {
/*
* MPI LOGOUT Event data
*/
typedef struct event_data_logout {
/*
* MPI RAID Status Change Event Data
*/
typedef struct event_data_raid {
/* MPI RAID Status Change Event data ReasonCode values */
/*
* SAS Phy link down event data
*/
typedef struct event_data_sas_phy_link_status {
#define MPI_EVENT_SAS_PLS_LR_PREVIOUS_SHIFT 0
/*
* sas discovery error structure
*/
typedef struct event_data_sas_discovery_error {
/*
* values for DiscoveryStatus field of SAS Discovery Error Event Data
*/
typedef struct event_data_sas_expander_status_change {
/*
* values for ReasonCode field of SAS Expander Status Change Event data
*/
/*
* values for DiscoveryStatus field of SAS Expander Status Change Event data
*/
/*
* values for Flags field of SAS Expander Status Change Event data
*/
/*
* Firmware Load Messages
*/
/*
* Firmware download message and associated structures
*/
typedef struct msg_fw_download {
typedef struct fw_download_tcsge {
typedef struct msg_fw_download_reply {
/*
* Firmware upload messages and associated structures
*/
typedef struct msg_fw_upload {
typedef struct fw_upload_tcsge {
typedef struct msg_fw_upload_reply {
typedef struct msg_fw_header {
/* defines for using the ProductId field */
typedef struct mpi_ext_image_header {
#ifdef __cplusplus
}
#endif
#endif /* _SYS_MPI_IOC_H */