embox
1/**
2* @file
3* @brief
4*
5* @author Anton Kozlov
6* @date 19.08.2013
7*/
8
9#include <drivers/diag.h>10#include <drivers/serial/uart_dev.h>11
12#include <drivers/serial/diag_serial.h>13
14static int uart_diag_init(const struct diag *diag) {15struct uart_diag *uart_diag = (struct uart_diag *) diag;16
17uart_set_params(uart_diag->uart, uart_diag->params);18
19/* XXX */20/* set params */21uart_open(uart_diag->uart);22/* allow future `open' */23uart_close(uart_diag->uart);24
25return 0;26};27
28static void uart_diag_putc(const struct diag *diag, char ch) {29struct uart_diag *uart_diag = (struct uart_diag *) diag;30
31uart_putc(uart_diag->uart, ch);32}
33
34static char uart_diag_getc(const struct diag *diag) {35struct uart_diag *uart_diag = (struct uart_diag *) diag;36
37return uart_getc(uart_diag->uart);38}
39
40static int uart_diag_kbhit(const struct diag *diag) {41struct uart_diag *uart_diag = (struct uart_diag *) diag;42
43return uart_hasrx(uart_diag->uart);44}
45
46const struct diag_ops uart_diag_ops = {47.init = uart_diag_init,48.putc = uart_diag_putc,49.getc = uart_diag_getc,50.kbhit = uart_diag_kbhit,51};52
53