Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Mar 1997 09:09:01 +0100
From:      j@uriah.heep.sax.de (J Wunsch)
To:        chuckr@Glue.umd.edu (Chuck Robey)
Cc:        FreeBSD-Hackers@FreeBSD.org (FreeBSD-Hackers)
Subject:   Re: Intel inteerrupts?
Message-ID:  <19970318090901.IU02180@uriah.heep.sax.de>
In-Reply-To: <Pine.OSF.3.95q.970317221349.3587A-100000@packet.eng.umd.edu>; from Chuck Robey on Mar 17, 1997 22:17:40 -0500
References:  <Pine.OSF.3.95q.970317221349.3587A-100000@packet.eng.umd.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
As Chuck Robey wrote:

> Does anyone know (for certain) what the action is regarding the interrupt
> enable flag, when a software INT is invoked for the Intel architecture?
> Are interrupts disabled, enabled, or what?

External (hardware) interrupts on the INT pin are disabled.  External
interrupts on the NMI pins are still not masked, nor are any kind of
traps.  The INT instruction is poorly named, and should better have
called TRAP in order to avoid the confusion.  It does by no way
`interrupt' something, it's just a special kind of a CALL instruction
with a short (and rather `symbolic') target address.  CPUs used to
have such a mechanism all the time, see the RST (restart) instructions
in the i8080/Z80.

All other kinds of traps also remain enabled.  You can get a SIGSEGV
even if the kernel has external interrupts totally disabled. ;-)

> If you have an answer, and IF you know somewhere I can read to verify it,
> I'd really appreciate your posting it.  I've had several folks give me
> their (conflicting) opinions, and now I'm looking for confirmation.

Sorry, my only written reference to this is a German programmer's ref
for the 80286.

You can for sure simply prove this.  Just single-step through the
disable_intr() part of a sio interrupt service in FreeBSD using DDB.
This clearly shows that traps (breakpoint traps in this case) are
still working.

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970318090901.IU02180>