version 1.12.2.3, 2004/09/21 13:32:52 |
version 1.12.2.4, 2005/03/04 16:50:06 |
Line 63 RF_RedFuncs_t rf_eoERecoveryFuncs = {rf_ |
|
Line 63 RF_RedFuncs_t rf_eoERecoveryFuncs = {rf_ |
|
/********************************************************************************************** |
/********************************************************************************************** |
* the following encoding node functions is used in EO_000_CreateLargeWriteDAG |
* the following encoding node functions is used in EO_000_CreateLargeWriteDAG |
**********************************************************************************************/ |
**********************************************************************************************/ |
int |
int |
rf_RegularPEFunc(node) |
rf_RegularPEFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |
Line 93 rf_RegularPEFunc(node) |
|
Line 93 rf_RegularPEFunc(node) |
|
old data and new data, then encode temp buf into old 'E' buf to form new 'E', but this approach |
old data and new data, then encode temp buf into old 'E' buf to form new 'E', but this approach |
take the same speed as the previous, and need more memory. |
take the same speed as the previous, and need more memory. |
*/ |
*/ |
int |
int |
rf_RegularONEFunc(node) |
rf_RegularONEFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |
Line 153 rf_RegularONEFunc(node) |
|
Line 153 rf_RegularONEFunc(node) |
|
#endif |
#endif |
} |
} |
|
|
int |
int |
rf_SimpleONEFunc(node) |
rf_SimpleONEFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |
Line 194 rf_SimpleONEFunc(node) |
|
Line 194 rf_SimpleONEFunc(node) |
|
|
|
|
|
/****** called by rf_RegularPEFunc(node) and rf_RegularEFunc(node) in f.f. large write ********/ |
/****** called by rf_RegularPEFunc(node) and rf_RegularEFunc(node) in f.f. large write ********/ |
void |
void |
rf_RegularESubroutine(node, ebuf) |
rf_RegularESubroutine(node, ebuf) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
char *ebuf; |
char *ebuf; |
Line 227 rf_RegularESubroutine(node, ebuf) |
|
Line 227 rf_RegularESubroutine(node, ebuf) |
|
/******************************************************************************************* |
/******************************************************************************************* |
* Used in EO_001_CreateLargeWriteDAG |
* Used in EO_001_CreateLargeWriteDAG |
******************************************************************************************/ |
******************************************************************************************/ |
int |
int |
rf_RegularEFunc(node) |
rf_RegularEFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |
Line 250 rf_RegularEFunc(node) |
|
Line 250 rf_RegularEFunc(node) |
|
* other than the above two into smaller accesses. We may have to change |
* other than the above two into smaller accesses. We may have to change |
* DegrESubroutin in the future. |
* DegrESubroutin in the future. |
*******************************************************************************************/ |
*******************************************************************************************/ |
void |
void |
rf_DegrESubroutine(node, ebuf) |
rf_DegrESubroutine(node, ebuf) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
char *ebuf; |
char *ebuf; |
Line 288 rf_DegrESubroutine(node, ebuf) |
|
Line 288 rf_DegrESubroutine(node, ebuf) |
|
* failed in the stripe but not accessed at this time, then we should, instead, use |
* failed in the stripe but not accessed at this time, then we should, instead, use |
* the rf_EOWriteDoubleRecoveryFunc(). |
* the rf_EOWriteDoubleRecoveryFunc(). |
**************************************************************************************/ |
**************************************************************************************/ |
int |
int |
rf_Degraded_100_EOFunc(node) |
rf_Degraded_100_EOFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |
Line 304 rf_Degraded_100_EOFunc(node) |
|
Line 304 rf_Degraded_100_EOFunc(node) |
|
* However, in evenodd this function can also be used as decoding function to recover |
* However, in evenodd this function can also be used as decoding function to recover |
* data from dead disk in the case of parity failure and a single data failure. |
* data from dead disk in the case of parity failure and a single data failure. |
**************************************************************************************/ |
**************************************************************************************/ |
void |
void |
rf_e_EncOneSect( |
rf_e_EncOneSect( |
RF_RowCol_t srcLogicCol, |
RF_RowCol_t srcLogicCol, |
char *srcSecbuf, |
char *srcSecbuf, |
Line 379 rf_e_EncOneSect( |
|
Line 379 rf_e_EncOneSect( |
|
} |
} |
} |
} |
|
|
void |
void |
rf_e_encToBuf( |
rf_e_encToBuf( |
RF_Raid_t * raidPtr, |
RF_Raid_t * raidPtr, |
RF_RowCol_t srcLogicCol, |
RF_RowCol_t srcLogicCol, |
|
|
* to recover the data in dead disk. This function is used in the recovery node of |
* to recover the data in dead disk. This function is used in the recovery node of |
* for EO_110_CreateReadDAG |
* for EO_110_CreateReadDAG |
**************************************************************************************/ |
**************************************************************************************/ |
int |
int |
rf_RecoveryEFunc(node) |
rf_RecoveryEFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |
Line 445 rf_RecoveryEFunc(node) |
|
Line 445 rf_RecoveryEFunc(node) |
|
* This function is used in the case where one data and the parity have filed. |
* This function is used in the case where one data and the parity have filed. |
* (in EO_110_CreateWriteDAG ) |
* (in EO_110_CreateWriteDAG ) |
**************************************************************************************/ |
**************************************************************************************/ |
int |
int |
rf_EO_DegradedWriteEFunc(RF_DagNode_t * node) |
rf_EO_DegradedWriteEFunc(RF_DagNode_t * node) |
{ |
{ |
rf_DegrESubroutine(node, node->results[0]); |
rf_DegrESubroutine(node, node->results[0]); |
Line 461 rf_EO_DegradedWriteEFunc(RF_DagNode_t * |
|
Line 461 rf_EO_DegradedWriteEFunc(RF_DagNode_t * |
|
* THE FUNCTION IS FOR DOUBLE DEGRADED READ AND WRITE CASES |
* THE FUNCTION IS FOR DOUBLE DEGRADED READ AND WRITE CASES |
**************************************************************************************/ |
**************************************************************************************/ |
|
|
void |
void |
rf_doubleEOdecode( |
rf_doubleEOdecode( |
RF_Raid_t * raidPtr, |
RF_Raid_t * raidPtr, |
char **rrdbuf, |
char **rrdbuf, |
Line 654 rf_doubleEOdecode( |
|
Line 654 rf_doubleEOdecode( |
|
* EO_200_CreateReadDAG |
* EO_200_CreateReadDAG |
* |
* |
***************************************************************************************/ |
***************************************************************************************/ |
int |
int |
rf_EvenOddDoubleRecoveryFunc(node) |
rf_EvenOddDoubleRecoveryFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |
Line 852 rf_EvenOddDoubleRecoveryFunc(node) |
|
Line 852 rf_EvenOddDoubleRecoveryFunc(node) |
|
* many accesses of single stripe unit. |
* many accesses of single stripe unit. |
*/ |
*/ |
|
|
int |
int |
rf_EOWriteDoubleRecoveryFunc(node) |
rf_EOWriteDoubleRecoveryFunc(node) |
RF_DagNode_t *node; |
RF_DagNode_t *node; |
{ |
{ |