diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-03-23 09:48:06 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-03-23 09:48:06 +0000 |
commit | 2a5f90e8e88330b026e79c1a3c38a711f545c167 (patch) | |
tree | caa5435c339291cc581777a52e4981c75b77260d /xen/include/xen/serial.h | |
parent | c2929ecdf6cba5d5e5fd09c52e465e5f4a22fb83 (diff) | |
download | xen-2a5f90e8e88330b026e79c1a3c38a711f545c167.tar.gz xen-2a5f90e8e88330b026e79c1a3c38a711f545c167.tar.bz2 xen-2a5f90e8e88330b026e79c1a3c38a711f545c167.zip |
bitkeeper revision 1.821 (406007d6uu0vZYDxa9P1ZfNO9kF_Cg)
Many files:
xeno -> xen renames.
ide-xen.c:
Rename: xen/drivers/ide/ide-xeno.c -> xen/drivers/ide/ide-xen.c
xen.lds:
Rename: xen/arch/i386/xeno.lds -> xen/arch/i386/xen.lds
Many files:
mvdir
Diffstat (limited to 'xen/include/xen/serial.h')
-rw-r--r-- | xen/include/xen/serial.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h new file mode 100644 index 0000000000..3640fd036f --- /dev/null +++ b/xen/include/xen/serial.h @@ -0,0 +1,46 @@ +/****************************************************************************** + * serial.h + * + * Driver for 16550-series UARTs. This driver is to be kept within Xen as + * it permits debugging of seriously-toasted machines (e.g., in situations + * where a device driver within a guest OS would be inaccessible). + * + * Copyright (c) 2003-2004, K A Fraser + */ + +#ifndef __XEN_SERIAL_H__ +#define __XEN_SERIAL_H__ + +#include <asm/ptrace.h> + +/* 'Serial handles' are comprise the following fields. */ +#define SERHND_IDX (1<<0) /* COM1 or COM2? */ +#define SERHND_HI (1<<1) /* Mux/demux each transferred char by MSB. */ +#define SERHND_LO (1<<2) /* Ditto, except that the MSB is cleared. */ +#define SERHND_COOKED (1<<3) /* Newline/carriage-return translation? */ + +/* Two-stage initialisation (before/after IRQ-subsystem initialisation). */ +void serial_init_stage1(void); +void serial_init_stage2(void); + +/* Takes a config string and creates a numeric handle on the COM port. */ +int parse_serial_handle(char *conf); + +/* Register a character-receive hook on the specified COM port. */ +typedef void (*serial_rx_fn)(unsigned char, struct pt_regs *); +void serial_set_rx_handler(int handle, serial_rx_fn fn); + +/* Transmit a single character via the specified COM port. */ +void serial_putc(int handle, unsigned char c); + +/* Transmit a NULL-terminated string via the specified COM port. */ +void serial_puts(int handle, const unsigned char *s); + +/* + * An alternative to registering a character-receive hook. This function + * will not return until a character is available. It can safely be + * called with interrupts disabled. + */ +unsigned char serial_getc(int handle); + +#endif /* __XEN_SERIAL_H__ */ |