int arch_defterm_getc(u8 *ch) { if (!uart_lowlevel_can_getc(omap3_uart_base, 4)) { return VMM_EFAIL; } *ch = uart_lowlevel_getc(omap3_uart_base, 4); return VMM_OK; }
int arch_defterm_getc(u8 *ch) { if (uart_base) { if (!uart_lowlevel_can_getc(uart_base, 1)) { return VMM_EFAIL; } *ch = uart_lowlevel_getc(uart_base, 1); } return VMM_OK; }
static u32 uart_read(struct vmm_chardev *cdev, u8 *dest, u32 offset, u32 len, bool sleep) { u32 i; struct uart_port *port; if (!(cdev && dest && cdev->priv)) { return 0; } port = cdev->priv; for(i = 0; i < len; i++) { if (!uart_lowlevel_can_getc(port->base, port->reg_align)) { break; } dest[i] = uart_lowlevel_getc(port->base, port->reg_align); } return i; }