未验证 提交 66ddbbfe 编写于 作者: B Bernard Xiong 提交者: GitHub

Merge pull request #1002 from JasonJiaJie/master

[DeviceDriver][serial]Fix compile error when RT_USING_POSIX_TERMIOS is not define.
...@@ -365,48 +365,6 @@ static rt_size_t _serial_fifo_calc_recved_len(struct rt_serial_device *serial) ...@@ -365,48 +365,6 @@ static rt_size_t _serial_fifo_calc_recved_len(struct rt_serial_device *serial)
} }
} }
static void _serial_flush(struct rt_serial_device *serial, int queue)
{
int ch = -1;
struct rt_serial_rx_fifo *rx_fifo = RT_NULL;
struct rt_device *device = RT_NULL;
RT_ASSERT(serial != RT_NULL);
device = &(serial->parent);
rx_fifo = (struct rt_serial_rx_fifo *) serial->serial_rx;
switch(queue)
{
case TCIFLUSH:
case TCIOFLUSH:
RT_ASSERT(rx_fifo != RT_NULL);
if((device->open_flag & RT_DEVICE_FLAG_INT_RX) || (device->open_flag & RT_DEVICE_FLAG_DMA_RX))
{
RT_ASSERT(RT_NULL != rx_fifo);
rt_memset(rx_fifo->buffer, 0, serial->config.bufsz);
rx_fifo->put_index = 0;
rx_fifo->get_index = 0;
rx_fifo->is_full = RT_FALSE;
}
else
{
while (1)
{
ch = serial->ops->getc(serial);
if (ch == -1) break;
}
}
break;
case TCOFLUSH:
break;
}
}
/** /**
* Calculate DMA received data length. * Calculate DMA received data length.
* *
...@@ -897,6 +855,50 @@ static int _get_baudrate(speed_t speed) ...@@ -897,6 +855,50 @@ static int _get_baudrate(speed_t speed)
return 0; return 0;
} }
static void _tc_flush(struct rt_serial_device *serial, int queue)
{
int ch = -1;
struct rt_serial_rx_fifo *rx_fifo = RT_NULL;
struct rt_device *device = RT_NULL;
RT_ASSERT(serial != RT_NULL);
device = &(serial->parent);
rx_fifo = (struct rt_serial_rx_fifo *) serial->serial_rx;
switch(queue)
{
case TCIFLUSH:
case TCIOFLUSH:
RT_ASSERT(rx_fifo != RT_NULL);
if((device->open_flag & RT_DEVICE_FLAG_INT_RX) || (device->open_flag & RT_DEVICE_FLAG_DMA_RX))
{
RT_ASSERT(RT_NULL != rx_fifo);
rt_memset(rx_fifo->buffer, 0, serial->config.bufsz);
rx_fifo->put_index = 0;
rx_fifo->get_index = 0;
rx_fifo->is_full = RT_FALSE;
}
else
{
while (1)
{
ch = serial->ops->getc(serial);
if (ch == -1) break;
}
}
break;
case TCOFLUSH:
break;
}
}
#endif #endif
static rt_err_t rt_serial_control(struct rt_device *dev, static rt_err_t rt_serial_control(struct rt_device *dev,
...@@ -1026,7 +1028,7 @@ static rt_err_t rt_serial_control(struct rt_device *dev, ...@@ -1026,7 +1028,7 @@ static rt_err_t rt_serial_control(struct rt_device *dev,
{ {
int queue = (int)args; int queue = (int)args;
_serial_flush(serial, queue); _tc_flush(serial, queue);
} }
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册