After further research, this commit[1][2] may explain what is going on.

> Remove SIGIO support.  Base tools do not implement it and ports relying
> on libusbhid, generally via SDL, shouldn't do it either since it's not
> portable.

If I understand correctly, I should take up this issue with the
developers of the affected ports to not rely on this non-portable
code. Many emulators rely on SDL. I incorrectly viewed this as a
regression with uhid(4). Instead, it is a design decision by OpenBSD to
break backward compatibility, in favor of more portable code.

$ cd /usr/src
$ cvs diff -rOPENBSD_6_1 -rHEAD sys/dev/usb/uhid.c
Index: sys/dev/usb/uhid.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uhid.c,v
retrieving revision 1.66.6.1
retrieving revision 1.68
diff -u -p -r1.66.6.1 -r1.68
--- sys/dev/usb/uhid.c  1 Aug 2017 21:55:02 -0000       1.66.6.1
+++ sys/dev/usb/uhid.c  20 Jul 2017 16:54:45 -0000      1.68
@@ -1,4 +1,4 @@
-/*     $OpenBSD: uhid.c,v 1.66.6.1 2017/08/01 21:55:02 bluhm Exp $ */
+/*     $OpenBSD: uhid.c,v 1.68 2017/07/20 16:54:45 mpi Exp $ */
 /*     $NetBSD: uhid.c,v 1.57 2003/03/11 16:44:00 augustss Exp $       */

 /*
 @@ -237,7 +237,7 @@ uhidclose(dev_t dev, int flag, int mode,
    DPRINTF(("uhidclose: sc=%p\n", sc));

    clfree(&sc->sc_q);
    -   free(sc->sc_obuf, M_USBDEV, 0);
    +   free(sc->sc_obuf, M_USBDEV, sc->sc_hdev.sc_osize);
        uhidev_close(&sc->sc_hdev);

        return (0);

Footnotes:
[1]  
http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/dev/usb/uhid.c?rev=1.68&content-type=text/x-cvsweb-markup
[2]  
http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/dev/usb/uhid.c.diff?r1=1.67&r2=1.68&f=h

-- 
Nam | PGP: 0x11B50169

Reply via email to