diff options
Diffstat (limited to 'libgloss/rs6000/mbx-inbyte.c')
-rw-r--r-- | libgloss/rs6000/mbx-inbyte.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/libgloss/rs6000/mbx-inbyte.c b/libgloss/rs6000/mbx-inbyte.c deleted file mode 100644 index bd06aa04d..000000000 --- a/libgloss/rs6000/mbx-inbyte.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * mbx-inbyte.c -- inbyte function for targets using the eppcbug monitor - * - * Copyright (c) 1998 Cygnus Support - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#include "ppc-asm.h" - -int inbyte(void) -{ - struct { - unsigned clun; - unsigned dlun; - char *data; - unsigned len; - unsigned rsrvd; - char buf[4]; - } ipb, *inpb; - - struct { - int status; - int cnt; - } opb, *outpb; - - inpb = &ipb; - outpb = &opb; - - do { - inpb->clun = 0; - inpb->dlun = 0; - inpb->data = ipb.buf; - inpb->len = 1; - inpb->rsrvd = 0; - - asm volatile ( - "mr 3,%0\n" - "mr 4,%1\n" - "li 10,0x200\n" - "sc" - : /* no outputs */ - : "r" (inpb), "r" (outpb) - : "3", "4", "10" - ); - } while (outpb->status == 0 && outpb->cnt == 0); - - if (outpb->status == 0) - return ipb.buf[0] & 0xff; - - return -1; -} |