]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Refactoring of Fee
authorpete <devnull@localhost>
Thu, 25 Nov 2010 09:29:09 +0000 (10:29 +0100)
committerpete <devnull@localhost>
Thu, 25 Nov 2010 09:29:09 +0000 (10:29 +0100)
memory/Fee/Fee.c

index e6dbcd4fb66e4c765c8f30135d79263679edede4..732d3befac7908242a2f594ed2d83ef2c2a22127 100644 (file)
@@ -91,14 +91,14 @@ typedef struct {
 } BankPropType;\r
 \r
 static const BankPropType BankProp[NUM_OF_BANKS] = {\r
-               {\r
-                               .Start = FEE_BANK1_OFFSET,\r
-                               .End = FEE_BANK1_OFFSET + FEE_BANK1_LENGTH\r
-               },\r
-               {\r
-                               .Start = FEE_BANK2_OFFSET,\r
-                               .End = FEE_BANK2_OFFSET + FEE_BANK2_LENGTH\r
-               },\r
+       {\r
+               .Start = FEE_BANK1_OFFSET,\r
+               .End = FEE_BANK1_OFFSET + FEE_BANK1_LENGTH\r
+       },\r
+       {\r
+               .Start = FEE_BANK2_OFFSET,\r
+               .End = FEE_BANK2_OFFSET + FEE_BANK2_LENGTH\r
+       },\r
 };\r
 \r
 \r
@@ -106,10 +106,8 @@ static const BankPropType BankProp[NUM_OF_BANKS] = {
 /*\r
  * Macros and variables for flash bank administration
  */\r
-typedef enum {\r
-       BANK_STATUS_OLD = 0x00,\r
-       BANK_STATUS_NEW = 0xFF\r
-} FlsBankStatusEnumType;\r
+#define BANK_STATUS_OLD                0x00\r
+#define BANK_STATUS_NEW                0xFF\r
 typedef uint8 FlsBankStatusType;\r
 \r
 #define BANK_CTRL_PAGE_SIZE            PAGE_ALIGN(sizeof(FlsBankStatusType))\r
@@ -123,11 +121,9 @@ typedef union {
 /*\r
  * Macros and variables for flash block administration in flash
  */\r
-typedef enum {\r
-       BLOCK_STATUS_INUSE = 0x00,\r
-       BLOCK_STATUS_INVALIDATED = 0x02,\r
-       BLOCK_STATUS_EMPTY = 0xFF\r
-} BlockStatusEnumType;\r
+#define BLOCK_STATUS_INUSE                     0x00\r
+#define BLOCK_STATUS_INVALIDATED       0x02\r
+#define BLOCK_STATUS_EMPTY                     0xFF\r
 typedef uint8 BlockStatusType;\r
 \r
 typedef struct {\r
@@ -135,35 +131,35 @@ typedef struct {
        uint16                          BlockNo;\r
        Fls_AddressType         BlockDataAddress;\r
        uint16                          BlockDataLength;\r
-} FlsBlockDataType;\r
+} FlsBlockCtrlDataType;\r
 \r
-#define BLOCK_DATA_PAGE_SIZE           PAGE_ALIGN(sizeof(FlsBlockDataType))\r
+#define BLOCK_CTRL_DATA_PAGE_SIZE              PAGE_ALIGN(sizeof(FlsBlockCtrlDataType))\r
 \r
 typedef union {\r
-       FlsBlockDataType        Data;\r
-       uint8                           Byte[BLOCK_DATA_PAGE_SIZE];\r
-} FlsBlockDataPageType;\r
+       FlsBlockCtrlDataType    Data;\r
+       uint8                                   Byte[BLOCK_CTRL_DATA_PAGE_SIZE];\r
+} FlsBlockCtrlDataPageType;\r
 \r
 \r
 #define BLOCK_MAGIC_LEN                4\r
-static const uint8 MagicMaster[BLOCK_MAGIC_LEN] = { 0xeb, 0xba, 0xba, 0xbe };\r
-#define BLOCK_MAGIC_PAGE_SIZE  PAGE_ALIGN(BLOCK_MAGIC_LEN)\r
+static const uint8 BlockMagicMaster[BLOCK_MAGIC_LEN] = { 0xeb, 0xba, 0xba, 0xbe };\r
+#define BLOCK_CTRL_MAGIC_PAGE_SIZE     PAGE_ALIGN(BLOCK_MAGIC_LEN)\r
 \r
 \r
 typedef union {\r
        uint8           Magic[BLOCK_MAGIC_LEN];\r
-       uint8           Byte[BLOCK_MAGIC_PAGE_SIZE];\r
-} FlsBlockMagicPageType;\r
+       uint8           Byte[BLOCK_CTRL_MAGIC_PAGE_SIZE];\r
+} FlsBlockCtrlMagicPageType;\r
 \r
 typedef struct {\r
-       FlsBlockDataPageType    DataPage;\r
-       FlsBlockMagicPageType   MagicPage;\r
+       FlsBlockCtrlDataPageType        DataPage;\r
+       FlsBlockCtrlMagicPageType       MagicPage;\r
 } FlsBlockControlType;\r
 \r
 #define BLOCK_CTRL_PAGE_SIZE   PAGE_ALIGN(sizeof(FlsBlockControlType))\r
 \r
 #define BLOCK_CTRL_DATA_POS_OFFSET             0\r
-#define BLOCK_CTRL_MAGIC_POS_OFFSET            BLOCK_DATA_PAGE_SIZE\r
+#define BLOCK_CTRL_MAGIC_POS_OFFSET            BLOCK_CTRL_DATA_PAGE_SIZE\r
 \r
 typedef union {\r
        FlsBlockControlType     BlockCtrl;\r
@@ -485,7 +481,7 @@ static void StartupReadBlockAdmin(void)
                                CurrentJob.Op.Startup.BankNumber = (CurrentJob.Op.Startup.BankNumber + 1) % 2;\r
                                CurrentJob.Op.Startup.BlockAdminAddress = BankProp[CurrentJob.Op.Startup.BankNumber].End - BLOCK_CTRL_PAGE_SIZE - BANK_CTRL_PAGE_SIZE;\r
                        } else { /* Block not empty */\r
-                               if ((memcmp(RWBuffer.BlockCtrl.MagicPage.Byte, MagicMaster, BLOCK_MAGIC_LEN) == 0) &&\r
+                               if ((memcmp(RWBuffer.BlockCtrl.MagicPage.Byte, BlockMagicMaster, BLOCK_MAGIC_LEN) == 0) &&\r
                                                ((RWBuffer.BlockCtrl.DataPage.Data.Status == BLOCK_STATUS_INUSE) || (RWBuffer.BlockCtrl.DataPage.Data.Status == BLOCK_STATUS_INVALIDATED))) {\r
                                        /* This is a valid admin block */\r
                                        uint16 blockIndex;\r
@@ -595,12 +591,12 @@ static void BankHeaderOldWrite(uint8 bank)
 static void BlockHeaderDataWrite(void)\r
 {\r
        /* Write the header excluding the magic */\r
-       memset(RWBuffer.BlockCtrl.DataPage.Byte, 0xff, BLOCK_DATA_PAGE_SIZE);\r
+       memset(RWBuffer.BlockCtrl.DataPage.Byte, 0xff, BLOCK_CTRL_DATA_PAGE_SIZE);\r
        RWBuffer.BlockCtrl.DataPage.Data.Status = BLOCK_STATUS_INUSE;\r
        RWBuffer.BlockCtrl.DataPage.Data.BlockNo = CurrentJob.BlockNumber;\r
        RWBuffer.BlockCtrl.DataPage.Data.BlockDataAddress = AdminFls.NewBlockDataAddress;\r
        RWBuffer.BlockCtrl.DataPage.Data.BlockDataLength = CurrentJob.Length;\r
-       if (Fls_Write(CurrentJob.Op.Write.WriteAdminAddress + BLOCK_CTRL_DATA_POS_OFFSET, RWBuffer.Byte, BLOCK_DATA_PAGE_SIZE) == E_OK) {\r
+       if (Fls_Write(CurrentJob.Op.Write.WriteAdminAddress + BLOCK_CTRL_DATA_POS_OFFSET, RWBuffer.Byte, BLOCK_CTRL_DATA_PAGE_SIZE) == E_OK) {\r
                SetFlsJobBusy();\r
                AdminFls.NewBlockDataAddress += CurrentJob.Length;\r
                AdminFls.NewBlockAdminAddress -= BLOCK_CTRL_PAGE_SIZE;\r
@@ -725,9 +721,9 @@ static void WriteMagicRequested(void)
 {\r
        if (Fls_GetStatus() == MEMIF_IDLE) {\r
                CurrentJob.State = FEE_WRITE_MAGIC;\r
-               memset(RWBuffer.BlockCtrl.MagicPage.Byte, 0xff, BLOCK_MAGIC_PAGE_SIZE);\r
-               memcpy(RWBuffer.BlockCtrl.MagicPage.Byte, MagicMaster, BLOCK_MAGIC_LEN);\r
-               if (Fls_Write(CurrentJob.Op.Write.WriteAdminAddress + BLOCK_CTRL_MAGIC_POS_OFFSET, RWBuffer.BlockCtrl.MagicPage.Byte, BLOCK_MAGIC_PAGE_SIZE) == E_OK) {\r
+               memset(RWBuffer.BlockCtrl.MagicPage.Byte, 0xff, BLOCK_CTRL_MAGIC_PAGE_SIZE);\r
+               memcpy(RWBuffer.BlockCtrl.MagicPage.Byte, BlockMagicMaster, BLOCK_MAGIC_LEN);\r
+               if (Fls_Write(CurrentJob.Op.Write.WriteAdminAddress + BLOCK_CTRL_MAGIC_POS_OFFSET, RWBuffer.BlockCtrl.MagicPage.Byte, BLOCK_CTRL_MAGIC_PAGE_SIZE) == E_OK) {\r
                        SetFlsJobBusy();\r
                } else {\r
                        AbortJob(Fls_GetJobResult());\r
@@ -940,9 +936,9 @@ static void GarbageCollectWriteMagicRequested(void)
 {\r
        if (Fls_GetStatus() == MEMIF_IDLE) {\r
                CurrentJob.State = FEE_GARBAGE_COLLECT_MAGIC_WRITE;\r
-               memset(RWBuffer.BlockCtrl.MagicPage.Byte, 0xff, BLOCK_MAGIC_PAGE_SIZE);\r
-               memcpy(RWBuffer.BlockCtrl.MagicPage.Byte, MagicMaster, BLOCK_MAGIC_LEN);\r
-               if (Fls_Write(CurrentJob.Op.GarbageCollect.WriteAdminAddress + BLOCK_CTRL_MAGIC_POS_OFFSET, RWBuffer.BlockCtrl.MagicPage.Byte, BLOCK_MAGIC_PAGE_SIZE) == E_OK) {\r
+               memset(RWBuffer.BlockCtrl.MagicPage.Byte, 0xff, BLOCK_CTRL_MAGIC_PAGE_SIZE);\r
+               memcpy(RWBuffer.BlockCtrl.MagicPage.Byte, BlockMagicMaster, BLOCK_MAGIC_LEN);\r
+               if (Fls_Write(CurrentJob.Op.GarbageCollect.WriteAdminAddress + BLOCK_CTRL_MAGIC_POS_OFFSET, RWBuffer.BlockCtrl.MagicPage.Byte, BLOCK_CTRL_MAGIC_PAGE_SIZE) == E_OK) {\r
                        SetFlsJobBusy();\r
                } else {\r
                        AbortJob(Fls_GetJobResult());\r
@@ -995,7 +991,7 @@ static void BlockHeaderInvalidWrite(void)
        RWBuffer.BlockCtrl.DataPage.Data.BlockNo = CurrentJob.BlockNumber;\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
+       memcpy(RWBuffer.BlockCtrl.MagicPage.Byte, BlockMagicMaster, BLOCK_MAGIC_LEN);\r
 \r
        if (Fls_Write(CurrentJob.Op.Invalidate.WriteAdminAddress + BLOCK_CTRL_DATA_POS_OFFSET, RWBuffer.Byte, BLOCK_CTRL_PAGE_SIZE) == E_OK) {\r
                SetFlsJobBusy();\r