Lines Matching defs:raidPtr
65 RF_Raid_t *raidPtr, RF_Config_t *cfgPtr)
67 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout;
73 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList);
79 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, 2, raidPtr->cleanupList);
82 for (i = 0; i < raidPtr->numCol; i++) {
83 info->stripeIdentifier[i][0] = i % raidPtr->numCol;
84 info->stripeIdentifier[i][1] = (i + 1) % raidPtr->numCol;
89 (2 * raidPtr->numCol - 2));
90 info->numSparingRegions = num_used_stripeUnitsPerDisk / (2 * raidPtr->numCol - 2);
91 info->stripeUnitsPerSparingRegion = raidPtr->numCol * (raidPtr->numCol - 1);
92 info->mirrorStripeOffset = info->numSparingRegions * (raidPtr->numCol - 1);
100 raidPtr->sectorsPerDisk =
103 raidPtr->totalSectors =
106 layoutPtr->stripeUnitsPerDisk = raidPtr->sectorsPerDisk / layoutPtr->sectorsPerStripeUnit;
112 rf_GetNumSpareRUsChainDecluster(RF_Raid_t *raidPtr)
114 RF_ChaindeclusterConfigInfo_t *info = (RF_ChaindeclusterConfigInfo_t *) raidPtr->Layout.layoutSpecificInfo;
126 rf_MapSectorChainDecluster(RF_Raid_t *raidPtr, RF_RaidAddr_t raidSector,
130 RF_ChaindeclusterConfigInfo_t *info = (RF_ChaindeclusterConfigInfo_t *) raidPtr->Layout.layoutSpecificInfo;
131 RF_StripeNum_t SUID = raidSector / raidPtr->Layout.sectorsPerStripeUnit;
138 index_within_disk = index_within_region / raidPtr->numCol;
139 col_before_remap = SUID % raidPtr->numCol;
143 *diskSector = (index_within_disk + ((raidPtr->numCol - 1) * sparing_region_id)) *
144 raidPtr->Layout.sectorsPerStripeUnit;
145 *diskSector += (raidSector % raidPtr->Layout.sectorsPerStripeUnit);
148 *diskSector = sparing_region_id * (raidPtr->numCol + 1) * raidPtr->Layout.sectorsPerStripeUnit;
149 *diskSector += (raidPtr->numCol - 1) * raidPtr->Layout.sectorsPerStripeUnit;
150 *diskSector += (raidSector % raidPtr->Layout.sectorsPerStripeUnit);
151 index_within_disk = index_within_region / raidPtr->numCol;
155 if (index_within_disk == raidPtr->numCol - 2) {
156 *col = (col_before_remap + raidPtr->numCol - 1) % raidPtr->numCol;
157 *diskSector += raidPtr->Layout.sectorsPerStripeUnit;
159 *col = (index_within_disk + 2) % raidPtr->numCol;
170 rf_MapParityChainDecluster(RF_Raid_t *raidPtr, RF_RaidAddr_t raidSector,
174 RF_ChaindeclusterConfigInfo_t *info = (RF_ChaindeclusterConfigInfo_t *) raidPtr->Layout.layoutSpecificInfo;
175 RF_StripeNum_t SUID = raidSector / raidPtr->Layout.sectorsPerStripeUnit;
181 *col = SUID % raidPtr->numCol;
182 *col = (*col + 1) % raidPtr->numCol;
183 *diskSector = info->mirrorStripeOffset * raidPtr->Layout.sectorsPerStripeUnit;
184 *diskSector += (SUID / raidPtr->numCol) * raidPtr->Layout.sectorsPerStripeUnit;
185 *diskSector += (raidSector % raidPtr->Layout.sectorsPerStripeUnit);
190 index_within_disk = index_within_region / raidPtr->numCol;
191 *diskSector = sparing_region_id * (raidPtr->numCol + 1) * raidPtr->Layout.sectorsPerStripeUnit;
192 *diskSector += (raidPtr->numCol) * raidPtr->Layout.sectorsPerStripeUnit;
193 *diskSector += (raidSector % raidPtr->Layout.sectorsPerStripeUnit);
194 col_before_remap = SUID % raidPtr->numCol;
198 if (index_within_disk == raidPtr->numCol - 2) {
199 *col = (col_before_remap + 2) % raidPtr->numCol;
200 *diskSector -= raidPtr->Layout.sectorsPerStripeUnit;
202 *col = (index_within_disk + 2) % raidPtr->numCol;
208 rf_IdentifyStripeChainDecluster(RF_Raid_t *raidPtr, RF_RaidAddr_t addr,
211 RF_ChaindeclusterConfigInfo_t *info = (RF_ChaindeclusterConfigInfo_t *) raidPtr->Layout.layoutSpecificInfo;
215 SUID = addr / raidPtr->Layout.sectorsPerStripeUnit;
216 col = SUID % raidPtr->numCol;
232 * Parameters: raidPtr - description of the physical array
239 rf_RAIDCDagSelect(RF_Raid_t *raidPtr, RF_IoType_t type,
257 if ((raidPtr->status == rf_rs_degraded) || (raidPtr->status == rf_rs_reconstructing))