From 6d9fcd04d2fe0ed5f8d2df220f209cbbc8d1907b Mon Sep 17 00:00:00 2001 From: bernard Date: Fri, 3 Nov 2017 11:44:37 +0800 Subject: [PATCH] [Kernel] Change the order of initialization. 1. Remove INIT_FS_EXPORT and change INIT_DEVICE_EXPORT as the first item in the initalization thread. 2. Move the eth_system_device_init into INIT_PREV_EXPORT item. --- components/dfs/filesystems/elmfat/dfs_elm.c | 2 +- components/dfs/filesystems/jffs2/dfs_jffs2.c | 2 +- components/dfs/filesystems/nfs/dfs_nfs.c | 3 +- components/dfs/filesystems/ramfs/dfs_ramfs.c | 2 +- components/dfs/filesystems/romfs/dfs_romfs.c | 2 +- .../dfs/filesystems/skeleton/skeleton.c | 48 +++++++++++-------- components/dfs/filesystems/uffs/dfs_uffs.c | 2 +- .../net/lwip-1.4.1/src/netif/ethernetif.c | 4 +- .../net/lwip-2.0.2/src/netif/ethernetif.c | 2 +- include/rtdef.h | 11 ++--- 10 files changed, 43 insertions(+), 35 deletions(-) diff --git a/components/dfs/filesystems/elmfat/dfs_elm.c b/components/dfs/filesystems/elmfat/dfs_elm.c index eb613fe6e6..72807faae7 100644 --- a/components/dfs/filesystems/elmfat/dfs_elm.c +++ b/components/dfs/filesystems/elmfat/dfs_elm.c @@ -820,7 +820,7 @@ int elm_init(void) return 0; } -INIT_FS_EXPORT(elm_init); +INIT_COMPONENT_EXPORT(elm_init); /* * RT-Thread Device Interface for ELM FatFs diff --git a/components/dfs/filesystems/jffs2/dfs_jffs2.c b/components/dfs/filesystems/jffs2/dfs_jffs2.c index 78c7730136..f2ffe471ed 100644 --- a/components/dfs/filesystems/jffs2/dfs_jffs2.c +++ b/components/dfs/filesystems/jffs2/dfs_jffs2.c @@ -726,5 +726,5 @@ int dfs_jffs2_init(void) rt_kprintf("init jffs2 lock mutex okay\n"); return 0; } -INIT_FS_EXPORT(dfs_jffs2_init); +INIT_COMPONENT_EXPORT(dfs_jffs2_init); diff --git a/components/dfs/filesystems/nfs/dfs_nfs.c b/components/dfs/filesystems/nfs/dfs_nfs.c index 9e0eeda127..5d7aa0db61 100644 --- a/components/dfs/filesystems/nfs/dfs_nfs.c +++ b/components/dfs/filesystems/nfs/dfs_nfs.c @@ -1159,4 +1159,5 @@ int nfs_init(void) return RT_EOK; } -INIT_FS_EXPORT(nfs_init); +INIT_COMPONENT_EXPORT(nfs_init); + diff --git a/components/dfs/filesystems/ramfs/dfs_ramfs.c b/components/dfs/filesystems/ramfs/dfs_ramfs.c index e877e921d2..4399e90b85 100644 --- a/components/dfs/filesystems/ramfs/dfs_ramfs.c +++ b/components/dfs/filesystems/ramfs/dfs_ramfs.c @@ -427,7 +427,7 @@ int dfs_ramfs_init(void) return 0; } -INIT_FS_EXPORT(dfs_ramfs_init); +INIT_COMPONENT_EXPORT(dfs_ramfs_init); struct dfs_ramfs* dfs_ramfs_create(rt_uint8_t *pool, rt_size_t size) { diff --git a/components/dfs/filesystems/romfs/dfs_romfs.c b/components/dfs/filesystems/romfs/dfs_romfs.c index e543899ad1..f88845f41d 100644 --- a/components/dfs/filesystems/romfs/dfs_romfs.c +++ b/components/dfs/filesystems/romfs/dfs_romfs.c @@ -330,5 +330,5 @@ int dfs_romfs_init(void) dfs_register(&_romfs); return 0; } -INIT_FS_EXPORT(dfs_romfs_init); +INIT_COMPONENT_EXPORT(dfs_romfs_init); diff --git a/components/dfs/filesystems/skeleton/skeleton.c b/components/dfs/filesystems/skeleton/skeleton.c index 6abcec12ff..0d96cbffc9 100644 --- a/components/dfs/filesystems/skeleton/skeleton.c +++ b/components/dfs/filesystems/skeleton/skeleton.c @@ -24,22 +24,23 @@ #include #include #include +#include #include "dfs_skt_fs.h" int dfs_skt_mount(struct dfs_filesystem* fs, unsigned long rwflag, const void* data) { - return DFS_STATUS_OK; + return RT_EOK; } int dfs_skt_unmount(struct dfs_filesystem* fs) { - return DFS_STATUS_OK; + return RT_EOK; } int dfs_skt_ioctl(struct dfs_fd* file, int cmd, void* args) { - return -DFS_STATUS_EIO; + return -RT_EIO; } int dfs_skt_read(struct dfs_fd* file, void *buf, rt_size_t count) @@ -49,22 +50,22 @@ int dfs_skt_read(struct dfs_fd* file, void *buf, rt_size_t count) int dfs_skt_lseek(struct dfs_fd* file, rt_off_t offset) { - return -DFS_STATUS_EIO; + return -RT_EIO; } int dfs_skt_close(struct dfs_fd* file) { - return DFS_STATUS_OK; + return RT_EOK; } int dfs_skt_open(struct dfs_fd* file) { - return DFS_STATUS_OK; + return RT_EOK; } int dfs_skt_stat(struct dfs_filesystem* fs, const char *path, struct stat *st) { - return DFS_STATUS_OK; + return RT_EOK; } int dfs_skt_getdents(struct dfs_fd* file, struct dirent* dirp, rt_uint32_t count) @@ -72,26 +73,32 @@ int dfs_skt_getdents(struct dfs_fd* file, struct dirent* dirp, rt_uint32_t count return count * sizeof(struct dirent); } -static const struct dfs_filesystem_operation _skt_fs = +static const struct dfs_file_ops _skt_fops = { - "skt", - DFS_FS_FLAG_DEFAULT, - dfs_skt_mount, - dfs_skt_unmount, - RT_NULL, - RT_NULL, - dfs_skt_open, dfs_skt_close, dfs_skt_ioctl, dfs_skt_read, - RT_NULL, - RT_NULL, + NULL, /* write */ + NULL, /* flush */ dfs_skt_lseek, dfs_skt_getdents, - RT_NULL, +}; + +static const struct dfs_filesystem_ops _skt_fs = +{ + "skt", + DFS_FS_FLAG_DEFAULT, + &_skt_fops, + + dfs_skt_mount, + dfs_skt_unmount, + NULL, /* mkfs */ + NULL, /* statfs */ + + NULL, /* unlink */ dfs_skt_stat, - RT_NULL, + NULL, /* rename */ }; int dfs_skt_init(void) @@ -100,4 +107,5 @@ int dfs_skt_init(void) dfs_register(&_skt_fs); return 0; } -INIT_FS_EXPORT(dfs_skt_init); +INIT_COMPONENT_EXPORT(dfs_skt_init); + diff --git a/components/dfs/filesystems/uffs/dfs_uffs.c b/components/dfs/filesystems/uffs/dfs_uffs.c index 815b5dde7d..0256a524d5 100644 --- a/components/dfs/filesystems/uffs/dfs_uffs.c +++ b/components/dfs/filesystems/uffs/dfs_uffs.c @@ -668,5 +668,5 @@ int dfs_uffs_init(void) } return -RT_ERROR; } -INIT_FS_EXPORT(dfs_uffs_init); +INIT_COMPONENT_EXPORT(dfs_uffs_init); diff --git a/components/net/lwip-1.4.1/src/netif/ethernetif.c b/components/net/lwip-1.4.1/src/netif/ethernetif.c index 9fbb883f36..7a8cde12da 100644 --- a/components/net/lwip-1.4.1/src/netif/ethernetif.c +++ b/components/net/lwip-1.4.1/src/netif/ethernetif.c @@ -434,9 +434,9 @@ int eth_system_device_init(void) RT_ASSERT(result == RT_EOK); #endif - return (int)result; + return (int)result; } -INIT_DEVICE_EXPORT(eth_system_device_init); +INIT_PREV_EXPORT(eth_system_device_init); #ifdef RT_USING_FINSH #include diff --git a/components/net/lwip-2.0.2/src/netif/ethernetif.c b/components/net/lwip-2.0.2/src/netif/ethernetif.c index 09d6140b16..08d1242e71 100644 --- a/components/net/lwip-2.0.2/src/netif/ethernetif.c +++ b/components/net/lwip-2.0.2/src/netif/ethernetif.c @@ -452,7 +452,7 @@ int eth_system_device_init(void) return (int)result; } -INIT_DEVICE_EXPORT(eth_system_device_init); +INIT_PREV_EXPORT(eth_system_device_init); #ifdef RT_USING_FINSH #include diff --git a/include/rtdef.h b/include/rtdef.h index 43920ea325..c7c0594ff4 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -199,15 +199,14 @@ typedef int (*init_fn_t)(void); /* board init routines will be called in board_init() function */ #define INIT_BOARD_EXPORT(fn) INIT_EXPORT(fn, "1") -/* device/component/fs/app init routines will be called in init_thread */ -/* device initialization */ -#define INIT_DEVICE_EXPORT(fn) INIT_EXPORT(fn, "2") + +/* pre/device/component/env/app init routines will be called in init_thread */ /* components pre-initialization (pure software initilization) */ #define INIT_PREV_EXPORT(fn) INIT_EXPORT(fn, "2") +/* device initialization */ +#define INIT_DEVICE_EXPORT(fn) INIT_EXPORT(fn, "3") /* components initialization (dfs, lwip, ...) */ -#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_COMPONENT_EXPORT(fn) INIT_EXPORT(fn, "4") /* environment initialization (mount disk, ...) */ #define INIT_ENV_EXPORT(fn) INIT_EXPORT(fn, "5") /* appliation initialization (rtgui application etc ...) */ -- GitLab