Merge pull request #4790 from mysterywolf/errno

[master][rtlibc] remove libc_errno.h & libc_limits.h
This commit is contained in:
guo 2021-06-13 09:36:29 +08:00 committed by GitHub
commit b516cbd2ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 68 additions and 111 deletions

View File

@ -15,7 +15,7 @@
#ifdef RT_USING_LIBC #ifdef RT_USING_LIBC
#include <sys/types.h> #include <sys/types.h>
#endif #endif
#include <sys/errno.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif

View File

@ -10,6 +10,7 @@
#include <rtdevice.h> #include <rtdevice.h>
#include <rtthread.h> #include <rtthread.h>
#include <sys/errno.h>
static const struct rt_clock_cputime_ops *_cputime_ops = RT_NULL; static const struct rt_clock_cputime_ops *_cputime_ops = RT_NULL;
@ -24,7 +25,7 @@ float clock_cpu_getres(void)
if (_cputime_ops) if (_cputime_ops)
return _cputime_ops->cputime_getres(); return _cputime_ops->cputime_getres();
rt_set_errno(-ENOSYS); rt_set_errno(ENOSYS);
return 0; return 0;
} }
@ -38,7 +39,7 @@ uint32_t clock_cpu_gettime(void)
if (_cputime_ops) if (_cputime_ops)
return _cputime_ops->cputime_gettime(); return _cputime_ops->cputime_gettime();
rt_set_errno(-ENOSYS); rt_set_errno(ENOSYS);
return 0; return 0;
} }

View File

@ -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
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
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)
} }
else else
{ {
result = -ENODEV; result = -RT_EINVAL;
} }
} }
else else
{ {
result = -ENODEV; result = -RT_EINVAL;
} }
return result; return result;

View File

@ -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 */

View File

@ -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:

View File

@ -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')

View File

@ -5,18 +5,10 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2016-11-12 Bernard The first version * 2021-05-22 Meco Man The first version.
*/ */
#ifndef _SYS_ERRNO_H
#ifndef LIBC_ERRNO_H__ #define _SYS_ERRNO_H
#define LIBC_ERRNO_H__
#include <rtconfig.h>
#if defined(RT_USING_NEWLIB) || defined(_WIN32) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
/* use errno.h file in toolchains */
#include <errno.h>
#endif
#if defined(__CC_ARM) #if defined(__CC_ARM)
/* /*
@ -29,6 +21,7 @@ defined in armcc/errno.h
#define EINVAL 5 #define EINVAL 5
#define ENOMEM 6 #define ENOMEM 6
*/ */
#define ERROR_BASE_NO 7 #define ERROR_BASE_NO 7
#elif defined(__IAR_SYSTEMS_ICC__) #elif defined(__IAR_SYSTEMS_ICC__)
@ -41,12 +34,11 @@ defined in armcc/errno.h
#define ERROR_BASE_NO 36 #define ERROR_BASE_NO 36
#else #else
#define ERROR_BASE_NO 0 #define ERROR_BASE_NO 0
#endif #endif
#if !defined(RT_USING_NEWLIB) && !defined(_WIN32) && !(defined( __GNUC__ ) && !defined(__ARMCC_VERSION)) #if defined(__CC_ARM) || defined(__IAR_SYSTEMS_ICC__)
#include <errno.h>
#define EPERM (ERROR_BASE_NO + 1) #define EPERM (ERROR_BASE_NO + 1)
#define ENOENT (ERROR_BASE_NO + 2) #define ENOENT (ERROR_BASE_NO + 2)
#define ESRCH (ERROR_BASE_NO + 3) #define ESRCH (ERROR_BASE_NO + 3)
@ -200,7 +192,6 @@ defined in armcc/errno.h
#define ENOTRECOVERABLE (ERROR_BASE_NO + 131) #define ENOTRECOVERABLE (ERROR_BASE_NO + 131)
#define ERFKILL (ERROR_BASE_NO + 132) #define ERFKILL (ERROR_BASE_NO + 132)
#define EHWPOISON (ERROR_BASE_NO + 133) #define EHWPOISON (ERROR_BASE_NO + 133)
#endif #endif
#endif #endif

View File

@ -21,6 +21,7 @@
*/ */
#include "sys/time.h" #include "sys/time.h"
#include <sys/errno.h>
#include <rtthread.h> #include <rtthread.h>
#ifdef RT_USING_DEVICE #ifdef RT_USING_DEVICE

View File

@ -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)
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)
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;
} }

View File

@ -11,8 +11,8 @@
#include "posix_getline.h" #include "posix_getline.h"
#include <stdlib.h> #include <stdlib.h>
#include <errno.h> #include <limits.h>
#include <rtlibc.h> #include <sys/errno.h>
ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) { ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) {
char *cur_pos, *new_lineptr; char *cur_pos, *new_lineptr;
@ -43,7 +43,7 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) {
break; break;
if ((*lineptr + *n - cur_pos) < 2) { if ((*lineptr + *n - cur_pos) < 2) {
if (SSIZE_MAX / 2 < *n) { if (LONG_MAX / 2 < *n) {
#ifdef EOVERFLOW #ifdef EOVERFLOW
errno = EOVERFLOW; errno = EOVERFLOW;
#else #else

View File

@ -20,7 +20,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/time.h> #include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <sys/errno.h>
#include <fcntl.h> #include <fcntl.h>
#endif #endif

View File

@ -10,7 +10,8 @@
#include <rthw.h> #include <rthw.h>
#include <rtthread.h> #include <rtthread.h>
#include <time.h> #include <sys/time.h>
#include <sys/errno.h>
#include "posix_signal.h" #include "posix_signal.h"
#define sig_valid(sig_no) (sig_no >= 0 && sig_no < RT_SIG_MAX) #define sig_valid(sig_no) (sig_no >= 0 && sig_no < RT_SIG_MAX)

View File

@ -11,7 +11,7 @@
#include <string.h> #include <string.h>
#include <rtthread.h> #include <rtthread.h>
#include <dfs_posix.h> #include <dfs_posix.h>
#include <sys/errno.h>
#include <termios.h> #include <termios.h>
int tcgetattr(int fd, struct termios *tio) int tcgetattr(int fd, struct termios *tio)

View File

@ -54,24 +54,18 @@ typedef uintptr_t mem_ptr_t;
#define S32_F "ld" #define S32_F "ld"
#define X32_F "lx" #define X32_F "lx"
#ifdef RT_USING_LIBC #include <sys/errno.h>
#if !defined(__CC_ARM) && !defined(__IAR_SYSTEMS_ICC__)
/* some errno not defined in newlib */ /* some errno not defined in newlib */
#ifndef ENSRNOTFOUND
#define ENSRNOTFOUND 163 /* Domain name not found */ #define ENSRNOTFOUND 163 /* Domain name not found */
/* WARNING: ESHUTDOWN also not defined in newlib. We chose /* WARNING: ESHUTDOWN also not defined in newlib. We chose
180 here because the number "108" which is used 180 here because the number "108" which is used
in arch.h has been assigned to another error code. */ in arch.h has been assigned to another error code. */
#define ESHUTDOWN 180
#endif /* __CC_ARM/__IAR_SYSTEMS_ICC__ */
#endif #endif
#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION)) /* LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h> */
#include <sys/time.h> #include <sys/time.h>
#define LWIP_TIMEVAL_PRIVATE 0 #define LWIP_TIMEVAL_PRIVATE 0
#else
#define LWIP_TIMEVAL_PRIVATE 1
#endif
#if defined(__CC_ARM) /* ARMCC compiler */ #if defined(__CC_ARM) /* ARMCC compiler */
#define PACK_STRUCT_FIELD(x) x #define PACK_STRUCT_FIELD(x) x
@ -105,7 +99,7 @@ void sys_arch_assert(const char* file, int line);
#define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0) #define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0)
#define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0) #define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0)
#include "string.h" #include <string.h>
#define SYS_ARCH_DECL_PROTECT(level) #define SYS_ARCH_DECL_PROTECT(level)
#define SYS_ARCH_PROTECT(level) rt_enter_critical() #define SYS_ARCH_PROTECT(level) rt_enter_critical()

View File

@ -3,7 +3,7 @@
#include <rtconfig.h> #include <rtconfig.h>
#define ERRNO 1 #define ERRNO
#define NO_SYS 0 #define NO_SYS 0
#define LWIP_SOCKET 1 #define LWIP_SOCKET 1

View File

@ -45,12 +45,18 @@
#define S32_F "ld" #define S32_F "ld"
#define X32_F "lx" #define X32_F "lx"
#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION)) #include <sys/errno.h>
/* some errno not defined in newlib */
#ifndef ENSRNOTFOUND
#define ENSRNOTFOUND 163 /* Domain name not found */
/* WARNING: ESHUTDOWN also not defined in newlib. We chose
180 here because the number "108" which is used
in arch.h has been assigned to another error code. */
#endif
/* LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h> */
#include <sys/time.h> #include <sys/time.h>
#define LWIP_TIMEVAL_PRIVATE 0 #define LWIP_TIMEVAL_PRIVATE 0
#else
#define LWIP_TIMEVAL_PRIVATE 1
#endif
#if defined(__CC_ARM) /* ARMCC compiler */ #if defined(__CC_ARM) /* ARMCC compiler */
#define PACK_STRUCT_FIELD(x) x #define PACK_STRUCT_FIELD(x) x
@ -84,7 +90,7 @@ void sys_arch_assert(const char* file, int line);
#define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0) #define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0)
#define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0) #define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0)
#include "string.h" #include <string.h>
#define SYS_ARCH_DECL_PROTECT(level) #define SYS_ARCH_DECL_PROTECT(level)
#define SYS_ARCH_PROTECT(level) rt_enter_critical() #define SYS_ARCH_PROTECT(level) rt_enter_critical()

View File

@ -3,7 +3,7 @@
#include <rtconfig.h> #include <rtconfig.h>
#define ERRNO 1 #define LWIP_ERRNO_STDINCLUDE
#define LWIP_IPV4 1 #define LWIP_IPV4 1

View File

@ -45,25 +45,18 @@
#define S32_F "ld" #define S32_F "ld"
#define X32_F "lx" #define X32_F "lx"
#ifdef RT_USING_LIBC #include <sys/errno.h>
#include <errno.h> /* some errno not defined in newlib */
#ifndef ENSRNOTFOUND #ifndef ENSRNOTFOUND
#define ENSRNOTFOUND 163 /* Domain name not found */ #define ENSRNOTFOUND 163 /* Domain name not found */
#endif
#ifndef ESHUTDOWN
/* WARNING: ESHUTDOWN also not defined in newlib. We chose /* WARNING: ESHUTDOWN also not defined in newlib. We chose
180 here because the number "108" which is used 180 here because the number "108" which is used
in arch.h has been assigned to another error code. */ in arch.h has been assigned to another error code. */
#define ESHUTDOWN 180
#endif #endif
#endif /* RT_USING_LIBC */
#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION)) /* LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h> */
#include <sys/time.h> #include <sys/time.h>
#define LWIP_TIMEVAL_PRIVATE 0 #define LWIP_TIMEVAL_PRIVATE 0
#else
#define LWIP_TIMEVAL_PRIVATE 1
#endif
#if defined(__CC_ARM) /* ARMCC compiler */ #if defined(__CC_ARM) /* ARMCC compiler */
#define PACK_STRUCT_FIELD(x) x #define PACK_STRUCT_FIELD(x) x

View File

@ -181,7 +181,7 @@ extern int errno;
/* Define LWIP_ERRNO_STDINCLUDE if you want to include <errno.h> here */ /* Define LWIP_ERRNO_STDINCLUDE if you want to include <errno.h> here */
#ifdef LWIP_ERRNO_STDINCLUDE #ifdef LWIP_ERRNO_STDINCLUDE
#include <errno.h> #include <sys/errno.h>
#else /* LWIP_ERRNO_STDINCLUDE */ #else /* LWIP_ERRNO_STDINCLUDE */
/* Define LWIP_ERRNO_INCLUDE to an equivalent of <errno.h> to include the error defines here */ /* Define LWIP_ERRNO_INCLUDE to an equivalent of <errno.h> to include the error defines here */
#ifdef LWIP_ERRNO_INCLUDE #ifdef LWIP_ERRNO_INCLUDE

View File

@ -3,8 +3,7 @@
#include <rtconfig.h> #include <rtconfig.h>
#define ERRNO 1 #define LWIP_ERRNO_STDINCLUDE
#define LWIP_SOCKET_SELECT 1 #define LWIP_SOCKET_SELECT 1
#define LWIP_SOCKET_POLL 1 #define LWIP_SOCKET_POLL 1

View File

@ -13,7 +13,7 @@
#include <dfs_file.h> #include <dfs_file.h>
#include <dfs_poll.h> #include <dfs_poll.h>
#include <dfs_net.h> #include <dfs_net.h>
#include <sys/errno.h>
#include <sys/socket.h> #include <sys/socket.h>
int accept(int s, struct sockaddr *addr, socklen_t *addrlen) int accept(int s, struct sockaddr *addr, socklen_t *addrlen)

View File

@ -9,7 +9,7 @@
/* Multi-thread searching. /* Multi-thread searching.
Illustrates: thread cancellation, cleanup handlers. */ Illustrates: thread cancellation, cleanup handlers. */
#include <errno.h> #include <sys/errno.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -6,7 +6,7 @@
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
*/ */
#include <errno.h> #include <sys/errno.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <pthread.h> #include <pthread.h>

View File

@ -11,7 +11,7 @@
* Test case that illustrates a timed wait on a condition variable. * Test case that illustrates a timed wait on a condition variable.
*/ */
#include <errno.h> #include <sys/errno.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <pthread.h> #include <pthread.h>

View File

@ -11,7 +11,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <finsh.h> #include <finsh.h>
#include <errno.h> #include <sys/errno.h>
#include <sys/fcntl.h> #include <sys/fcntl.h>
#include <sys/stat.h> #include <sys/stat.h>

View File

@ -11,7 +11,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <finsh.h> #include <finsh.h>
#include <errno.h> #include <sys/errno.h>
static int errors = 0; static int errors = 0;
static void merror(const char *msg) static void merror(const char *msg)

View File

@ -1,25 +0,0 @@
/*
* Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-09-05 Meco Man the first version
*/
#ifndef LIBC_LIMITS_H__
#define LIBC_LIMITS_H__
#include <limits.h>
#include <rtconfig.h>
#ifdef RT_USING_POSIX
#ifndef SSIZE_MAX
# define SSIZE_MAX LONG_MAX
#endif
#endif
#endif

View File

@ -13,14 +13,12 @@
/* definitions for libc if toolchain has no these definitions */ /* definitions for libc if toolchain has no these definitions */
#include "libc/libc_stat.h" #include "libc/libc_stat.h"
#include "libc/libc_errno.h"
#include "libc/libc_fcntl.h" #include "libc/libc_fcntl.h"
#include "libc/libc_ioctl.h" #include "libc/libc_ioctl.h"
#include "libc/libc_dirent.h" #include "libc/libc_dirent.h"
#include "libc/libc_signal.h" #include "libc/libc_signal.h"
#include "libc/libc_fdset.h" #include "libc/libc_fdset.h"
#include "libc/libc_limits.h"
#include "libc/libc_stdio.h" #include "libc/libc_stdio.h"
#ifndef RT_USING_LIBC #ifndef RT_USING_LIBC