+static bool disk_open(struct BattFsSuper *d)
+{
+ d->page_size = PAGE_SIZE;
+ d->read = disk_page_read;
+ d->load = disk_page_load;
+ d->bufferWrite = disk_buffer_write;
+ d->bufferRead = disk_buffer_read;
+ d->save = disk_page_save;
+ d->erase = disk_page_erase;
+ d->close = disk_close;
+
+ FILE *fp = fopen(test_filename, "r+b");
+ ASSERT(fp);
+ d->disk_ctx = fp;
+ fseek(fp, 0, SEEK_END);
+ d->page_size = PAGE_SIZE;
+ d->page_count = ftell(fp) / d->page_size;
+ d->page_array = malloc(d->page_count * sizeof(pgcnt_t));
+ //TRACEMSG("page_size:%d, page_count:%d\n", d->page_size, d->page_count);
+ return (fp && d->page_array);
+}
+