From 03261851a10dd2d6900a0a00a7515a0a46fb5d76 Mon Sep 17 00:00:00 2001 From: Ranjith Kumaran Date: Fri, 17 Mar 2000 22:48:54 +0000 Subject: 20000317 sourceware import --- libgloss/sparc/erc32-io.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 libgloss/sparc/erc32-io.c (limited to 'libgloss/sparc/erc32-io.c') diff --git a/libgloss/sparc/erc32-io.c b/libgloss/sparc/erc32-io.c new file mode 100644 index 000000000..082d9f9c5 --- /dev/null +++ b/libgloss/sparc/erc32-io.c @@ -0,0 +1,47 @@ +#define USE_PORT_A + +#define RXADATA (int *) 0x01F800E0 +#define RXBDATA (int *) 0x01F800E4 +#define RXSTAT (int *) 0x01F800E8 + +void +outbyte (int c) +{ + volatile int *rxstat; + volatile int *rxadata; + int rxmask; + + rxstat = RXSTAT; +#ifdef USE_PORT_A + rxadata = RXADATA; + rxmask = 6; +#else + rxadata = RXBDATA; + rxmask = 0x60000; +#endif + + while ((*rxstat & rxmask) == 0); + + *rxadata = c; +} + +int +inbyte (void) +{ + volatile int *rxstat; + volatile int *rxadata; + int rxmask; + + rxstat = RXSTAT; +#ifdef USE_PORT_A + rxadata = RXADATA; + rxmask = 1; +#else + rxadata = RXBDATA; + rxmask = 0x10000; +#endif + + while ((*rxstat & rxmask) == 0); + + return *rxadata; +} -- cgit v1.2.3