2 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
6 #ifndef _SYS_MPI_RAID_H
7 #define _SYS_MPI_RAID_H
9 #pragma ident "%Z%%M% %I% %E% SMI"
18 typedef struct msg_raid_action
{
29 uint32_t ActionDataWord
;
30 sge_simple_union_t ActionDataSGE
;
34 /* RAID Volume Action values */
36 #define MPI_RAID_ACTION_STATUS 0x00
37 #define MPI_RAID_ACTION_INDICATOR_STRUCT 0x01
38 #define MPI_RAID_ACTION_CREATE_VOLUME 0x02
39 #define MPI_RAID_ACTION_DELETE_VOLUME 0x03
40 #define MPI_RAID_ACTION_DISABLE_VOLUME 0x04
41 #define MPI_RAID_ACTION_ENABLE_VOLUME 0x05
42 #define MPI_RAID_ACTION_QUIESCE_PHYS_IO 0x06
43 #define MPI_RAID_ACTION_ENABLE_PHYS_IO 0x07
44 #define MPI_RAID_ACTION_CHANGE_VOLUME_SETTINGS 0x08
45 #define MPI_RAID_ACTION_PHYSDISK_OFFLINE 0x0A
46 #define MPI_RAID_ACTION_PHYSDISK_ONLINE 0x0B
47 #define MPI_RAID_ACTION_CHANGE_PHYSDISK_SETTINGS 0x0C
48 #define MPI_RAID_ACTION_CREATE_PHYSDISK 0x0D
49 #define MPI_RAID_ACTION_DELETE_PHYSDISK 0x0E
50 #define MPI_RAID_ACTION_FAIL_PHYSDISK 0x0F
51 #define MPI_RAID_ACTION_REPLACE_PHYSDISK 0x10
52 #define MPI_RAID_ACTION_ACTIVATE_VOLUME 0x11
53 #define MPI_RAID_ACTION_INACTIVATE_VOLUME 0x12
55 #define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC 0x00000001
57 #define MPI_RAID_ACTION_ADATA_KEEP_PHYS_DISKS 0x00000000
58 #define MPI_RAID_ACTION_ADATA_DEL_PHYS_DISKS 0x00000001
60 /* RAID Volume reply message */
62 typedef struct msg_raid_action_reply
{
72 uint16_t ActionStatus
;
75 uint32_t VolumeStatus
;
77 } msg_raid_action_reply_t
;
80 /* RAID Volume reply ActionStatus values */
82 #define MPI_RAID_VOL_ASTATUS_SUCCESS 0x0000
83 #define MPI_RAID_VOL_ASTATUS_INVALID_ACTION 0x0001
84 #define MPI_RAID_VOL_ASTATUS_FAILURE 0x0002
85 #define MPI_RAID_VOL_ASTATUS_IN_PROGRESS 0x0003
88 /* RAID Volume reply RAID Volume Indicator structure */
90 typedef struct mpi_raid_vol_indicator
{
92 uint64_t BlocksRemaining
;
93 } mpi_raid_vol_indicator_t
;
97 * SCSI IO RAID Passthrough Request
99 typedef struct msg_scsi_io_raid_pt_request
{
105 uint8_t SenseBufferLength
;
113 uint32_t SenseBufferLowAddr
;
115 } msg_scsi_io_raid_pt_request_t
;
118 /* SCSI IO RAID Passthrough reply structure */
120 typedef struct msg_scsi_io_raid_pt_reply
{
126 uint8_t SenseBufferLength
;
134 uint32_t TransferCount
;
136 uint32_t ResponseInfo
;
137 } msg_scsi_io_raid_pt_reply_t
;
143 #endif /* _SYS_MPI_RAID_H */