|
|
|
@ -14,8 +14,6 @@ |
|
|
|
|
|
|
|
|
|
int ftl_is_mapped(struct ftl_map *map, uint32_t va) |
|
|
|
|
{ |
|
|
|
|
va = align(va, map->log2_page_size); |
|
|
|
|
|
|
|
|
|
if (trace_path(map, NULL, NULL, va) < 0) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
@ -29,7 +27,7 @@ size_t ftl_read(struct ftl_map *map, void *data, size_t len, uint32_t va) |
|
|
|
|
|
|
|
|
|
mask = ((1 << map->log2_page_size) - 1); |
|
|
|
|
offset = va & mask; |
|
|
|
|
va = va & ~mask; |
|
|
|
|
va >>= map->log2_page_size; |
|
|
|
|
|
|
|
|
|
if ((ret = trace_path(map, NULL, &page, va)) < 0) { |
|
|
|
|
memset(data, 0, len); |
|
|
|
@ -59,7 +57,7 @@ size_t ftl_write(struct ftl_map *map, uint32_t va, const void *udata, |
|
|
|
|
|
|
|
|
|
mask = ((1 << map->log2_page_size) - 1); |
|
|
|
|
offset = va & mask; |
|
|
|
|
va = va & ~mask; |
|
|
|
|
va >>= map->log2_page_size; |
|
|
|
|
|
|
|
|
|
if ((ret = trace_path(map, &page_desc, &page, va)) < 0 && |
|
|
|
|
ret != -ERR_NOT_FOUND) |
|
|
|
|