Changeset 19a1800 in mainline for uspace/lib/usbvirt/src/callback.c


Ignore:
Timestamp:
2011-03-01T22:20:56Z (14 years ago)
Author:
Matej Klonfar <maklf@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e24e7b1
Parents:
976f546 (diff), ac8285d (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:

Merge with the current development

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbvirt/src/callback.c

    r976f546 r19a1800  
    2727 */
    2828
    29 /** @addtogroup libusbvirt usb
     29/** @addtogroup libusbvirt
    3030 * @{
    3131 */
     
    5454       
    5555        if (address != device->address) {
    56                 ipc_answer_0(iid, EADDRNOTAVAIL);
     56                async_answer_0(iid, EADDRNOTAVAIL);
    5757                return;
    5858        }
    5959       
    6060        if ((endpoint < 0) || (endpoint >= USB11_ENDPOINT_MAX)) {
    61                 ipc_answer_0(iid, EINVAL);
     61                async_answer_0(iid, EINVAL);
    6262                return;
    6363        }
    6464       
    6565        if (expected_len == 0) {
    66                 ipc_answer_0(iid, EINVAL);
     66                async_answer_0(iid, EINVAL);
    6767                return;
    6868        }
     
    7474               
    7575        if (rc != EOK) {
    76                 ipc_answer_0(iid, rc);
     76                async_answer_0(iid, rc);
    7777                return;
    7878        }
     
    8080        rc = device->transaction_setup(device, endpoint, buffer, len);
    8181       
    82         ipc_answer_0(iid, rc);
     82        async_answer_0(iid, rc);
    8383}
    8484
     
    9292       
    9393        if (address != device->address) {
    94                 ipc_answer_0(iid, EADDRNOTAVAIL);
     94                async_answer_0(iid, EADDRNOTAVAIL);
    9595                return;
    9696        }
    9797       
    9898        if ((endpoint < 0) || (endpoint >= USB11_ENDPOINT_MAX)) {
    99                 ipc_answer_0(iid, EINVAL);
     99                async_answer_0(iid, EINVAL);
    100100                return;
    101101        }
     
    111111                       
    112112                if (rc != EOK) {
    113                         ipc_answer_0(iid, rc);
     113                        async_answer_0(iid, rc);
    114114                        return;
    115115                }
     
    122122        }
    123123       
    124         ipc_answer_0(iid, rc);
     124        async_answer_0(iid, rc);
    125125}
    126126
     
    135135       
    136136        if (address != device->address) {
    137                 ipc_answer_0(iid, EADDRNOTAVAIL);
     137                async_answer_0(iid, EADDRNOTAVAIL);
    138138                return;
    139139        }
    140140       
    141141        if ((endpoint < 0) || (endpoint >= USB11_ENDPOINT_MAX)) {
    142                 ipc_answer_0(iid, EINVAL);
     142                async_answer_0(iid, EINVAL);
    143143                return;
    144144        }
     
    157157                ipc_callid_t callid;
    158158                if (!async_data_read_receive(&callid, &receive_len)) {
    159                         ipc_answer_0(iid, EINVAL);
     159                        async_answer_0(iid, EINVAL);
    160160                        return;
    161161                }
    162                 async_data_read_finalize(callid, buffer, receive_len);
    163         }
    164        
    165         ipc_answer_0(iid, rc);
     162                if (len > receive_len) {
     163                        len = receive_len;
     164                }
     165                async_data_read_finalize(callid, buffer, len);
     166        }
     167       
     168        async_answer_1(iid, rc, len);
    166169}
    167170
     
    171174{
    172175        if (device->name == NULL) {
    173                 ipc_answer_0(iid, ENOENT);
     176                async_answer_0(iid, ENOENT);
    174177        }
    175178       
     
    179182        size_t accepted_size;
    180183        if (!async_data_read_receive(&callid, &accepted_size)) {
    181                 ipc_answer_0(iid, EINVAL);
     184                async_answer_0(iid, EINVAL);
    182185                return;
    183186        }
     
    188191        async_data_read_finalize(callid, device->name, accepted_size);
    189192       
    190         ipc_answer_1(iid, EOK, accepted_size);
     193        async_answer_1(iid, EOK, accepted_size);
    191194}
    192195
     
    194197void device_callback_connection(usbvirt_device_t *device, ipc_callid_t iid, ipc_call_t *icall)
    195198{
    196         ipc_answer_0(iid, EOK);
     199        async_answer_0(iid, EOK);
    197200       
    198201        while (true) {
     
    203206                switch (IPC_GET_IMETHOD(call)) {
    204207                        case IPC_M_PHONE_HUNGUP:
    205                                 ipc_answer_0(callid, EOK);
     208                                async_answer_0(callid, EOK);
    206209                                return;
    207210                       
     
    223226                       
    224227                        default:
    225                                 ipc_answer_0(callid, EINVAL);
     228                                async_answer_0(callid, EINVAL);
    226229                                break;
    227230                }
Note: See TracChangeset for help on using the changeset viewer.