⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 micext.h

📁 RAID卡的测试程序
💻 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 + -