Subject: Re: should cngetc block?
To: None <eeh@netbsd.org, kin@neoscale.com>
From: None <eeh@netbsd.org>
List: tech-kern
Date: 02/06/2002 05:36:53
| > If you want to change that interface so that cngetc() does not
| > block, you need to put together a proposal explaining what you
| > want to do, how you want to do it, and why it's needed.
|
| My proposal is this:
|
| Objective:
| * To provide a way to poll for keyboard input in the interface
|   "struct consdev".  However, only the "com" driver will support
|   this.

Since the kernel has worked just fine without this functionality
for a long time it would help your position if you explained why
it's needed and why it's needed in the cvs repository.

| Changes overview:
| * Overload cn_pollc in "struct consdev" to enable non-blocking
|   cn_getc.  For example, cn_pollc(dev, 0xa000) makes cn_getc
|   non-blocking, while cn_pollc(dev, 0xb000) makes cn_getc
|   blocking

If you want to make this change to an existing interface it 
must be backwards compatible.  Since the current use of
cncnpollc() enables or disables interrupts, that functionality
needs to be maintained.  It looks like the flags you have
chosen will conflict with this.

Eduardo