Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/usb/input/uhid.c
Show First 20 Lines • Show All 445 Lines • ▼ Show 20 Lines | uhid_get_report(struct uhid_softc *sc, uint8_t type, | ||||
uint8_t id, void *kern_data, void *user_data, | uint8_t id, void *kern_data, void *user_data, | ||||
uint16_t len) | uint16_t len) | ||||
{ | { | ||||
int err; | int err; | ||||
uint8_t free_data = 0; | uint8_t free_data = 0; | ||||
if (kern_data == NULL) { | if (kern_data == NULL) { | ||||
kern_data = malloc(len, M_USBDEV, M_WAITOK); | kern_data = malloc(len, M_USBDEV, M_WAITOK); | ||||
if (kern_data == NULL) { | |||||
err = ENOMEM; | |||||
goto done; | |||||
} | |||||
free_data = 1; | free_data = 1; | ||||
} | } | ||||
err = usbd_req_get_report(sc->sc_udev, NULL, kern_data, | err = usbd_req_get_report(sc->sc_udev, NULL, kern_data, | ||||
len, sc->sc_iface_index, type, id); | len, sc->sc_iface_index, type, id); | ||||
if (err) { | if (err) { | ||||
err = ENXIO; | err = ENXIO; | ||||
goto done; | goto done; | ||||
} | } | ||||
Show All 16 Lines | uhid_set_report(struct uhid_softc *sc, uint8_t type, | ||||
uint8_t id, void *kern_data, void *user_data, | uint8_t id, void *kern_data, void *user_data, | ||||
uint16_t len) | uint16_t len) | ||||
{ | { | ||||
int err; | int err; | ||||
uint8_t free_data = 0; | uint8_t free_data = 0; | ||||
if (kern_data == NULL) { | if (kern_data == NULL) { | ||||
kern_data = malloc(len, M_USBDEV, M_WAITOK); | kern_data = malloc(len, M_USBDEV, M_WAITOK); | ||||
if (kern_data == NULL) { | |||||
err = ENOMEM; | |||||
goto done; | |||||
} | |||||
free_data = 1; | free_data = 1; | ||||
err = copyin(user_data, kern_data, len); | err = copyin(user_data, kern_data, len); | ||||
if (err) { | if (err) { | ||||
goto done; | goto done; | ||||
} | } | ||||
} | } | ||||
err = usbd_req_set_report(sc->sc_udev, NULL, kern_data, | err = usbd_req_set_report(sc->sc_udev, NULL, kern_data, | ||||
len, sc->sc_iface_index, type, id); | len, sc->sc_iface_index, type, id); | ||||
▲ Show 20 Lines • Show All 404 Lines • Show Last 20 Lines |