mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-10-18 18:34:20 +08:00
add RT_USING_POSIX_STDIO
This commit is contained in:
@@ -39,10 +39,13 @@ config RT_LIBC_DEFAULT_TIMEZONE
|
||||
config RT_USING_POSIX
|
||||
bool "Enable basic POSIX layer, open/read/write/close etc"
|
||||
select RT_USING_DFS
|
||||
select RT_USING_DFS_DEVFS
|
||||
default n
|
||||
|
||||
if RT_USING_POSIX
|
||||
config RT_USING_POSIX_STDIO
|
||||
bool "Enable standard IO"
|
||||
select RT_USING_DFS_DEVFS
|
||||
default n
|
||||
|
||||
config RT_USING_POSIX_POLL
|
||||
bool "Enable poll()"
|
||||
|
@@ -21,7 +21,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
#include "libc.h"
|
||||
#endif
|
||||
|
||||
@@ -144,7 +144,7 @@ int _sys_close(FILEHANDLE fh)
|
||||
*/
|
||||
int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
|
||||
{
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
int size;
|
||||
|
||||
if (fh == STDIN)
|
||||
@@ -169,7 +169,7 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
|
||||
return 0; /* error */
|
||||
#else
|
||||
return 0; /* error */
|
||||
#endif /* RT_USING_POSIX */
|
||||
#endif /* RT_USING_POSIX_STDIO */
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -185,7 +185,7 @@ int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)
|
||||
|
||||
if ((fh == STDOUT) || (fh == STDERR))
|
||||
{
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
if (libc_stdio_get_console() < 0)
|
||||
{
|
||||
LOG_W("Do not invoke standard input before initializing libc");
|
||||
@@ -200,7 +200,7 @@ int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)
|
||||
}
|
||||
|
||||
return 0; /* error */
|
||||
#endif /* RT_USING_POSIX */
|
||||
#endif /* RT_USING_POSIX_STDIO */
|
||||
}
|
||||
else if (fh == STDIN)
|
||||
{
|
||||
@@ -325,7 +325,7 @@ int fputc(int c, FILE *f)
|
||||
|
||||
int fgetc(FILE *f)
|
||||
{
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
char ch;
|
||||
|
||||
if (libc_stdio_get_console() < 0)
|
||||
@@ -336,7 +336,7 @@ int fgetc(FILE *f)
|
||||
|
||||
if(read(STDIN_FILENO, &ch, 1) == 1)
|
||||
return ch;
|
||||
#endif /* RT_USING_POSIX */
|
||||
#endif /* RT_USING_POSIX_STDIO */
|
||||
return 0; /* error */
|
||||
}
|
||||
|
||||
|
@@ -11,7 +11,7 @@
|
||||
#include <rtthread.h>
|
||||
#include <yfuns.h>
|
||||
#include <unistd.h>
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
#include "libc.h"
|
||||
#endif
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#pragma module_name = "?__read"
|
||||
size_t __read(int handle, unsigned char *buf, size_t len)
|
||||
{
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
int size;
|
||||
|
||||
if (handle == _LLIO_STDIN)
|
||||
|
@@ -11,7 +11,7 @@
|
||||
#include <rtthread.h>
|
||||
#include <yfuns.h>
|
||||
#include <unistd.h>
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
#include "libc.h"
|
||||
#endif
|
||||
|
||||
@@ -29,7 +29,7 @@ size_t __write(int handle, const unsigned char *buf, size_t len)
|
||||
|
||||
if ((handle == _LLIO_STDOUT) || (handle == _LLIO_STDERR))
|
||||
{
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
if (libc_stdio_get_console() < 0)
|
||||
{
|
||||
LOG_W("Do not invoke standard output before initializing libc");
|
||||
|
@@ -20,7 +20,7 @@
|
||||
#include <unistd.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/stat.h>
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
#include "libc.h"
|
||||
#endif
|
||||
#ifdef RT_USING_MODULE
|
||||
@@ -216,7 +216,7 @@ int _open_r(struct _reent *ptr, const char *file, int flags, int mode)
|
||||
|
||||
_ssize_t _read_r(struct _reent *ptr, int fd, void *buf, size_t nbytes)
|
||||
{
|
||||
#ifdef RT_USING_POSIX
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
_ssize_t rc;
|
||||
if (libc_stdio_get_console() < 0 && fd == STDIN_FILENO)
|
||||
{
|
||||
@@ -271,11 +271,13 @@ _ssize_t _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
|
||||
{
|
||||
#ifdef RT_USING_POSIX
|
||||
_ssize_t rc;
|
||||
#ifdef RT_USING_POSIX_STDIO
|
||||
if (libc_stdio_get_console() < 0 && fd == STDOUT_FILENO)
|
||||
{
|
||||
LOG_W("Do not invoke standard output before initializing libc");
|
||||
return 0;
|
||||
}
|
||||
#endif /* RT_USING_POSIX_STDIO */
|
||||
rc = write(fd, buf, nbytes);
|
||||
return rc;
|
||||
#elif defined(RT_USING_CONSOLE)
|
||||
|
@@ -2,10 +2,13 @@
|
||||
|
||||
from building import *
|
||||
|
||||
src = ['libc.c', 'unistd.c']
|
||||
src = ['unistd.c']
|
||||
cwd = GetCurrentDir()
|
||||
CPPPATH = [cwd]
|
||||
|
||||
if GetDepend('RT_USING_POSIX_STDIO'):
|
||||
src += ['libc.c']
|
||||
|
||||
if GetDepend('RT_USING_POSIX_POLL'):
|
||||
src += ['poll.c']
|
||||
|
||||
|
Reference in New Issue
Block a user