array.h (149871) | array.h (190809) |
---|---|
1/* 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 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 * | 1/* 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 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 149871 2005-09-07 23:33:26Z scottl $ | 26 * $FreeBSD: head/sys/dev/hptmv/array.h 190809 2009-04-07 16:38:25Z delphij $ |
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 ULONG failedStamps[4]; /* stamp for failed members */ |
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 */ | 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 */ |
87 UCHAR PrivateFlag1; | 87 UCHAR alreadyBroken; |
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 */ | 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 */ |
155 UCHAR PrivateFlag1; /* private */ 156 UCHAR reserve1; | 155 UCHAR PrivateFlag1; /* private */ 156 UCHAR alreadyBroken; /* last stamp has been saved to failedStamps */ |
157 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; --- 11 unchanged lines hidden (view full) --- 176#endif 177 178 struct { 179 ULONG CapacityHi32; 180 ULONG RebuildSectorsHi32; 181 } 182 levelex[2]; 183 | 157 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; --- 11 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 */ | 184 ULONG failedStamps[4]; /* failed memebrs's stamps */ |
185 186} ArrayDescript; 187 188/* report an error if ArrayDescript size exceed 512 */ 189typedef char ArrayDescript_size_should_not_exceed_512[512-sizeof(ArrayDescript)]; 190 191#pragma pack() 192 --- 83 unchanged lines hidden --- | 185 186} ArrayDescript; 187 188/* report an error if ArrayDescript size exceed 512 */ 189typedef char ArrayDescript_size_should_not_exceed_512[512-sizeof(ArrayDescript)]; 190 191#pragma pack() 192 --- 83 unchanged lines hidden --- |