add mount table
This commit is contained in:
parent
adc678dabb
commit
b96b35613f
|
@ -23,6 +23,7 @@ void ff_convert_init()
|
||||||
if (uni2gbk_fd < 0)
|
if (uni2gbk_fd < 0)
|
||||||
rt_kprintf("Unable to open Unicode to GBK look up table.\r\n");
|
rt_kprintf("Unable to open Unicode to GBK look up table.\r\n");
|
||||||
}
|
}
|
||||||
|
INIT_APP_EXPORT(ff_convert_init);
|
||||||
|
|
||||||
rt_uint16_t ff_convert(rt_uint16_t src, rt_uint32_t dir)
|
rt_uint16_t ff_convert(rt_uint16_t src, rt_uint32_t dir)
|
||||||
{
|
{
|
||||||
|
|
|
@ -82,6 +82,16 @@ struct dfs_partition
|
||||||
rt_sem_t lock;
|
rt_sem_t lock;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* mount table */
|
||||||
|
struct dfs_mount_tbl
|
||||||
|
{
|
||||||
|
const char *device_name;
|
||||||
|
const char *path;
|
||||||
|
const char *filesystemtype;
|
||||||
|
unsigned long rwflag;
|
||||||
|
const void *data;
|
||||||
|
};
|
||||||
|
|
||||||
int dfs_register(const struct dfs_filesystem_operation *ops);
|
int dfs_register(const struct dfs_filesystem_operation *ops);
|
||||||
struct dfs_filesystem *dfs_filesystem_lookup(const char *path);
|
struct dfs_filesystem *dfs_filesystem_lookup(const char *path);
|
||||||
rt_err_t dfs_filesystem_get_partition(struct dfs_partition *part,
|
rt_err_t dfs_filesystem_get_partition(struct dfs_partition *part,
|
||||||
|
@ -98,6 +108,7 @@ int dfs_unmount(const char *specialfile);
|
||||||
/* extern variable */
|
/* extern variable */
|
||||||
extern const struct dfs_filesystem_operation *filesystem_operation_table[];
|
extern const struct dfs_filesystem_operation *filesystem_operation_table[];
|
||||||
extern struct dfs_filesystem filesystem_table[];
|
extern struct dfs_filesystem filesystem_table[];
|
||||||
|
extern const struct dfs_mount_tbl mount_table[];
|
||||||
|
|
||||||
extern char working_directory[];
|
extern char working_directory[];
|
||||||
|
|
||||||
|
|
|
@ -497,6 +497,33 @@ int dfs_statfs(const char *path, struct statfs *buffer)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef RT_USING_DFS_MNTTABLE
|
||||||
|
int dfs_mount_table(void)
|
||||||
|
{
|
||||||
|
int index;
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
if (mount_table[index].path == RT_NULL) break;
|
||||||
|
|
||||||
|
if (dfs_mount(mount_table[index].device_name,
|
||||||
|
mount_table[index].path,
|
||||||
|
mount_table[index].filesystemtype,
|
||||||
|
mount_table[index].rwflag,
|
||||||
|
mount_table[index].data) != 0)
|
||||||
|
{
|
||||||
|
rt_kprintf("mount fs[%s] on %s failed.\n", mount_table[index].filesystemtype,
|
||||||
|
mount_table[index].path);
|
||||||
|
return -RT_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
index ++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
INIT_ENV_EXPORT(dfs_mount_table);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef RT_USING_FINSH
|
#ifdef RT_USING_FINSH
|
||||||
#include <finsh.h>
|
#include <finsh.h>
|
||||||
void mkfs(const char *fs_name, const char *device_name)
|
void mkfs(const char *fs_name, const char *device_name)
|
||||||
|
|
|
@ -191,10 +191,16 @@ typedef int (*init_fn_t)(void);
|
||||||
/* board init routines will be called in board_init() function */
|
/* board init routines will be called in board_init() function */
|
||||||
#define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1")
|
#define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1")
|
||||||
/* device/component/fs/app init routines will be called in init_thread */
|
/* device/component/fs/app init routines will be called in init_thread */
|
||||||
|
/* device initialization */
|
||||||
#define INIT_DEVICE_EXPORT(fn) INIT_EXPORT(fn, "2")
|
#define INIT_DEVICE_EXPORT(fn) INIT_EXPORT(fn, "2")
|
||||||
|
/* components initialization (dfs, lwip, ...) */
|
||||||
#define INIT_COMPONENT_EXPORT(fn) INIT_EXPORT(fn, "3")
|
#define INIT_COMPONENT_EXPORT(fn) INIT_EXPORT(fn, "3")
|
||||||
|
/* file system initialization (dfs-elm, dfs-rom, ...) */
|
||||||
#define INIT_FS_EXPORT(fn) INIT_EXPORT(fn, "4")
|
#define INIT_FS_EXPORT(fn) INIT_EXPORT(fn, "4")
|
||||||
#define INIT_APP_EXPORT(fn) INIT_EXPORT(fn, "5")
|
/* environment initialization (mount disk, ...) */
|
||||||
|
#define INIT_ENV_EXPORT(fn) INIT_EXPORT(fn, "5")
|
||||||
|
/* appliation initialization (rtgui application etc ...) */
|
||||||
|
#define INIT_APP_EXPORT(fn) INIT_EXPORT(fn, "6")
|
||||||
|
|
||||||
/* event length */
|
/* event length */
|
||||||
#define RT_EVENT_LENGTH 32
|
#define RT_EVENT_LENGTH 32
|
||||||
|
|
|
@ -452,7 +452,7 @@ rt_uint8_t rt_interrupt_get_nest(void);
|
||||||
/**
|
/**
|
||||||
* application module
|
* application module
|
||||||
*/
|
*/
|
||||||
void rt_system_module_init(void);
|
int rt_system_module_init(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup KernelService
|
* @addtogroup KernelService
|
||||||
|
|
|
@ -80,7 +80,7 @@ static struct rt_module_symtab *_rt_module_symtab_end = RT_NULL;
|
||||||
*
|
*
|
||||||
* This function will initialize system module
|
* This function will initialize system module
|
||||||
*/
|
*/
|
||||||
void rt_system_module_init(void)
|
int rt_system_module_init(void)
|
||||||
{
|
{
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
extern int __rtmsymtab_start;
|
extern int __rtmsymtab_start;
|
||||||
|
@ -100,6 +100,7 @@ void rt_system_module_init(void)
|
||||||
/* initialize heap semaphore */
|
/* initialize heap semaphore */
|
||||||
rt_sem_init(&mod_sem, "module", 1, RT_IPC_FLAG_FIFO);
|
rt_sem_init(&mod_sem, "module", 1, RT_IPC_FLAG_FIFO);
|
||||||
#endif
|
#endif
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
INIT_COMPONENT_EXPORT(rt_system_module_init);
|
INIT_COMPONENT_EXPORT(rt_system_module_init);
|
||||||
|
|
||||||
|
@ -805,9 +806,6 @@ rt_module_t rt_module_load(const char *name, void *module_ptr)
|
||||||
|
|
||||||
if (elf_module->e_entry != 0)
|
if (elf_module->e_entry != 0)
|
||||||
{
|
{
|
||||||
rt_uint32_t *stack_size;
|
|
||||||
rt_uint8_t *priority;
|
|
||||||
|
|
||||||
#ifdef RT_USING_SLAB
|
#ifdef RT_USING_SLAB
|
||||||
/* init module memory allocator */
|
/* init module memory allocator */
|
||||||
module->mem_list = RT_NULL;
|
module->mem_list = RT_NULL;
|
||||||
|
@ -1180,8 +1178,6 @@ rt_err_t rt_module_destroy(rt_module_t module)
|
||||||
*/
|
*/
|
||||||
rt_err_t rt_module_unload(rt_module_t module)
|
rt_err_t rt_module_unload(rt_module_t module)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
rt_err_t result;
|
|
||||||
struct rt_object *object;
|
struct rt_object *object;
|
||||||
struct rt_list_node *list;
|
struct rt_list_node *list;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue