Changeset ba95e8f in mainline for uspace/lib


Ignore:
Timestamp:
2010-05-06T10:31:02Z (16 years ago)
Author:
Lenka Trochtova <trochtova.lenka@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/fix-logger-deadlock, topic/msim-upgrade, topic/simplify-dev-export
Children:
ca97cad
Parents:
bb864a0
Message:

fixed some bugs; now it is possible to read from serial port using character interface, this might be tested with the test_serial application

Location:
uspace/lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/generic/device/char.c

    rbb864a0 rba95e8f  
    4747        async_serialize_start();
    4848       
    49         printf("calling interface %d\n", DEV_IFACE_ID(CHAR_DEV_IFACE));
    5049        aid_t req = async_send_1(dev_phone, DEV_IFACE_ID(CHAR_DEV_IFACE), CHAR_READ_DEV, &answer);
    5150       
    52         printf("async_data_read_start \n");
    5351        int rc = async_data_read_start(dev_phone, buf, len);
    5452       
    55         printf("async_data_read_start, rc = %d\n", rc);
    5653        if (rc != EOK) {
    5754                ipcarg_t rc_orig;
     
    6663        }
    6764       
    68         printf("async_wait_for(req, &rc);\n", rc);
    6965        async_wait_for(req, &rc);
    70         printf("async_serialize_end();\n", rc);
    7166        async_serialize_end();
    7267       
     
    7570        }
    7671       
    77         printf("IPC_GET_ARG1(answer);\n", rc);
    7872        return IPC_GET_ARG1(answer);
    7973}
  • uspace/lib/libdrv/generic/remote_char.c

    rbb864a0 rba95e8f  
    5858{       
    5959        char_iface_t *char_iface = (char_iface_t *)iface;
     60        ipc_callid_t cid;
    6061       
    6162        size_t len;
    62         if (!async_data_read_receive(&callid, &len)) {
     63        if (!async_data_read_receive(&cid, &len)) {
    6364                // TODO handle protocol error
    6465                ipc_answer_0(callid, EINVAL);
     
    6768       
    6869        if (!char_iface->read) {
    69                 async_data_read_finalize(callid, NULL, 0);
     70                async_data_read_finalize(cid, NULL, 0);
    7071                ipc_answer_0(callid, ENOTSUP);
    7172                return;
     
    8081       
    8182        if (ret < 0) { // some error occured
    82                 async_data_read_finalize(callid, buf, 0);
     83                async_data_read_finalize(cid, buf, 0);
    8384                ipc_answer_0(callid, ret);
    8485                return;
    8586        }
    8687       
    87         printf("remote_char_read - async_data_read_finalize\n");
    88         async_data_read_finalize(callid, buf, ret);
    89         printf("remote_char_read - ipc_answer_0(callid, EOK);\n");
    90         ipc_answer_0(callid, EOK);     
     88        async_data_read_finalize(cid, buf, ret);
     89        ipc_answer_1(callid, EOK, ret);
    9190}
    9291
     
    117116                ipc_answer_0(callid, ret);
    118117        } else {
    119                 ipc_answer_0(callid, EOK);
     118                ipc_answer_1(callid, EOK, ret);
    120119        }
    121120}
Note: See TracChangeset for help on using the changeset viewer.