version 1.18.50.1, 2009/01/19 13:19:02 |
version 1.18.50.2, 2009/04/28 07:36:27 |
Line 67 RF_RedFuncs_t rf_eoERecoveryFuncs = {rf_ |
|
Line 67 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(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
rf_RegularESubroutine(node, node->results[1]); |
rf_RegularESubroutine(node, node->results[1]); |
rf_RegularXorFunc(node);/* does the wakeup here! */ |
rf_RegularXorFunc(node);/* does the wakeup here! */ |
Line 97 rf_RegularPEFunc(node) |
|
Line 96 rf_RegularPEFunc(node) |
|
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(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
Line 157 rf_RegularONEFunc(node) |
|
Line 155 rf_RegularONEFunc(node) |
|
} |
} |
|
|
int |
int |
rf_SimpleONEFunc(node) |
rf_SimpleONEFunc(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
Line 198 rf_SimpleONEFunc(node) |
|
Line 195 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(RF_DagNode_t *node, char *ebuf) |
RF_DagNode_t *node; |
|
char *ebuf; |
|
{ |
{ |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
Line 231 rf_RegularESubroutine(node, ebuf) |
|
Line 226 rf_RegularESubroutine(node, ebuf) |
|
* Used in EO_001_CreateLargeWriteDAG |
* Used in EO_001_CreateLargeWriteDAG |
******************************************************************************************/ |
******************************************************************************************/ |
int |
int |
rf_RegularEFunc(node) |
rf_RegularEFunc(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
rf_RegularESubroutine(node, node->results[0]); |
rf_RegularESubroutine(node, node->results[0]); |
rf_GenericWakeupFunc(node, 0); |
rf_GenericWakeupFunc(node, 0); |
Line 254 rf_RegularEFunc(node) |
|
Line 248 rf_RegularEFunc(node) |
|
* DegrESubroutin in the future. |
* DegrESubroutin in the future. |
*******************************************************************************************/ |
*******************************************************************************************/ |
void |
void |
rf_DegrESubroutine(node, ebuf) |
rf_DegrESubroutine(RF_DagNode_t *node, char *ebuf) |
RF_DagNode_t *node; |
|
char *ebuf; |
|
{ |
{ |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
Line 292 rf_DegrESubroutine(node, ebuf) |
|
Line 284 rf_DegrESubroutine(node, ebuf) |
|
* the rf_EOWriteDoubleRecoveryFunc(). |
* the rf_EOWriteDoubleRecoveryFunc(). |
**************************************************************************************/ |
**************************************************************************************/ |
int |
int |
rf_Degraded_100_EOFunc(node) |
rf_Degraded_100_EOFunc(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
rf_DegrESubroutine(node, node->results[1]); |
rf_DegrESubroutine(node, node->results[1]); |
rf_RecoveryXorFunc(node); /* does the wakeup here! */ |
rf_RecoveryXorFunc(node); /* does the wakeup here! */ |
|
|
* for EO_110_CreateReadDAG |
* for EO_110_CreateReadDAG |
**************************************************************************************/ |
**************************************************************************************/ |
int |
int |
rf_RecoveryEFunc(node) |
rf_RecoveryEFunc(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
RF_RaidLayout_t *layoutPtr = (RF_RaidLayout_t *) & raidPtr->Layout; |
Line 658 rf_doubleEOdecode( |
|
Line 648 rf_doubleEOdecode( |
|
* |
* |
***************************************************************************************/ |
***************************************************************************************/ |
int |
int |
rf_EvenOddDoubleRecoveryFunc(node) |
rf_EvenOddDoubleRecoveryFunc(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
int ndataParam = 0; |
int ndataParam = 0; |
int np = node->numParams; |
int np = node->numParams; |
Line 859 rf_EvenOddDoubleRecoveryFunc(node) |
|
Line 848 rf_EvenOddDoubleRecoveryFunc(node) |
|
*/ |
*/ |
|
|
int |
int |
rf_EOWriteDoubleRecoveryFunc(node) |
rf_EOWriteDoubleRecoveryFunc(RF_DagNode_t *node) |
RF_DagNode_t *node; |
|
{ |
{ |
int np = node->numParams; |
int np = node->numParams; |
RF_AccessStripeMap_t *asmap = (RF_AccessStripeMap_t *) node->params[np - 1].p; |
RF_AccessStripeMap_t *asmap = (RF_AccessStripeMap_t *) node->params[np - 1].p; |