1
0
Эх сурвалжийг харах

[errno][libc] 解决sys头文件在libc未开启时的引入问题

Meco Man 3 жил өмнө
parent
commit
740a810274

+ 6 - 5
components/drivers/src/pipe.c

@@ -11,8 +11,9 @@
 #include <rthw.h>
 #include <rtdevice.h>
 #include <stdint.h>
+#include <sys/errno.h>
 
-#if defined(RT_USING_POSIX)
+#ifdef RT_USING_POSIX
 #include <dfs_file.h>
 #include <dfs_posix.h>
 #include <dfs_poll.h>
@@ -374,7 +375,7 @@ rt_size_t rt_pipe_read(rt_device_t device, rt_off_t pos, void *buffer, rt_size_t
 
     if (device == RT_NULL)
     {
-        rt_set_errno(-EINVAL);
+        rt_set_errno(EINVAL);
         return 0;
     }
     if (count == 0) return 0;
@@ -402,7 +403,7 @@ rt_size_t rt_pipe_write(rt_device_t device, rt_off_t pos, const void *buffer, rt
 
     if (device == RT_NULL)
     {
-        rt_set_errno(-EINVAL);
+        rt_set_errno(EINVAL);
         return 0;
     }
     if (count == 0) return 0;
@@ -516,12 +517,12 @@ int rt_pipe_delete(const char *name)
         }
         else
         {
-            result = -ENODEV;
+            result = -RT_EINVAL;
         }
     }
     else
     {
-        result = -ENODEV;
+        result = -RT_EINVAL;
     }
 
     return result;

+ 1 - 1
components/finsh/shell.c

@@ -97,7 +97,7 @@ int finsh_set_prompt(const char * prompt)
 }
 #endif /* RT_USING_HEAP */
 
-#if defined(RT_USING_DFS)
+#ifdef RT_USING_DFS
 #include <dfs_posix.h>
 #endif /* RT_USING_DFS */
 

+ 5 - 8
components/libc/compilers/common/SConscript

@@ -9,20 +9,17 @@ CPPPATH = [cwd]
 
 if GetDepend('RT_USING_LIBC'):
     src += Glob('*.c')
-else:
-    if GetDepend('RT_LIBC_USING_TIME'):
-        src += ['time.c']
-
-if GetDepend('RT_USING_POSIX') == False:
-    SrcRemove(src, ['unistd.c'])
+    if GetDepend('RT_USING_POSIX') == False:
+        SrcRemove(src, ['unistd.c'])
+elif GetDepend('RT_LIBC_USING_TIME'):
+    src += ['time.c']
 
 if rtconfig.CROSS_TOOL == 'keil':
     CPPDEFINES = ['__CLK_TCK=RT_TICK_PER_SECOND']
 else:
     CPPDEFINES = []
 
-if GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME'):
-    group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
 
 list = os.listdir(cwd)
 for d in list:

+ 4 - 2
components/libc/compilers/common/none-gcc/SConscript

@@ -6,8 +6,10 @@ src   = []
 cwd   = GetCurrentDir()
 CPPPATH = [cwd]
 group = []
-src += Glob('*.c')
+
+if GetDepend('RT_USING_LIBC'):
+    src += Glob('*.c')
 
 if rtconfig.PLATFORM != 'gcc' or rtconfig.ARCH == 'sim':
-    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH)
+    group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH)
 Return('group')

+ 6 - 8
components/libc/compilers/newlib/minilib.c

@@ -12,8 +12,9 @@
 #include <rtthread.h>
 
 #ifdef RT_USING_HEAP /* Memory routine */
-void *
-_malloc_r (struct _reent *ptr, size_t size)
+#include <sys/errno.h>
+
+void * _malloc_r (struct _reent *ptr, size_t size)
 {
     void* result;
 
@@ -26,8 +27,7 @@ _malloc_r (struct _reent *ptr, size_t size)
     return result;
 }
 
-void *
-_realloc_r (struct _reent *ptr, void *old, size_t newlen)
+void * _realloc_r (struct _reent *ptr, void *old, size_t newlen)
 {
     void* result;
 
@@ -53,15 +53,13 @@ void *_calloc_r (struct _reent *ptr, size_t size, size_t len)
     return result;
 }
 
-void
-_free_r (struct _reent *ptr, void *addr)
+void _free_r (struct _reent *ptr, void *addr)
 {
     rt_free (addr);
 }
 
 #else
-void *
-_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
+void * _sbrk_r(struct _reent *ptr, ptrdiff_t incr)
 {
     return RT_NULL;
 }