diff options
| author | Meco Man <[email protected]> | 2023-08-07 13:46:34 -0400 |
|---|---|---|
| committer | Meco Man <[email protected]> | 2023-08-17 02:22:53 -0400 |
| commit | b08d8672d258b029edc4d2c45543c3af9e595830 (patch) | |
| tree | 470da1b57bf9acf705e5bf75235c71a1e35c8e64 /components/libc/compilers | |
| parent | d862816a51ab6fec2321f0410e8aea2d05507542 (diff) | |
[libc][posix/io/stdio] rename libc.c as posix/stdio.c
Diffstat (limited to 'components/libc/compilers')
| -rw-r--r-- | components/libc/compilers/armlibc/syscalls.c | 6 | ||||
| -rw-r--r-- | components/libc/compilers/common/cstdio.c | 87 | ||||
| -rw-r--r-- | components/libc/compilers/common/cunistd.c | 34 | ||||
| -rw-r--r-- | components/libc/compilers/common/include/posix/stdio.h | 30 | ||||
| -rw-r--r-- | components/libc/compilers/dlib/syscall_read.c | 4 | ||||
| -rw-r--r-- | components/libc/compilers/newlib/syscalls.c | 4 |
6 files changed, 41 insertions, 124 deletions
diff --git a/components/libc/compilers/armlibc/syscalls.c b/components/libc/compilers/armlibc/syscalls.c index f163ab1ad9..5f7bcd0179 100644 --- a/components/libc/compilers/armlibc/syscalls.c +++ b/components/libc/compilers/armlibc/syscalls.c @@ -23,7 +23,7 @@ #include <sys/stat.h> #include <compiler_private.h> #ifdef RT_USING_POSIX_STDIO - #include "libc.h" +#include <posix/stdio.h> #endif /* RT_USING_POSIX_STDIO */ #define DBG_TAG "armlibc.syscalls" @@ -153,7 +153,7 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode) if (fh == STDIN) { #ifdef RT_USING_POSIX_STDIO - if (libc_stdio_get_console() < 0) + if (rt_posix_stdio_get_console() < 0) { LOG_W("Do not invoke standard output before initializing Compiler"); return 0; /* error, but keep going */ @@ -375,7 +375,7 @@ int fgetc(FILE *f) #ifdef RT_USING_POSIX_STDIO char ch; - if (libc_stdio_get_console() < 0) + if (rt_posix_stdio_get_console() < 0) { LOG_W("Do not invoke standard output before initializing Compiler"); return 0; diff --git a/components/libc/compilers/common/cstdio.c b/components/libc/compilers/common/cstdio.c deleted file mode 100644 index fc14c0b9c3..0000000000 --- a/components/libc/compilers/common/cstdio.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2014-05-22 ivanrad implement getline - */ - -#include "posix/stdio.h" -#include <stdlib.h> -#include <limits.h> -#include <sys/errno.h> - -#ifdef DFS_USING_POSIX -ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) -{ - char *cur_pos, *new_lineptr; - size_t new_lineptr_len; - int c; - - if (lineptr == NULL || n == NULL || stream == NULL) - { - errno = EINVAL; - return -1; - } - - if (*lineptr == NULL) - { - *n = 128; /* init len */ - if ((*lineptr = (char *)malloc(*n)) == NULL) - { - errno = ENOMEM; - return -1; - } - } - - cur_pos = *lineptr; - for (;;) - { - c = getc(stream); - - if (ferror(stream) || (c == EOF && cur_pos == *lineptr)) - return -1; - - if (c == EOF) - break; - - if ((*lineptr + *n - cur_pos) < 2) - { - if (LONG_MAX / 2 < *n) - { -#ifdef EOVERFLOW - errno = EOVERFLOW; -#else - errno = ERANGE; /* no EOVERFLOW defined */ -#endif - return -1; - } - new_lineptr_len = *n * 2; - - if ((new_lineptr = (char *)realloc(*lineptr, new_lineptr_len)) == NULL) - { - errno = ENOMEM; - return -1; - } - cur_pos = new_lineptr + (cur_pos - *lineptr); - *lineptr = new_lineptr; - *n = new_lineptr_len; - } - - *cur_pos++ = (char)c; - - if (c == delim) - break; - } - - *cur_pos = '\0'; - return (ssize_t)(cur_pos - *lineptr); -} - -ssize_t getline(char **lineptr, size_t *n, FILE *stream) -{ - return getdelim(lineptr, n, '\n', stream); -} -#endif /* DFS_USING_POSIX */ diff --git a/components/libc/compilers/common/cunistd.c b/components/libc/compilers/common/cunistd.c new file mode 100644 index 0000000000..eda1c02a1a --- /dev/null +++ b/components/libc/compilers/common/cunistd.c @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2006-2022, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2023-08-16 Meco Man first version + */ + +#include <rtthread.h> +#include <unistd.h> +#include <sys/errno.h> + +int isatty(int fd) +{ +#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE) + if(fd == STDOUT_FILENO || fd == STDERR_FILENO) + { + return 1; + } +#endif /* defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE) */ + +#ifdef RT_USING_POSIX_STDIO + if(fd == STDIN_FILENO) + { + return 1; + } +#endif /* RT_USING_POSIX_STDIO */ + + rt_set_errno(ENOTTY); + return 0; +} +RTM_EXPORT(isatty); diff --git a/components/libc/compilers/common/include/posix/stdio.h b/components/libc/compilers/common/include/posix/stdio.h deleted file mode 100644 index a2cf01f6b6..0000000000 --- a/components/libc/compilers/common/include/posix/stdio.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2006-2022, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2022-06-07 Meco Man first version - */ - -#ifndef __POSIX_STDIO_H__ -#define __POSIX_STDIO_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stdio.h> -#include <sys/types.h> - -#ifdef DFS_USING_POSIX -ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream); -ssize_t getline(char **lineptr, size_t *n, FILE *stream); -#endif /* DFS_USING_POSIX */ - -#ifdef __cplusplus -} -#endif - -#endif /* __POSIX_STDIO_H__ */ diff --git a/components/libc/compilers/dlib/syscall_read.c b/components/libc/compilers/dlib/syscall_read.c index a276a3e401..9cb60d72d9 100644 --- a/components/libc/compilers/dlib/syscall_read.c +++ b/components/libc/compilers/dlib/syscall_read.c @@ -12,7 +12,7 @@ #include <LowLevelIOInterface.h> #include <unistd.h> #ifdef RT_USING_POSIX_STDIO -#include "libc.h" +#include <posix/stdio.h> #endif /* RT_USING_POSIX_STDIO */ #include <compiler_private.h> #define DBG_TAG "dlib.syscall.read" @@ -40,7 +40,7 @@ size_t __read(int handle, unsigned char *buf, size_t len) if (handle == _LLIO_STDIN) { #ifdef RT_USING_POSIX_STDIO - if (libc_stdio_get_console() < 0) + if (rt_posix_stdio_get_console() < 0) { LOG_W("Do not invoke standard input before initializing Compiler"); return 0; /* error, but keep going */ diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/newlib/syscalls.c index 8a59968323..ece5494b77 100644 --- a/components/libc/compilers/newlib/syscalls.c +++ b/components/libc/compilers/newlib/syscalls.c @@ -21,7 +21,7 @@ #include <sys/errno.h> #include <sys/stat.h> #ifdef RT_USING_POSIX_STDIO -#include "libc.h" +#include <posix/stdio.h> #endif /* RT_USING_POSIX_STDIO */ #ifdef RT_USING_MODULE #include <dlmodule.h> @@ -225,7 +225,7 @@ _ssize_t _read_r(struct _reent *ptr, int fd, void *buf, size_t nbytes) if (fd == STDIN_FILENO) { #ifdef RT_USING_POSIX_STDIO - if (libc_stdio_get_console() < 0) + if (rt_posix_stdio_get_console() < 0) { LOG_W("Do not invoke standard input before initializing Compiler"); return 0; |
