summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/apic_ipl.s
diff options
context:
space:
mode:
authorfsmp <fsmp@FreeBSD.org>1997-08-29 18:45:23 +0000
committerfsmp <fsmp@FreeBSD.org>1997-08-29 18:45:23 +0000
commit13fe237edc09b0964851ff000267e07797dff742 (patch)
tree720c917319b77866f197246120cfb757f4af2d6e /sys/i386/isa/apic_ipl.s
parentcf2671c51e058f96fb3318fe2053f587bc6eeebe (diff)
downloadFreeBSD-src-13fe237edc09b0964851ff000267e07797dff742.zip
FreeBSD-src-13fe237edc09b0964851ff000267e07797dff742.tar.gz
Support for the new FAST_HI algorithm, enabled.
Preliminary support for the INTR_SIMPLELOCK algorithm, disabled. Note that this code is NOT ready.
Diffstat (limited to 'sys/i386/isa/apic_ipl.s')
-rw-r--r--sys/i386/isa/apic_ipl.s18
1 files changed, 14 insertions, 4 deletions
diff --git a/sys/i386/isa/apic_ipl.s b/sys/i386/isa/apic_ipl.s
index ec9b94f..6df74c3 100644
--- a/sys/i386/isa/apic_ipl.s
+++ b/sys/i386/isa/apic_ipl.s
@@ -22,21 +22,21 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: apic_ipl.s,v 1.28 1997/08/23 05:15:12 smp Exp smp $
+ * $Id: apic_ipl.s,v 1.32 1997/08/29 18:39:36 smp Exp smp $
*/
-#if defined(SMP) && defined(REAL_AICPL)
+#ifdef REAL_AICPL
#define AICPL_LOCK SCPL_LOCK
#define AICPL_UNLOCK SCPL_UNLOCK
-#else /* SMP */
+#else /* REAL_AICPL */
#define AICPL_LOCK
#define AICPL_UNLOCK
-#endif /* SMP */
+#endif /* REAL_AICPL */
.data
ALIGN_DATA
@@ -45,6 +45,10 @@
.globl _cil
_cil: .long 0
+/* current INTerrupt level mask */
+ .globl _cml
+_cml: .long 0
+
/* this allows us to change the 8254 APIC pin# assignment */
.globl _Xintr8254
_Xintr8254:
@@ -107,6 +111,9 @@ ENTRY(splz)
*/
AICPL_LOCK
movl _cpl,%eax
+#ifdef INTR_SIMPLELOCK
+ orl _cml, %eax /* add cml to cpl */
+#endif
splz_next:
/*
* We don't need any locking here. (ipending & ~cpl) cannot grow
@@ -137,6 +144,9 @@ splz_unpend:
* frame. Also, there's a problem determining the unit number.
* We should change the interface so that the unit number is not
* determined at config time.
+ *
+ * The vec[] routines build the proper frame on the stack,
+ * then call one of _Xintr0 thru _Xintr23
*/
jmp *_vec(,%ecx,4)
OpenPOWER on IntegriCloud