Move HID->bus constant conversion for HID report types out of ihidev
authorjcs <jcs@openbsd.org>
Sat, 25 Aug 2018 18:32:05 +0000 (18:32 +0000)
committerjcs <jcs@openbsd.org>
Sat, 25 Aug 2018 18:32:05 +0000 (18:32 +0000)
commit253b28d04b9c6635c4d2e127060005b0bf7c3471
treee363eddb757cc16040bc17b514ab4d9bf8694901
parent3e20374f4be7ebd67b4753acdce12a7678990bfb
Move HID->bus constant conversion for HID report types out of ihidev
into hidmt.

The HID code uses hid_feature, hid_input, and hid_output constants
to refer to report types internally that then need to be converted
to their bus-level counterparts before actually getting sent out (so
hid_feature becomes UHID_FEATURE_REPORT for USB,
I2C_HID_REPORT_TYPE_FEATURE for i2c).

This conversion was hard-coded in ihidev but ihidev_[gs]et_report
should assume the type passed is already an i2c-level define, not a
hid one.  This is how uhidev does it.

Add a conversion routine callback that any hidmt callers need to set
so that hidmt can convert hid constants to the bus-level versions.

Also add a similar conversion function to uhidev.

ok deraadt
sys/dev/hid/hidmt.c
sys/dev/hid/hidmtvar.h
sys/dev/i2c/ihidev.c
sys/dev/i2c/ihidev.h
sys/dev/i2c/imt.c
sys/dev/usb/uhidev.c
sys/dev/usb/uhidev.h