]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Updates to memory stack
authorpete <devnull@localhost>
Wed, 24 Nov 2010 16:16:25 +0000 (17:16 +0100)
committerpete <devnull@localhost>
Wed, 24 Nov 2010 16:16:25 +0000 (17:16 +0100)
memory/Fee/Fee.c

index 5d398fb10f61e70d6d87ea7a85a5f7cf47a60c33..e6dbcd4fb66e4c765c8f30135d79263679edede4 100644 (file)
@@ -579,7 +579,7 @@ static void Reading(void)
 static void BankHeaderOldWrite(uint8 bank)\r
 {\r
        /* Mark the bank as old */\r
-       memset(RWBuffer.BankCtrl.Data, 0xff, BLOCK_DATA_PAGE_SIZE);\r
+       memset(RWBuffer.BankCtrl.Data, 0xff, BANK_CTRL_PAGE_SIZE);\r
        RWBuffer.BankCtrl.BankStatus = BANK_STATUS_OLD;\r
        if (Fls_Write(BankProp[bank].End - BANK_CTRL_PAGE_SIZE, RWBuffer.BankCtrl.Data, BANK_CTRL_PAGE_SIZE) == E_OK) {\r
                SetFlsJobBusy();\r
@@ -843,7 +843,7 @@ static void GarbageCollectWriteHeader(void)
                                CurrentJob.State = FEE_GARBAGE_COLLECT_DATA_READ_REQUESTED;\r
                        } else {\r
                                /* Yes, we are finished */\r
-                               VALIDATE_NO_RV(CurrentJob.AdminFlsBlockPtr->Status == BLOCK_STATUS_EMPTY, FEE_GARBAGE_WRITE_HEADER_ID, FEE_UNEXPECTED_STATUS);\r
+                               VALIDATE_NO_RV(CurrentJob.AdminFlsBlockPtr->Status == BLOCK_STATUS_INVALIDATED, FEE_GARBAGE_WRITE_HEADER_ID, FEE_UNEXPECTED_STATUS);\r
                                CurrentJob.State = FEE_GARBAGE_COLLECT_MAGIC_WRITE_REQUESTED;\r
                        }\r
                } else {\r
@@ -993,11 +993,11 @@ static void BlockHeaderInvalidWrite(void)
        memset(RWBuffer.Byte, 0xff, BLOCK_CTRL_PAGE_SIZE);\r
        RWBuffer.BlockCtrl.DataPage.Data.Status = BLOCK_STATUS_INVALIDATED;\r
        RWBuffer.BlockCtrl.DataPage.Data.BlockNo = CurrentJob.BlockNumber;\r
-       RWBuffer.BlockCtrl.DataPage.Data.BlockDataAddress = 0;\r
+       RWBuffer.BlockCtrl.DataPage.Data.BlockDataAddress = AdminFls.NewBlockDataAddress;\r
        RWBuffer.BlockCtrl.DataPage.Data.BlockDataLength = 0;\r
        memcpy(RWBuffer.BlockCtrl.MagicPage.Byte, MagicMaster, BLOCK_MAGIC_LEN);\r
 \r
-       if (Fls_Write(CurrentJob.Op.Invalidate.WriteAdminAddress + BLOCK_CTRL_DATA_POS_OFFSET, RWBuffer.Byte, BLOCK_DATA_PAGE_SIZE) == E_OK) {\r
+       if (Fls_Write(CurrentJob.Op.Invalidate.WriteAdminAddress + BLOCK_CTRL_DATA_POS_OFFSET, RWBuffer.Byte, BLOCK_CTRL_PAGE_SIZE) == E_OK) {\r
                SetFlsJobBusy();\r
                AdminFls.NewBlockDataAddress += CurrentJob.Length;\r
                AdminFls.NewBlockAdminAddress -= BLOCK_CTRL_PAGE_SIZE;\r
@@ -1049,7 +1049,6 @@ static void InvalidateMarkBankOld(void)
                        CurrentJob.Op.Invalidate.WriteAdminAddress = AdminFls.NewBlockAdminAddress;\r
 \r
                        CurrentJob.State = FEE_WRITE_INVALIDATE_HEADER_REQUESTED;\r
-                       BlockHeaderInvalidWrite();\r
                } else {\r
                        AbortJob(Fls_GetJobResult());\r
                }\r
@@ -1064,8 +1063,6 @@ static void InvalidateWriteInvalidateHeaderRequested(void)
        if (Fls_GetStatus() == MEMIF_IDLE) {\r
                CurrentJob.State = FEE_WRITE_INVALIDATE_HEADER;\r
                BlockHeaderInvalidWrite();\r
-       } else {\r
-               AbortJob(Fls_GetJobResult());\r
        }\r
 }\r
 \r
@@ -1078,7 +1075,7 @@ static void InvalidateWriteInvalidateHeader(void)
        if (CheckFlsJobFinnished()) {\r
                if (Fls_GetJobResult() == MEMIF_JOB_OK) {\r
                        // Update the block admin table\r
-                       CurrentJob.AdminFlsBlockPtr->Status =  BLOCK_STATUS_INUSE;\r
+                       CurrentJob.AdminFlsBlockPtr->Status =  BLOCK_STATUS_INVALIDATED;\r
                        CurrentJob.AdminFlsBlockPtr->BlockAdminAddress = CurrentJob.Op.Invalidate.WriteAdminAddress;\r
                        CurrentJob.AdminFlsBlockPtr->BlockDataAddress = CurrentJob.Op.Invalidate.WriteDataAddress;\r
 \r
@@ -1100,25 +1097,6 @@ static void InvalidateWriteInvalidateHeader(void)
 void Fee_Init(void)\r
 {\r
        uint16 i,j;\r
-#if 0\r
-       uint16 t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11;\r
-       t1 = sizeof(FlsBankStatusType);\r
-       t2 = BANK_CTRL_PAGE_SIZE;\r
-       t3 = sizeof(FlsBankCtrlPageType);\r
-\r
-       t4 = sizeof(BlockStatusType);\r
-       t5 = sizeof(FlsBlockDataType);\r
-       t6 = BLOCK_DATA_PAGE_SIZE;\r
-       t7 = sizeof(FlsBlockDataPageType);\r
-\r
-\r
-       t8 = sizeof(FlsBlockMagicPageType);\r
-       t9 = BLOCK_MAGIC_PAGE_SIZE;\r
-       t10 = sizeof(FlsBlockControlType);\r
-       t11 = BLOCK_CTRL_PAGE_SIZE;\r
-#endif\r
-\r
-\r
 \r
        /* Reporting information */\r
        ModuleStatus = MEMIF_BUSY_INTERNAL;\r