diff options
author | Kyle Evans <kevans@FreeBSD.org> | 2019-12-16 04:52:06 +0000 |
---|---|---|
committer | Kyle Evans <kevans@FreeBSD.org> | 2019-12-16 04:52:06 +0000 |
commit | 61a72158bb8f85456dd00ebf24c1008ef7313fa5 (patch) | |
tree | 99d1ad7baed77141a5e087afb5e8c5c00d1f1625 /sys/dev/kbd | |
parent | 21d166316ae34625f3f3a0aae247e2d96eba9a16 (diff) | |
download | src-61a72158bb8f85456dd00ebf24c1008ef7313fa5.tar.gz src-61a72158bb8f85456dd00ebf24c1008ef7313fa5.zip |
kbd: patch linker set methods, too
This is needed after r355796. Some double-registration of kbd drivers needs
to be sorted out, then this sysinit will simply add these drivers into the
normal list and kill off any other bits in the driver that are aware of the
linker set, for simplicity.
Notes
Notes:
svn path=/head/; revision=355799
Diffstat (limited to 'sys/dev/kbd')
-rw-r--r-- | sys/dev/kbd/kbd.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c index 1d2f13ab82cf..5e4731bb60e0 100644 --- a/sys/dev/kbd/kbd.c +++ b/sys/dev/kbd/kbd.c @@ -1506,3 +1506,20 @@ kbd_ev_event(keyboard_t *kbd, uint16_t type, uint16_t code, int32_t value) kbdd_ioctl(kbd, KDSETREPEAT, (caddr_t)delay); } } + +static void +kbd_drv_init(void) +{ + const keyboard_driver_t **list; + const keyboard_driver_t *p; + + SET_FOREACH(list, kbddriver_set) { + p = *list; + if (p->kbdsw->get_fkeystr == NULL) + p->kbdsw->get_fkeystr = genkbd_get_fkeystr; + if (p->kbdsw->diag == NULL) + p->kbdsw->diag = genkbd_diag; + } +} + +SYSINIT(kbd_drv_init, SI_SUB_DRIVERS, SI_ORDER_FIRST, kbd_drv_init, NULL); |