20000317 sourceware import
This commit is contained in:
47
libgloss/sparc/erc32-io.c
Normal file
47
libgloss/sparc/erc32-io.c
Normal file
@ -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;
|
||||
}
|
Reference in New Issue
Block a user