diff options
author | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
---|---|---|
committer | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
commit | 7c478bd95313f5f23a4c958a745db2134aa03244 (patch) | |
tree | c871e58545497667cbb4b0a4f2daf204743e1fe7 /usr/src/uts/common/sys/mpt/mpi_raid.h | |
download | illumos-gate-7c478bd95313f5f23a4c958a745db2134aa03244.tar.gz |
OpenSolaris Launch
Diffstat (limited to 'usr/src/uts/common/sys/mpt/mpi_raid.h')
-rw-r--r-- | usr/src/uts/common/sys/mpt/mpi_raid.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/usr/src/uts/common/sys/mpt/mpi_raid.h b/usr/src/uts/common/sys/mpt/mpi_raid.h new file mode 100644 index 0000000000..d420952d7e --- /dev/null +++ b/usr/src/uts/common/sys/mpt/mpi_raid.h @@ -0,0 +1,141 @@ +/* + * Copyright 2002 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_MPI_RAID_H +#define _SYS_MPI_RAID_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * RAID Volume Request + */ +typedef struct msg_raid_action { + uint8_t Action; + uint8_t Reserved1; + uint8_t ChainOffset; + uint8_t Function; + uint8_t VolumeID; + uint8_t VolumeBus; + uint8_t PhysDiskNum; + uint8_t MsgFlags; + uint32_t MsgContext; + uint32_t Reserved2; + uint32_t ActionDataWord; + sge_simple_union_t ActionDataSGE; +} msg_raid_action_t; + + +/* RAID Volume Action values */ + +#define MPI_RAID_ACTION_STATUS 0x00 +#define MPI_RAID_ACTION_INDICATOR_STRUCT 0x01 +#define MPI_RAID_ACTION_CREATE_VOLUME 0x02 +#define MPI_RAID_ACTION_DELETE_VOLUME 0x03 +#define MPI_RAID_ACTION_DISABLE_VOLUME 0x04 +#define MPI_RAID_ACTION_ENABLE_VOLUME 0x05 +#define MPI_RAID_ACTION_QUIESCE_PHYS_IO 0x06 +#define MPI_RAID_ACTION_ENABLE_PHYS_IO 0x07 +#define MPI_RAID_ACTION_CHANGE_VOLUME_SETTINGS 0x08 +#define MPI_RAID_ACTION_PHYSDISK_OFFLINE 0x0A +#define MPI_RAID_ACTION_PHYSDISK_ONLINE 0x0B +#define MPI_RAID_ACTION_CHANGE_PHYSDISK_SETTINGS 0x0C +#define MPI_RAID_ACTION_CREATE_PHYSDISK 0x0D +#define MPI_RAID_ACTION_DELETE_PHYSDISK 0x0E +#define MPI_RAID_ACTION_FAIL_PHYSDISK 0x0F +#define MPI_RAID_ACTION_REPLACE_PHYSDISK 0x10 + +#define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC 0x00000001 + +#define MPI_RAID_ACTION_ADATA_KEEP_PHYS_DISKS 0x00000000 +#define MPI_RAID_ACTION_ADATA_DEL_PHYS_DISKS 0x00000001 + +/* RAID Volume reply message */ + +typedef struct msg_raid_action_reply { + uint8_t Action; + uint8_t Reserved; + uint8_t MsgLength; + uint8_t Function; + uint8_t VolumeID; + uint8_t VolumeBus; + uint8_t PhysDiskNum; + uint8_t MsgFlags; + uint32_t MsgContext; + uint16_t ActionStatus; + uint16_t IOCStatus; + uint32_t IOCLogInfo; + uint32_t VolumeStatus; + uint32_t ActionData; +} msg_raid_action_reply_t; + + +/* RAID Volume reply ActionStatus values */ + +#define MPI_RAID_VOL_ASTATUS_SUCCESS 0x0000 +#define MPI_RAID_VOL_ASTATUS_INVALID_ACTION 0x0001 +#define MPI_RAID_VOL_ASTATUS_FAILURE 0x0002 +#define MPI_RAID_VOL_ASTATUS_IN_PROGRESS 0x0003 + + +/* RAID Volume reply RAID Volume Indicator structure */ + +typedef struct mpi_raid_vol_indicator { + uint64_t TotalBlocks; + uint64_t BlocksRemaining; +} mpi_raid_vol_indicator_t; + + +/* + * SCSI IO RAID Passthrough Request + */ +typedef struct msg_scsi_io_raid_pt_request { + uint8_t PhysDiskNum; + uint8_t Reserved1; + uint8_t ChainOffset; + uint8_t Function; + uint8_t CDBLength; + uint8_t SenseBufferLength; + uint8_t Reserved2; + uint8_t MsgFlags; + uint32_t MsgContext; + uint8_t LUN[8]; + uint32_t Control; + uint8_t CDB[16]; + uint32_t DataLength; + uint32_t SenseBufferLowAddr; + sge_io_union_t SGL; +} msg_scsi_io_raid_pt_request_t; + + +/* SCSI IO RAID Passthrough reply structure */ + +typedef struct msg_scsi_io_raid_pt_reply { + uint8_t PhysDiskNum; + uint8_t Reserved1; + uint8_t MsgLength; + uint8_t Function; + uint8_t CDBLength; + uint8_t SenseBufferLength; + uint8_t Reserved2; + uint8_t MsgFlags; + uint32_t MsgContext; + uint8_t SCSIStatus; + uint8_t SCSIState; + uint16_t IOCStatus; + uint32_t IOCLogInfo; + uint32_t TransferCount; + uint32_t SenseCount; + uint32_t ResponseInfo; +} msg_scsi_io_raid_pt_reply_t; + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_MPI_RAID_H */ |