diff options
| author | bernard <[email protected]> | 2017-10-17 22:27:06 +0800 |
|---|---|---|
| committer | bernard <[email protected]> | 2017-10-17 22:27:06 +0800 |
| commit | 8a38307e2cce628017e9eb7153ae7a2430a3d9ef (patch) | |
| tree | 1eb4cfdceddb9c542806acf226d463de62271abb /components/drivers/serial | |
| parent | 947d8aa4d2d0742eb5ac1968406893f4e58a279b (diff) | |
[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;
Diffstat (limited to 'components/drivers/serial')
| -rw-r--r-- | components/drivers/serial/serial.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index c279490dec..52dd65e17b 100644 --- a/components/drivers/serial/serial.c +++ b/components/drivers/serial/serial.c @@ -44,14 +44,14 @@ #define DEBUG_COLOR #include <rtdbg.h> +#ifdef RT_USING_POSIX +#include <dfs_posix.h> +#include <dfs_poll.h> + #ifdef RT_USING_POSIX_TERMIOS #include <posix_termios.h> #endif -#ifdef RT_USING_DFS -#ifdef RT_USING_DFS_DEVFS -#include <dfs_posix.h> - /* it's possible the 'getc/putc' is defined by stdio.h in gcc/newlib. */ #ifdef getc #undef getc @@ -97,7 +97,8 @@ static int serial_fops_open(struct dfs_fd *fd) break; } - rt_device_set_rx_indicate(device, serial_fops_rx_ind); + if ((fd->flags & O_ACCMODE) != O_WRONLY) + rt_device_set_rx_indicate(device, serial_fops_rx_ind); ret = rt_device_open(device, flags); if (ret == RT_EOK) return 0; @@ -210,7 +211,7 @@ const static struct dfs_file_ops _serial_fops = serial_fops_poll, }; #endif -#endif + /* * Serial poll routines */ @@ -993,7 +994,7 @@ rt_err_t rt_hw_serial_register(struct rt_serial_device *serial, /* register a character device */ ret = rt_device_register(device, name, flag); -#if defined(RT_USING_DFS) && defined(RT_USING_DFS_DEVFS) +#if defined(RT_USING_POSIX) /* set fops */ device->fops = &_serial_fops; #endif |
