提交 740a8102 编写于 作者: mysterywolf's avatar mysterywolf

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

上级 ac3b3d13
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
#include <rthw.h> #include <rthw.h>
#include <rtdevice.h> #include <rtdevice.h>
#include <stdint.h> #include <stdint.h>
#include <sys/errno.h>
#if defined(RT_USING_POSIX) #ifdef RT_USING_POSIX
#include <dfs_file.h> #include <dfs_file.h>
#include <dfs_posix.h> #include <dfs_posix.h>
#include <dfs_poll.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 ...@@ -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) if (device == RT_NULL)
{ {
rt_set_errno(-EINVAL); rt_set_errno(EINVAL);
return 0; return 0;
} }
if (count == 0) 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 ...@@ -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) if (device == RT_NULL)
{ {
rt_set_errno(-EINVAL); rt_set_errno(EINVAL);
return 0; return 0;
} }
if (count == 0) return 0; if (count == 0) return 0;
...@@ -516,12 +517,12 @@ int rt_pipe_delete(const char *name) ...@@ -516,12 +517,12 @@ int rt_pipe_delete(const char *name)
} }
else else
{ {
result = -ENODEV; result = -RT_EINVAL;
} }
} }
else else
{ {
result = -ENODEV; result = -RT_EINVAL;
} }
return result; return result;
......
...@@ -97,7 +97,7 @@ int finsh_set_prompt(const char * prompt) ...@@ -97,7 +97,7 @@ int finsh_set_prompt(const char * prompt)
} }
#endif /* RT_USING_HEAP */ #endif /* RT_USING_HEAP */
#if defined(RT_USING_DFS) #ifdef RT_USING_DFS
#include <dfs_posix.h> #include <dfs_posix.h>
#endif /* RT_USING_DFS */ #endif /* RT_USING_DFS */
......
...@@ -9,20 +9,17 @@ CPPPATH = [cwd] ...@@ -9,20 +9,17 @@ CPPPATH = [cwd]
if GetDepend('RT_USING_LIBC'): if GetDepend('RT_USING_LIBC'):
src += Glob('*.c') src += Glob('*.c')
else: if GetDepend('RT_USING_POSIX') == False:
if GetDepend('RT_LIBC_USING_TIME'): SrcRemove(src, ['unistd.c'])
src += ['time.c'] elif GetDepend('RT_LIBC_USING_TIME'):
src += ['time.c']
if GetDepend('RT_USING_POSIX') == False:
SrcRemove(src, ['unistd.c'])
if rtconfig.CROSS_TOOL == 'keil': if rtconfig.CROSS_TOOL == 'keil':
CPPDEFINES = ['__CLK_TCK=RT_TICK_PER_SECOND'] CPPDEFINES = ['__CLK_TCK=RT_TICK_PER_SECOND']
else: else:
CPPDEFINES = [] 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) list = os.listdir(cwd)
for d in list: for d in list:
......
...@@ -6,8 +6,10 @@ src = [] ...@@ -6,8 +6,10 @@ src = []
cwd = GetCurrentDir() cwd = GetCurrentDir()
CPPPATH = [cwd] CPPPATH = [cwd]
group = [] group = []
src += Glob('*.c')
if GetDepend('RT_USING_LIBC'):
src += Glob('*.c')
if rtconfig.PLATFORM != 'gcc' or rtconfig.ARCH == 'sim': 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') Return('group')
...@@ -12,8 +12,9 @@ ...@@ -12,8 +12,9 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef RT_USING_HEAP /* Memory routine */ #ifdef RT_USING_HEAP /* Memory routine */
void * #include <sys/errno.h>
_malloc_r (struct _reent *ptr, size_t size)
void * _malloc_r (struct _reent *ptr, size_t size)
{ {
void* result; void* result;
...@@ -26,8 +27,7 @@ _malloc_r (struct _reent *ptr, size_t size) ...@@ -26,8 +27,7 @@ _malloc_r (struct _reent *ptr, size_t size)
return result; return result;
} }
void * void * _realloc_r (struct _reent *ptr, void *old, size_t newlen)
_realloc_r (struct _reent *ptr, void *old, size_t newlen)
{ {
void* result; void* result;
...@@ -53,15 +53,13 @@ void *_calloc_r (struct _reent *ptr, size_t size, size_t len) ...@@ -53,15 +53,13 @@ void *_calloc_r (struct _reent *ptr, size_t size, size_t len)
return result; return result;
} }
void void _free_r (struct _reent *ptr, void *addr)
_free_r (struct _reent *ptr, void *addr)
{ {
rt_free (addr); rt_free (addr);
} }
#else #else
void * void * _sbrk_r(struct _reent *ptr, ptrdiff_t incr)
_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
{ {
return RT_NULL; return RT_NULL;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册