AT91SAM7: add EMAC ethernet driver
[bertos.git] / bertos / cpu / arm / drv / flash_lpc2.c
index 1f42b92163dc1082613bd3d0861f8993f13e2fe1..a78ade27c8bfe111e560d10a4a165071d3cc37c4 100644 (file)
@@ -94,7 +94,7 @@ struct FlashHardware
 
 #define FLASH_PAGE_CNT  FLASH_MEM_SIZE / FLASH_PAGE_SIZE_BYTES
 
-ALLOC_BITARRAY(page_dirty, FLASH_PAGE_CNT);
+BITARRAY_ALLOC(page_dirty, FLASH_PAGE_CNT);
 static BitArray lpc2_bitx;
 
 uint8_t erase_group[] = {
@@ -179,10 +179,7 @@ static uint32_t addr_to_sector(size_t addr)
 
 static size_t lpc2_flash_readDirect(struct KBlock *blk, block_idx_t idx, void *buf, size_t offset, size_t size)
 {
-       ASSERT(offset == 0);
-       ASSERT(size == blk->blk_size);
-
-       memcpy(buf, (void *)(idx * blk->blk_size), size);
+       memcpy(buf, (void *)(idx * blk->blk_size + offset), size);
        return size;
 }
 
@@ -217,7 +214,7 @@ static size_t lpc2_flash_writeDirect(struct KBlock *blk, block_idx_t idx, const
                goto flash_error;
 
        if ((fls->blk.priv.flags & KB_WRITE_ONCE) &&
-                       bitarray_blockFull(&lpc2_bitx, idx_sector, erase_group[sector]))
+                       bitarray_isRangeFull(&lpc2_bitx, idx_sector, erase_group[sector]))
        {
                kputs("blocchi pieni\n");
                ASSERT(0);
@@ -226,7 +223,7 @@ static size_t lpc2_flash_writeDirect(struct KBlock *blk, block_idx_t idx, const
 
        bool erase = false;
        if ((fls->blk.priv.flags & KB_WRITE_ONCE) &&
-                       bitarray_blockEmpty(&lpc2_bitx, idx_sector, erase_group[sector]))
+                       bitarray_isRangeEmpty(&lpc2_bitx, idx_sector, erase_group[sector]))
                erase = true;
 
        if (!(fls->blk.priv.flags & KB_WRITE_ONCE))
@@ -253,7 +250,7 @@ static size_t lpc2_flash_writeDirect(struct KBlock *blk, block_idx_t idx, const
 
        if (fls->blk.priv.flags & KB_WRITE_ONCE)
        {
-               if (bitarray_check(&lpc2_bitx, idx))
+               if (bitarray_test(&lpc2_bitx, idx))
                {
                        ASSERT(0);
                        goto flash_error;
@@ -342,7 +339,7 @@ static void common_init(Flash *fls)
        fls->blk.blk_size = FLASH_PAGE_SIZE_BYTES;
        fls->blk.blk_cnt = FLASH_MEM_SIZE / FLASH_PAGE_SIZE_BYTES;
 
-       init_bitarray(&lpc2_bitx, FLASH_PAGE_CNT, page_dirty, sizeof(page_dirty));
+       bitarray_init(&lpc2_bitx, FLASH_PAGE_CNT, page_dirty, sizeof(page_dirty));
 }
 
 void flash_hw_init(Flash *fls, int flags)