Changeset d7c72db in mainline for uspace/lib


Ignore:
Timestamp:
2011-05-24T21:01:02Z (14 years ago)
Author:
Lubos Slovak <lubos.slovak@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a28b41d
Parents:
4e78236
Message:

A lot of changes to mkbd and HID interface.

  • mkbd Report parser initialization (getting report descriptor, parsing).
  • Getting report descriptor and its length from HID device added to HID interface (client and server stubs not implemented).
  • Fixed event type to uint8_t *.
  • Implemented these functions in generic HID driver.
  • Moved mapping from Consumer page usages to string descriptions moved to libusbhid.
  • Removed some temporary debug output.
Location:
uspace/lib
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/generic/dev_iface.c

    r4e78236 rd7c72db  
    6161remote_iface_t *get_remote_iface(int idx)
    6262{
    63         printf("get_remote_iface(): idx: %d\n", idx);
    6463        assert(is_valid_iface_idx(idx));
    65         printf("remote iface: %p\n", remote_ifaces.ifaces[idx]);
    66        
    67         printf("remote_usbhid_iface ptr: %p\n", &remote_usbhid_iface);
    6864       
    6965        return remote_ifaces.ifaces[idx];
     
    7369get_remote_method(remote_iface_t *rem_iface, sysarg_t iface_method_idx)
    7470{
    75         printf("remote iface: %p\n", rem_iface);
    76         printf("Method count: %d\n", rem_iface->method_count);
    7771        if (iface_method_idx >= rem_iface->method_count) {
    7872                return NULL;
  • uspace/lib/drv/generic/remote_usbhid.c

    r4e78236 rd7c72db  
    4343static void remote_usbhid_get_event_length(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    4444static void remote_usbhid_get_event(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
     45static void remote_usbhid_get_report_descriptor_length(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
     46static void remote_usbhid_get_report_descriptor(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    4547// static void remote_usbhid_(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
    4648
     
    4850static remote_iface_func_ptr_t remote_usbhid_iface_ops [] = {
    4951        remote_usbhid_get_event_length,
    50         remote_usbhid_get_event
     52        remote_usbhid_get_event,
     53        remote_usbhid_get_report_descriptor_length,
     54        remote_usbhid_get_report_descriptor
    5155};
    5256
     
    117121        int rc;
    118122
    119         int32_t *data = malloc(len);
     123        uint8_t *data = malloc(len);
    120124        if (data == NULL) {
    121125                async_answer_0(data_callid, ENOMEM);
     
    143147}
    144148
     149void remote_usbhid_get_report_descriptor(ddf_fun_t *fun, void *iface,
     150    ipc_callid_t callid, ipc_call_t *call)
     151{
     152        /** @todo Implement! */
     153}
     154
     155void remote_usbhid_get_report_descriptor_length(ddf_fun_t *fun, void *iface,
     156    ipc_callid_t callid, ipc_call_t *call)
     157{
     158        /** @todo Implement! */
     159}
     160
    145161/**
    146162 * @}
  • uspace/lib/drv/include/usbhid_iface.h

    r4e78236 rd7c72db  
    4545         * Parameters: none
    4646         * Answer:
    47          * - EOK (expected always as long as device support USB HID interface)
    48          * Parameters of the answer:
    49          * - number of items
     47         * - Size of one report in bytes.
    5048         */
    5149        IPC_M_USBHID_GET_EVENT_LENGTH,
     
    6361         * It is okay if the client requests less data. Extra data must
    6462         * be truncated by the driver.
     63         *
     64         * @todo Change this comment.
    6565         */
    66         IPC_M_USBHID_GET_EVENT
     66        IPC_M_USBHID_GET_EVENT,
     67       
     68        /** Get the size of the report descriptor from the HID device.
     69         *
     70         * Parameters:
     71         * - none
     72         * Answer:
     73         * - Size of one report in bytes.
     74         * -
     75         *
     76         * @todo Finish this comment
     77         */
     78        IPC_M_USBHID_GET_REPORT_DESCRIPTOR_LENGTH,
     79       
     80        /** Get the report descriptor from the HID device.
     81         *
     82         * Parameters:
     83         * - none
     84         * Answer:
     85         * - EOK - report descriptor returned.
     86         * -
     87         *
     88         * @todo Finish this comment
     89         */
     90        IPC_M_USBHID_GET_REPORT_DESCRIPTOR
    6791} usbhid_iface_funcs_t;
    6892
     
    7599         *
    76100         * @param[in] fun DDF function answering the request.
    77          * @return Number of events or error code.
     101         * @return Size of the event in bytes.
    78102         */
    79103        size_t (*get_event_length)(ddf_fun_t *fun);
     
    87111         * @return Error code.
    88112         */
    89         int (*get_event)(ddf_fun_t *fun, int32_t *buffer, size_t size,
     113        int (*get_event)(ddf_fun_t *fun, uint8_t *buffer, size_t size,
    90114            size_t *act_size, unsigned int flags);
     115       
     116        /** Get size of the report descriptor in bytes.
     117         *
     118         * @param[in] fun DDF function answering the request.
     119         * @return Size of the report descriptor in bytes.
     120         */
     121        size_t (*get_report_descriptor_length)(ddf_fun_t *fun);
     122       
     123        /** Get the report descriptor from the HID device.
     124         *
     125         * @param[in] fun DDF function answering the request.
     126         * @param[out] desc Buffer with the report descriptor.
     127         * @param[out] size Size of the report descriptors in bytes.
     128         * @return Error code.
     129         */
     130        int (*get_report_descriptor)(ddf_fun_t *fun, uint8_t *desc,
     131            size_t size, size_t *act_size);
    91132} usbhid_iface_t;
    92133
  • uspace/lib/usbhid/Makefile

    r4e78236 rd7c72db  
    4141        src/hidpath.c \
    4242        src/hidreport.c \
     43        src/consumer.c \
    4344        src/hidreq.c
    4445
  • uspace/lib/usbhid/include/usb/hid/iface.h

    r4e78236 rd7c72db  
    3939
    4040int usbhid_dev_get_event_length(int, size_t *);
    41 int usbhid_dev_get_event(int, int32_t *, size_t, size_t *,
     41int usbhid_dev_get_event(int, uint8_t *, size_t, size_t *,
    4242    unsigned int);
     43int usbhid_dev_get_report_descriptor_length(int, size_t *);
     44int usbhid_dev_get_report_descriptor(int, uint8_t *, size_t, size_t *);
    4345
    4446#endif
  • uspace/lib/usbhid/src/hidiface.c

    r4e78236 rd7c72db  
    7474 * @return Error code.
    7575 */
    76 int usbhid_dev_get_event(int dev_phone, int32_t *buf,
     76int usbhid_dev_get_event(int dev_phone, uint8_t *buf,
    7777    size_t size, size_t *actual_size, unsigned int flags)
    7878{
     
    9292
    9393        size_t buffer_size =  size;
    94         uint16_t *buffer = malloc(buffer_size);
     94        uint8_t *buffer = malloc(buffer_size);
    9595        if (buffer == NULL) {
    9696                return ENOMEM;
     
    145145}
    146146
     147
     148int usbhid_dev_get_report_descriptor_length(int dev_phone, size_t *size)
     149{
     150        /** @todo Implement! */
     151        return ENOTSUP;
     152}
     153
     154int usbhid_dev_get_report_descriptor(int dev_phone, uint8_t *buf, size_t size,
     155    size_t *actual_size)
     156{
     157        /** @todo Implement! */
     158        return ENOTSUP;
     159}
     160
    147161/**
    148162 * @}
Note: See TracChangeset for help on using the changeset viewer.