Changeset ffa2c8ef in mainline for uspace/srv/devmap/devmap.c


Ignore:
Timestamp:
2011-01-29T11:36:08Z (13 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
46b881c
Parents:
64d2b10
Message:

do not intermix low-level IPC methods with async framework methods

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/devmap/devmap.c

    r64d2b10 rffa2c8ef  
    374374       
    375375        if (IPC_GET_IMETHOD(icall) != DEVMAP_DRIVER_REGISTER) {
    376                 ipc_answer_0(iid, EREFUSED);
     376                async_answer_0(iid, EREFUSED);
    377377                return NULL;
    378378        }
     
    381381            (devmap_driver_t *) malloc(sizeof(devmap_driver_t));
    382382        if (driver == NULL) {
    383                 ipc_answer_0(iid, ENOMEM);
     383                async_answer_0(iid, ENOMEM);
    384384                return NULL;
    385385        }
     
    392392        if (rc != EOK) {
    393393                free(driver);
    394                 ipc_answer_0(iid, rc);
     394                async_answer_0(iid, rc);
    395395                return NULL;
    396396        }
     
    405405                free(driver->name);
    406406                free(driver);
    407                 ipc_answer_0(callid, ENOTSUP);
    408                 ipc_answer_0(iid, ENOTSUP);
     407                async_answer_0(callid, ENOTSUP);
     408                async_answer_0(iid, ENOTSUP);
    409409                return NULL;
    410410        }
    411411       
    412412        driver->phone = IPC_GET_ARG5(call);
    413         ipc_answer_0(callid, EOK);
     413        async_answer_0(callid, EOK);
    414414       
    415415        /*
     
    438438        fibril_mutex_unlock(&drivers_list_mutex);
    439439       
    440         ipc_answer_0(iid, EOK);
     440        async_answer_0(iid, EOK);
    441441       
    442442        return driver;
     
    456456       
    457457        if (driver->phone != 0)
    458                 ipc_hangup(driver->phone);
     458                async_hangup(driver->phone);
    459459       
    460460        /* Remove it from list of drivers */
     
    491491{
    492492        if (driver == NULL) {
    493                 ipc_answer_0(iid, EREFUSED);
     493                async_answer_0(iid, EREFUSED);
    494494                return;
    495495        }
     
    499499            (devmap_device_t *) malloc(sizeof(devmap_device_t));
    500500        if (device == NULL) {
    501                 ipc_answer_0(iid, ENOMEM);
     501                async_answer_0(iid, ENOMEM);
    502502                return;
    503503        }
     
    512512        if (rc != EOK) {
    513513                free(device);
    514                 ipc_answer_0(iid, rc);
     514                async_answer_0(iid, rc);
    515515                return;
    516516        }
     
    520520                free(fqdn);
    521521                free(device);
    522                 ipc_answer_0(iid, EINVAL);
     522                async_answer_0(iid, EINVAL);
    523523                return;
    524524        }
     
    534534                free(device->name);
    535535                free(device);
    536                 ipc_answer_0(iid, ENOMEM);
     536                async_answer_0(iid, ENOMEM);
    537537                return;
    538538        }
     
    549549                free(device->name);
    550550                free(device);
    551                 ipc_answer_0(iid, EEXISTS);
     551                async_answer_0(iid, EEXISTS);
    552552                return;
    553553        }
     
    571571        fibril_mutex_unlock(&devices_list_mutex);
    572572       
    573         ipc_answer_1(iid, EOK, device->handle);
     573        async_answer_1(iid, EOK, device->handle);
    574574}
    575575
     
    602602        if ((dev == NULL) || (dev->driver == NULL) || (dev->driver->phone == 0)) {
    603603                fibril_mutex_unlock(&devices_list_mutex);
    604                 ipc_answer_0(callid, ENOENT);
     604                async_answer_0(callid, ENOENT);
    605605                return;
    606606        }
    607607       
    608608        if (dev->forward_interface == 0) {
    609                 ipc_forward_fast(callid, dev->driver->phone,
     609                async_forward_fast(callid, dev->driver->phone,
    610610                    dev->handle, 0, 0,
    611611                    IPC_FF_NONE);
    612612        } else {
    613                 ipc_forward_fast(callid, dev->driver->phone,
     613                async_forward_fast(callid, dev->driver->phone,
    614614                    dev->forward_interface, dev->handle, 0,
    615615                    IPC_FF_NONE);
     
    633633            DEVMAP_NAME_MAXLEN, 0, NULL);
    634634        if (rc != EOK) {
    635                 ipc_answer_0(iid, rc);
     635                async_answer_0(iid, rc);
    636636                return;
    637637        }
     
    641641        if (!devmap_fqdn_split(fqdn, &ns_name, &name)) {
    642642                free(fqdn);
    643                 ipc_answer_0(iid, EINVAL);
     643                async_answer_0(iid, EINVAL);
    644644                return;
    645645        }
     
    668668                }
    669669               
    670                 ipc_answer_0(iid, ENOENT);
     670                async_answer_0(iid, ENOENT);
    671671                free(ns_name);
    672672                free(name);
     
    675675        }
    676676       
    677         ipc_answer_1(iid, EOK, dev->handle);
     677        async_answer_1(iid, EOK, dev->handle);
    678678       
    679679        fibril_mutex_unlock(&devices_list_mutex);
     
    696696            DEVMAP_NAME_MAXLEN, 0, NULL);
    697697        if (rc != EOK) {
    698                 ipc_answer_0(iid, rc);
     698                async_answer_0(iid, rc);
    699699                return;
    700700        }
     
    721721                }
    722722               
    723                 ipc_answer_0(iid, ENOENT);
     723                async_answer_0(iid, ENOENT);
    724724                free(name);
    725725                fibril_mutex_unlock(&devices_list_mutex);
     
    727727        }
    728728       
    729         ipc_answer_1(iid, EOK, namespace->handle);
     729        async_answer_1(iid, EOK, namespace->handle);
    730730       
    731731        fibril_mutex_unlock(&devices_list_mutex);
     
    743743                    devmap_device_find_handle(IPC_GET_ARG1(*icall));
    744744                if (dev == NULL)
    745                         ipc_answer_1(iid, EOK, DEV_HANDLE_NONE);
     745                        async_answer_1(iid, EOK, DEV_HANDLE_NONE);
    746746                else
    747                         ipc_answer_1(iid, EOK, DEV_HANDLE_DEVICE);
     747                        async_answer_1(iid, EOK, DEV_HANDLE_DEVICE);
    748748        } else
    749                 ipc_answer_1(iid, EOK, DEV_HANDLE_NAMESPACE);
     749                async_answer_1(iid, EOK, DEV_HANDLE_NAMESPACE);
    750750       
    751751        fibril_mutex_unlock(&devices_list_mutex);
     
    755755{
    756756        fibril_mutex_lock(&devices_list_mutex);
    757         ipc_answer_1(iid, EOK, list_count(&namespaces_list));
     757        async_answer_1(iid, EOK, list_count(&namespaces_list));
    758758        fibril_mutex_unlock(&devices_list_mutex);
    759759}
     
    766766            devmap_namespace_find_handle(IPC_GET_ARG1(*icall));
    767767        if (namespace == NULL)
    768                 ipc_answer_0(iid, EEXISTS);
     768                async_answer_0(iid, EEXISTS);
    769769        else
    770                 ipc_answer_1(iid, EOK, namespace->refcnt);
     770                async_answer_1(iid, EOK, namespace->refcnt);
    771771       
    772772        fibril_mutex_unlock(&devices_list_mutex);
     
    778778        size_t size;
    779779        if (!async_data_read_receive(&callid, &size)) {
    780                 ipc_answer_0(callid, EREFUSED);
    781                 ipc_answer_0(iid, EREFUSED);
     780                async_answer_0(callid, EREFUSED);
     781                async_answer_0(iid, EREFUSED);
    782782                return;
    783783        }
    784784       
    785785        if ((size % sizeof(dev_desc_t)) != 0) {
    786                 ipc_answer_0(callid, EINVAL);
    787                 ipc_answer_0(iid, EINVAL);
     786                async_answer_0(callid, EINVAL);
     787                async_answer_0(iid, EINVAL);
    788788                return;
    789789        }
     
    794794        if (count != list_count(&namespaces_list)) {
    795795                fibril_mutex_unlock(&devices_list_mutex);
    796                 ipc_answer_0(callid, EOVERFLOW);
    797                 ipc_answer_0(iid, EOVERFLOW);
     796                async_answer_0(callid, EOVERFLOW);
     797                async_answer_0(iid, EOVERFLOW);
    798798                return;
    799799        }
     
    802802        if (desc == NULL) {
    803803                fibril_mutex_unlock(&devices_list_mutex);
    804                 ipc_answer_0(callid, ENOMEM);
    805                 ipc_answer_0(iid, ENOMEM);
     804                async_answer_0(callid, ENOMEM);
     805                async_answer_0(iid, ENOMEM);
    806806                return;
    807807        }
     
    824824        fibril_mutex_unlock(&devices_list_mutex);
    825825       
    826         ipc_answer_0(iid, retval);
     826        async_answer_0(iid, retval);
    827827}
    828828
     
    835835        size_t size;
    836836        if (!async_data_read_receive(&callid, &size)) {
    837                 ipc_answer_0(callid, EREFUSED);
    838                 ipc_answer_0(iid, EREFUSED);
     837                async_answer_0(callid, EREFUSED);
     838                async_answer_0(iid, EREFUSED);
    839839                return;
    840840        }
    841841       
    842842        if ((size % sizeof(dev_desc_t)) != 0) {
    843                 ipc_answer_0(callid, EINVAL);
    844                 ipc_answer_0(iid, EINVAL);
     843                async_answer_0(callid, EINVAL);
     844                async_answer_0(iid, EINVAL);
    845845                return;
    846846        }
     
    852852        if (namespace == NULL) {
    853853                fibril_mutex_unlock(&devices_list_mutex);
    854                 ipc_answer_0(callid, ENOENT);
    855                 ipc_answer_0(iid, ENOENT);
     854                async_answer_0(callid, ENOENT);
     855                async_answer_0(iid, ENOENT);
    856856                return;
    857857        }
     
    860860        if (count != namespace->refcnt) {
    861861                fibril_mutex_unlock(&devices_list_mutex);
    862                 ipc_answer_0(callid, EOVERFLOW);
    863                 ipc_answer_0(iid, EOVERFLOW);
     862                async_answer_0(callid, EOVERFLOW);
     863                async_answer_0(iid, EOVERFLOW);
    864864                return;
    865865        }
     
    868868        if (desc == NULL) {
    869869                fibril_mutex_unlock(&devices_list_mutex);
    870                 ipc_answer_0(callid, ENOMEM);
    871                 ipc_answer_0(iid, EREFUSED);
     870                async_answer_0(callid, ENOMEM);
     871                async_answer_0(iid, EREFUSED);
    872872                return;
    873873        }
     
    891891        fibril_mutex_unlock(&devices_list_mutex);
    892892       
    893         ipc_answer_0(iid, retval);
     893        async_answer_0(iid, retval);
    894894}
    895895
     
    910910        if (!fnd) {
    911911                fibril_mutex_unlock(&null_devices_mutex);
    912                 ipc_answer_0(iid, ENOMEM);
     912                async_answer_0(iid, ENOMEM);
    913913                return;
    914914        }
     
    920920        if (dev_name == NULL) {
    921921                fibril_mutex_unlock(&null_devices_mutex);
    922                 ipc_answer_0(iid, ENOMEM);
     922                async_answer_0(iid, ENOMEM);
    923923                return;
    924924        }
     
    928928        if (device == NULL) {
    929929                fibril_mutex_unlock(&null_devices_mutex);
    930                 ipc_answer_0(iid, ENOMEM);
     930                async_answer_0(iid, ENOMEM);
    931931                return;
    932932        }
     
    938938                fibril_mutex_lock(&devices_list_mutex);
    939939                fibril_mutex_unlock(&null_devices_mutex);
    940                 ipc_answer_0(iid, ENOMEM);
     940                async_answer_0(iid, ENOMEM);
    941941                return;
    942942        }
     
    960960        fibril_mutex_unlock(&null_devices_mutex);
    961961       
    962         ipc_answer_1(iid, EOK, (sysarg_t) i);
     962        async_answer_1(iid, EOK, (sysarg_t) i);
    963963}
    964964
     
    967967        sysarg_t i = IPC_GET_ARG1(*icall);
    968968        if (i >= NULL_DEVICES) {
    969                 ipc_answer_0(iid, ELIMIT);
     969                async_answer_0(iid, ELIMIT);
    970970                return;
    971971        }
     
    975975        if (null_devices[i] == NULL) {
    976976                fibril_mutex_unlock(&null_devices_mutex);
    977                 ipc_answer_0(iid, ENOENT);
     977                async_answer_0(iid, ENOENT);
    978978                return;
    979979        }
     
    986986       
    987987        fibril_mutex_unlock(&null_devices_mutex);
    988         ipc_answer_0(iid, EOK);
     988        async_answer_0(iid, EOK);
    989989}
    990990
     
    10121012{
    10131013        /* Accept connection */
    1014         ipc_answer_0(iid, EOK);
     1014        async_answer_0(iid, EOK);
    10151015       
    10161016        devmap_driver_t *driver = devmap_driver_register();
     
    10291029                case DEVMAP_DRIVER_UNREGISTER:
    10301030                        if (NULL == driver)
    1031                                 ipc_answer_0(callid, ENOENT);
     1031                                async_answer_0(callid, ENOENT);
    10321032                        else
    1033                                 ipc_answer_0(callid, EOK);
     1033                                async_answer_0(callid, EOK);
    10341034                        break;
    10351035                case DEVMAP_DEVICE_REGISTER:
     
    10481048                        break;
    10491049                default:
    1050                         ipc_answer_0(callid, ENOENT);
     1050                        async_answer_0(callid, ENOENT);
    10511051                }
    10521052        }
     
    10671067{
    10681068        /* Accept connection */
    1069         ipc_answer_0(iid, EOK);
     1069        async_answer_0(iid, EOK);
    10701070       
    10711071        bool cont = true;
     
    11061106                        break;
    11071107                default:
    1108                         ipc_answer_0(callid, ENOENT);
     1108                        async_answer_0(callid, ENOENT);
    11091109                }
    11101110        }
     
    11301130        default:
    11311131                /* No such interface */
    1132                 ipc_answer_0(iid, ENOENT);
     1132                async_answer_0(iid, ENOENT);
    11331133        }
    11341134}
Note: See TracChangeset for help on using the changeset viewer.