Pardon my impatience -- I am a newbie and I don't really know what should happen next (if anything?). I have skipped any introduction from my original email, imitating the communication style in this list -- straight to the point and because it was already long.
Although this is my first patch to OpenBSD I am familiar with inner workings of operating systems from few books[1] and commercial development of a driver for Windows (CE and NT) back in 2005. Thanks to the very clear organization of OpenBSD code it is a pleasure to study and figure things out. I have spent a week on massaging this problem, discovering corner cases, testing and ironing out regressions. I did my best to keep the patch at minimum while retaining correctness and clarity. Some changes like the move of t_keymap field (apart from the change of type) were done to re-align it with NetBSD. I was in doubt about locking, but tracing the path of ioctl handling I have not found anything preventing two CPU cores from executing wskbd ioctls in parallel on amd64 (and it is a NOLOCK syscall). In fact, now I wonder why wskbd_softc is not protected. Now a little bit on the motivation... My current day job does not involve system programming anymore and I miss it often. Also, with kids growing up I feel I can afford to contribute to important open projects with my experience and skills. I fiddle with OpenBSD for a long time and I admire how simple, stable and well-documented it is. In our age of pervasive electronic waste, robust software often makes a difference between a useful computer and garbage. I realize that changes in wscons related to custom keymaps and USB keyboards is something of little priority. Nevertheless, this is one annoying thing I randomly picked up and got to the bottom of it on my short staycation and it was a sufficiently low entry barrier. I hope it may be useful for other OpenBSD users, especially on laptop computers which may not have a USB keyboard connected yet at boot time. My longer-term aspiration is extending and maintaining hardware support, especially on ARM (I own a Pinebook Pro and few RPis). I would appreciate a bit of guidance or feedback. Best regards, Sergii Rudchenko [1] Of which the most prominent are: - "Modern Operating Systems (3rd edition)" by Andrew S. Tannenbaum - "The Design And Implementation Of The Freebsd Operating System" by Marshall Kirk McKusick and George V. Neville-Neil - "Linux Kernel Development (2nd edition)" by Robert Love P.S. Sorry for the git patch with a prefix, I came across https://www.openbsd.org/faq/faq5.html#Diff too late. As far I understand it should be fine with -p1