Changeset b74959bd in mainline for uspace/srv/vfs/vfs_register.c


Ignore:
Timestamp:
2007-11-20T21:33:32Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8498915
Parents:
3209923
Message:

Modify ipc_answer_*() to make use of all six syscall arguments. The recommended
means of answering calls is via the ipc_answer_m() macros (where m denotes the
number of return arguments) that automatically decide between the fast register
version or the slow universal version of ipc_answer().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/vfs/vfs_register.c

    r3209923 rb74959bd  
    156156         * VFS info structure from the client FS.
    157157         */
    158         if (!ipc_data_receive(&callid, &call, NULL, &size)) {
     158        if (!ipc_data_receive(&callid, NULL, &size)) {
    159159                /*
    160160                 * The client doesn't obey the same protocol as we do.
    161161                 */
    162162                dprintf("Receiving of VFS info failed.\n");
    163                 ipc_answer_fast_0(callid, EINVAL);
    164                 ipc_answer_fast_0(rid, EINVAL);
     163                ipc_answer_0(callid, EINVAL);
     164                ipc_answer_0(rid, EINVAL);
    165165                return;
    166166        }
     
    178178                 */
    179179                dprintf("Received VFS info has bad size.\n");
    180                 ipc_answer_fast_0(callid, EINVAL);
    181                 ipc_answer_fast_0(rid, EINVAL);
     180                ipc_answer_0(callid, EINVAL);
     181                ipc_answer_0(rid, EINVAL);
    182182                return;
    183183        }
     
    190190        if (!fs_info) {
    191191                dprintf("Could not allocate memory for FS info.\n");
    192                 ipc_answer_fast_0(callid, ENOMEM);
    193                 ipc_answer_fast_0(rid, ENOMEM);
     192                ipc_answer_0(callid, ENOMEM);
     193                ipc_answer_0(rid, ENOMEM);
    194194                return;
    195195        }
    196196        link_initialize(&fs_info->fs_link);
    197197               
    198         rc = ipc_data_deliver(callid, &call, &fs_info->vfs_info, size);
     198        rc = ipc_data_deliver(callid, &fs_info->vfs_info, size);
    199199        if (rc != EOK) {
    200200                dprintf("Failed to deliver the VFS info into our AS, rc=%d.\n",
    201201                    rc);
    202202                free(fs_info);
    203                 ipc_answer_fast_0(callid, rc);
    204                 ipc_answer_fast_0(rid, rc);
     203                ipc_answer_0(callid, rc);
     204                ipc_answer_0(rid, rc);
    205205                return;
    206206        }
     
    210210        if (!vfs_info_sane(&fs_info->vfs_info)) {
    211211                free(fs_info);
    212                 ipc_answer_fast_0(callid, EINVAL);
    213                 ipc_answer_fast_0(rid, EINVAL);
     212                ipc_answer_0(callid, EINVAL);
     213                ipc_answer_0(rid, EINVAL);
    214214                return;
    215215        }
     
    227227                futex_up(&fs_head_futex);
    228228                free(fs_info);
    229                 ipc_answer_fast_0(callid, EEXISTS);
    230                 ipc_answer_fast_0(rid, EEXISTS);
     229                ipc_answer_0(callid, EEXISTS);
     230                ipc_answer_0(rid, EEXISTS);
    231231                return;
    232232        }
     
    249249                futex_up(&fs_head_futex);
    250250                free(fs_info);
    251                 ipc_answer_fast_0(callid, EINVAL);
    252                 ipc_answer_fast_0(rid, EINVAL);
     251                ipc_answer_0(callid, EINVAL);
     252                ipc_answer_0(rid, EINVAL);
    253253                return;
    254254        }
    255255        fs_info->phone = IPC_GET_ARG3(call);
    256         ipc_answer_fast_0(callid, EOK);
     256        ipc_answer_0(callid, EOK);
    257257
    258258        dprintf("Callback connection to FS created.\n");
     
    268268                ipc_hangup(fs_info->phone);
    269269                free(fs_info);
    270                 ipc_answer_fast_0(callid, EINVAL);
    271                 ipc_answer_fast_0(rid, EINVAL);
     270                ipc_answer_0(callid, EINVAL);
     271                ipc_answer_0(rid, EINVAL);
    272272                return;
    273273        }
     
    283283                ipc_hangup(fs_info->phone);
    284284                free(fs_info);
    285                 ipc_answer_fast_0(callid, EINVAL);
    286                 ipc_answer_fast_0(rid, EINVAL);
     285                ipc_answer_0(callid, EINVAL);
     286                ipc_answer_0(rid, EINVAL);
    287287                return;
    288288        }
     
    291291         * Commit to read-only sharing the PLB with the client.
    292292         */
    293         ipc_answer_fast(callid, EOK, (ipcarg_t) plb,
     293        ipc_answer_2(callid, EOK, (ipcarg_t) plb,
    294294            (ipcarg_t) (AS_AREA_READ | AS_AREA_CACHEABLE));     
    295295
     
    302302         */
    303303        fs_info->fs_handle = (int) atomic_postinc(&fs_handle_next);
    304         ipc_answer_fast_1(rid, EOK, (ipcarg_t) fs_info->fs_handle);
     304        ipc_answer_1(rid, EOK, (ipcarg_t) fs_info->fs_handle);
    305305       
    306306        futex_up(&fs_head_futex);
Note: See TracChangeset for help on using the changeset viewer.