1/** 2 * \file 3 * \brief Serial port driver. 4 */ 5 6/* 7 * Copyright (c) 2007, 2008, 2012, ETH Zurich. 8 * All rights reserved. 9 * 10 * This file is distributed under the terms in the attached LICENSE file. 11 * If you do not find this file, copies can be found by writing to: 12 * ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich, 13 * Attn: Systems Group. 14 */ 15 16#ifndef SERIAL_H 17#define SERIAL_H 18 19#include <barrelfish/barrelfish.h> 20 21struct serial_buffer { 22 char *buf; 23 size_t len; 24}; 25 26#define SERIAL_PORTBASE_INVALID 0xffffffff 27#define SERIAL_IRQ_INVALID 0xffffffff 28#define SERIAL_MEMBASE_INVALID 0xffffffffffffffffULL 29 30struct serial_params { 31 uint32_t portbase; 32 uint32_t irq; 33 uint64_t membase; 34}; 35 36typedef void serial_input_fn_t(char *data, size_t length); 37 38void serial_write(const char *c, size_t len); 39errval_t serial_init(struct serial_params *params); 40void start_service(void); 41void start_basic_service(char *driver_name); 42void start_terminal_service(char *driver_name); 43void serial_input(char *data, size_t length); 44void set_new_input_consumer(serial_input_fn_t fn); 45 46#endif 47