diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index c17c7aaebb8db0891ca9c5a8e61f7ac498548beb..0e944b5e95c30f91b2a5bfccd0875e2c70263d51 100644 --- a/components/drivers/serial/serial.c +++ b/components/drivers/serial/serial.c @@ -362,7 +362,7 @@ static void _serial_check_buffer_size(void) } } -#if defined(RT_USING_POSIX) || defined(RT_SERIAL_USING_DMA) +#if defined(RT_USING_POSIX_DEVIO) || defined(RT_SERIAL_USING_DMA) static rt_size_t _serial_fifo_calc_recved_len(struct rt_serial_device *serial) { struct rt_serial_rx_fifo *rx_fifo = (struct rt_serial_rx_fifo *) serial->serial_rx; @@ -385,7 +385,7 @@ static rt_size_t _serial_fifo_calc_recved_len(struct rt_serial_device *serial) } } } -#endif /* RT_USING_POSIX || RT_SERIAL_USING_DMA */ +#endif /* RT_USING_POSIX_DEVIO || RT_SERIAL_USING_DMA */ #ifdef RT_SERIAL_USING_DMA /** @@ -1133,6 +1133,7 @@ static rt_err_t rt_serial_control(struct rt_device *dev, } else { + #include #define _TIO_BUFLEN 20 char _tio_buf[_TIO_BUFLEN]; unsigned char cnt1, cnt2, cnt3, i; @@ -1148,7 +1149,7 @@ static rt_err_t rt_serial_control(struct rt_device *dev, i = 0; while(i < _TIO_BUFLEN) { - _tio_buf[i] = getchar(); + _tio_buf[i] = finsh_getchar(); if(_tio_buf[i] != 't') { i ++; diff --git a/components/libc/Kconfig b/components/libc/Kconfig index a616754904ee03f7ad568b610859666518dd35f5..dfbe73aa14e411940a5cb04cda41ab1144195831 100644 --- a/components/libc/Kconfig +++ b/components/libc/Kconfig @@ -2,7 +2,6 @@ menu "POSIX layer and C standard library" config RT_USING_LIBC bool "Enable libc APIs from toolchain" - select RT_USING_HEAP default n if RT_USING_LIBC @@ -10,8 +9,8 @@ if RT_USING_LIBC default y config RT_LIBC_USING_FILEIO - bool "Enable libc with file operation, eg.fopen/fwrite/fread/getchar" - select RT_USING_POSIX + bool "Enable libc with file operation, eg.fopen/fwrite/fread/getchar/STDIO" + select RT_USING_POSIX_FS select RT_USING_POSIX_DEVIO default n @@ -38,50 +37,50 @@ config RT_LIBC_DEFAULT_TIMEZONE range -12 12 default 8 -config RT_USING_POSIX - bool "Enable basic POSIX layer, open()/read()/write()/close() etc" +config RT_USING_POSIX_FS + bool "Enable POSIX file system, open()/read()/write()/close() etc" select RT_USING_DFS + select DFS_USING_POSIX default n -if RT_USING_POSIX +if RT_USING_POSIX_FS config RT_USING_POSIX_DEVIO bool "Enable devices as file descriptors" - select RT_USING_DFS select RT_USING_DFS_DEVFS default n config RT_USING_POSIX_POLL bool "Enable poll()" - select RT_USING_DFS default n config RT_USING_POSIX_SELECT bool "Enable select()" - select RT_USING_DFS select RT_USING_POSIX_POLL default n +endif - config RT_USING_POSIX_DELAY - bool "Enable delay APIs, sleep()/usleep()/msleep() etc" - default n +config RT_USING_POSIX_DELAY + bool "Enable delay APIs, sleep()/usleep()/msleep() etc" + default n - config RT_USING_POSIX_GETLINE - bool "Enable getline()/getdelim()" - default n +config RT_USING_POSIX_GETLINE + bool "Enable getline()/getdelim()" + select RT_USING_LIBC + select RT_LIBC_USING_FILEIO + default n - config RT_USING_POSIX_MMAP - bool "Enable mmap()" - select RT_USING_DFS - default n +config RT_USING_POSIX_MMAP + bool "Enable mmap()" + select RT_USING_POSIX_FS + default n - config RT_USING_POSIX_TERMIOS - bool "Enable termios APIs" - default n +config RT_USING_POSIX_TERMIOS + bool "Enable termios APIs" + default n - config RT_USING_POSIX_AIO - bool "Enable AIO APIs" - default n -endif +config RT_USING_POSIX_AIO + bool "Enable AIO APIs" + default n config RT_USING_PTHREADS bool "Enable pthreads APIs" diff --git a/components/libc/compilers/common/sys/time.h b/components/libc/compilers/common/sys/time.h index d14905ebfba6ee088b54f950814c6e89a3257860..93e3bb7ba47453f5aa35021d9ce55203af974edb 100644 --- a/components/libc/compilers/common/sys/time.h +++ b/components/libc/compilers/common/sys/time.h @@ -72,7 +72,6 @@ int settimeofday(const struct timeval *tv, const struct timezone *tz); struct tm *gmtime_r(const time_t *timep, struct tm *r); #endif -#ifdef RT_USING_POSIX /* POSIX clock and timer */ #define MILLISECOND_PER_SECOND 1000UL #define MICROSECOND_PER_SECOND 1000000UL @@ -103,8 +102,8 @@ int clock_getres (clockid_t clockid, struct timespec *res); int clock_gettime (clockid_t clockid, struct timespec *tp); int clock_settime (clockid_t clockid, const struct timespec *tp); int rt_timespec_to_tick(const struct timespec *time); -#endif /* RT_USING_POSIX */ +/* timezone */ void tz_set(int8_t tz); int8_t tz_get(void); int8_t tz_is_dst(void); diff --git a/components/libc/compilers/common/time.c b/components/libc/compilers/common/time.c index 5bfff159142d97f9adc2b9fb62ba66c07af3d335..73b6d7635280d4b9025ecf4bfa626fd0e45bad99 100644 --- a/components/libc/compilers/common/time.c +++ b/components/libc/compilers/common/time.c @@ -486,8 +486,6 @@ RTM_EXPORT(settimeofday); RTM_EXPORT(difftime); RTM_EXPORT(strftime); -#ifdef RT_USING_POSIX - #ifdef RT_USING_RTC static volatile struct timeval _timevalue; static int _rt_clock_time_system_init() @@ -690,9 +688,6 @@ int rt_timespec_to_tick(const struct timespec *time) } RTM_EXPORT(rt_timespec_to_tick); -#endif /* RT_USING_POSIX */ - - /* timezone */ #ifndef RT_LIBC_DEFAULT_TIMEZONE #define RT_LIBC_DEFAULT_TIMEZONE 8 diff --git a/components/libc/posix/getline/SConscript b/components/libc/posix/getline/SConscript index bb18dc04c525eaf6fd052d158acd53b7f4afed0b..a0077b0ce990f4189b12048161077a184207171b 100644 --- a/components/libc/posix/getline/SConscript +++ b/components/libc/posix/getline/SConscript @@ -3,11 +3,9 @@ from building import * cwd = GetCurrentDir() -src = Glob('*.c') + Glob('*.cpp') +src = Glob('*.c') CPPPATH = [cwd] -group = DefineGroup('POSIX', src, - depend = ['RT_USING_LIBC', 'RT_USING_POSIX','RT_USING_POSIX_GETLINE'], - CPPPATH = CPPPATH) +group = DefineGroup('POSIX', src, depend = ['RT_USING_POSIX_GETLINE'], CPPPATH = CPPPATH) Return('group') diff --git a/components/libc/posix/getline/posix_getline.c b/components/libc/posix/getline/posix_getline.c index da80242ecc3a78654b41350077652fd8b40ff499..63fa33ea42f3ac530cb15ca3f30b9f515cb26066 100644 --- a/components/libc/posix/getline/posix_getline.c +++ b/components/libc/posix/getline/posix_getline.c @@ -75,4 +75,3 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) { ssize_t getline(char **lineptr, size_t *n, FILE *stream) { return getdelim(lineptr, n, '\n', stream); } - diff --git a/components/libc/posix/src/SConscript b/components/libc/posix/src/SConscript index 067d598b74def6bbfa8483340b872553c01158f5..4be5ac83ccbf0e009b2906d6f307312969c70048 100644 --- a/components/libc/posix/src/SConscript +++ b/components/libc/posix/src/SConscript @@ -2,25 +2,35 @@ from building import * -src = ['unistd.c'] +src = [] cwd = GetCurrentDir() CPPPATH = [cwd] +group = [] + +flag = False +src += ['unistd.c'] #TODO if GetDepend('RT_USING_POSIX_DEVIO'): src += ['libc.c'] + flag = True if GetDepend('RT_USING_POSIX_DELAY'): src += ['delay.c'] + flag = True if GetDepend('RT_USING_POSIX_POLL'): src += ['poll.c'] + flag = True if GetDepend('RT_USING_POSIX_SELECT'): src += ['select.c'] + flag = True if GetDepend('RT_USING_POSIX_MMAP'): src += ['mmap.c'] + flag = True -group = DefineGroup('POSIX', src, depend = ['RT_USING_POSIX'], CPPPATH = CPPPATH) +if flag == True: + group = DefineGroup('POSIX', src, depend = [], CPPPATH = CPPPATH) Return('group') diff --git a/components/lwp/Kconfig b/components/lwp/Kconfig index 3e1982001ead4967583865e6321aa74a3463e9a6..82193e3b0039013718161ac6776faa3a7617b954 100644 --- a/components/lwp/Kconfig +++ b/components/lwp/Kconfig @@ -1,6 +1,6 @@ config RT_USING_LWP bool "Using light-weight process" - select RT_USING_POSIX + select RT_USING_POSIX_FS select RT_USING_POSIX_SELECT select RT_USING_LIBC depends on ARCH_ARM_CORTEX_M || ARCH_ARM_ARM9 || ARCH_ARM_CORTEX_A diff --git a/components/net/Kconfig b/components/net/Kconfig index 4d6317bac6b826d3e94b0f922f24e9bfa45186b8..d9ed7d9542f453b0fa00c314515017e478c5b4bb 100644 --- a/components/net/Kconfig +++ b/components/net/Kconfig @@ -41,7 +41,7 @@ config RT_USING_SAL config SAL_USING_POSIX bool "Enable BSD socket operated by file system API" default n - select RT_USING_POSIX + select RT_USING_POSIX_FS select RT_USING_POSIX_SELECT help Let BSD socket operated by file system API, such as read/write and involveed in select/poll POSIX APIs.