diff options
Diffstat (limited to 'sys/arch/mvme68k')
22 files changed, 46 insertions, 335 deletions
diff --git a/sys/arch/mvme68k/include/prom.h b/sys/arch/mvme68k/include/prom.h index 767af7806e1..3d5373c2dbf 100644 --- a/sys/arch/mvme68k/include/prom.h +++ b/sys/arch/mvme68k/include/prom.h @@ -1,4 +1,4 @@ -/* $OpenBSD: prom.h,v 1.3 1996/04/28 10:56:27 deraadt Exp $ */ +/* $OpenBSD: prom.h,v 1.4 1996/05/07 11:25:01 deraadt Exp $ */ /* * Copyright (c) 1995 Theo de Raadt @@ -154,3 +154,15 @@ struct mvmeprom_args { #define MVMEPROM_CALL(x) \ asm volatile (__CONCAT("trap #15; .short ", __STRING(x)) ) +#define MVMEPROM_NOARG() \ + asm volatile ("clrl sp@-") +#define MVMEPROM_ARG1(arg) \ + asm volatile ("movel %0, sp@-"::"d" (arg)) +#define MVMEPROM_ARG2(arg) \ + asm volatile ("movel %0, sp@-"::"d" (arg)) +#define MVMEPROM_RETURN(ret) \ + asm volatile ("movel sp@+,%0": "=d" (ret):); \ + return (ret); /* return a value */ +#define MVMEPROM_STATRET(ret) \ + asm volatile ("movew ccr,%0": "=d" (ret)); \ + return (!(ret & 0x4)); /* return a 'status' */ diff --git a/sys/arch/mvme68k/stand/libbug/Makefile b/sys/arch/mvme68k/stand/libbug/Makefile index b0c606e5ad5..1231d08713c 100644 --- a/sys/arch/mvme68k/stand/libbug/Makefile +++ b/sys/arch/mvme68k/stand/libbug/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.2 1996/04/28 10:48:33 deraadt Exp $ +# $OpenBSD: Makefile,v 1.3 1996/05/07 11:25:05 deraadt Exp $ LIB=bug @@ -7,9 +7,9 @@ NOPROFILE= CFLAGS+=-I${.CURDIR}/../../include -SRCS=delay.c diskrd.c diskwr.c getbrdid.c instat.c outln.c outstr.c \ +SRCS= delay.c diskrd.c diskwr.c getbrdid.c instat.c outln.c outstr.c \ return.c rtc_rd.c -.PATH: ${.CURDIR}/../../../../lib/libc_sa ${.CURDIR}/${MACHINE_ARCH} +.PATH: ${.CURDIR}/../../../../lib/libc_sa install: diff --git a/sys/arch/mvme68k/stand/libbug/m88k/delay.c b/sys/arch/mvme68k/stand/libbug/delay.c index 8ff9478183c..c9088938e81 100644 --- a/sys/arch/mvme68k/stand/libbug/m88k/delay.c +++ b/sys/arch/mvme68k/stand/libbug/delay.c @@ -1,4 +1,4 @@ -/* $OpenBSD: delay.c,v 1.2 1996/04/28 10:48:49 deraadt Exp $ */ +/* $OpenBSD: delay.c,v 1.1 1996/05/07 11:25:06 deraadt Exp $ */ /* * bug routines -- assumes that the necessary sections of memory @@ -12,6 +12,6 @@ void mvmeprom_delay(msec) int msec; { - asm volatile ("or r2,r0,%0": : "r" (msec)); + MVMEPROM_ARG1(msec); MVMEPROM_CALL(MVMEPROM_DELAY); } diff --git a/sys/arch/mvme68k/stand/libbug/m88k/diskrd.c b/sys/arch/mvme68k/stand/libbug/diskrd.c index bc69b365501..c96cde0dee3 100644 --- a/sys/arch/mvme68k/stand/libbug/m88k/diskrd.c +++ b/sys/arch/mvme68k/stand/libbug/diskrd.c @@ -1,3 +1,5 @@ +/* $OpenBSD: diskrd.c,v 1.1 1996/05/07 11:25:07 deraadt Exp $ */ + /* * bug routines -- assumes that the necessary sections of memory * are preserved. @@ -12,8 +14,7 @@ mvmeprom_diskrd(arg) { int ret; - asm volatile ("or r2,r0,%0": : "r" (arg)); + MVMEPROM_ARG1(arg); MVMEPROM_CALL(MVMEPROM_DSKRD); - asm volatile ("or %0,r0,r2" : "=r" (ret)); - return (!(ret & 0x4)); + MVMEPROM_STATRET(ret); } diff --git a/sys/arch/mvme68k/stand/libbug/m88k/diskwr.c b/sys/arch/mvme68k/stand/libbug/diskwr.c index 681f521b5b0..38f5dcef3d2 100644 --- a/sys/arch/mvme68k/stand/libbug/m88k/diskwr.c +++ b/sys/arch/mvme68k/stand/libbug/diskwr.c @@ -1,3 +1,5 @@ +/* $OpenBSD: diskwr.c,v 1.1 1996/05/07 11:25:07 deraadt Exp $ */ + /* * bug routines -- assumes that the necessary sections of memory * are preserved. @@ -12,8 +14,7 @@ mvmeprom_diskwr(arg) { int ret; - asm volatile ("or r2,r0,%0": : "r" (arg) ); + MVMEPROM_ARG1(arg); MVMEPROM_CALL(MVMEPROM_DSKWR); - asm volatile ("or %0,r0,r2" : "=r" (ret)); - return (!(ret & 0x4)); + MVMEPROM_STATRET(ret); } diff --git a/sys/arch/mvme68k/stand/libbug/m88k/getbrdid.c b/sys/arch/mvme68k/stand/libbug/getbrdid.c index eeda9468ab7..02ac1bf422a 100644 --- a/sys/arch/mvme68k/stand/libbug/m88k/getbrdid.c +++ b/sys/arch/mvme68k/stand/libbug/getbrdid.c @@ -1,3 +1,5 @@ +/* $OpenBSD: getbrdid.c,v 1.1 1996/05/07 11:25:08 deraadt Exp $ */ + /* * bug routines -- assumes that the necessary sections of memory * are preserved. @@ -7,11 +9,11 @@ /* BUG - query board routines */ struct mvmeprom_brdid * -mvmeprom_brdid() +mvmeprom_getbrdid() { struct mvmeprom_brdid *id; + MVMEPROM_NOARG(); MVMEPROM_CALL(MVMEPROM_GETBRDID); - asm volatile ("or %0,r0,r2": "=r" (id):); - return (id); + MVMEPROM_RETURN(id); } diff --git a/sys/arch/mvme68k/stand/libbug/m88k/instat.c b/sys/arch/mvme68k/stand/libbug/instat.c index 0ac97fe7676..c9a67c2db6d 100644 --- a/sys/arch/mvme68k/stand/libbug/m88k/instat.c +++ b/sys/arch/mvme68k/stand/libbug/instat.c @@ -1,3 +1,5 @@ +/* $OpenBSD: instat.c,v 1.1 1996/05/07 11:25:09 deraadt Exp $ */ + /* * bug routines -- assumes that the necessary sections of memory * are preserved. @@ -9,9 +11,8 @@ int mvmeprom_instat() { - short ret; + int ret; MVMEPROM_CALL(MVMEPROM_INSTAT); - asm volatile ("or %0,r0,r2" : "=r" (ret)); - return (!(ret & 0x4)); + MVMEPROM_STATRET(ret); } diff --git a/sys/arch/mvme68k/stand/libbug/m68k/delay.c b/sys/arch/mvme68k/stand/libbug/m68k/delay.c deleted file mode 100644 index 570bf07f1fb..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m68k/delay.c +++ /dev/null @@ -1,17 +0,0 @@ -/* $OpenBSD: delay.c,v 1.2 1996/04/28 10:48:36 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -/* BUG - timing routine */ -void -mvmeprom_delay(msec) - int msec; -{ - asm volatile ("movel %0,sp@-" : :"d" (msec)); - MVMEPROM_CALL(MVMEPROM_DELAY); -} diff --git a/sys/arch/mvme68k/stand/libbug/m68k/diskrd.c b/sys/arch/mvme68k/stand/libbug/m68k/diskrd.c deleted file mode 100644 index 60436fbee60..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m68k/diskrd.c +++ /dev/null @@ -1,21 +0,0 @@ -/* $OpenBSD: diskrd.c,v 1.2 1996/04/28 10:48:37 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -/* returns 0: success, nonzero: error */ -int -mvmeprom_diskrd(arg) - struct mvmeprom_dskio *arg; -{ - int ret; - - asm volatile ("movel %0, sp@-"::"d" (arg)); - MVMEPROM_CALL(MVMEPROM_DSKRD); - asm volatile ("movew ccr,%0": "=d" (ret)); - return (!(ret & 0x4)); -} diff --git a/sys/arch/mvme68k/stand/libbug/m68k/diskwr.c b/sys/arch/mvme68k/stand/libbug/m68k/diskwr.c deleted file mode 100644 index 985d473de6a..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m68k/diskwr.c +++ /dev/null @@ -1,21 +0,0 @@ -/* $OpenBSD: diskwr.c,v 1.2 1996/04/28 10:48:38 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -/* returns 0: success, nonzero: error */ -int -mvmeprom_diskwr(arg) - struct mvmeprom_dskio *arg; -{ - int ret; - - asm volatile ("movel %0, sp@-"::"d" (arg)); - MVMEPROM_CALL(MVMEPROM_DSKWR); - asm volatile ("movew ccr,%0": "=d" (ret)); - return (!(ret & 0x4)); -} diff --git a/sys/arch/mvme68k/stand/libbug/m68k/getbrdid.c b/sys/arch/mvme68k/stand/libbug/m68k/getbrdid.c deleted file mode 100644 index 3854755919e..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m68k/getbrdid.c +++ /dev/null @@ -1,20 +0,0 @@ -/* $OpenBSD: getbrdid.c,v 1.2 1996/04/28 10:48:39 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -/* BUG - query board routines */ -struct mvmeprom_brdid * -mvmeprom_getbrdid() -{ - struct mvmeprom_brdid *id; - - asm volatile ("clrl sp@-"); - MVMEPROM_CALL(MVMEPROM_GETBRDID); - asm volatile ("movel sp@+,%0": "=d" (id):); - return (id); -} diff --git a/sys/arch/mvme68k/stand/libbug/m68k/instat.c b/sys/arch/mvme68k/stand/libbug/m68k/instat.c deleted file mode 100644 index b533cfff873..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m68k/instat.c +++ /dev/null @@ -1,19 +0,0 @@ -/* $OpenBSD: instat.c,v 1.2 1996/04/28 10:48:43 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -/* returns 0 if no characters ready to read */ -int -mvmeprom_instat() -{ - u_short ret; - - MVMEPROM_CALL(MVMEPROM_INSTAT); - asm volatile ("movew ccr,%0": "=d" (ret)); - return (!(ret & 0x4)); -} diff --git a/sys/arch/mvme68k/stand/libbug/m68k/outln.c b/sys/arch/mvme68k/stand/libbug/m68k/outln.c deleted file mode 100644 index 784c0ed7e6c..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m68k/outln.c +++ /dev/null @@ -1,17 +0,0 @@ -/* $OpenBSD: outln.c,v 1.2 1996/04/28 10:48:44 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -void -mvmeprom_outln(start, end) - char *start, *end; -{ - asm volatile ("movl %0, sp@-" : "=a" (start)); - asm volatile ("movl %0, sp@-" : "=a" (end)); - MVMEPROM_CALL(MVMEPROM_OUTSTRCRLF); -} diff --git a/sys/arch/mvme68k/stand/libbug/m68k/outstr.c b/sys/arch/mvme68k/stand/libbug/m68k/outstr.c deleted file mode 100644 index 3cf9f4d69d5..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m68k/outstr.c +++ /dev/null @@ -1,17 +0,0 @@ -/* $OpenBSD: outstr.c,v 1.2 1996/04/28 10:48:45 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -void -mvmeprom_outstr(start, end) - char *start, *end; -{ - asm volatile ("movl %0, sp@-" : "=a" (start)); - asm volatile ("movl %0, sp@-" : "=a" (end)); - MVMEPROM_CALL(MVMEPROM_OUTSTR); -} diff --git a/sys/arch/mvme68k/stand/libbug/m88k/outch.c b/sys/arch/mvme68k/stand/libbug/m88k/outch.c deleted file mode 100644 index 78110e0299f..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m88k/outch.c +++ /dev/null @@ -1,15 +0,0 @@ -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -void -mvmeprom_outchr(a) - char a; -{ - asm volatile ("or r2, r0, %0" : :"r" (a)); - BUG_CALL(_OUTCHR); -} - diff --git a/sys/arch/mvme68k/stand/libbug/m88k/return.c b/sys/arch/mvme68k/stand/libbug/m88k/return.c deleted file mode 100644 index 00206a16c48..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m88k/return.c +++ /dev/null @@ -1,14 +0,0 @@ -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -/* BUG - return to bug routine */ -void -mvmeprom_return() -{ - MVMEPROM_CALL(MVMEPROM_EXIT); - /*NOTREACHED*/ -} diff --git a/sys/arch/mvme68k/stand/libbug/m88k/rtc_rd.c b/sys/arch/mvme68k/stand/libbug/m88k/rtc_rd.c deleted file mode 100644 index 7cff3227678..00000000000 --- a/sys/arch/mvme68k/stand/libbug/m88k/rtc_rd.c +++ /dev/null @@ -1,14 +0,0 @@ -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include <sys/types.h> -#include <machine/prom.h> - -void -mvmeprom_rtc_rd(ptime) - struct mvmeprom_time *ptime) -{ - asm volatile ("or r2,r0,%0": : "r" (ptime)); - MVMEPROM_CALL(MVMEPROM_RTC_RD); -} diff --git a/sys/arch/mvme68k/stand/libbug/m88k/outln.c b/sys/arch/mvme68k/stand/libbug/outln.c index ed0067e42d9..360d90434b5 100644 --- a/sys/arch/mvme68k/stand/libbug/m88k/outln.c +++ b/sys/arch/mvme68k/stand/libbug/outln.c @@ -1,3 +1,5 @@ +/* $OpenBSD: outln.c,v 1.1 1996/05/07 11:25:10 deraadt Exp $ */ + /* * bug routines -- assumes that the necessary sections of memory * are preserved. @@ -9,7 +11,7 @@ void mvmeprom_outln(start, end) char *start, *end; { - asm volatile ("or r2,r0,%0": : "r" (start)); - asm volatile ("or r3,r0,%0": : "r" (end)); + MVMEPROM_ARG1(start); + MVMEPROM_ARG1(end); MVMEPROM_CALL(MVMEPROM_OUTSTRCRLF); } diff --git a/sys/arch/mvme68k/stand/libbug/m88k/outstr.c b/sys/arch/mvme68k/stand/libbug/outstr.c index c9e3c355736..bede70a5e40 100644 --- a/sys/arch/mvme68k/stand/libbug/m88k/outstr.c +++ b/sys/arch/mvme68k/stand/libbug/outstr.c @@ -1,3 +1,5 @@ +/* $OpenBSD: outstr.c,v 1.1 1996/05/07 11:25:10 deraadt Exp $ */ + /* * bug routines -- assumes that the necessary sections of memory * are preserved. @@ -9,7 +11,7 @@ void mvmeprom_outstr(start, end) char *start, *end; { - asm volatile ("or r2,r0,%0": : "r" (start)); - asm volatile ("or r3,r0,%0": : "r" (end)); + MVMEPROM_ARG1(start); + MVMEPROM_ARG2(end); MVMEPROM_CALL(MVMEPROM_OUTSTR); } diff --git a/sys/arch/mvme68k/stand/libbug/ppc/bug.c b/sys/arch/mvme68k/stand/libbug/ppc/bug.c deleted file mode 100644 index 205571aa325..00000000000 --- a/sys/arch/mvme68k/stand/libbug/ppc/bug.c +++ /dev/null @@ -1,135 +0,0 @@ -/* $OpenBSD: bug.c,v 1.2 1996/04/28 10:48:50 deraadt Exp $ */ - -/* - * bug routines -- assumes that the necessary sections of memory - * are preserved. - */ -#include "bug.h" - -#define _INCHR "0x00" -#define _INSTAT "0x01" -#define _INLN "0x02" -#define _READSTR "0x03" -#define _READLN "0x04" -#define _OUTCHR "0x20" -#define _OUTSTR "0x21" -#define _OUTLN "0x22" -#define _DSKRD "0x10" -#define _DSKWR "0x11" -#define _DSKCFIG "0x12" -#define _DSKFMT "0x14" -#define _DSKCTRL "0x15" -#define _WRITE "0x23" -#define _WRITELN "0x24" -#define _DELAY "0x43" -#define _RTC_RD "0x53" -#define _RETURN "0x63" -#define _BRD_ID "0x70" - -/* BUG - tty routines */ - -#define BUG_CALL(x) \ - asm volatile ("addi r10,r0," x); \ - asm volatile ("sc"); - -char bug_inchr() -{ - register char a; - asm volatile ("sub r31,r31,4"); - BUG_CALL(_INCHR); - asm volatile ("or %0,r0,r2" : "=r" (a)); - return a; -} - -/* returns 0 if no characters ready to read */ -int bug_instat() -{ - short ret; - BUG_CALL(_INSTAT); - asm volatile ("or %0,r0,r2" : "=r" (ret)); - return (!(ret & 0x4)); - -} - -void bug_outchr(char a) -{ - asm volatile ("or r2, r0, %0" : :"r" (a)); - BUG_CALL(_OUTCHR); - return; -} - -void bug_outstr(char *pstrb, char *pstre) -{ - asm volatile ("or r2,r0,%0": : "r" (pstrb) ); - asm volatile ("or r3,r0,%0": : "r" (pstre) ); - BUG_CALL(_OUTSTR); - return; -} - -void bug_outln(char *pstrb, char *pstre) -{ - asm volatile ("or r2,r0,%0": : "r" (pstrb) ); - asm volatile ("or r3,r0,%0": : "r" (pstre) ); - BUG_CALL(_OUTLN); - return; -} - -/* BUG - disk routines */ - -/* returns 0: success, nonzero: error */ -int bug_diskrd(bug_dskio *arg) -{ - int ret; - asm volatile ("or r2,r0,%0": : "r" (arg) ); - BUG_CALL(_DSKRD); - return (!(ret & 0x4)); -} -/* returns 0: success, nonzero: error */ -int bug_diskwr(bug_dskio *arg) -{ - int ret; - asm volatile ("or r2,r0,%0": : "r" (arg) ); - BUG_CALL(_DSKWR); - return (!(ret & 0x4)); -} -#ifdef NOTYET -bug_diskcfig() -{ - -} -bug_diskfmt(){} -bug_diskctrl(){} -#endif - -/* BUG - timing routine */ - -void bug_delay(int delay_msec) -{ - asm volatile ("or r2,r0,%0": : "r" (delay_msec) ); - BUG_CALL(_DELAY); - return ; -} - -/* BUG - return to bug routine */ - -void bug_return() -{ - BUG_CALL(_RETURN); - /*NOTREACHED*/ -} - -/* BUG - query board routines */ - -struct bug_brdid *bug_brdid() -{ - struct bug_brdid *pbrd_id; - BUG_CALL(_BRD_ID); - asm volatile ("or %0,r0,r2": "=r" (pbrd_id):); - return pbrd_id; -} -void bug_rtc_rd(struct bug_time *ptime) -{ - asm volatile ("or r2,r0,%0": : "r" (ptime)); - BUG_CALL(_RTC_RD); - return; -} diff --git a/sys/arch/mvme68k/stand/libbug/m68k/return.c b/sys/arch/mvme68k/stand/libbug/return.c index 230bb6a025c..fddf5753191 100644 --- a/sys/arch/mvme68k/stand/libbug/m68k/return.c +++ b/sys/arch/mvme68k/stand/libbug/return.c @@ -1,4 +1,4 @@ -/* $OpenBSD: return.c,v 1.2 1996/04/28 10:48:46 deraadt Exp $ */ +/* $OpenBSD: return.c,v 1.1 1996/05/07 11:25:11 deraadt Exp $ */ /* * bug routines -- assumes that the necessary sections of memory diff --git a/sys/arch/mvme68k/stand/libbug/m68k/rtc_rd.c b/sys/arch/mvme68k/stand/libbug/rtc_rd.c index 0f73e7b52ba..d9d9019d177 100644 --- a/sys/arch/mvme68k/stand/libbug/m68k/rtc_rd.c +++ b/sys/arch/mvme68k/stand/libbug/rtc_rd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtc_rd.c,v 1.2 1996/04/28 10:48:47 deraadt Exp $ */ +/* $OpenBSD: rtc_rd.c,v 1.1 1996/05/07 11:25:12 deraadt Exp $ */ /* * bug routines -- assumes that the necessary sections of memory @@ -11,6 +11,6 @@ void mvmeprom_rtc_rd(ptime) struct mvmeprom_time *ptime; { - asm volatile ("movel %0,sp@-" : :"a" (ptime)); + MVMEPROM_ARG1(ptime); MVMEPROM_CALL(MVMEPROM_RTC_RD); } |