mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-21 18:57:16 +08:00
[libc] Add RT_USING_POSIX macro.
1. Add macro check in rtdebug.h; 2. Use RT_USING_POSIX for poll/select, stdin etc. 3. Split dfs_posix.h to dfs_posix.h, dfs_poll.h and dfs_select.h;
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
menu "libc"
|
||||
menu "POSIX layer and C standard library"
|
||||
|
||||
config RT_USING_LIBC
|
||||
bool "Enable libc APIs from toolchain"
|
||||
@@ -9,12 +9,13 @@ config RT_USING_PTHREADS
|
||||
default n
|
||||
|
||||
if RT_USING_LIBC
|
||||
config RT_USING_POSIX_STDIN
|
||||
bool "Enable stdin"
|
||||
config RT_USING_POSIX
|
||||
bool "Enable POSIX layer for poll/select, stdin etc"
|
||||
select RT_USING_DFS
|
||||
select RT_USING_DFS_DEVFS
|
||||
default y
|
||||
|
||||
if RT_USING_POSIX
|
||||
config RT_USING_POSIX_MMAP
|
||||
bool "Enable mmap() api"
|
||||
default n
|
||||
@@ -22,6 +23,7 @@ if RT_USING_LIBC
|
||||
config RT_USING_POSIX_TERMIOS
|
||||
bool "Enable termios feature"
|
||||
default n
|
||||
endif
|
||||
endif
|
||||
|
||||
endmenu
|
||||
|
||||
@@ -153,7 +153,7 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
|
||||
|
||||
if (fh == STDIN)
|
||||
{
|
||||
#ifdef RT_USING_POSIX_STDIN
|
||||
#ifdef RT_USING_POSIX
|
||||
size = libc_stdio_read(buf, len);
|
||||
return len - size;
|
||||
#else
|
||||
@@ -192,7 +192,7 @@ int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)
|
||||
#ifndef RT_USING_CONSOLE
|
||||
return 0;
|
||||
#else
|
||||
#ifdef RT_USING_POSIX_STDIN
|
||||
#ifdef RT_USING_POSIX
|
||||
size = libc_stdio_write(buf, len);
|
||||
return len - size;
|
||||
#else
|
||||
@@ -319,7 +319,7 @@ int fgetc(FILE *f)
|
||||
{
|
||||
char ch;
|
||||
|
||||
#ifdef RT_USING_POSIX_STDIN
|
||||
#ifdef RT_USING_POSIX
|
||||
if (libc_stdio_read(&ch, 1) == 1)
|
||||
return ch;
|
||||
#endif
|
||||
|
||||
@@ -38,7 +38,7 @@ size_t __read(int handle, unsigned char *buf, size_t len)
|
||||
|
||||
if (handle == _LLIO_STDIN)
|
||||
{
|
||||
#ifdef RT_USING_POSIX_STDIN
|
||||
#ifdef RT_USING_POSIX
|
||||
return libc_stdio_read(buf, len);
|
||||
#else
|
||||
return _LLIO_ERROR;
|
||||
|
||||
@@ -43,7 +43,7 @@ size_t __write(int handle, const unsigned char *buf, size_t len)
|
||||
return _LLIO_ERROR;
|
||||
#else
|
||||
|
||||
#ifdef RT_USING_POSIX_STDIN
|
||||
#ifdef RT_USING_POSIX
|
||||
return libc_stdio_write((void*)buf, len);
|
||||
#else
|
||||
rt_device_t console_device;
|
||||
|
||||
@@ -43,7 +43,7 @@ int libc_system_init(void)
|
||||
dev_console = rt_console_get_device();
|
||||
if (dev_console)
|
||||
{
|
||||
#if defined(RT_USING_DFS_DEVFS) && defined(RT_USING_POSIX_STDIN)
|
||||
#if defined(RT_USING_POSIX)
|
||||
libc_stdio_set_console(dev_console->parent.name, O_RDWR);
|
||||
#else
|
||||
libc_stdio_set_console(dev_console->parent.name, O_WRONLY);
|
||||
|
||||
Reference in New Issue
Block a user