Changeset 6986418 in mainline for uspace/drv/usbkbd/main.c


Ignore:
Timestamp:
2011-01-14T12:20:54Z (13 years ago)
Author:
Lubos Slovak <lubos.slovak@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b2a6fcfe
Parents:
2b0db98
Message:

Descriptor parsing modified (fixed)

  • change usbkbd_parse_descriptors() not to parse class-specific descriptors as these are retrieved differently
  • dump functions moved to descdump.h/c
  • getting report descriptor in usbkbd/main.c
  • changed descriptor structures (hid.h) to reflect, that there is only one report descriptor
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/usbkbd/main.c

    r2b0db98 r6986418  
    107107 * Kbd functions
    108108 */
     109static int usbkbd_get_report_descriptor(usb_hid_dev_kbd_t *kbd_dev)
     110{
     111        // iterate over all configurations and interfaces
     112        // TODO: more configurations!!
     113        unsigned i;
     114        for (i = 0; i < kbd_dev->conf->config_descriptor.interface_count; ++i) {
     115                uint8_t type =
     116                    kbd_dev->conf->interfaces[i].hid_desc.report_desc_info.type;
     117                // TODO: endianness
     118                uint16_t length =
     119                    kbd_dev->conf->interfaces[i].hid_desc.report_desc_info.length;
     120
     121                // allocate space for the report descriptor
     122                kbd_dev->conf->interfaces[i].report_desc = (uint8_t *)malloc(length);
     123                // get the descriptor from the device
     124               
     125        }
     126}
     127
    109128static int usbkbd_process_descriptors(usb_hid_dev_kbd_t *kbd_dev)
    110129{
     
    147166        rc = usbkbd_parse_descriptors(descriptors, transferred, kbd_dev->conf);
    148167        free(descriptors);
    149        
    150         //usbkbd_print_config(kbd_dev->conf);
     168
     169        // get and report descriptors
     170        rc = usbkbd_get_report_descriptor(kbd_dev);
     171       
     172        usbkbd_print_config(kbd_dev->conf);
    151173       
    152174        return rc;
     
    223245static void usbkbd_poll_keyboard(usb_hid_dev_kbd_t *kbd_dev)
    224246{
     247        return;
     248       
    225249        int rc;
    226250        usb_handle_t handle;
Note: See TracChangeset for help on using the changeset viewer.