static int init_uffs_fs( struct _nand_dev * nand_part) { uffs_MountTable * mtb; struct rt_mtd_nand_device * nand; struct uffs_StorageAttrSt * flash_storage; mtb = &nand_part->mount_table; nand = nand_part->dev; flash_storage = &nand_part->storage; /* setup nand storage attributes */ uffs_setup_storage(flash_storage, nand); /* register mount table */ if(mtb->dev) { /* set memory allocator for uffs */ #if CONFIG_USE_SYSTEM_MEMORY_ALLOCATOR > 0 uffs_MemSetupSystemAllocator(&mtb->dev->mem); #endif /* setup device init/release entry */ mtb->dev->Init = _device_init; mtb->dev->Release = _device_release; mtb->dev->attr = flash_storage; uffs_RegisterMountTable(mtb); } /* mount uffs partion on nand device */ return uffs_Mount(nand_part->mount_path) == U_SUCC ? 0 : -1; }
static int my_init_filesystem(void) { uffs_MountTable *mtbl = &(demo_mount_table[0]); /* setup nand storage attributes */ setup_flash_storage(&g_my_flash_storage); /* setup memory allocator */ uffs_MemSetupStaticAllocator(&demo_device_1.mem, static_buffer_par1, sizeof(static_buffer_par1)); uffs_MemSetupStaticAllocator(&demo_device_2.mem, static_buffer_par2, sizeof(static_buffer_par2)); /* register mount table */ while(mtbl->dev) { // setup device init/release entry mtbl->dev->Init = my_InitDevice; mtbl->dev->Release = my_ReleaseDevice; uffs_RegisterMountTable(mtbl); mtbl++; } // mount partitions for (mtbl = &(demo_mount_table[0]); mtbl->mount != NULL; mtbl++) { uffs_Mount(mtbl->mount); } return uffs_InitFileSystemObjects() == U_SUCC ? 0 : -1; }
static int init_uffs_fs(void) { struct uffs_MountTableEntrySt *mtbl = &demo_mount; /* setup flash storage attributes */ setup_storage(femu_GetStorage()); /* setup memory allocator */ uffs_MemSetupStaticAllocator(&mtbl->dev->mem, static_buffer_pool, sizeof(static_buffer_pool)); /* setup device: init, release, attr */ setup_device(mtbl->dev); /* register mount table */ uffs_RegisterMountTable(mtbl); return uffs_InitMountTable() == U_SUCC ? 0 : -1; }
static int init_uffs_fs(void) { static int bIsFileSystemInited = 0; struct uffs_MountTableEntrySt *mtbl = &(conf_mounts[0]); struct uffs_ConfigSt cfg = { 0, // bc_caches - default 0, // page_buffers - default 0, // dirty_pages - default 0, // dirty_groups - default 0, // reserved_free_blocks - default }; if (bIsFileSystemInited) return -4; bIsFileSystemInited = 1; while (mtbl->dev) { memcpy(&mtbl->dev->cfg, &cfg, sizeof(struct uffs_ConfigSt)); #if CONFIG_USE_SYSTEM_MEMORY_ALLOCATOR > 0 uffs_MemSetupSystemAllocator(&mtbl->dev->mem); #endif setup_device(mtbl->dev); uffs_RegisterMountTable(mtbl); mtbl++; } // mount partitions for (mtbl = &(conf_mounts[0]); mtbl->mount != NULL; mtbl++) { uffs_Mount(mtbl->mount); } return uffs_InitFileSystemObjects() == U_SUCC ? 0 : -1; }