summaryrefslogtreecommitdiff
path: root/components/libc/newlib/libc.c
diff options
context:
space:
mode:
authorBernard.Xiong <[email protected]>2015-03-26 19:58:05 +0800
committerBernard.Xiong <[email protected]>2015-03-26 19:58:05 +0800
commit0da8d515acb23f702deaa6d6ee332a225d2bdb48 (patch)
tree2a5f530bf2fdc599fdd65650217bb5b8c046f9e6 /components/libc/newlib/libc.c
parent62a0172d11e559272128bf52b56ef806ba28ae24 (diff)
[Libc] Change libc_system_init as INIT_COMPONENT
Diffstat (limited to 'components/libc/newlib/libc.c')
-rw-r--r--components/libc/newlib/libc.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/components/libc/newlib/libc.c b/components/libc/newlib/libc.c
index 73270969b8..0427a6d91b 100644
--- a/components/libc/newlib/libc.c
+++ b/components/libc/newlib/libc.c
@@ -18,32 +18,38 @@
#endif
-void libc_system_init(const char* tty_name)
+int libc_system_init(void)
{
#ifdef RT_USING_DFS
- int fd;
+ int fd;
+ struct rt_device *console_dev;
#ifndef RT_USING_DFS_DEVFS
#error Please enable devfs by defining RT_USING_DFS_DEVFS in rtconfig.h
#endif
- /* initialize console device */
- rt_console_init(tty_name);
+ console_dev = rt_console_get_device();
+ if (console_dev)
+ {
+ /* initialize console device */
+ rt_console_init(console_dev->parent.name);
- /* open console as stdin/stdout/stderr */
- fd = open("/dev/console", O_RDONLY, 0); /* for stdin */
- fd = open("/dev/console", O_WRONLY, 0); /* for stdout */
- fd = open("/dev/console", O_WRONLY, 0); /* for stderr */
-
- /* skip warning */
- fd = fd;
+ /* open console as stdin/stdout/stderr */
+ fd = open("/dev/console", O_RDONLY, 0); /* for stdin */
+ fd = open("/dev/console", O_WRONLY, 0); /* for stdout */
+ fd = open("/dev/console", O_WRONLY, 0); /* for stderr */
+
+ /* skip warning */
+ fd = fd;
+ }
#endif
- /* set PATH and HOME */
- putenv("PATH=/");
- putenv("HOME=/");
+ /* set PATH and HOME */
+ putenv("PATH=/bin");
+ putenv("HOME=/home");
#ifdef RT_USING_PTHREADS
- pthread_system_init();
+ pthread_system_init();
#endif
}
+INIT_COMPONENT_EXPORT(libc_system_init);