yaffs_unmount(mountpt);
-
}
void format_test(const char *mountpt)
yaffs_start_up();
ret = yaffs_format(mountpt, 0, 0, 0);
- printf("yaffs_format(...,0, 0, 0) of unmounted returned %d\n", ret);
+ printf("yaffs_format(...,0, 0, 0) of unmounted returned %d."
+ " Should return 0\n\n\n", ret);
yaffs_mount(mountpt);
ret = yaffs_format(mountpt, 0, 0, 0);
- printf("yaffs_format(...,0, 0, 0) of mounted returned %d\n", ret);
+ printf("yaffs_format(...,0, 0, 0) of mounted returned %d."
+ " Should return -1 (busy)\n\n\n", ret);
ret = yaffs_format(mountpt, 1, 0, 0);
- printf("yaffs_format(...,1, 0, 0) of mounted returned %d\n", ret);
+ printf("yaffs_format(...,1, 0, 0) of mounted returned %d."
+ " Should return 0.\n\n\n", ret);
ret = yaffs_mount(mountpt);
- printf("mount should return 0 returned %d\n", ret);
+ printf("mount should return 0 returned %d\n\n\n", ret);
ret = yaffs_format(mountpt, 1, 0, 1);
- printf("yaffs_format(...,1, 0, 1) of mounted returned %d\n", ret);
+ printf("yaffs_format(...,1, 0, 1) of mounted returned %d."
+ " Should return 0.\n\n\n", ret);
ret = yaffs_mount(mountpt);
printf("mount should return -1 returned %d\n", ret);
//yy_test("/nand");
//dir_rename_test("/nand");
- dir_fd_test("/nand");
+ //dir_fd_test("/nand");
+
+ format_test("/nand");
return 0;
INIT_LIST_HEAD(&dev->dev_list);
list_add(&dev->dev_list, &yaffsfs_deviceList);
+
+
}
void yaffs_remove_device(struct yaffs_dev *dev)
{
- yaffs_trace(YAFFS_TRACE_TRACING, "yaffs: yaffs_guts_initialise()");
-
- /* Check stuff that must be set */
+ yaffs_trace(YAFFS_TRACE_TRACING, "yaffs: yaffs_ll_init()");
if (!dev) {
yaffs_trace(YAFFS_TRACE_ALWAYS,
return YAFFS_FAIL;
}
- if (dev->is_mounted) {
- yaffs_trace(YAFFS_TRACE_ALWAYS, "device already mounted");
- return YAFFS_FAIL;
- }
+ if (dev->ll_init)
+ return YAFFS_OK;
dev->internal_start_block = dev->param.start_block;
dev->internal_end_block = dev->param.end_block;
return YAFFS_FAIL;
}
+ if (yaffs_init_nand(dev) != YAFFS_OK) {
+ yaffs_trace(YAFFS_TRACE_ALWAYS, "InitialiseNAND failed");
+ return YAFFS_FAIL;
+ }
+
+ return YAFFS_OK;
+}
+
+
+int yaffs_format_dev(struct yaffs_dev *dev)
+{
+ int i;
+ enum yaffs_block_state state;
+ u32 dummy;
+
+ if(yaffs_guts_ll_init(dev) != YAFFS_OK)
+ return YAFFS_FAIL;
+
+ if(dev->is_mounted)
+ return YAFFS_FAIL;
+
+ for (i = dev->internal_start_block; i <= dev->internal_end_block; i++) {
+ yaffs_query_init_block_state(dev, i, &state, &dummy);
+ if (state != YAFFS_BLOCK_STATE_DEAD)
+ yaffs_erase_block(dev, i);
+ }
+
return YAFFS_OK;
}
if(yaffs_guts_ll_init(dev) != YAFFS_OK)
return YAFFS_FAIL;
-
- if (yaffs_init_nand(dev) != YAFFS_OK) {
- yaffs_trace(YAFFS_TRACE_ALWAYS, "InitialiseNAND failed");
+ if (dev->is_mounted) {
+ yaffs_trace(YAFFS_TRACE_ALWAYS, "device already mounted");
return YAFFS_FAIL;
}
}
-int yaffs_format_dev(struct yaffs_dev *dev)
-{
- int i;
- enum yaffs_block_state state;
- u32 dummy;
-
- if(dev->is_mounted)
- return YAFFS_FAIL;
-
- /*
- * The runtime variables might not have been set up,
- * so set up what we need.
- */
- dev->internal_start_block = dev->param.start_block;
- dev->internal_end_block = dev->param.end_block;
- dev->block_offset = 0;
- dev->chunk_offset = 0;
-
- if (dev->param.start_block == 0) {
- dev->internal_start_block = dev->param.start_block + 1;
- dev->internal_end_block = dev->param.end_block + 1;
- dev->block_offset = 1;
- dev->chunk_offset = dev->param.chunks_per_block;
- }
-
- for (i = dev->internal_start_block; i <= dev->internal_end_block; i++) {
- yaffs_query_init_block_state(dev, i, &state, &dummy);
- if (state != YAFFS_BLOCK_STATE_DEAD)
- yaffs_erase_block(dev, i);
- }
-
- return YAFFS_OK;
-}
-
/*
* Marshalling functions to get loff_t file sizes into and out of
struct list_head dev_list;
+ int ll_init;
/* Runtime parameters. Set up by YAFFS. */
int data_bytes_per_chunk;