diff options
| author | Maksim Yevmenkin <emax@FreeBSD.org> | 2005-07-13 23:58:57 +0000 |
|---|---|---|
| committer | Maksim Yevmenkin <emax@FreeBSD.org> | 2005-07-13 23:58:57 +0000 |
| commit | 04551c6ce5981d985b31476094aa79186a874554 (patch) | |
| tree | 6d2a37162c3c680337538d594955c3a7c0e843d4 /sys/dev/kbd | |
| parent | 2eb9396fb79114c453c19da79469d32ce57b5b47 (diff) | |
Notes
Diffstat (limited to 'sys/dev/kbd')
| -rw-r--r-- | sys/dev/kbd/kbd.c | 20 | ||||
| -rw-r--r-- | sys/dev/kbd/kbdreg.h | 1 |
2 files changed, 18 insertions, 3 deletions
diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c index da6ee390fcc5..978644139277 100644 --- a/sys/dev/kbd/kbd.c +++ b/sys/dev/kbd/kbd.c @@ -282,13 +282,19 @@ keyboard_switch_t * exclusive use. */ -/* find the keyboard specified by a driver name and a unit number */ +/* + * find the keyboard specified by a driver name and a unit number + * starting at given index + */ int -kbd_find_keyboard(char *driver, int unit) +kbd_find_keyboard2(char *driver, int unit, int index) { int i; - for (i = 0; i < keyboards; ++i) { + if ((index < 0) || (index >= keyboards)) + return (-1); + + for (i = index; i < keyboards; ++i) { if (keyboard[i] == NULL) continue; if (!KBD_IS_VALID(keyboard[i])) @@ -299,9 +305,17 @@ kbd_find_keyboard(char *driver, int unit) continue; return (i); } + return (-1); } +/* find the keyboard specified by a driver name and a unit number */ +int +kbd_find_keyboard(char *driver, int unit) +{ + return (kbd_find_keyboard2(driver, unit, 0)); +} + /* allocate a keyboard */ int kbd_allocate(char *driver, int unit, void *id, kbd_callback_func_t *func, diff --git a/sys/dev/kbd/kbdreg.h b/sys/dev/kbd/kbdreg.h index 78a5af420881..184c607a015a 100644 --- a/sys/dev/kbd/kbdreg.h +++ b/sys/dev/kbd/kbdreg.h @@ -196,6 +196,7 @@ int kbd_release(keyboard_t *kbd, void *id); int kbd_change_callback(keyboard_t *kbd, void *id, kbd_callback_func_t *func, void *arg); int kbd_find_keyboard(char *driver, int unit); +int kbd_find_keyboard2(char *driver, int unit, int index); keyboard_t *kbd_get_keyboard(int index); /* a back door for the console driver to tickle the keyboard driver XXX */ |
