Changeset 7fc092a in mainline for uspace/lib/usb/src


Ignore:
Timestamp:
2011-01-27T22:09:29Z (15 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
db7ed07
Parents:
9ee87f6 (diff), 6265a2b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Changes from development branch

Location:
uspace/lib/usb/src
Files:
3 added
14 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usb/src/addrkeep.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/class.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/debug.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/drvpsync.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/hcdhubd.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/hcdhubd_private.h

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/hcdrv.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/hidparser.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
     
    4040 * @param parser Opaque HID report parser structure.
    4141 * @param data Data describing the report.
    42  * @param size Size of the descriptor in bytes.
    4342 * @return Error code.
    4443 */
     
    5554 * @param parser Opaque HID report parser structure.
    5655 * @param data Data for the report.
    57  * @param size Size of the data in bytes.
    5856 * @param callbacks Callbacks for report actions.
    5957 * @param arg Custom argument (passed through to the callbacks).
     
    6664        int i;
    6765       
    68         // TODO: parse report
     66        /* main parsing loop */
     67        while(0){
     68        }
    6969       
    70         uint16_t keys[6];
     70       
     71        uint8_t keys[6];
    7172       
    7273        for (i = 0; i < 6; ++i) {
     
    7475        }
    7576       
    76         callbacks->keyboard(keys, 6, arg);
    77        
     77        callbacks->keyboard(keys, 6, 0, arg);
     78
     79        return EOK;
     80}
     81
     82/** Free the HID report parser structure
     83 *
     84 * @param parser Opaque HID report parser structure
     85 * @return Error code
     86 */
     87int usb_hid_free_report_parser(usb_hid_report_parser_t *parser)
     88{
     89
    7890        return EOK;
    7991}
     
    8193
    8294/**
     95 * Parse input report.
     96 *
     97 * @param data Data for report
     98 * @param size Size of report
     99 * @param callbacks Callbacks for report actions
     100 * @param arg Custom arguments
     101 *
     102 * @return Error code
     103 */
     104int usb_hid_boot_keyboard_input_report(const uint8_t *data, size_t size,
     105        const usb_hid_report_in_callbacks_t *callbacks, void *arg)
     106{
     107        int i;
     108        usb_hid_report_item_t item;
     109
     110        /* fill item due to the boot protocol report descriptor */
     111        // modifier keys are in the first byte
     112        uint8_t modifiers = data[0];
     113
     114        item.offset = 2; /* second byte is reserved */
     115        item.size = 8;
     116        item.count = 6;
     117        item.usage_min = 0;
     118        item.usage_max = 255;
     119        item.logical_min = 0;
     120        item.logical_max = 255;
     121
     122        if(size != 8){
     123                return -1;
     124        }
     125
     126        uint8_t keys[6];
     127        for(i=item.offset; i<item.count; i++) {
     128                keys[i-2] = data[i];
     129        }
     130
     131        callbacks->keyboard(keys, 6, modifiers, arg);
     132        return EOK;
     133}
     134
     135/**
     136 * Makes output report for keyboard boot protocol
     137 *
     138 * @param leds
     139 * @param output Output report data buffer
     140 * @param size Size of the output buffer
     141 * @return Error code
     142 */
     143int usb_hid_boot_keyboard_output_report(uint8_t leds, uint8_t *data, size_t size)
     144{
     145        if(size != 1){
     146                return -1;
     147        }
     148
     149        /* used only first five bits, others are only padding*/
     150        *data = leds;
     151        return EOK;
     152}
     153
     154/**
    83155 * @}
    84156 */
  • uspace/lib/usb/src/localdrv.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/recognise.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
     
    3939#include <errno.h>
    4040
     41/** Callback for getting host controller handle.
     42 *
     43 * @param dev Device in question.
     44 * @param[out] handle Devman handle of the host controller.
     45 * @return Error code.
     46 */
    4147static int usb_iface_get_hc_handle(device_t *dev, devman_handle_t *handle)
    4248{
     
    203209                uint8_t cur_descr_len = current_descriptor[0];
    204210                uint8_t cur_descr_type = current_descriptor[1];
     211
     212                if (cur_descr_len == 0) {
     213                        return ENOENT;
     214                }
    205215               
    206216                position += cur_descr_len;
     
    233243 * @param matches Match ids list to add matches to.
    234244 * @param address USB address of the attached device.
     245 * @param config_count Number of configurations the device has.
    235246 * @return Error code.
    236247 */
     
    338349/** Probe for device kind and register it in devman.
    339350 *
    340  * @param hc Open phone to the host controller.
    341  * @param parent Parent device.
    342  * @param address Address of the (unknown) attached device.
     351 * @param[in] hc Open phone to the host controller.
     352 * @param[in] parent Parent device.
     353 * @param[in] address Address of the (unknown) attached device.
     354 * @param[out] child_handle Handle of the child device.
    343355 * @return Error code.
    344356 */
     
    346358    usb_address_t address, devman_handle_t *child_handle)
    347359{
     360        static size_t device_name_index = 0;
     361
    348362        device_t *child = NULL;
    349363        char *child_name = NULL;
     
    357371
    358372        /*
    359          * TODO: some better child naming
    360          */
    361         rc = asprintf(&child_name, "usb%p", child);
     373         * TODO: Once the device driver framework support persistent
     374         * naming etc., something more descriptive could be created.
     375         */
     376        rc = asprintf(&child_name, "usbdev%02zu", device_name_index);
    362377        if (rc < 0) {
    363378                goto failure;
     
    381396        }
    382397       
     398        device_name_index++;
     399
    383400        return EOK;
    384401
  • uspace/lib/usb/src/remotedrv.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/usb.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/usbdrv.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
  • uspace/lib/usb/src/usbdrvreq.c

    r9ee87f6 r7fc092a  
    2727 */
    2828
    29 /** @addtogroup libusb usb
     29/** @addtogroup libusb
    3030 * @{
    3131 */
     
    6060#define PREPARE_SETUP_PACKET(name, p_direction, p_type, p_recipient, \
    6161    p_request, p_value, p_index, p_length) \
    62         usb_device_request_setup_packet_t setup_packet = { \
     62        usb_device_request_setup_packet_t name = { \
    6363                .request_type = \
    6464                        ((p_direction) == USB_DIRECTION_IN ? 128 : 0) \
     
    188188 * @param[in] phone Open phone to HC driver.
    189189 * @param[in] old_address Current address.
    190  * @param[in] address Address to be set.
     190 * @param[in] new_address Address to be set.
    191191 * @return Error code.
    192192 */
Note: See TracChangeset for help on using the changeset viewer.