+
+
+void dump_dev_stats(struct yaffs_dev *dev, const char * str)
+{
+ printf("%s\n",str);
+ printf( "space free %d erased %d "
+ "nand reads %d writes %d erases %d "
+ "gc all %d passive %d oldestdirty %d blocks %d copies %d \n",
+ dev->n_free_chunks, dev->n_erased_blocks * dev->param.chunks_per_block,
+ dev->n_page_reads, dev->n_page_writes, dev->n_erasures,
+ dev->all_gcs, dev->passive_gc_count, dev->oldest_dirty_gc_count, dev->n_gc_blocks, dev->n_gc_copies);
+}
+
+void test_flash_traffic(const char *mountpt)
+{
+ char name0[100];
+ char name1[100];
+ int i;
+ struct yaffs_dev *dev;
+
+ yaffs_trace_mask = 0;
+
+ yaffs_start_up();
+
+ yaffs_mount(mountpt);
+
+ dev = yaffs_getdev(mountpt);
+
+ strcpy(name0,mountpt);
+ strcat(name0,"/x");
+
+ strcpy(name1,mountpt);
+ strcat(name1,"/y");
+
+ dump_dev_stats(dev,"start");
+ create_file_of_size(name0,32 * 1024 * 1024);
+ dump_dev_stats(dev,"32MB written");
+ for(i = 0; i < 20; i++)
+ create_file_of_size(name1,1024 * 1024);
+ dump_dev_stats(dev,"20x 1MB files written");
+
+}
+
+void link_follow_test(const char *mountpt)
+{
+ char fn[100];
+ char sn[100];
+ char hn[100];
+ int result;
+ int h;