Преглед на файлове

[Libc] Change libc_system_init as INIT_COMPONENT

Bernard.Xiong преди 10 години
родител
ревизия
0da8d515ac
променени са 2 файла, в които са добавени 28 реда и са изтрити 22 реда
  1. 21 15
      components/libc/newlib/libc.c
  2. 7 7
      components/libc/newlib/libc.h

+ 21 - 15
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);

+ 7 - 7
components/libc/newlib/libc.h

@@ -3,15 +3,15 @@
 
 #include <sys/time.h>
 
-#define MILLISECOND_PER_SECOND	1000UL
-#define MICROSECOND_PER_SECOND	1000000UL
-#define NANOSECOND_PER_SECOND	1000000000UL
+#define MILLISECOND_PER_SECOND  1000UL
+#define MICROSECOND_PER_SECOND  1000000UL
+#define NANOSECOND_PER_SECOND   1000000000UL
 
-#define MILLISECOND_PER_TICK	(MILLISECOND_PER_SECOND / RT_TICK_PER_SECOND)
-#define MICROSECOND_PER_TICK	(MICROSECOND_PER_SECOND / RT_TICK_PER_SECOND)
-#define NANOSECOND_PER_TICK		(NANOSECOND_PER_SECOND  / RT_TICK_PER_SECOND)
+#define MILLISECOND_PER_TICK    (MILLISECOND_PER_SECOND / RT_TICK_PER_SECOND)
+#define MICROSECOND_PER_TICK    (MICROSECOND_PER_SECOND / RT_TICK_PER_SECOND)
+#define NANOSECOND_PER_TICK     (NANOSECOND_PER_SECOND  / RT_TICK_PER_SECOND)
 
-void libc_system_init(const char* tty_name);
+int libc_system_init(void);
 
 /* some time related function */
 int libc_set_time(const struct timespec *time);