mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-12-27 09:38:24 +00:00
[libc] remove RT_USING_LIBC
This commit is contained in:
@@ -1,9 +1,3 @@
|
||||
# ARMLIB (Keil-MDK) porting for RT-Thread
|
||||
|
||||
Please define RT_USING_LIBC and compile RT-Thread with Keil-MDK compiler.
|
||||
|
||||
|
||||
|
||||
## More Information
|
||||
|
||||
https://www.keil.com/support/man/docs/armlib/
|
||||
@@ -7,6 +7,6 @@ group = []
|
||||
CPPDEFINES = ['RT_USING_ARM_LIBC']
|
||||
|
||||
if rtconfig.PLATFORM == 'armcc' or rtconfig.PLATFORM == 'armclang':
|
||||
group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPDEFINES = CPPDEFINES)
|
||||
group = DefineGroup('compiler-libc', src, depend = [], CPPDEFINES = CPPDEFINES)
|
||||
|
||||
Return('group')
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
#ifndef RT_USING_HEAP
|
||||
#define DBG_TAG "armlibc.mem"
|
||||
#define DBG_TAG "armlibc.syscall.mem"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include <compiler_private.h>
|
||||
#ifdef RT_USING_POSIX_DEVIO
|
||||
#include "libc.h"
|
||||
#endif /* RT_USING_POSIX_DEVIO */
|
||||
@@ -69,6 +70,7 @@ FILEHANDLE _sys_open(const char *name, int openmode)
|
||||
return (STDERR);
|
||||
|
||||
#ifndef DFS_USING_POSIX
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
return 0; /* error */
|
||||
#else
|
||||
/* Correct openmode from fopen to open */
|
||||
@@ -113,6 +115,7 @@ int _sys_close(FILEHANDLE fh)
|
||||
|
||||
return close(fh);
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
return 0;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
@@ -152,12 +155,13 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
|
||||
#ifdef RT_USING_POSIX_DEVIO
|
||||
if (libc_stdio_get_console() < 0)
|
||||
{
|
||||
LOG_W("Do not invoke standard output before initializing libc");
|
||||
LOG_W("Do not invoke standard output before initializing compiler-libc");
|
||||
return 0; /* error, but keep going */
|
||||
}
|
||||
size = read(STDIN_FILENO, buf, len);
|
||||
return len - size; /* success */
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_devio);
|
||||
return 0; /* error */
|
||||
#endif /* RT_USING_POSIX_DEVIO */
|
||||
}
|
||||
@@ -178,6 +182,7 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
|
||||
}
|
||||
}
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
return 0; /* error */
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
@@ -228,6 +233,7 @@ int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)
|
||||
return 0; /* error */
|
||||
}
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
return 0; /* error */
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
@@ -246,6 +252,7 @@ int _sys_seek(FILEHANDLE fh, long pos)
|
||||
/* position is relative to the start of file fh */
|
||||
return lseek(fh, pos, 0);
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
return 0; /* error */
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
@@ -301,6 +308,7 @@ long _sys_flen(FILEHANDLE fh)
|
||||
fstat(fh, &stat);
|
||||
return stat.st_size;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
return 0;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
@@ -318,6 +326,7 @@ int remove(const char *filename)
|
||||
#ifdef DFS_USING_POSIX
|
||||
return unlink(filename);
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
return 0; /* error */
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
@@ -345,13 +354,14 @@ int fgetc(FILE *f)
|
||||
|
||||
if (libc_stdio_get_console() < 0)
|
||||
{
|
||||
LOG_W("Do not invoke standard output before initializing libc");
|
||||
LOG_W("Do not invoke standard output before initializing compiler-libc");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(read(STDIN_FILENO, &ch, 1) == 1)
|
||||
return ch;
|
||||
#endif /* RT_USING_POSIX_DEVIO */
|
||||
LOG_W("%s: %s", __func__, warning_without_devio);
|
||||
return 0; /* error */
|
||||
}
|
||||
|
||||
|
||||
@@ -10,12 +10,9 @@ CPPDEFINES = []
|
||||
if rtconfig.CROSS_TOOL == 'keil':
|
||||
CPPDEFINES += ['__CLK_TCK=RT_TICK_PER_SECOND']
|
||||
|
||||
if GetDepend('RT_USING_LIBC'):
|
||||
src += Glob('*.c')
|
||||
elif GetDepend('RT_LIBC_USING_TIME'):
|
||||
src += ['time.c']
|
||||
src += Glob('*.c')
|
||||
|
||||
group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
|
||||
group = DefineGroup('compiler-libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
|
||||
|
||||
list = os.listdir(cwd)
|
||||
for item in list:
|
||||
|
||||
13
components/libc/compilers/common/compiler_private.c
Normal file
13
components/libc/compilers/common/compiler_private.c
Normal file
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2021-12-26 Meco Man First Version
|
||||
*/
|
||||
#include "compiler_private.h"
|
||||
|
||||
const char *warning_without_fs = "Please enable RT_USING_POSIX_FS";
|
||||
const char *warning_without_devio = "Please enable RT_USING_POSIX_FS and RT_USING_POSIX_DEVIO";
|
||||
18
components/libc/compilers/common/compiler_private.h
Normal file
18
components/libc/compilers/common/compiler_private.h
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2021-12-26 Meco Man First Version
|
||||
*/
|
||||
#ifndef __COMPILER_PRIVATE_H__
|
||||
#define __COMPILER_PRIVATE_H__
|
||||
|
||||
#include <rtconfig.h>
|
||||
|
||||
extern const char *warning_without_fs;
|
||||
extern const char *warning_without_devio;
|
||||
|
||||
#endif /* __COMPILER_PRIVATE_H__ */
|
||||
@@ -7,9 +7,8 @@ cwd = GetCurrentDir()
|
||||
CPPPATH = [cwd]
|
||||
group = []
|
||||
|
||||
if GetDepend('RT_USING_LIBC'):
|
||||
src += Glob('*.c')
|
||||
src += Glob('*.c')
|
||||
|
||||
if rtconfig.PLATFORM != 'gcc' or rtconfig.ARCH == 'sim':
|
||||
group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH)
|
||||
group = DefineGroup('compiler-libc', src, depend = [], CPPPATH = CPPPATH)
|
||||
Return('group')
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <sys/errno.h>
|
||||
#include <rtthread.h>
|
||||
#include <rthw.h>
|
||||
#ifdef RT_USING_DEVICE
|
||||
#ifdef RT_USING_RTC
|
||||
#include <rtdevice.h>
|
||||
#endif
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
#define WARNING_NO_RTC "Cannot find a RTC device!"
|
||||
|
||||
/* seconds per day */
|
||||
#define SPD 24*60*60
|
||||
|
||||
@@ -108,7 +110,7 @@ static rt_err_t get_timeval(struct timeval *tv)
|
||||
else
|
||||
{
|
||||
/* LOG_W will cause a recursive printing if ulog timestamp function is enabled */
|
||||
rt_kprintf("Cannot find a RTC device to provide time!\r\n");
|
||||
rt_kprintf(WARNING_NO_RTC);
|
||||
return -RT_ENOSYS;
|
||||
}
|
||||
|
||||
@@ -116,7 +118,7 @@ static rt_err_t get_timeval(struct timeval *tv)
|
||||
|
||||
#else
|
||||
/* LOG_W will cause a recursive printing if ulog timestamp function is enabled */
|
||||
rt_kprintf("Cannot find a RTC device to provide time!\r\n");
|
||||
rt_kprintf(WARNING_NO_RTC);
|
||||
return -RT_ENOSYS;
|
||||
#endif /* RT_USING_RTC */
|
||||
}
|
||||
@@ -153,14 +155,14 @@ static int set_timeval(struct timeval *tv)
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_W("Cannot find a RTC device to provide time!");
|
||||
LOG_W(WARNING_NO_RTC);
|
||||
return -RT_ENOSYS;
|
||||
}
|
||||
|
||||
return rst;
|
||||
|
||||
#else
|
||||
LOG_W("Cannot find a RTC device to provide time!");
|
||||
LOG_W(WARNING_NO_RTC);
|
||||
return -RT_ENOSYS;
|
||||
#endif /* RT_USING_RTC */
|
||||
}
|
||||
@@ -525,7 +527,7 @@ INIT_COMPONENT_EXPORT(_rt_clock_time_system_init);
|
||||
int clock_getres(clockid_t clockid, struct timespec *res)
|
||||
{
|
||||
#ifndef RT_USING_RTC
|
||||
LOG_W("Cannot find a RTC device to save time!");
|
||||
LOG_W(WARNING_NO_RTC);
|
||||
return -1;
|
||||
#else
|
||||
int ret = 0;
|
||||
@@ -564,7 +566,7 @@ RTM_EXPORT(clock_getres);
|
||||
int clock_gettime(clockid_t clockid, struct timespec *tp)
|
||||
{
|
||||
#ifndef RT_USING_RTC
|
||||
LOG_W("Cannot find a RTC device to save time!");
|
||||
LOG_W(WARNING_NO_RTC);
|
||||
return -1;
|
||||
#else
|
||||
int ret = 0;
|
||||
@@ -628,7 +630,7 @@ int clock_nanosleep(clockid_t clockid, int flags, const struct timespec *rqtp, s
|
||||
int clock_settime(clockid_t clockid, const struct timespec *tp)
|
||||
{
|
||||
#ifndef RT_USING_RTC
|
||||
LOG_W("Cannot find a RTC device to save time!");
|
||||
LOG_W(WARNING_NO_RTC);
|
||||
return -1;
|
||||
#else
|
||||
register rt_base_t level;
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
# DLIB (IAR) porting for RT-Thread
|
||||
|
||||
Please define RT_USING_LIBC and compile RT-Thread with IAR compiler.
|
||||
|
||||
|
||||
|
||||
## More Information
|
||||
|
||||
http://www.iarsys.co.jp/download/LMS2/arm/7502/ewarm7502doc/arm/doc/EWARM_DevelopmentGuide.ENU.pdf P.130
|
||||
@@ -15,6 +15,6 @@ if rtconfig.PLATFORM == 'iar':
|
||||
if LooseVersion(IARVersion()) < LooseVersion("8.20.1"):
|
||||
CPPDEFINES = CPPDEFINES + ['_DLIB_THREAD_SUPPORT']
|
||||
|
||||
group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPDEFINES = CPPDEFINES)
|
||||
group = DefineGroup('compiler-libc', src, depend = [], CPPDEFINES = CPPDEFINES)
|
||||
|
||||
Return('group')
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
#include <rtthread.h>
|
||||
#include <LowLevelIOInterface.h>
|
||||
#include <unistd.h>
|
||||
#include <compiler_private.h>
|
||||
#define DBG_TAG "dlib.syscall.close"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
/*
|
||||
* The "__close" function should close the file corresponding to
|
||||
@@ -27,6 +31,7 @@ int __close(int handle)
|
||||
#ifdef DFS_USING_POSIX
|
||||
return close(handle);
|
||||
#else
|
||||
LOG_W(warning_without_fs);
|
||||
return _LLIO_ERROR;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
#include <rtthread.h>
|
||||
#include <LowLevelIOInterface.h>
|
||||
#include <unistd.h>
|
||||
#include <compiler_private.h>
|
||||
#define DBG_TAG "dlib.syscall.lseek"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
/*
|
||||
* The "__lseek" function makes the next file operation (__read or
|
||||
@@ -36,6 +40,7 @@ long __lseek(int handle, long offset, int whence)
|
||||
#ifdef DFS_USING_POSIX
|
||||
return lseek(handle, offset, whence);
|
||||
#else
|
||||
LOG_W(warning_without_fs);
|
||||
return _LLIO_ERROR;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
#ifndef RT_USING_HEAP
|
||||
#define DBG_TAG "dlib.syscall_mem"
|
||||
#define DBG_TAG "dlib.syscall.mem"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
#define _NO_HEAP_ERROR() do{LOG_E("Please enable RT_USING_HEAP");\
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
#include <rtthread.h>
|
||||
#include <LowLevelIOInterface.h>
|
||||
#include <fcntl.h>
|
||||
#include <compiler_private.h>
|
||||
#define DBG_TAG "dlib.syscall.open"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
/*
|
||||
* The "__open" function opens the file named "filename" as specified
|
||||
@@ -22,56 +26,58 @@
|
||||
int __open(const char *filename, int mode)
|
||||
{
|
||||
#ifdef DFS_USING_POSIX
|
||||
int handle;
|
||||
int open_mode = O_RDONLY;
|
||||
int handle;
|
||||
int open_mode = O_RDONLY;
|
||||
|
||||
if (mode & _LLIO_CREAT)
|
||||
{
|
||||
open_mode |= O_CREAT;
|
||||
|
||||
/* Check what we should do with it if it exists. */
|
||||
if (mode & _LLIO_APPEND)
|
||||
if (mode & _LLIO_CREAT)
|
||||
{
|
||||
/* Append to the existing file. */
|
||||
open_mode |= O_APPEND;
|
||||
open_mode |= O_CREAT;
|
||||
|
||||
/* Check what we should do with it if it exists. */
|
||||
if (mode & _LLIO_APPEND)
|
||||
{
|
||||
/* Append to the existing file. */
|
||||
open_mode |= O_APPEND;
|
||||
}
|
||||
|
||||
if (mode & _LLIO_TRUNC)
|
||||
{
|
||||
/* Truncate the existsing file. */
|
||||
open_mode |= O_TRUNC;
|
||||
}
|
||||
}
|
||||
|
||||
if (mode & _LLIO_TRUNC)
|
||||
if (mode & _LLIO_TEXT)
|
||||
{
|
||||
/* Truncate the existsing file. */
|
||||
open_mode |= O_TRUNC;
|
||||
/* we didn't support text mode */
|
||||
}
|
||||
}
|
||||
|
||||
if (mode & _LLIO_TEXT)
|
||||
{
|
||||
/* we didn't support text mode */
|
||||
}
|
||||
switch (mode & _LLIO_RDWRMASK)
|
||||
{
|
||||
case _LLIO_RDONLY:
|
||||
break;
|
||||
|
||||
switch (mode & _LLIO_RDWRMASK)
|
||||
{
|
||||
case _LLIO_RDONLY:
|
||||
break;
|
||||
case _LLIO_WRONLY:
|
||||
open_mode |= O_WRONLY;
|
||||
break;
|
||||
|
||||
case _LLIO_WRONLY:
|
||||
open_mode |= O_WRONLY;
|
||||
break;
|
||||
case _LLIO_RDWR:
|
||||
/* The file should be opened for both reads and writes. */
|
||||
open_mode |= O_RDWR;
|
||||
break;
|
||||
|
||||
case _LLIO_RDWR:
|
||||
/* The file should be opened for both reads and writes. */
|
||||
open_mode |= O_RDWR;
|
||||
break;
|
||||
default:
|
||||
return _LLIO_ERROR;
|
||||
}
|
||||
|
||||
default:
|
||||
return _LLIO_ERROR;
|
||||
}
|
||||
|
||||
handle = open(filename, open_mode, 0);
|
||||
if (handle < 0)
|
||||
return _LLIO_ERROR;
|
||||
|
||||
return handle;
|
||||
handle = open(filename, open_mode, 0);
|
||||
if (handle < 0)
|
||||
{
|
||||
return _LLIO_ERROR;
|
||||
}
|
||||
return handle;
|
||||
#else
|
||||
return _LLIO_ERROR;
|
||||
LOG_W(warning_without_fs);
|
||||
return _LLIO_ERROR;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
#ifdef RT_USING_POSIX_DEVIO
|
||||
#include "libc.h"
|
||||
#endif /* RT_USING_POSIX_DEVIO */
|
||||
|
||||
#define DBG_TAG "dlib.syscall_read"
|
||||
#include <compiler_private.h>
|
||||
#define DBG_TAG "dlib.syscall.read"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
@@ -42,11 +42,12 @@ size_t __read(int handle, unsigned char *buf, size_t len)
|
||||
#ifdef RT_USING_POSIX_DEVIO
|
||||
if (libc_stdio_get_console() < 0)
|
||||
{
|
||||
LOG_W("Do not invoke standard input before initializing libc");
|
||||
LOG_W("Do not invoke standard input before initializing compiler-libc");
|
||||
return 0; /* error, but keep going */
|
||||
}
|
||||
return read(STDIN_FILENO, buf, len); /* return the length of the data read */
|
||||
#else
|
||||
LOG_W(warning_without_devio);
|
||||
return _LLIO_ERROR;
|
||||
#endif /* RT_USING_POSIX_DEVIO */
|
||||
}
|
||||
@@ -58,6 +59,7 @@ size_t __read(int handle, unsigned char *buf, size_t len)
|
||||
size = read(handle, buf, len);
|
||||
return size; /* return the length of the data read */
|
||||
#else
|
||||
LOG_W(warning_without_fs);
|
||||
return _LLIO_ERROR;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
#include <rtthread.h>
|
||||
#include <LowLevelIOInterface.h>
|
||||
#include <unistd.h>
|
||||
#include <compiler_private.h>
|
||||
#define DBG_TAG "dlib.syscall.remove"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
/*
|
||||
* The "remove" function should remove the file named "filename". It
|
||||
@@ -23,6 +27,7 @@ int remove(const char *filename)
|
||||
#ifdef DFS_USING_POSIX
|
||||
return unlink(filename);
|
||||
#else
|
||||
LOG_W(warning_without_fs);
|
||||
return _LLIO_ERROR;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
#include <rtthread.h>
|
||||
#include <LowLevelIOInterface.h>
|
||||
#include <unistd.h>
|
||||
#define DBG_TAG "dlib.syscall_write"
|
||||
#include <compiler_private.h>
|
||||
#define DBG_TAG "dlib.syscall.write"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
|
||||
@@ -63,6 +64,7 @@ size_t __write(int handle, const unsigned char *buf, size_t len)
|
||||
size = write(handle, buf, len);
|
||||
return size; /* return the length of the data written */
|
||||
#else
|
||||
LOG_W(warning_without_fs);
|
||||
return _LLIO_ERROR;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
}
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
# NEWLIB (GCC) porting for RT-Thread
|
||||
|
||||
Please define RT_USING_LIBC and compile RT-Thread with GCC compiler.
|
||||
|
||||
|
||||
|
||||
## More Information
|
||||
|
||||
https://sourceware.org/newlib/libc.html#Reentrancy
|
||||
|
||||
|
||||
@@ -10,11 +10,8 @@ LIBS = ['m'] # link libm
|
||||
CPPPATH = [cwd]
|
||||
|
||||
if rtconfig.PLATFORM == 'gcc':
|
||||
if GetDepend('RT_USING_LIBC'):
|
||||
LIBS += ['c'] # link libc
|
||||
src += Glob('*.c')
|
||||
else:
|
||||
src += ['syscalls.c']
|
||||
LIBS += ['c'] # link libc
|
||||
src += Glob('*.c')
|
||||
|
||||
#report newlib version
|
||||
print('Newlib version:' + GetNewLibVersion(rtconfig))
|
||||
@@ -22,7 +19,7 @@ if rtconfig.PLATFORM == 'gcc':
|
||||
# identify this is Newlib, and only enable POSIX.1-1990
|
||||
CPPDEFINES = ['RT_USING_NEWLIB', '_POSIX_C_SOURCE=1']
|
||||
|
||||
group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
|
||||
group = DefineGroup('compiler-libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
|
||||
|
||||
|
||||
list = os.listdir(cwd)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#ifdef RT_USING_MODULE
|
||||
#include <dlmodule.h>
|
||||
#endif /* RT_USING_MODULE */
|
||||
|
||||
#include <compiler_private.h>
|
||||
#define DBG_TAG "newlib.syscalls"
|
||||
#define DBG_LVL DBG_INFO
|
||||
#include <rtdbg.h>
|
||||
@@ -92,8 +92,6 @@ void __libc_init_array(void)
|
||||
/* __libc_init_array is ARM code, not Thumb; it will cause a hardfault. */
|
||||
}
|
||||
|
||||
#ifdef RT_USING_LIBC
|
||||
|
||||
/* Reentrant versions of system calls. */
|
||||
#ifndef _REENT_ONLY
|
||||
int *__errno ()
|
||||
@@ -112,6 +110,7 @@ int _close_r(struct _reent *ptr, int fd)
|
||||
#ifdef DFS_USING_POSIX
|
||||
return close(fd);
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -185,10 +184,10 @@ _off_t _lseek_r(struct _reent *ptr, int fd, _off_t pos, int whence)
|
||||
{
|
||||
#ifdef DFS_USING_POSIX
|
||||
_off_t rc;
|
||||
|
||||
rc = lseek(fd, pos, whence);
|
||||
return rc;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -198,10 +197,10 @@ int _mkdir_r(struct _reent *ptr, const char *name, int mode)
|
||||
{
|
||||
#ifdef DFS_USING_POSIX
|
||||
int rc;
|
||||
|
||||
rc = mkdir(name, mode);
|
||||
return rc;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -214,6 +213,7 @@ int _open_r(struct _reent *ptr, const char *file, int flags, int mode)
|
||||
rc = open(file, flags, mode);
|
||||
return rc;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -228,10 +228,11 @@ _ssize_t _read_r(struct _reent *ptr, int fd, void *buf, size_t nbytes)
|
||||
#ifdef RT_USING_POSIX_DEVIO
|
||||
if (libc_stdio_get_console() < 0)
|
||||
{
|
||||
LOG_W("Do not invoke standard input before initializing libc");
|
||||
LOG_W("Do not invoke standard input before initializing compiler-libc");
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_devio);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* RT_USING_POSIX_DEVIO */
|
||||
@@ -245,6 +246,7 @@ _ssize_t _read_r(struct _reent *ptr, int fd, void *buf, size_t nbytes)
|
||||
rc = read(fd, buf, nbytes);
|
||||
return rc;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -254,10 +256,10 @@ int _rename_r(struct _reent *ptr, const char *old, const char *new)
|
||||
{
|
||||
#ifdef DFS_USING_POSIX
|
||||
int rc;
|
||||
|
||||
rc = rename(old, new);
|
||||
return rc;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -267,10 +269,10 @@ int _stat_r(struct _reent *ptr, const char *file, struct stat *pstat)
|
||||
{
|
||||
#ifdef DFS_USING_POSIX
|
||||
int rc;
|
||||
|
||||
rc = stat(file, pstat);
|
||||
return rc;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -281,6 +283,7 @@ int _unlink_r(struct _reent *ptr, const char *file)
|
||||
#ifdef DFS_USING_POSIX
|
||||
return unlink(file);
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -315,6 +318,7 @@ _ssize_t _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
|
||||
rc = write(fd, buf, nbytes);
|
||||
return rc;
|
||||
#else
|
||||
LOG_W("%s: %s", __func__, warning_without_fs);
|
||||
ptr->_errno = ENOTSUP;
|
||||
return -1;
|
||||
#endif /* DFS_USING_POSIX */
|
||||
@@ -333,5 +337,3 @@ These functions are implemented and replaced by the 'common/time.c' file
|
||||
int _gettimeofday_r(struct _reent *ptr, struct timeval *__tp, void *__tzp);
|
||||
_CLOCK_T_ _times_r(struct _reent *ptr, struct tms *ptms);
|
||||
*/
|
||||
|
||||
#endif /* RT_USING_LIBC */
|
||||
|
||||
Reference in New Issue
Block a user