linux/drivers/message/fusion/lsi/mpi_raid.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 *  Copyright (c) 2001-2008 LSI Corporation.
 *
 *
 *           Name:  mpi_raid.h
 *          Title:  MPI RAID message and structures
 *  Creation Date:  February 27, 2001
 *
 *    mpi_raid.h Version:  01.05.05
 *
 *  Version History
 *  ---------------
 *
 *  Date      Version   Description
 *  --------  --------  ------------------------------------------------------
 *  02-27-01  01.01.01  Original release for this file.
 *  03-27-01  01.01.02  Added structure offset comments.
 *  08-08-01  01.02.01  Original release for v1.2 work.
 *  09-28-01  01.02.02  Major rework for MPI v1.2 Integrated RAID changes.
 *  10-04-01  01.02.03  Added ActionData defines for
 *                      MPI_RAID_ACTION_DELETE_VOLUME action.
 *  11-01-01  01.02.04  Added define for MPI_RAID_ACTION_ADATA_DO_NOT_SYNC.
 *  03-14-02  01.02.05  Added define for MPI_RAID_ACTION_ADATA_LOW_LEVEL_INIT.
 *  05-07-02  01.02.06  Added define for MPI_RAID_ACTION_ACTIVATE_VOLUME,
 *                      MPI_RAID_ACTION_INACTIVATE_VOLUME, and
 *                      MPI_RAID_ACTION_ADATA_INACTIVATE_ALL.
 *  07-12-02  01.02.07  Added structures for Mailbox request and reply.
 *  11-15-02  01.02.08  Added missing MsgContext field to MSG_MAILBOX_REQUEST.
 *  04-01-03  01.02.09  New action data option flag for
 *                      MPI_RAID_ACTION_DELETE_VOLUME.
 *  05-11-04  01.03.01  Original release for MPI v1.3.
 *  08-19-04  01.05.01  Original release for MPI v1.5.
 *  01-15-05  01.05.02  Added defines for the two new RAID Actions for
 *                      _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE.
 *  02-28-07  01.05.03  Added new RAID Action, Device FW Update Mode, and
 *                      associated defines.
 *  08-07-07  01.05.04  Added Disable Full Rebuild bit to the ActionDataWord
 *                      for the RAID Action MPI_RAID_ACTION_DISABLE_VOLUME.
 *  01-15-08  01.05.05  Added define for MPI_RAID_ACTION_SET_VOLUME_NAME.
 *  --------------------------------------------------------------------------
 */

#ifndef MPI_RAID_H
#define MPI_RAID_H


/******************************************************************************
*
*        R A I D    M e s s a g e s
*
*******************************************************************************/


/****************************************************************************/
/* RAID Action Request                                                      */
/****************************************************************************/

pMpiRaidActionRequest_t;


/* RAID Action request Action values */

#define MPI_RAID_ACTION_STATUS
#define MPI_RAID_ACTION_INDICATOR_STRUCT
#define MPI_RAID_ACTION_CREATE_VOLUME
#define MPI_RAID_ACTION_DELETE_VOLUME
#define MPI_RAID_ACTION_DISABLE_VOLUME
#define MPI_RAID_ACTION_ENABLE_VOLUME
#define MPI_RAID_ACTION_QUIESCE_PHYS_IO
#define MPI_RAID_ACTION_ENABLE_PHYS_IO
#define MPI_RAID_ACTION_CHANGE_VOLUME_SETTINGS
#define MPI_RAID_ACTION_PHYSDISK_OFFLINE
#define MPI_RAID_ACTION_PHYSDISK_ONLINE
#define MPI_RAID_ACTION_CHANGE_PHYSDISK_SETTINGS
#define MPI_RAID_ACTION_CREATE_PHYSDISK
#define MPI_RAID_ACTION_DELETE_PHYSDISK
#define MPI_RAID_ACTION_FAIL_PHYSDISK
#define MPI_RAID_ACTION_REPLACE_PHYSDISK
#define MPI_RAID_ACTION_ACTIVATE_VOLUME
#define MPI_RAID_ACTION_INACTIVATE_VOLUME
#define MPI_RAID_ACTION_SET_RESYNC_RATE
#define MPI_RAID_ACTION_SET_DATA_SCRUB_RATE
#define MPI_RAID_ACTION_DEVICE_FW_UPDATE_MODE
#define MPI_RAID_ACTION_SET_VOLUME_NAME

/* ActionDataWord defines for use with MPI_RAID_ACTION_CREATE_VOLUME action */
#define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC
#define MPI_RAID_ACTION_ADATA_LOW_LEVEL_INIT

/* ActionDataWord defines for use with MPI_RAID_ACTION_DELETE_VOLUME action */
#define MPI_RAID_ACTION_ADATA_KEEP_PHYS_DISKS
#define MPI_RAID_ACTION_ADATA_DEL_PHYS_DISKS

#define MPI_RAID_ACTION_ADATA_KEEP_LBA0
#define MPI_RAID_ACTION_ADATA_ZERO_LBA0

/* ActionDataWord defines for use with MPI_RAID_ACTION_DISABLE_VOLUME action */
#define MPI_RAID_ACTION_ADATA_DISABLE_FULL_REBUILD

/* ActionDataWord defines for use with MPI_RAID_ACTION_ACTIVATE_VOLUME action */
#define MPI_RAID_ACTION_ADATA_INACTIVATE_ALL

/* ActionDataWord defines for use with MPI_RAID_ACTION_SET_RESYNC_RATE action */
#define MPI_RAID_ACTION_ADATA_RESYNC_RATE_MASK

/* ActionDataWord defines for use with MPI_RAID_ACTION_SET_DATA_SCRUB_RATE action */
#define MPI_RAID_ACTION_ADATA_DATA_SCRUB_RATE_MASK

/* ActionDataWord defines for use with MPI_RAID_ACTION_DEVICE_FW_UPDATE_MODE action */
#define MPI_RAID_ACTION_ADATA_ENABLE_FW_UPDATE
#define MPI_RAID_ACTION_ADATA_MASK_FW_UPDATE_TIMEOUT
#define MPI_RAID_ACTION_ADATA_SHIFT_FW_UPDATE_TIMEOUT


/* RAID Action reply message */

pMpiRaidActionReply_t;


/* RAID Volume reply ActionStatus values */

#define MPI_RAID_ACTION_ASTATUS_SUCCESS
#define MPI_RAID_ACTION_ASTATUS_INVALID_ACTION
#define MPI_RAID_ACTION_ASTATUS_FAILURE
#define MPI_RAID_ACTION_ASTATUS_IN_PROGRESS


/* RAID Volume reply RAID Volume Indicator structure */

pMpiRaidVolIndicator_t;


/****************************************************************************/
/* SCSI IO RAID Passthrough Request                                         */
/****************************************************************************/

pSCSIIORaidPassthroughRequest_t;


/* SCSI IO RAID Passthrough reply structure */

pSCSIIORaidPassthroughReply_t;


/****************************************************************************/
/* Mailbox reqeust structure */
/****************************************************************************/

pMailboxRequest_t;


/* Mailbox reply structure */
pMailboxReply_t;

#endif