zephyr/subsys/console/getchar.c
Paul Sokolovsky ed852e8b4a subsys: console: Split tty definitions into tty.h, to form its own API
This patch proceeds with the separation of older serial console
subsystem into device-independent console subsytem and buffered
serial device ("tty") API.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-11-30 08:05:40 -08:00

58 lines
1.0 KiB
C

/*
* Copyright (c) 2017 Linaro Limited.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr.h>
#include <device.h>
#include <console.h>
#include <tty.h>
static struct tty_serial console_serial;
static u8_t console_rxbuf[CONFIG_CONSOLE_GETCHAR_BUFSIZE];
static u8_t console_txbuf[CONFIG_CONSOLE_PUTCHAR_BUFSIZE];
ssize_t console_write(void *dummy, const void *buf, size_t size)
{
ARG_UNUSED(dummy);
return tty_write(&console_serial, buf, size);
}
ssize_t console_read(void *dummy, void *buf, size_t size)
{
ARG_UNUSED(dummy);
return tty_read(&console_serial, buf, size);
}
int console_putchar(char c)
{
return tty_write(&console_serial, &c, 1);
}
int console_getchar(void)
{
u8_t c;
int res;
res = tty_read(&console_serial, &c, 1);
if (res < 0) {
return res;
}
return c;
}
void console_init(void)
{
struct device *uart_dev;
uart_dev = device_get_binding(CONFIG_UART_CONSOLE_ON_DEV_NAME);
tty_init(&console_serial, uart_dev,
console_rxbuf, sizeof(console_rxbuf),
console_txbuf, sizeof(console_txbuf));
}