From 8f6260146c8c157b02a263925239389260e958c0 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Wed, 13 Oct 2021 12:57:32 -0400 Subject: [PATCH] [libc][win32] improve win32 support --- bsp/simulator/applications/platform.c | 8 ++++++++ bsp/simulator/drivers/board.c | 6 ++++++ components/libc/compilers/common/nogcc/sys/select.h | 12 +++++++++--- components/libc/compilers/common/sys/ioctl.h | 6 +++++- components/libc/compilers/gcc/newlib/stdio.c | 3 ++- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/bsp/simulator/applications/platform.c b/bsp/simulator/applications/platform.c index 1b7127e370..815c189e40 100644 --- a/bsp/simulator/applications/platform.c +++ b/bsp/simulator/applications/platform.c @@ -11,6 +11,14 @@ #include +#ifdef RT_USING_POSIX +#error "simulator does not support RT_USING_POSIX" +#endif + +#ifdef RT_USING_LIBC +#error "simulator does not support RT_USING_LIBC" +#endif + int platform_init(void) { #ifdef RT_USING_LWIP diff --git a/bsp/simulator/drivers/board.c b/bsp/simulator/drivers/board.c index 17339d4e1a..0516af6f79 100755 --- a/bsp/simulator/drivers/board.c +++ b/bsp/simulator/drivers/board.c @@ -110,4 +110,10 @@ int rt_hw_board_init(void) #endif return 0; } + +void rt_hw_us_delay(rt_uint32_t usec) +{ + +} + /*@}*/ diff --git a/components/libc/compilers/common/nogcc/sys/select.h b/components/libc/compilers/common/nogcc/sys/select.h index 575ad3a1b5..02fb77dd89 100644 --- a/components/libc/compilers/common/nogcc/sys/select.h +++ b/components/libc/compilers/common/nogcc/sys/select.h @@ -15,6 +15,10 @@ #include #include +#ifdef _WIN32 +#include +#endif + #ifndef FD_SETSIZE #define FD_SETSIZE 32 #endif @@ -26,16 +30,17 @@ #define FD_SETSIZE DFS_FD_MAX #endif /* SAL_USING_POSIX */ -#define NBBY 8 /* number of bits in a byte */ - typedef long fd_mask; +#ifndef _WIN32 +#ifndef _SYS_TYPES_FD_SET /* MIPS */ + +#define NBBY 8 /* number of bits in a byte */ #define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */ #ifndef howmany #define howmany(x,y) (((x)+((y)-1))/(y)) #endif -#ifndef _SYS_TYPES_FD_SET /* MIPS */ typedef struct _types_fd_set { fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; } _types_fd_set; @@ -48,5 +53,6 @@ typedef struct _types_fd_set { #endif /* _SYS_TYPES_FD_SET */ int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); +#endif /* _WIN32 */ #endif /* __SYS_SELECT_H__ */ diff --git a/components/libc/compilers/common/sys/ioctl.h b/components/libc/compilers/common/sys/ioctl.h index b926a71875..04f73837bc 100644 --- a/components/libc/compilers/common/sys/ioctl.h +++ b/components/libc/compilers/common/sys/ioctl.h @@ -15,6 +15,10 @@ #include #endif +#ifdef _WIN32 +#include +#endif + struct winsize { unsigned short ws_row; unsigned short ws_col; @@ -35,8 +39,8 @@ struct winsize { #define FIONREAD _IOR('f', 127, int) /* get # bytes to read */ #define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */ -#define FIONWRITE _IOR('f', 121, int) /* get # bytes outstanding in send queue */ #endif +#define FIONWRITE _IOR('f', 121, int) /* get # bytes outstanding in send queue */ #define TCGETS 0x5401 #define TCSETS 0x5402 diff --git a/components/libc/compilers/gcc/newlib/stdio.c b/components/libc/compilers/gcc/newlib/stdio.c index baccafad87..1875d50e3f 100644 --- a/components/libc/compilers/gcc/newlib/stdio.c +++ b/components/libc/compilers/gcc/newlib/stdio.c @@ -72,7 +72,8 @@ int libc_stdio_set_console(const char* device_name, int mode) return -1; } -int libc_stdio_get_console(void) { +int libc_stdio_get_console(void) +{ if (std_console) return fileno(std_console); else -- GitLab