Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Nov 1996 06:35:35 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, sos@ravenock.cybercity.dk
Cc:        freebsd-current@freebsd.org, jkh@time.cdrom.com, nate@mt.sri.com, wangel@wgrobez1.remote.louisville.edu
Subject:   Re: your mail
Message-ID:  <199611131935.GAA13980@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> - 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

Bruce



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