Modem emulator for "Datenklo" with AM7910/AM7911 emulation
This commit is contained in:
34
src/datenklo/uart.h
Normal file
34
src/datenklo/uart.h
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
enum uart_parity {
|
||||
UART_PARITY_NONE,
|
||||
UART_PARITY_EVEN,
|
||||
UART_PARITY_ODD,
|
||||
UART_PARITY_MARK,
|
||||
UART_PARITY_SPACE,
|
||||
};
|
||||
|
||||
/* uart flags */
|
||||
#define UART_PARITY_ERROR (1 << 0)
|
||||
#define UART_CODE_VIOLATION (1 << 1)
|
||||
#define UART_BREAK (1 << 2)
|
||||
|
||||
typedef struct uart {
|
||||
void *inst;
|
||||
int (*tx_cb)(void *inst);
|
||||
void (*rx_cb)(void *inst, int data, uint32_t flags);
|
||||
uint8_t data_bits;
|
||||
enum uart_parity parity;
|
||||
uint8_t stop_bits;
|
||||
int last_bit;
|
||||
uint32_t tx_data;
|
||||
uint32_t rx_data;
|
||||
int tx_pos;
|
||||
int rx_pos;
|
||||
int length;
|
||||
} uart_t;
|
||||
|
||||
int uart_init(uart_t *uart, void *inst, uint8_t data_bits, enum uart_parity parity, uint8_t stop_bits, int (*tx_cb)(void *inst), void (*rx_cb)(void *inst, int data, uint32_t flags));
|
||||
int uart_tx_bit(uart_t *uart);
|
||||
int uart_is_tx(uart_t *uart);
|
||||
void uart_rx_bit(uart_t *uart, int bit);
|
||||
|
Reference in New Issue
Block a user