From owner-freebsd-current Wed Nov 13 13:02:58 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id NAA15946 for current-outgoing; Wed, 13 Nov 1996 13:02:58 -0800 (PST) Received: from ravenock.cybercity.dk (disn60.cybercity.dk [194.16.57.60]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id NAA15937 for ; Wed, 13 Nov 1996 13:02:43 -0800 (PST) Received: (from sos@localhost) by ravenock.cybercity.dk (8.8.2/8.7.3) id WAA09059; Wed, 13 Nov 1996 22:03:10 +0100 (MET) Message-Id: <199611132103.WAA09059@ravenock.cybercity.dk> Subject: Re: your mail To: bde@zeta.org.au (Bruce Evans) Date: Wed, 13 Nov 1996 22:03:09 +0100 (MET) From: "Soren Schmidt" Cc: bde@zeta.org.au, freebsd-current@freebsd.org, jkh@time.cdrom.com, nate@mt.sri.com, wangel@wgrobez1.remote.louisville.edu In-Reply-To: <199611131935.GAA13980@godzilla.zeta.org.au> from "Bruce Evans" at Nov 14, 96 06:35:35 am From: sos@freebsd.org Reply-to: sos@freebsd.org X-Mailer: ELM [version 2.4 PL25 ME8b] MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk In reply to Bruce Evans who wrote: > > > >> - check for psm interrupt and don't poll keyboard if one is pending OR > > > >which bits to poll for that ??, and its difficult to know if a keyboard > >int has been lost already, so who's data is it we're reading... > > The psm bit in ipending. We already check the KB_BUF_FULL bit, so there > should be no races: an IRQ should have occured since there is some data, > but we haven't processed it because of the spltty(). I hope that IRQs > are serialized so that ones for the keyboard and the psm don't happen > concurrently. Then ipending gives lots of information: > > ipending & kbd_IRQ && !(ipending & psm_IRQ) => scancode for keyboard > !(ipending & kbd_IRQ) && ipending & psm_IRQ => scancode for psm > ipending & kbd_IRQ && ipending & psm_IRQ => can't happen, we hope > !(ipending & kbd_IRQ) && !(ipending & psm_IRQ) => oops, lost kbd IRQ Or lost psm IRQ :( OK, I'll put code in for this and check the results, that might bring some elight over what happens... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Søren Schmidt (sos@FreeBSD.org) FreeBSD Core Team Even more code to hack -- will it ever end ..