array.h (142988) | array.h (149871) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2003-2004 HighPoint Technologies, Inc. | 2 * Copyright (c) 2004-2005 HighPoint Technologies, Inc. |
3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright --- 7 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright --- 7 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/dev/hptmv/array.h 142988 2005-03-02 05:14:28Z scottl $ | 26 * $FreeBSD: head/sys/dev/hptmv/array.h 149871 2005-09-07 23:33:26Z scottl $ |
27 */ 28 29#ifndef _ARRAY_H_ 30#define _ARRAY_H_ 31 32/* 33 * time represented in DWORD format 34 */ --- 22 unchanged lines hidden (view full) --- 57 * basic information 58 */ 59 UCHAR bArnMember; /* the number of members in array */ 60 UCHAR bArRealnMember; /* real member count */ 61 UCHAR bArBlockSizeShift; /* the number of shift bit for a block */ 62 UCHAR reserve1; 63 64 ULONG dArStamp; /* array ID. all disks in a array has same ID */ | 27 */ 28 29#ifndef _ARRAY_H_ 30#define _ARRAY_H_ 31 32/* 33 * time represented in DWORD format 34 */ --- 22 unchanged lines hidden (view full) --- 57 * basic information 58 */ 59 UCHAR bArnMember; /* the number of members in array */ 60 UCHAR bArRealnMember; /* real member count */ 61 UCHAR bArBlockSizeShift; /* the number of shift bit for a block */ 62 UCHAR reserve1; 63 64 ULONG dArStamp; /* array ID. all disks in a array has same ID */ |
65 ULONG failedStamp; /* stamp for failed member */ |
|
65 USHORT bStripeWitch; /* = (1 << BlockSizeShift) */ 66 67 USHORT rf_broken: 1; 68 USHORT rf_need_rebuild: 1; /* one member's data are incorrect. 69 for R5, if CriticalMembers==0, it means 70 parity needs to be constructed */ 71 USHORT rf_need_sync: 1; /* need write array info to disk */ 72 /* ioctl flags */ --- 5 unchanged lines hidden (view full) --- 78 USHORT rf_abort_rebuild: 1; 79 USHORT rf_duplicate_and_create: 1; 80 USHORT rf_duplicate_and_created: 1; 81 USHORT rf_duplicate_must_done: 1; 82 USHORT rf_raid15: 1; 83 84 USHORT CriticalMembers; /* tell which member is critial */ 85 UCHAR last_read; /* for RAID 1 load banlancing */ | 66 USHORT bStripeWitch; /* = (1 << BlockSizeShift) */ 67 68 USHORT rf_broken: 1; 69 USHORT rf_need_rebuild: 1; /* one member's data are incorrect. 70 for R5, if CriticalMembers==0, it means 71 parity needs to be constructed */ 72 USHORT rf_need_sync: 1; /* need write array info to disk */ 73 /* ioctl flags */ --- 5 unchanged lines hidden (view full) --- 79 USHORT rf_abort_rebuild: 1; 80 USHORT rf_duplicate_and_create: 1; 81 USHORT rf_duplicate_and_created: 1; 82 USHORT rf_duplicate_must_done: 1; 83 USHORT rf_raid15: 1; 84 85 USHORT CriticalMembers; /* tell which member is critial */ 86 UCHAR last_read; /* for RAID 1 load banlancing */ |
86 UCHAR pad1; | 87 UCHAR PrivateFlag1; |
87 88 LBA_T RebuildSectors; /* how many sectors is OK (LBA on member disk) */ 89 90 PVDevice pMember[MAX_MEMBERS]; 91 /* 92 * utility working data 93 */ 94 UCHAR ArrayName[MAX_ARRAY_NAME]; /* The Name of the array */ --- 51 unchanged lines hidden (view full) --- 146 TIME_RECORD CreateTime; /* when created it */ 147 UCHAR Description[64]; /* array description */ 148 UCHAR CreateManager[16]; /* who created it */ 149 150#define ArrayDescript_3_0_size ((unsigned)(ULONG_PTR)&((struct _ArrayDescript *)0)->bCheckSum31) 151#define ArrayDescript_3_1_size 512 152 153 UCHAR bCheckSum31; /* new check sum */ | 88 89 LBA_T RebuildSectors; /* how many sectors is OK (LBA on member disk) */ 90 91 PVDevice pMember[MAX_MEMBERS]; 92 /* 93 * utility working data 94 */ 95 UCHAR ArrayName[MAX_ARRAY_NAME]; /* The Name of the array */ --- 51 unchanged lines hidden (view full) --- 147 TIME_RECORD CreateTime; /* when created it */ 148 UCHAR Description[64]; /* array description */ 149 UCHAR CreateManager[16]; /* who created it */ 150 151#define ArrayDescript_3_0_size ((unsigned)(ULONG_PTR)&((struct _ArrayDescript *)0)->bCheckSum31) 152#define ArrayDescript_3_1_size 512 153 154 UCHAR bCheckSum31; /* new check sum */ |
154 UCHAR reserve2[2]; | 155 UCHAR PrivateFlag1; /* private */ 156 UCHAR reserve1; 157 |
155#ifdef __BIG_ENDIAN_BITFIELD 156 UCHAR df_read_ahead: 1; /* enable read ahead */ 157 UCHAR df_read_ahead_set: 1; 158 UCHAR df_write_cache: 1; /* enable write cache */ 159 UCHAR df_write_cache_set: 1; 160 UCHAR df_ncq: 1; /* enable NCQ */ 161 UCHAR df_ncq_set: 1; 162 UCHAR df_tcq: 1; /* enable TCQ */ --- 10 unchanged lines hidden (view full) --- 173#endif 174 175 struct { 176 ULONG CapacityHi32; 177 ULONG RebuildSectorsHi32; 178 } 179 levelex[2]; 180 | 158#ifdef __BIG_ENDIAN_BITFIELD 159 UCHAR df_read_ahead: 1; /* enable read ahead */ 160 UCHAR df_read_ahead_set: 1; 161 UCHAR df_write_cache: 1; /* enable write cache */ 162 UCHAR df_write_cache_set: 1; 163 UCHAR df_ncq: 1; /* enable NCQ */ 164 UCHAR df_ncq_set: 1; 165 UCHAR df_tcq: 1; /* enable TCQ */ --- 10 unchanged lines hidden (view full) --- 176#endif 177 178 struct { 179 ULONG CapacityHi32; 180 ULONG RebuildSectorsHi32; 181 } 182 levelex[2]; 183 |
184 ULONG failedStamp; /* array stamp for failed memebr */ 185 |
|
181} ArrayDescript; 182 | 186} ArrayDescript; 187 |
188/* report an error if ArrayDescript size exceed 512 */ 189typedef char ArrayDescript_size_should_not_exceed_512[512-sizeof(ArrayDescript)]; 190 |
|
183#pragma pack() 184 185/* Signature */ 186#define HPT_ARRAY_V3 0x5a7816f3 187#ifdef ARRAY_V2_ONLY 188#define SAVE_FOR_RAID_INFO 0 189#else 190#define SAVE_FOR_RAID_INFO 10 --- 77 unchanged lines hidden --- | 191#pragma pack() 192 193/* Signature */ 194#define HPT_ARRAY_V3 0x5a7816f3 195#ifdef ARRAY_V2_ONLY 196#define SAVE_FOR_RAID_INFO 0 197#else 198#define SAVE_FOR_RAID_INFO 10 --- 77 unchanged lines hidden --- |