nkeynes@19: /** nkeynes@19: * $Id: serial.h,v 1.1 2005-12-22 07:38:06 nkeynes Exp $ nkeynes@19: * External interface to the dreamcast serial port, implemented by nkeynes@19: * sh4/scif.c nkeynes@19: * nkeynes@19: * Copyright (c) 2005 Nathan Keynes. nkeynes@19: * nkeynes@19: * This program is free software; you can redistribute it and/or modify nkeynes@19: * it under the terms of the GNU General Public License as published by nkeynes@19: * the Free Software Foundation; either version 2 of the License, or nkeynes@19: * (at your option) any later version. nkeynes@19: * nkeynes@19: * This program is distributed in the hope that it will be useful, nkeynes@19: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@19: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@19: * GNU General Public License for more details. nkeynes@19: */ nkeynes@19: #ifndef dream_serial_H nkeynes@19: #define dream_serial_H 1 nkeynes@19: nkeynes@19: #include nkeynes@19: nkeynes@19: #ifdef __cplusplus nkeynes@19: extern "C" { nkeynes@19: #endif nkeynes@19: nkeynes@19: #define SERIAL_8BIT 0x00 nkeynes@19: #define SERIAL_7BIT 0x40 nkeynes@19: #define SERIAL_PARITY_OFF 0x00 nkeynes@19: #define SERIAL_PARITY_EVEN 0x20 nkeynes@19: #define SERIAL_PARITY_ODD 0x30 nkeynes@19: #define SERIAL_1STOPBIT 0x00 nkeynes@19: #define SERIAL_2STOPBITS 0x08 nkeynes@19: nkeynes@19: typedef struct serial_device { nkeynes@19: void (*set_line_speed)(uint32_t bps); nkeynes@19: void (*set_line_params)(int flags); nkeynes@19: void (*receive_data)(uint8_t value); nkeynes@19: } *serial_device_t; nkeynes@19: nkeynes@19: void serial_attach_device( serial_device_t dev ); nkeynes@19: void serial_detach_device( ); nkeynes@19: nkeynes@19: void serial_transmit_data( char *data, int length ); nkeynes@19: void serial_transmit_break( void ); nkeynes@19: nkeynes@19: #ifdef __cplusplus nkeynes@19: } nkeynes@19: #endif nkeynes@19: nkeynes@19: #endif