Lines Matching refs:array
94 if ((pVDevice->u.array.dArStamp != 0) && (pVDevice == p)) in check_VDevice_valid()
130 if(pVDevice->u.array.rf_need_rebuild && !pVDevice->u.array.rf_duplicate_and_create) in get_array_flag()
134 if(pVDevice->u.array.rf_rebuilding) in get_array_flag()
138 if(pVDevice->u.array.rf_verifying) in get_array_flag()
142 if(pVDevice->u.array.rf_initializing) in get_array_flag()
146 if(pVDevice->u.array.rf_broken) in get_array_flag()
154 if(pVDevice->u.array.rf_newly_created) in get_array_flag()
162 if(pVDevice->u.array.rf_auto_rebuild) in get_array_flag()
165 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in get_array_flag()
167 PVDevice pMember = pVDevice->u.array.pMember[i]; in get_array_flag()
172 if(pMember->u.array.rf_need_rebuild && in get_array_flag()
173 !pMember->u.array.rf_duplicate_and_create) in get_array_flag()
177 if(pMember->u.array.rf_rebuilding) in get_array_flag()
181 if(pMember->u.array.rf_verifying) in get_array_flag()
185 if(pMember->u.array.rf_initializing) in get_array_flag()
189 if(pMember->u.array.rf_broken) in get_array_flag()
193 if(pMember->u.array.rf_newly_created) in get_array_flag()
197 if(pMember->u.array.rf_auto_rebuild) in get_array_flag()
207 DWORD result = ((ULONG)(pVDevice->u.array.RebuildSectors>>11)*1000 / in calc_rebuild_progress()
208 (ULONG)(pVDevice->VDeviceCapacity>>11) * (pVDevice->u.array.bArnMember-1)) * 10; in calc_rebuild_progress()
210 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in calc_rebuild_progress()
212 PVDevice pMember = pVDevice->u.array.pMember[i]; in calc_rebuild_progress()
217 if (pMember->u.array.rf_rebuilding || in calc_rebuild_progress()
218 pMember->u.array.rf_verifying || in calc_rebuild_progress()
219 pMember->u.array.rf_initializing) in calc_rebuild_progress()
221 DWORD percent = ((ULONG)(pMember->u.array.RebuildSectors>>11)*1000 / in calc_rebuild_progress()
222 (ULONG)(pMember->VDeviceCapacity>>11) * (pMember->u.array.bArnMember-1)) * 10; in calc_rebuild_progress()
236 memcpy(pArrayInfo->Name, pVDevice->u.array.ArrayName, MAX_ARRAY_NAME); in get_array_info()
238 pArrayInfo->BlockSizeShift = pVDevice->u.array.bArBlockSizeShift; in get_array_info()
239 pArrayInfo->RebuiltSectors = pVDevice->u.array.RebuildSectors; in get_array_info()
245 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in get_array_info()
246 if(pVDevice->u.array.pMember[i] != NULL) in get_array_info()
247 pArrayInfo->Members[pArrayInfo->nDisk++] = VDEV_TO_ID(pVDevice->u.array.pMember[i]); in get_array_info()
257 memcpy(pArrayInfo->Name, pVDevice->u.array.ArrayName, MAX_ARRAYNAME_LEN); in get_array_info_v2()
259 pArrayInfo->BlockSizeShift = pVDevice->u.array.bArBlockSizeShift; in get_array_info_v2()
260 pArrayInfo->RebuiltSectors.lo32 = pVDevice->u.array.RebuildSectors; in get_array_info_v2()
261 pArrayInfo->RebuiltSectors.hi32 = sizeof(LBA_T)>4? (pVDevice->u.array.RebuildSectors>>32) : 0; in get_array_info_v2()
267 for(i = 0; i < pVDevice->u.array.bArnMember; i++) in get_array_info_v2()
268 if(pVDevice->u.array.pMember[i] != NULL) in get_array_info_v2()
269 pArrayInfo->Members[pArrayInfo->nDisk++] = VDEV_TO_ID(pVDevice->u.array.pMember[i]); in get_array_info_v2()
526 get_array_info(pVDevice, &pInfo->u.array); in hpt_get_device_info()
551 get_array_info_v2(pVDevice, &pInfo->u.array); in hpt_get_device_info_v2()
612 pArray->u.array.rf_need_rebuild = 1; in hpt_create_array_v2()
620 pArray->u.array.bArnMember = pParam->nDisk; in hpt_create_array_v2()
621 pArray->u.array.bArRealnMember = pParam->nDisk; in hpt_create_array_v2()
622 pArray->u.array.bArBlockSizeShift = pParam->BlockSizeShift; in hpt_create_array_v2()
623 pArray->u.array.bStripeWitch = (1 << pParam->BlockSizeShift); in hpt_create_array_v2()
624 pArray->u.array.dArStamp = Stamp; in hpt_create_array_v2()
626 pArray->u.array.rf_need_sync = 1; in hpt_create_array_v2()
627 pArray->u.array.rf_newly_created = 1; in hpt_create_array_v2()
632 pArray->u.array.rf_newly_created = 0; /* R1 shall still be accessible */ in hpt_create_array_v2()
633 pArray->u.array.rf_need_rebuild = 1; in hpt_create_array_v2()
634 pArray->u.array.rf_auto_rebuild = 1; in hpt_create_array_v2()
635 pArray->u.array.rf_duplicate_and_create = 1; in hpt_create_array_v2()
642 pArray->u.array.RebuildSectors = pArray->u.array.rf_need_rebuild? 0 : MAX_LBA_T; in hpt_create_array_v2()
644 memcpy(pArray->u.array.ArrayName, pParam->ArrayName, MAX_ARRAY_NAME); in hpt_create_array_v2()
648 pArray->u.array.pMember[i] = ID_TO_VDEV(pParam->Members[i]); in hpt_create_array_v2()
649 pArray->u.array.pMember[i]->bSerialNumber = i; in hpt_create_array_v2()
650 pArray->u.array.pMember[i]->pParent = pArray; in hpt_create_array_v2()
656 UnregisterVDevice(pArray->u.array.pMember[i]); in hpt_create_array_v2()
659 pArray->u.array.pMember[i]->vf_cache_disk = 1; in hpt_create_array_v2()
669 pChild->u.array.bArnMember = 2; in hpt_create_array_v2()
670 pChild->u.array.bArRealnMember = 2; in hpt_create_array_v2()
671 pChild->u.array.bArBlockSizeShift = pParam->BlockSizeShift; in hpt_create_array_v2()
672 pChild->u.array.bStripeWitch = (1 << pParam->BlockSizeShift); in hpt_create_array_v2()
673 pChild->u.array.dArStamp = Stamp; in hpt_create_array_v2()
675 pChild->u.array.rf_need_sync = 1; in hpt_create_array_v2()
676 pChild->u.array.rf_newly_created = 1; in hpt_create_array_v2()
678 pChild->u.array.RebuildSectors = MAX_LBA_T; in hpt_create_array_v2()
680 memcpy(pChild->u.array.ArrayName, pParam->ArrayName, MAX_ARRAY_NAME); in hpt_create_array_v2()
684 pChild->u.array.pMember[j] = ID_TO_VDEV(pParam->Members[i*2 + j]); in hpt_create_array_v2()
685 pChild->u.array.pMember[j]->bSerialNumber = j; in hpt_create_array_v2()
686 pChild->u.array.pMember[j]->pParent = pChild; in hpt_create_array_v2()
687 pChild->u.array.pMember[j]->pfnDeviceFailed = pfnDeviceFailed[pChild->VDeviceType]; in hpt_create_array_v2()
688 UnregisterVDevice(pChild->u.array.pMember[j]); in hpt_create_array_v2()
691 pArray->u.array.pMember[i] = pChild; in hpt_create_array_v2()
696 pChild->VDeviceCapacity = MIN(pChild->u.array.pMember[0]->VDeviceCapacity, in hpt_create_array_v2()
697 pChild->u.array.pMember[1]->VDeviceCapacity); in hpt_create_array_v2()
705 pArray->u.array.bArnMember = pParam->nDisk / 2; in hpt_create_array_v2()
706 pArray->u.array.bArRealnMember = pParam->nDisk / 2; in hpt_create_array_v2()
707 pArray->u.array.bArBlockSizeShift = pParam->BlockSizeShift; in hpt_create_array_v2()
708 pArray->u.array.bStripeWitch = (1 << pParam->BlockSizeShift); in hpt_create_array_v2()
709 pArray->u.array.dArStamp = Stamp; in hpt_create_array_v2()
711 pArray->u.array.rf_need_sync = 1; in hpt_create_array_v2()
712 pArray->u.array.rf_newly_created = 1; in hpt_create_array_v2()
714 memcpy(pArray->u.array.ArrayName, pParam->ArrayName, MAX_ARRAY_NAME); in hpt_create_array_v2()
722 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
723 pArray->u.array.pMember[i]->pfnDeviceFailed = pfnDeviceFailed[pArray->VDeviceType]; in hpt_create_array_v2()
728 pArray->vf_bootmark = pArray->u.array.pMember[0]->vf_bootmark; in hpt_create_array_v2()
729 pArray->vf_bootable = pArray->u.array.pMember[0]->vf_bootable; in hpt_create_array_v2()
730 pArray->u.array.pMember[0]->vf_bootable = 0; in hpt_create_array_v2()
731 pArray->u.array.pMember[0]->vf_bootmark = 0; in hpt_create_array_v2()
735 pArray->u.array.rf_duplicate_and_created = 1; in hpt_create_array_v2()
756 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
757 if(pArray->u.array.pMember[i]->VDeviceCapacity < capacity) in hpt_create_array_v2()
758 capacity = pArray->u.array.pMember[i]->VDeviceCapacity; in hpt_create_array_v2()
762 capacity &= ~(pArray->u.array.bStripeWitch - 1); in hpt_create_array_v2()
764 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
765 if (mIsArray(pArray->u.array.pMember[i])) in hpt_create_array_v2()
766 pArray->u.array.pMember[i]->VDeviceCapacity = capacity; in hpt_create_array_v2()
767 pArray->VDeviceCapacity = capacity * pArray->u.array.bArnMember; in hpt_create_array_v2()
771 pArray->VDeviceCapacity = MIN(pArray->u.array.pMember[0]->VDeviceCapacity, in hpt_create_array_v2()
772 pArray->u.array.pMember[1]->VDeviceCapacity); in hpt_create_array_v2()
776 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
777 pArray->VDeviceCapacity += pArray->u.array.pMember[i]->VDeviceCapacity in hpt_create_array_v2()
785 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
786 if(pArray->u.array.pMember[i]->VDeviceCapacity < capacity) in hpt_create_array_v2()
787 capacity = pArray->u.array.pMember[i]->VDeviceCapacity; in hpt_create_array_v2()
788 pArray->VDeviceCapacity = rounddown2(capacity, pArray->u.array.bStripeWitch) * in hpt_create_array_v2()
789 (pArray->u.array.bArnMember - 1); in hpt_create_array_v2()
800 if (!pArray->u.array.rf_duplicate_and_created) in hpt_create_array_v2()
805 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_create_array_v2()
807 pChild = pArray->u.array.pMember[i]; in hpt_create_array_v2()
846 pArray2 = pArray1->u.array.pMember[1]; in old_add_disk_to_raid01()
851 pArray2->u.array.dArStamp = GetStamp(); in old_add_disk_to_raid01()
853 pArray2->u.array.rf_broken = 1; in old_add_disk_to_raid01()
854 pArray2->u.array.bArBlockSizeShift = pArray1->u.array.bArBlockSizeShift; in old_add_disk_to_raid01()
855 pArray2->u.array.bStripeWitch = (1 << pArray2->u.array.bArBlockSizeShift); in old_add_disk_to_raid01()
856 pArray2->u.array.bArnMember = 2; in old_add_disk_to_raid01()
860 memcpy(pArray2->u.array.ArrayName, pArray1->u.array.ArrayName, MAX_ARRAY_NAME); in old_add_disk_to_raid01()
863 pArray1->u.array.pMember[1] = pArray2; in old_add_disk_to_raid01()
864 pArray1->u.array.bArRealnMember++; in old_add_disk_to_raid01()
867 for(i = 0; i < pArray2->u.array.bArnMember; i++) in old_add_disk_to_raid01()
868 if((pArray2->u.array.pMember[i] == NULL) || !pArray2->u.array.pMember[i]->vf_online) in old_add_disk_to_raid01()
870 if(pArray2->u.array.pMember[i] != NULL) in old_add_disk_to_raid01()
871 pArray2->u.array.pMember[i]->pParent = NULL; in old_add_disk_to_raid01()
872 pArray2->u.array.pMember[i] = pDisk; in old_add_disk_to_raid01()
887 pArray2->u.array.bArRealnMember++; in old_add_disk_to_raid01()
888 if(pArray2->u.array.bArnMember == pArray2->u.array.bArRealnMember){ in old_add_disk_to_raid01()
890 pArray2->u.array.rf_broken = 0; in old_add_disk_to_raid01()
893 if(pArray1->u.array.pMember[0]->vf_online && pArray1->u.array.pMember[1]->vf_online){ in old_add_disk_to_raid01()
894 pArray1->u.array.bArRealnMember = pArray1->u.array.bArnMember; in old_add_disk_to_raid01()
895 pArray1->u.array.rf_broken = 0; in old_add_disk_to_raid01()
896 pArray1->u.array.rf_need_rebuild = 1; in old_add_disk_to_raid01()
897 pArray1->u.array.rf_auto_rebuild = 1; in old_add_disk_to_raid01()
900 pArray1->u.array.RebuildSectors = 0; in old_add_disk_to_raid01()
901 pArray1->u.array.dArStamp = GetStamp(); in old_add_disk_to_raid01()
917 if(!pArray->u.array.rf_broken) return -1; in hpt_add_disk_to_array()
927 pArray->u.array.pMember[0] && in hpt_add_disk_to_array()
928 mIsArray(pArray->u.array.pMember[0])) in hpt_add_disk_to_array()
937 Capacity = pArray->VDeviceCapacity / (pArray->u.array.bArnMember - 1); in hpt_add_disk_to_array()
947 for(i = 0; i < pArray->u.array.bArnMember; i++) in hpt_add_disk_to_array()
948 if((pArray->u.array.pMember[i] == 0) || !pArray->u.array.pMember[i]->vf_online) in hpt_add_disk_to_array()
950 if(pArray->u.array.pMember[i] != NULL) in hpt_add_disk_to_array()
951 pArray->u.array.pMember[i]->pParent = NULL; in hpt_add_disk_to_array()
952 pArray->u.array.pMember[i] = pDisk; in hpt_add_disk_to_array()
969 pArray->u.array.bArRealnMember++; in hpt_add_disk_to_array()
970 if(pArray->u.array.bArnMember == pArray->u.array.bArRealnMember) in hpt_add_disk_to_array()
972 pArray->u.array.rf_need_rebuild = 1; in hpt_add_disk_to_array()
973 pArray->u.array.RebuildSectors = 0; in hpt_add_disk_to_array()
974 pArray->u.array.rf_auto_rebuild = 1; in hpt_add_disk_to_array()
975 pArray->u.array.rf_broken = 0; in hpt_add_disk_to_array()
977 pArray->u.array.RebuildSectors = 0; in hpt_add_disk_to_array()
981 pArray->u.array.dArStamp = GetStamp(); in hpt_add_disk_to_array()
1035 memset(pVDevice->u.array.ArrayName, 0, MAX_ARRAY_NAME); in hpt_set_array_info()
1036 memcpy(pVDevice->u.array.ArrayName, pInfo->Name, sizeof(pInfo->Name)); in hpt_set_array_info()
1037 pVDevice->u.array.rf_need_sync = 1; in hpt_set_array_info()
1041 memcpy(pVDevice->u.array.Description, pInfo->Description, sizeof(pInfo->Description)); in hpt_set_array_info()
1042 pVDevice->u.array.rf_need_sync = 1; in hpt_set_array_info()
1045 if (pVDevice->u.array.rf_need_sync) in hpt_set_array_info()