예제 #1
0
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;
}
예제 #2
0
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;
}
예제 #3
0
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;
}
예제 #4
0
u8 uart_lowlevel_getc(virtual_addr_t base, u32 reg_align)
{
	while (!uart_lowlevel_can_getc(base, reg_align));

	return (vmm_in_8((u8 *)REG_UART_RBR(base,reg_align)));
}