summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/mac68k/include/cpu.h222
-rw-r--r--sys/arch/mac68k/include/intr.h145
-rw-r--r--sys/arch/mac68k/include/macinfo.h159
-rw-r--r--sys/arch/mac68k/include/param.h5
-rw-r--r--sys/arch/mac68k/include/psl.h56
5 files changed, 320 insertions, 267 deletions
diff --git a/sys/arch/mac68k/include/cpu.h b/sys/arch/mac68k/include/cpu.h
index a467e5f16d4..c8b7cfdb594 100644
--- a/sys/arch/mac68k/include/cpu.h
+++ b/sys/arch/mac68k/include/cpu.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpu.h,v 1.18 1998/03/01 00:37:36 niklas Exp $ */
+/* $OpenBSD: cpu.h,v 1.19 1998/05/03 07:10:44 gene Exp $ */
/* $NetBSD: cpu.h,v 1.45 1997/02/10 22:13:40 scottr Exp $ */
/*
@@ -41,9 +41,8 @@
/*
* Copyright (c) 1992, 1993 BCDL Labs. All rights reserved.
- * Allen Briggs, Chris Caputo, Michael Finch, Brad Grantham,
- * Lawrence Kesteloot
- *
+ * Allen Briggs, Chris Caputo, Michael Finch, Brad Grantham, Lawrence Kesteloot
+
* Redistribution of this source code or any part thereof is permitted,
* provided that the following conditions are met:
* 1) Utilized source contains the copyright message above, this list
@@ -63,8 +62,12 @@
* @(#)cpu.h 7.7 (Berkeley) 6/27/91
*/
-#ifndef _MAC68K_CPU_H_
-#define _MAC68K_CPU_H_
+#ifndef _CPU_MACHINE_
+#define _CPU_MACHINE_
+
+/*
+ * Exported definitions unique to mac68k/68k cpu support.
+ */
#include <machine/pcb.h>
@@ -75,25 +78,27 @@
#define M68K_MMU_MOTOROLA
/*
+ * Get interrupt glue.
+ */
+#include <machine/intr.h>
+
+/*
* definitions of cpu-dependent requirements
* referenced in generic code
*/
#define cpu_swapin(p) /* nothing */
#define cpu_wait(p) /* nothing */
#define cpu_swapout(p) /* nothing */
-void cpu_set_kpc __P((struct proc *, void (*)(struct proc *)));
/*
- * Arguments to hardclock, softclock and gatherstats
- * encapsulate the previous machine state in an opaque
- * clockframe; for hp300, use just what the hardware
- * leaves on the stack.
+ * Arguments to hardclock and gatherstats encapsulate the previous
+ * machine state in an opaque clockframe. One the hp300, we use
+ * what the hardware pushes on an interrupt (frame format 0).
*/
-
struct clockframe {
- u_short sr;
- u_long pc;
- u_short vo;
+ u_short sr; /* sr at time of interrupt */
+ u_long pc; /* pc at time of interrupt */
+ u_short vo; /* vector offset (4-word frame) */
};
#define CLKF_USERMODE(framep) (((framep)->sr & PSL_S) == 0)
@@ -105,6 +110,7 @@ struct clockframe {
* Preempt the current process if in interrupt from user mode,
* or after the current trap/syscall if in system mode.
*/
+extern int want_resched; /* resched() was called */
#define need_resched() { want_resched++; aston(); }
/*
@@ -120,34 +126,9 @@ struct clockframe {
*/
#define signotify(p) aston()
+extern int astpending; /* need to trap before returning to user mode */
#define aston() (astpending++)
-int astpending; /* need to trap before returning to user mode */
-int want_resched; /* resched() was called */
-
-/*
- * simulated software interrupt register
- */
-extern volatile u_int8_t ssir;
-
-#define SIR_NET 0x01
-#define SIR_CLOCK 0x02
-#define SIR_SERIAL 0x04
-
-/* Mac-specific SSIR(s) */
-#define SIR_DTMGR 0x80
-
-#define siroff(mask) \
- __asm __volatile ( "andb %0,_ssir" : : "ir" (~(mask) & 0xff));
-#define setsoftnet() \
- __asm __volatile ( "orb %0,_ssir" : : "i" (SIR_NET))
-#define setsoftclock() \
- __asm __volatile ( "orb %0,_ssir" : : "i" (SIR_CLOCK))
-#define setsoftserial() \
- __asm __volatile ( "orb %0,_ssir" : : "i" (SIR_SERIAL))
-#define setsoftdtmgr() \
- __asm __volatile ( "orb %0,_ssir" : : "i" (SIR_DTMGR))
-
#define CPU_CONSDEV 1
#define CPU_MAXID 2
@@ -156,12 +137,144 @@ extern volatile u_int8_t ssir;
{ "console_device", CTLTYPE_STRUCT }, \
}
+/* values for machineid --
+ * These are equivalent to the MacOS Gestalt values. */
+#define MACH_MACII 6
+#define MACH_MACIIX 7
+#define MACH_MACIICX 8
+#define MACH_MACSE30 9
+#define MACH_MACIICI 11
+#define MACH_MACIIFX 13
+#define MACH_MACIISI 18
+#define MACH_MACQ900 20
+#define MACH_MACPB170 21
+#define MACH_MACQ700 22
+#define MACH_MACCLASSICII 23
+#define MACH_MACPB100 24
+#define MACH_MACPB140 25
+#define MACH_MACQ950 26
+#define MACH_MACLCIII 27
+#define MACH_MACPB210 29
+#define MACH_MACC650 30
+#define MACH_MACPB230 32
+#define MACH_MACPB180 33
+#define MACH_MACPB160 34
+#define MACH_MACQ800 35
+#define MACH_MACQ650 36
+#define MACH_MACLCII 37
+#define MACH_MACPB250 38
+#define MACH_MACIIVI 44
+#define MACH_MACP600 45
+#define MACH_MACIIVX 48
+#define MACH_MACCCLASSIC 49
+#define MACH_MACPB165C 50
+#define MACH_MACC610 52
+#define MACH_MACQ610 53
+#define MACH_MACPB145 54
+#define MACH_MACLC520 56
+#define MACH_MACC660AV 60
+#define MACH_MACP460 62
+#define MACH_MACPB180C 71
+#define MACH_MACPB500 72
+#define MACH_MACPB270 77
+#define MACH_MACQ840AV 78
+#define MACH_MACP550 80
+#define MACH_MACCCLASSICII 83
+#define MACH_MACPB165 84
+#define MACH_MACTV 88
+#define MACH_MACLC475 89
+#define MACH_MACLC475_33 90
+#define MACH_MACLC575 92
+#define MACH_MACQ605 94
+#define MACH_MACQ605_33 95
+#define MACH_MACQ630 98
+#define MACH_MACP580 99
+#define MACH_MACPB280 102
+#define MACH_MACPB280C 103
+#define MACH_MACPB150 115
+
+/*
+ * Machine classes. These define subsets of the above machines.
+ */
+#define MACH_CLASSH 0x0000 /* Hopeless cases... */
+#define MACH_CLASSII 0x0001 /* MacII class */
+#define MACH_CLASSIIci 0x0004 /* Have RBV, but no Egret */
+#define MACH_CLASSIIsi 0x0005 /* Similar to IIci -- Have Egret. */
+#define MACH_CLASSIIvx 0x0006 /* Similar to IIsi -- different via2 emul? */
+#define MACH_CLASSLC 0x0007 /* Low-Cost/Performa/Wal-Mart Macs. */
+#define MACH_CLASSPB 0x0008 /* Powerbooks. Power management. */
+#define MACH_CLASSDUO 0x0009 /* Powerbooks Duos. More integration/Docks. */
+#define MACH_CLASSIIfx 0x0080 /* The IIfx is in a class by itself. */
+#define MACH_CLASSQ 0x0100 /* non-A/V Centris/Quadras. */
+#define MACH_CLASSAV 0x0101 /* A/V Centris/Quadras. */
+#define MACH_CLASSQ2 0x0102 /* More Centris/Quadras, different sccA. */
+#define MACH_CLASSP580 0x0103 /* Similar to Quadras, but not quite.. */
+
+#define MACH_68020 0
+#define MACH_68030 1
+#define MACH_68040 2
+#define MACH_PENTIUM 3 /* 66 and 99 MHz versions *only* */
+
+#ifdef _KERNEL
+struct mac68k_machine_S {
+ int cpu_model_index;
+ /*
+ * Misc. info from booter.
+ */
+ int machineid;
+ int mach_processor;
+ int mach_memsize;
+ int booter_version;
+ /*
+ * Debugging flags.
+ */
+ int do_graybars;
+ int serial_boot_echo;
+ int serial_console;
+
+ int zs_chip; /* what type of chip we've got */
+ int sccClkConst; /* Compatibility information */
+ int modem_flags;
+ int modem_cts_clk;
+ int modem_dcd_clk;
+ int modem_d_speed;
+ int print_flags;
+ int print_cts_clk;
+ int print_dcd_clk;
+ int print_d_speed;
+ /*
+ * Misc. hardware info.
+ */
+ int scsi80; /* Has NCR 5380 */
+ int scsi96; /* Has NCR 53C96 */
+ int scsi96_2; /* Has 2nd 53C96 */
+ int sonic; /* Has SONIC e-net */
+};
+
+ /* What kind of model is this */
+struct cpu_model_info {
+ int machineid; /* MacOS Gestalt value. */
+ char *model_major; /* Make this distinction to save a few */
+ char *model_minor; /* bytes--might be useful, too. */
+ int class; /* Rough class of machine. */
+ /* forwarded romvec_s is defined in mac68k/macrom.h */
+ struct romvec_s *rom_vectors; /* Pointer to our known rom vectors */
+};
+extern struct cpu_model_info *current_mac_model;
+
+extern unsigned long IOBase; /* Base address of I/O */
+extern unsigned long NuBusBase; /* Base address of NuBus */
+
+extern struct mac68k_machine_S mac68k_machine;
+extern unsigned long load_addr;
+#endif /* _KERNEL */
+
/* physical memory sections */
#define ROMBASE (0x40800000)
-#define ROMLEN (0x00200000) /* 2MB should be enough! */
+#define ROMLEN (0x00200000) /* 2MB will work for all 68k */
#define ROMMAPSIZE btoc(ROMLEN) /* 32k of page tables. */
-#define IIOMAPSIZE btoc(0x00100000)
+#define IIOMAPSIZE btoc(0x00100000) /* 1MB should be enough */
/* XXX -- Need to do something about superspace.
* Technically, NuBus superspace starts at 0x60000000, but no
@@ -175,8 +288,14 @@ extern volatile u_int8_t ssir;
#define NBTOP 0xFF000000 /* NUBUS space */
#define NBMAPSIZE btoc(NBTOP-NBBASE) /* ~ 96 megs */
#define NBMEMSIZE 0x01000000 /* 16 megs per card */
+#define NBROMOFFSET 0x00FF0000 /* Last 64K == ROM */
+
+#ifdef _KERNEL
+
+struct frame;
+struct fpframe;
+struct pcb;
-__BEGIN_DECLS
/* machdep.c */
void mac68k_set_bell_callback __P((int (*)(void *, int, int, int), void *));
int mac68k_ring_bell __P((int, int, int));
@@ -185,29 +304,28 @@ u_int get_mapping __P((void));
/* locore.s */
void m68881_restore __P((struct fpframe *));
void m68881_save __P((struct fpframe *));
-u_int getsfc __P((void));
-u_int getdfc __P((void));
+u_int getsfc __P((void));
+u_int getdfc __P((void));
void TBIA __P((void));
void TBIAS __P((void));
void TBIS __P((vm_offset_t));
void DCFP __P((vm_offset_t));
void ICPP __P((vm_offset_t));
void DCIU __P((void));
+void DCIS __P((void));
void ICIA __P((void));
void DCFL __P((vm_offset_t));
int suline __P((caddr_t, caddr_t));
void savectx __P((struct pcb *));
void proc_trampoline __P((void));
-/* pmap.c */
-vm_offset_t pmap_map __P((vm_offset_t, vm_offset_t, vm_offset_t, int));
-
/* trap.c */
-void child_return __P((struct proc *, struct frame));
+void child_return __P((struct proc *, struct frame));
/* vm_machdep.c */
void physaccess __P((caddr_t, caddr_t, register int, register int));
+void physunaccess __P((caddr_t, register int));
-__END_DECLS
+#endif
-#endif /* _MAC68K_CPU_H_ */
+#endif /* _CPU_MACHINE_ */
diff --git a/sys/arch/mac68k/include/intr.h b/sys/arch/mac68k/include/intr.h
new file mode 100644
index 00000000000..01df7a1a3ba
--- /dev/null
+++ b/sys/arch/mac68k/include/intr.h
@@ -0,0 +1,145 @@
+/* $OpenBSD: intr.h,v 1.1 1998/05/03 07:10:45 gene Exp $ */
+/* $NetBSD: intr.h,v 1.8 1997/11/07 07:33:18 scottr Exp $ */
+
+/*
+ * Copyright (C) 1997 Scott Reynolds
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _MAC68K_INTR_H_
+#define _MAC68K_INTR_H_
+
+#ifdef _KERNEL
+/*
+ * spl functions; all but spl0 are done in-line
+ */
+
+#define _spl(s) \
+({ \
+ register int _spl_r; \
+ \
+ __asm __volatile ("clrl %0; movew sr,%0; movew %1,sr" : \
+ "&=d" (_spl_r) : "di" (s)); \
+ _spl_r; \
+})
+
+#define _splraise(s) \
+({ \
+ int _spl_r; \
+ \
+ __asm __volatile (" \
+ clrl d0 ; \
+ movw sr,d0 ; \
+ movl d0,%0 ; \
+ andw #0x700,d0 ; \
+ movw %1,d1 ; \
+ andw #0x700,d1 ; \
+ cmpw d0,d1 ; \
+ jle 1f ; \
+ movw %1,sr ; \
+ 1:" : \
+ "&=d" (_spl_r) : \
+ "di" (s) : \
+ "d0", "d1"); \
+ _spl_r; \
+})
+
+/* spl0 requires checking for software interrupts */
+#define spl1() _spl(PSL_S|PSL_IPL1)
+#define spl2() _spl(PSL_S|PSL_IPL2)
+#define spl3() _spl(PSL_S|PSL_IPL3)
+#define spl4() _spl(PSL_S|PSL_IPL4)
+#define spl5() _spl(PSL_S|PSL_IPL5)
+#define spl6() _spl(PSL_S|PSL_IPL6)
+#define spl7() _spl(PSL_S|PSL_IPL7)
+
+/* These spl calls are _not_ to be used by machine-independent code. */
+#define spladb() splhigh()
+#define splzs() splserial()
+#define splsoft() spl1()
+
+/*
+ * splnet must block hardware network interrupts
+ * splimp must be > spltty
+ */
+extern unsigned short mac68k_ttyipl;
+extern unsigned short mac68k_bioipl;
+extern unsigned short mac68k_netipl;
+extern unsigned short mac68k_impipl;
+extern unsigned short mac68k_clockipl;
+extern unsigned short mac68k_statclockipl;
+extern unsigned short mac68k_schedipl;
+
+/*
+ * These should be used for:
+ * 1) ensuring mutual exclusion (why use processor level?)
+ * 2) allowing faster devices to take priority
+ *
+ * Note that on the Mac, most things are masked at spl1, almost
+ * everything at spl2, and everything but the panic switch and
+ * power at spl4.
+ */
+#define splsoftclock() splsoft()
+#define splsoftnet() splsoft()
+#define spltty() _splraise(mac68k_ttyipl)
+#define splbio() _splraise(mac68k_bioipl)
+#define splnet() _splraise(mac68k_netipl)
+#define splimp() _splraise(mac68k_impipl)
+#define splclock() _splraise(mac68k_clockipl)
+#define splstatclock() _splraise(mac68k_statclockipl)
+#define splsched() _splsched(mac68k_schedipl)
+#define splserial() spl4()
+#define splhigh() spl7()
+
+/* watch out for side effects */
+#define splx(s) ((s) & PSL_IPL ? _spl(s) : spl0())
+
+/*
+ * simulated software interrupt register
+ */
+extern volatile u_int8_t ssir;
+
+#define SIR_NET 0x01
+#define SIR_CLOCK 0x02
+#define SIR_SERIAL 0x04
+#define SIR_DTMGR 0x08
+#define SIR_ADB 0x10
+
+#define siron(mask) \
+ __asm __volatile ( "orb %0,_ssir" : : "i" (mask))
+#define siroff(mask) \
+ __asm __volatile ( "andb %0,_ssir" : : "ir" (~(mask)));
+
+#define setsoftnet() siron(SIR_NET)
+#define setsoftclock() siron(SIR_CLOCK)
+#define setsoftserial() siron(SIR_SERIAL)
+#define setsoftdtmgr() siron(SIR_DTMGR)
+#define setsoftadb() siron(SIR_ADB)
+
+/* locore.s */
+int spl0 __P((void));
+#endif /* _KERNEL */
+
+#endif /* _MAC68K_INTR_H_ */
diff --git a/sys/arch/mac68k/include/macinfo.h b/sys/arch/mac68k/include/macinfo.h
deleted file mode 100644
index f6b3355df85..00000000000
--- a/sys/arch/mac68k/include/macinfo.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* $OpenBSD: macinfo.h,v 1.3 1997/11/30 06:12:30 gene Exp $ */
-/* $NetBSD: scsi96reg.h,v 1.5 1996/05/05 06:18:02 briggs Exp $ */
-
-/*
- * Copyright (C) 1996 Allen K. Briggs
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _MAC68K_MACINFO_H_
-#define _MAC68K_MACINFO_H_
-
-/* values for machineid --
- * These are equivalent to the MacOS Gestalt values. */
-#define MACH_MACII 6
-#define MACH_MACIIX 7
-#define MACH_MACIICX 8
-#define MACH_MACSE30 9
-#define MACH_MACIICI 11
-#define MACH_MACIIFX 13
-#define MACH_MACIISI 18
-#define MACH_MACQ900 20
-#define MACH_MACPB170 21
-#define MACH_MACQ700 22
-#define MACH_MACCLASSICII 23
-#define MACH_MACPB100 24
-#define MACH_MACPB140 25
-#define MACH_MACQ950 26
-#define MACH_MACLCIII 27
-#define MACH_MACPB210 29
-#define MACH_MACC650 30
-#define MACH_MACPB230 32
-#define MACH_MACPB180 33
-#define MACH_MACPB160 34
-#define MACH_MACQ800 35
-#define MACH_MACQ650 36
-#define MACH_MACLCII 37
-#define MACH_MACPB250 38
-#define MACH_MACIIVI 44
-#define MACH_MACP600 45
-#define MACH_MACIIVX 48
-#define MACH_MACCCLASSIC 49
-#define MACH_MACPB165C 50
-#define MACH_MACC610 52
-#define MACH_MACQ610 53
-#define MACH_MACPB145 54
-#define MACH_MACLC520 56
-#define MACH_MACC660AV 60
-#define MACH_MACP460 62
-#define MACH_MACPB180C 71
-#define MACH_MACPB500 72
-#define MACH_MACPB270 77
-#define MACH_MACQ840AV 78
-#define MACH_MACP550 80
-#define MACH_MACCCLASSICII 83
-#define MACH_MACPB165 84
-#define MACH_MACTV 88
-#define MACH_MACLC475 89
-#define MACH_MACLC575 92
-#define MACH_MACQ605 94
-#define MACH_MACQ630 98
-#define MACH_MACPB280 102
-#define MACH_MACPB280C 103
-#define MACH_MACPB150 115
-
-/*
- * Machine classes. These define subsets of the above machines.
- */
-#define MACH_CLASSH 0x0000 /* Hopeless cases... */
-#define MACH_CLASSII 0x0001 /* MacII class */
-#define MACH_CLASSIIci 0x0004 /* Have RBV, but no Egret */
-#define MACH_CLASSIIsi 0x0005 /* Similar to IIci -- Have Egret. */
-#define MACH_CLASSIIvx 0x0006 /* Similar to IIsi -- different via2 emul? */
-#define MACH_CLASSLC 0x0007 /* Low-Cost/Performa/Wal-Mart Macs. */
-#define MACH_CLASSPB 0x0008 /* Powerbooks. Power management. */
-#define MACH_CLASSDUO 0x0009 /* Powerbooks Duos. More integration/Docks. */
-#define MACH_CLASSIIfx 0x0080 /* The IIfx is in a class by itself. */
-#define MACH_CLASSQ 0x0100 /* non-A/V Centris/Quadras. */
-#define MACH_CLASSAV 0x0101 /* A/V Centris/Quadras. */
-#define MACH_CLASSQ2 0x0102 /* More Centris/Quadras, different sccA. */
-
-#define MACH_68020 0
-#define MACH_68030 1
-#define MACH_68040 2
-#define MACH_PENTIUM 3 /* 66 and 99 MHz versions *only* */
-
-#ifdef _KERNEL
-struct mac68k_machine_S {
- int cpu_model_index;
- /*
- * Misc. info from booter.
- */
- int machineid;
- int mach_processor;
- int mach_memsize;
- int booter_version;
- /*
- * Debugging flags.
- */
- int do_graybars;
- int serial_boot_echo;
- int serial_console;
- int modem_flags;
- int modem_cts_clk;
- int modem_dcd_clk;
- int print_flags;
- int print_cts_clk;
- int print_dcd_clk;
- /*
- * Misc. hardware info.
- */
- int scsi80; /* Has NCR 5380 */
- int scsi96; /* Has NCR 53C96 */
- int scsi96_2; /* Has 2nd 53C96 */
- int sonic; /* Has SONIC e-net */
-
- int sccClkConst; /* "Constant" for SCC bps */
-};
-
-/* What kind of model is this */
-struct cpu_model_info {
- int machineid; /* MacOS Gestalt value. */
- char *model_major; /* Make this distinction to save a few */
- char *model_minor; /* bytes--might be useful, too. */
- int class; /* Rough class of machine. */
- /* forwarded romvec_s is defined in mac68k/macrom.h */
- struct romvec_s *rom_vectors; /* Pointer to our known rom vectors */
-};
-extern struct cpu_model_info *current_mac_model;
-
-extern unsigned long IOBase; /* Base address of I/O */
-extern unsigned long NuBusBase; /* Base address of NuBus */
-
-extern struct mac68k_machine_S mac68k_machine;
-extern unsigned long load_addr;
-#endif /* _KERNEL */
-
-#endif /* _MAC68K_MACINFO_H_ */
diff --git a/sys/arch/mac68k/include/param.h b/sys/arch/mac68k/include/param.h
index cf9193f7f59..6628d08f6df 100644
--- a/sys/arch/mac68k/include/param.h
+++ b/sys/arch/mac68k/include/param.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: param.h,v 1.7 1997/11/30 06:12:31 gene Exp $ */
+/* $OpenBSD: param.h,v 1.8 1998/05/03 07:10:47 gene Exp $ */
/* $NetBSD: param.h,v 1.28 1997/03/01 06:57:45 scottr Exp $ */
/*
@@ -84,6 +84,9 @@
#include <machine/psl.h>
#endif /* PSL_IPL */
+/* Pull in interrupt glue */
+#include <machine/intr.h>
+
/*
* Machine dependent constants for Macintosh II-and-similar series.
*/
diff --git a/sys/arch/mac68k/include/psl.h b/sys/arch/mac68k/include/psl.h
index a0784901bed..e272a8e0e2f 100644
--- a/sys/arch/mac68k/include/psl.h
+++ b/sys/arch/mac68k/include/psl.h
@@ -1,58 +1,4 @@
-/* $OpenBSD: psl.h,v 1.5 1996/06/23 16:24:06 briggs Exp $ */
+/* $OpenBSD: psl.h,v 1.6 1998/05/03 07:10:48 gene Exp $ */
/* $NetBSD: psl.h,v 1.11 1996/06/21 21:51:15 briggs Exp $ */
-#ifndef PSL_C
#include <m68k/psl.h>
-
-#if defined(_KERNEL) && !defined(_LOCORE)
-/*
- * spl functions; all but spl0 are done in-line
- */
-
-#define _spl(s) \
-({ \
- register int _spl_r; \
-\
- __asm __volatile ("clrl %0; movew sr,%0; movew %1,sr" : \
- "&=d" (_spl_r) : "di" (s)); \
- _spl_r; \
-})
-
-/* spl0 requires checking for software interrupts */
-#define spl1() _spl(PSL_S|PSL_IPL1)
-#define spl2() _spl(PSL_S|PSL_IPL2)
-#define spl3() _spl(PSL_S|PSL_IPL3)
-#define spl4() _spl(PSL_S|PSL_IPL4)
-#define spl5() _spl(PSL_S|PSL_IPL5)
-#define spl6() _spl(PSL_S|PSL_IPL6)
-#define spl7() _spl(PSL_S|PSL_IPL7)
-
-/*
- * These should be used for:
- * 1) ensuring mutual exclusion (why use processor level?)
- * 2) allowing faster devices to take priority
- *
- * Note that on the Mac, most things are masked at spl1, almost
- * everything at spl2, and everything but the panic switch and
- * power at spl4.
- */
-#define splsoftclock() spl1() /* disallow softclock */
-#define splsoftnet() spl1() /* disallow network */
-#define spltty() spl1() /* disallow tty (softserial & ADB) */
-#define splbio() spl2() /* disallow block I/O */
-#define splnet() spl2() /* disallow network */
-#define splimp() spl2() /* mutual exclusion for memory allocation */
-#define splclock() spl2() /* disallow clock (and other) interrupts */
-#define splstatclock() spl2() /* ditto */
-#define splzs() spl4() /* disallow serial hw interrupts */
-#define splhigh() spl7() /* disallow everything */
-#define splsched() spl7() /* disallow scheduling */
-
-/* watch out for side effects */
-#define splx(s) ((s) & PSL_IPL ? _spl(s) : spl0())
-
-int spl0 __P((void));
-
-#endif /* _KERNEL && !_LOCORE */
-
-#endif /* ndef PSL_C */