📄 micext.h
字号:
/*******************************************************************************
* Filename : micext.h
* Description : promise MIC Extension header file
* It provides the extened definitions to the MIC.
* Created on : 03/09/03
* CVS Version : $Id: micext.h,v 1.1 2004/03/24 03:24:12 weny Exp $
*
* (C) Copyright Promise Technology Inc., 2004
* All Rights Reserved
******************************************************************************/
#ifndef __PI_MICEXT_H__
#define __PI_MICEXT_H__
/* --- standard C lib header files ------------------------------------------ */
/* --- internal header files ------------------------------------------------ */
/* --- constants & data structures ------------------------------------------ */
#define INVALID_CTRL_ID 0xFFFFFFFF
#define INVALID_PORT_ID 0xFFFFFFFF
#define INVALID_ARRAY_ID 0xFFFFFFFF
#define INVALID_PHYDRV_ID 0xFFFFFFFF
#define INVALID_LOGDRV_ID 0xFFFFFFFF
#define INVALID_ENCL_ID 0xFFFFFFFF
#define INVALID_SLOT_ID 0xFFFFFFFF
#define INVALID_SEQUENCE_NUMBER 0xFFFFFFFF
#define INVALID_FSH_HANDLE 0xFFFFFFFF
#define INVALID_RAID_LEVEL 0xFFFF
#define INVALID_STRIPE_SIZE 0xFFFF
#define INVALID_CAPACITY 0xFFFFFFFFFFFFFFFF
#define INVALID_INITIATOR_INDEX 0xFFFF
/* device flag */
#define DEVICE_STATE_MASK 0xFF000000
#define DEVICE_COND_MASK 0x00FF0000
#define DEVICE_OPERATION_MASK 0x0000FF00
#define DEVICE_CONFIG_MASK 0x000000FF
/* physical drive flag */
#define PHYDRV_STATE_MASK DEVICE_STATE_MASK
#define PHYDRV_STATE_FLAG(u32Flag) (u32Flag & PHYDRV_STATE_MASK)
#define PHYDRV_STATE_ONLINE 0x01000000 //0x000000000 == OFFLINE
#define PHYDRV_STATE_MISSING 0x04000000
#define PHYDRV_STATE_REBUILD 0x08000000 //REBUILDING
#define PHYDRV_STATE_NEEDREBUILD 0x10000000 //NEED REBUILD
#define PHYDRV_COND_MASK DEVICE_COND_MASK
#define PHYDRV_COND_FLAG(u32Flag) (u32Flag & PHYDRV_COND_MASK)
#define PHYDRV_STATE_ATAPI 0x00010000
#define PHYDRV_COND_PFA 0x00020000 //SMART FAIL
#define PHYDRV_COND_FORCED 0x00040000
#define PHYDRV_COND_TEMP 0x00080000
#define PHYDRV_COND_TEMPSPARE 0x00100000
#define PHYDRV_COND_PRESENT 0x00200000
#define PHYDRV_COND_ACCESSIBLE 0x00400000
#define PHYDRV_OPERATION_MASK DEVICE_OPERATION_MASK
#define PHYDRV_OPERATION_FLAG(u32Flag) (u32Flag & PHYDRV_OPERATION_MASK)
#define PHYDRV_OPERATION_SYNCRONIZING 0x00000100
//#define PHYDRV_OPERATION_REBUILDING 0x00000200 it's defined as PHYDRV_STATE_REBUILD
#define PHYDRV_OPERATION_INITIALIZING 0x00000200
#define PHYDRV_OPERATION_MP 0x00000400
#define PHYDRV_OPERATION_TRANSITION 0x00000800
#define PHYDRV_OPERATION_MIGRATION 0x00001000
#define PHYDRV_OPERATION_PDM 0x00002000
#define PHYDRV_OPERATION_RC 0x00004000
#define PHYDRV_CONFIG_MASK DEVICE_CONFIG_MASK
#define PHYDRV_CONFIG_FLAG(u32Flag) (u32Flag & PHYDRV_CONFIG_MASK)
#define PHYDRV_CONFIG_UNCONFIGURED 0x00000000
#define PHYDRV_CONFIG_CONFIGURED 0x00000001 //ASSIGNED
#define PHYDRV_CONFIG_GLOBALSPARE 0x00000002
#define PHYDRV_CONFIG_DEDICATEDSPARE 0x00000004
/* logical drive flag */
#define LOGDRV_STATE_MASK DEVICE_STATE_MASK
#define LOGDRV_STATE_FLAG(u32Flag) (u32Flag & LOGDRV_STATE_MASK)
#define LOGDRV_STATE_ONLINE 0x01000000
#define LOGDRV_STATE_CRITICAL 0x02000000
#define LOGDRV_STATE_DEGRADE 0x04000000
#define LOGDRV_COND_MASK DEVICE_COND_MASK
#define LOGDRV_COND_FLAG(u32Flag) (u32Flag & LOGDRV_COND_MASK)
#define LOGDRV_COND_INITIALIZED 0x00010000
#define LOGDRV_COND_SYNCHRONIZED 0x00040000
#define LOGDRV_COND_PFA 0x00020000
#define LOGDRV_OPERATION_MASK DEVICE_OPERATION_MASK
#define LOGDRV_OPERATION_FLAG(u32Flag) (u32Flag & LOGDRV_OPERATION_MASK)
#define LOGDRV_OPERATION_IDEL 0x00000000
#define LOGDRV_OPERATION_REBUILDING 0x00000100
#define LOGDRV_OPERATION_INITIALIZING 0x00000200
#define LOGDRV_OPERATION_RC 0x00000400
#define LOGDRV_OPERATION_SYNCHRONIZING 0x00000800
#define LOGDRV_OPERATION_MIGRATION 0x00001000
#define LOGDRV_CONFIG_MASK DEVICE_CONFIG_MASK
#define LOGDRV_CONFIG_FLAG(u32Flag) (u32Flag & LOGDRV_CONFIG_MASK)
#define LOGDRV_CONFIG_CONFIGURED 0x00000001
/* logical drive attributes */
#define LOGDRV_ATTRIB_WRITE_THRU 0x0
#define LOGDRV_ATTRIB_WRITE_BACK 0x00000001
#define LOGDRV_ATTRIB_READ_CACHE 0x0
#define LOGDRV_ATTRIB_READ_AHEAD 0x00000002
#define LOGDRV_ATTRIB_NOCACHE 0x00000004
#define LOGDRV_ATTRIB_AUTO 0x00000008
/* disk array attributes */
#define ARRAY_ATTRIB_DATA_ARRAY 0x00000001
#define ARRAY_ATTRIB_DSPARE_ARRAY 0x00000002
#define ARRAY_ATTRIB_GSPARE_ARRAY 0x00000003
/* disk array flags */
#define ARRAY_FLAG_RO_MASK 0x0000FFFF
#define ARRAY_FLAG_RW_MASK 0xFFFF0000
/* disk array flags - read only */
#define ARRAY_FLAG_UPDATE_PENDING 0x00000001
#define ARRAY_FLAG_UPDATE_IN_PROGRESS 0x00000002
#define ARRAY_FLAG_LASTUPDATE_FAILED 0x00000004
#define ARRAY_FLAG_MP_RUNNING 0x00000008
#define ARRAY_FLAG_PRESENT 0x00000010
#define ARRAY_FLAG_DRIVES_MISSING_FROM_ARRAY 0x00000020
#define ARRAY_FLAG_ARRAY_INCOMPLETE 0x00000040
#define ARRAY_FLAG_MIGRATION_RUNNING 0x00000080
#define ARRAY_FLAG_TRANSITION_RUNNING 0x00000100
#define ARRAY_FLAG_PDM_RUNNING 0x00000200
/* disk array flags - r/w */
#define ARRAY_FLAG_MP_ENABLE 0x00010000
#define ARRAY_FLAG_TEMP_SPARE 0x00020000
#define ARRAY_FLAG_PDM_ENABLE 0x00040000
#define PD_PAGE_RAID 0
#define PD_PAGE_SATA 1
#define PD_PAGE_ALL 0xFF
// Smart status
#define SMART_STATUS_NO_SMART 0
#define SMART_STATUS_OK 1
#define SMART_STATUS_ERROR 2
#define SMART_STATUS_NOT_SUPPORTED 3
/* TBD */
#define SECTOR_SIZE 512
/* TBD */
#define RAID0 0x0000
#define RAID1 0x0001
#define RAID3 0x0003
#define RAID5 0x0005
#define RAID6 0x0006
#define RAIDMF 0x0006
#define SPAN 0x0008
#define RAID60 0x0060
#define JBOD 0x000A
#define JBOD_MDD 0x000B
#define RAID10 0x0010
#define RAID50 0x0050
#define RAID51 0x0051
#define RAID55 0x0055
#define RAID01 0x005F
/* the following two raid levels are for s/w use only */
#define RAID_ALL 0xFFFF
#define RAID_UNKNOWN 0xFFFFFFFF
/* statistics type */
#define STATS_TYPE_ALL 0
#define STATS_TYPE_SUBSYS 1
#define STATS_TYPE_CTRL 2
#define STATS_TYPE_ENCL 3
#define STATS_TYPE_PHYDRV 4
#define STATS_TYPE_LOGDRV 5
#define STATS_TYPE_INVALID 0xFF
#define ENCLOSURE_HBA_NONE 0
#define ENCLOSURE_HBA_SS4100 1
#define ENCLOSURE_HBA_SS1100 2
#define ENCLOSURE_HBA_NEC 3
#define ENCLOSURE_HBA_FSC 4
#define ENCLOSURE_HBA_HPQ 5
#define ENCLOSURE_HBA_RN4100 6
#define ENCLOSURE_HBA_DS1300 7
#define ENC_SAFTE 0x20
#define ENC_J300 0x21
#define ENC_VITESSE_7153 0x22
#define ENC_VITESSE_7154 0x23
#define ENC_VITESSE_7155 0x24
#define ENC_VITESSE_7157 0x25
#define ENC_VITESSE_7160 0x26
#define ENC_LSI 0x27
#define ENC_OTHER 0x28
#define SYNC_KIND_HBA_NORMAL 0 /* normal sync (common sense) */
#define SYNC_KIND_HBA_CHECKONLY 1 /* consistency checking only, without fixing */
//add 20050812
/****************************************************************
* Flash Control: can support following functions *
* 1. Upload Image *
* 2. Download Image *
* 2. Get Flash Type, Size *
****************************************************************/
/* SDRAM [126M,127M) is used for Flash. [127M,128M) is used by Redboot. */
//add 20050812
#if defined(LINUX) || defined(FREEBSD)
#define FLASH_IMAGE_PAGE_SIZE 1024*8
#define FLASH_IMAGE_PAGE_COUNT 256
#else
#define FLASH_IMAGE_PAGE_SIZE 1024*64
#define FLASH_IMAGE_PAGE_COUNT 20
#endif
#define FLASH_IMAGE_MAX_LENGTH (FLASH_IMAGE_PAGE_SIZE*FLASH_IMAGE_PAGE_COUNT)
#define FLASH_IMAGE_TYPE_BIOS 0
#define FLASH_IMAGE_TYPE_FIRMWARE 1
#define FLASH_IMAGE_TYPE_REDBOOT 2
#define FLASH_IMAGE_TYPE_FCONFIG 3
#define FLASH_IMAGE_TYPE_FIS 4
#define FLASH_IMAGE_TYPE_TRACE 5
#define FLASH_IMAGE_TYPE_MAX 6
#define FLASH_IMAGE_TYPE_ENC_FW 7
//add end
//
#define PHYDRV_TYPE_UNKNOWN 0
#define PHYDRV_TYPE_SATA 1
#define PHYDRV_TYPE_SAS 4
/* --- functional routines ------------------------------------------------- */
#endif /* __PI_MICEXT_H__ */
/*******************************************************************************
* Change Log
*
* $Log: micext.h,v $
* Revision 1.1 2004/03/24 03:24:12 weny
* I2 API porting
*
******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -