| /system/ulib/ftl/ndm/ |
| A D | ndmp.h | 111 int (*write_page)(ui32 pn, const ui8* data, ui8* spare, int action, void* dev); 112 int (*write_pages)(ui32 pn, ui32 count, const ui8* data, ui8* spare, int action, void* dev); 113 int (*read_page)(ui32 pn, ui8* data, ui8* spare, void* dev); 114 int (*read_pages)(ui32 pn, ui32 count, ui8* data, ui8* spare, void* dev); 120 int (*read_decode_spare)(ui32 pn, ui8* spare, void* dev); 121 int (*read_spare)(ui32 pn, ui8* spare, void* dev); 122 int (*page_blank)(ui32 pn, ui8* data, ui8* spare, void* dev); 124 int (*check_page)(ui32 pn, ui8* data, ui8* spr, int* stat, void* dev); 126 int (*erase_block)(ui32 pn, void* dev); 128 int (*is_block_bad)(ui32 pn, void* dev);
|
| A D | ndm_intrnl.c | 790 ui32 vbn, bn, pn; in write_page() local 874 ui32 vbn, bn, pn; in rd_spare_ftl() local 920 ui32 vbn, bn, pn; in pg_check_ftl() local 966 ui32 vbn, bn, pn; in read_page() local 1146 ui32 vbn, bn, pn; in rd_type_ffs() local 1193 ui32 vbn, bn, pn; in pg_blank_ffs() local 1805 ui32 vbn, bn, pn; in ndmReadPages() local 1915 ui32 bn, pn; in ndmWritePages() local 2104 ui32 vbn, bn, pn; in ndmEraseBlock() local 2386 ui32 n, po = pn % ndm->pgs_per_blk; in ndmPastPrevPair() [all …]
|
| A D | ndm_init.c | 31 static int get_page_status(CNDM ndm, ui32 pn) { in get_page_status() argument 39 status = ndm->read_spare(pn, ndm->spare_buf, ndm->dev); in get_page_status() 41 status = ndm->read_decode_spare(pn, ndm->spare_buf, ndm->dev); in get_page_status() 112 ui32 pn = b * ndm->pgs_per_blk; in format_status() local 115 status = ndm->is_block_bad(pn, ndm->dev); in format_status() 122 status = get_page_status(ndm, pn); in format_status() 482 static int is_next_ctrl_page(CNDM ndm, ui32 pn, ui16 curr_num) { in is_next_ctrl_page() argument 486 page_status = get_page_status(ndm, pn); in is_next_ctrl_page() 567 *pn = get_next_ctrl_page(ndm, *pn); in check_next_read() 568 if (*pn == (ui32)-1) in check_next_read() [all …]
|
| /system/ulib/ftl/inc/kprivate/ |
| A D | ndm.h | 83 int (*write_data_and_spare)(ui32 pn, const ui8* data, ui8* spare, int action, void* dev); 85 int (*read_decode_data)(ui32 pn, ui8* data, ui8* spare, void* dev); 86 int (*read_pages)(ui32 pn, ui32 count, ui8* data, ui8* spare, void* dev); 92 int (*read_decode_spare)(ui32 pn, ui8* spare, void* dev); 93 int (*read_spare)(ui32 pn, ui8* spare, void* dev); 94 int (*data_and_spare_erased)(ui32 pn, ui8* data, ui8* spare, void* dev); 95 int (*data_and_spare_check)(ui32 pn, ui8* data, ui8* spare, int* status, void* dev); 96 int (*erase_block)(ui32 pn, void* dev); 97 int (*is_block_bad)(ui32 pn, void* dev); 118 ui32 ndmPastPrevPair(CNDM ndm, ui32 pn); [all …]
|
| A D | fsdriver.h | 145 int (*write_page)(const void* buffer, ui32 pn, ui32 type, void* vol); 147 int (*read_page)(ui32 pn, void* buffer, void* vol); 150 int (*read_type)(ui32 pn, ui32* typep, void* vol); 151 int (*page_erased)(ui32 pn, void* vol); 152 int (*erase_block)(ui32 pn, void* vol); 159 int (*rd_raw_page)(ui32 pn, void* buf, void* vol); 276 int (*write_data_and_spare)(ui32 pn, const void* data, void* spare, void* ndm); 278 int (*read_spare)(ui32 pn, void* spare, void* ndm); 280 int (*page_check)(ui32 pn, ui8* data, ui8* spare, void* ndm); 282 int (*erase_block)(ui32 pn, void* ndm);
|
| /system/ulib/ftl/ftln/ |
| A D | ftln_rd.c | 29 ui32 pn; in partial_page_read() local 55 if (FtlnMapGetPpn(ftl, vpn, &pn) < 0) in partial_page_read() 59 if (pn == (ui32)-1) in partial_page_read() 64 if (FtlnRdPage(ftl, pn, ftl->swap_page)) in partial_page_read() 172 ui32 pn; in read_sectors() local 196 if (FtlnMapGetPpn(ftl, vpn, &pn) < 0) in read_sectors() 205 if (pn == (ui32)-1) { in read_sectors() 243 if ((staged.first_ppn + staged.run_cnt == pn) && in read_sectors() 244 (staged.first_ppn / ftl->pgs_per_blk == pn / ftl->pgs_per_blk)) in read_sectors() 252 staged.first_ppn = pn; in read_sectors()
|
| A D | ftlnp.h | 127 #define SET_MAP_PPN(maddr, pn) WR24_LE(pn, maddr) argument 132 #define SET_MAP_PPN(maddr, pn) WR32_LE(pn, maddr) argument 180 int (*write_page)(ui32 pn, const void* data, void* spare, void* ndm); 181 int (*read_spare)(ui32 pn, void* spare, void* ndm); 184 int (*page_check)(ui32 pn, ui8* data, ui8* spare, void* ndm); 186 int (*erase_block)(ui32 pn, void* ndm); 288 int FtlnRdPage(FTLN ftl, ui32 pn, void* buf); 297 void FtlnDecUsed(FTLN ftl, ui32 pn, ui32 vpn);
|
| A D | ftln_intrnl.c | 112 ui32 pn; in next_free_vpg() local 143 pn = ftl->free_vpn++; in next_free_vpg() 148 return pn; in next_free_vpg() 158 ui32 pn; in next_free_mpg() local 190 pn = ftl->free_mpn; in next_free_mpg() 227 return pn; in next_free_mpg() 302 ui32 pn, b, wc; in wr_map_page() local 319 if (pn == (ui32)-1) in wr_map_page() 645 ui32 pn, past_end; in recycle_vblk() local 684 if (pn2 != pn) in recycle_vblk() [all …]
|
| A D | ftln_init.c | 238 ui32 pn; in map_page_check() local 244 pn = GET_MAP_PPN(maddr); in map_page_check() 248 if (pn >= ftl->num_pages && pn != UNMAPPED_PN) in map_page_check() 414 pn = ftl->mpns[mpn]; in build_map() 415 if (pn == (ui32)-1) in build_map() 430 pn = GET_MAP_PPN(maddr); in build_map() 434 if (pn >= ftl->num_pages) in build_map() 607 n = ndmPastPrevPair(ftl->ndm, pn + 1) - pn; in format_status() 801 ui32 pn; in read_bpb() local 813 if (pn == (ui32)-1) in read_bpb() [all …]
|
| A D | ftln_util.c | 525 ui32 pn = ndmPastPrevPair(ftl->ndm, ftl->free_vpn); in FtlnMlcSafeFreeVpn() local 528 printf("FtlnMlcSafeFreeVpn: old free = %u, new free = %u\n", ftl->free_vpn, pn); in FtlnMlcSafeFreeVpn() 530 ftl->free_vpn = pn; in FtlnMlcSafeFreeVpn() 809 void FtlnDecUsed(FTLN ftl, ui32 pn, ui32 vpn) { in FtlnDecUsed() argument 810 ui32 b = pn / ftl->pgs_per_blk; in FtlnDecUsed() 820 if (ftl->read_spare(ftl->start_pn + pn, ftl->spare_buf, ftl->ndm) < 0) in FtlnDecUsed() 957 ui32 pn = b * ftl->pgs_per_blk; in FtlnCheckBlank() local 958 ui32 end = pn + ftl->pgs_per_blk; in FtlnCheckBlank() 962 rc = ftl->page_check(pn, ftl->main_buf, ftl->spare_buf, ftl->ndm); in FtlnCheckBlank() 965 } while (++pn < end); in FtlnCheckBlank()
|