Changeset c1c0184 in mainline for uspace/srv


Ignore:
Timestamp:
2010-12-26T17:18:36Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d3cce52
Parents:
7907cf9
Message:

Make session management explicit.

Location:
uspace/srv/vfs
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/vfs/vfs.h

    r7907cf9 rc1c0184  
    3434#define VFS_VFS_H_
    3535
     36#include <async.h>
    3637#include <ipc/ipc.h>
    3738#include <adt/list.h>
     
    5455        fs_handle_t fs_handle;
    5556        fibril_mutex_t phone_lock;
    56         sysarg_t phone;
     57        async_sess_t session;
    5758} fs_info_t;
    5859
  • uspace/srv/vfs/vfs_register.c

    r7907cf9 rc1c0184  
    111111void vfs_register(ipc_callid_t rid, ipc_call_t *request)
    112112{
     113        int phone;
     114       
    113115        dprintf("Processing VFS_REGISTER request received from %p.\n",
    114116            request->in_phone_hash);
     
    186188                return;
    187189        }
    188         fs_info->phone = IPC_GET_ARG5(call);
     190       
     191        phone = IPC_GET_ARG5(call);
     192        async_session_create(&fs_info->session, phone);
    189193        ipc_answer_0(callid, EOK);
    190194       
     
    200204                list_remove(&fs_info->fs_link);
    201205                fibril_mutex_unlock(&fs_head_lock);
    202                 ipc_hangup(fs_info->phone);
     206                async_session_destroy(&fs_info->session);
     207                ipc_hangup(phone);
    203208                free(fs_info);
    204209                ipc_answer_0(callid, EINVAL);
     
    214219                list_remove(&fs_info->fs_link);
    215220                fibril_mutex_unlock(&fs_head_lock);
    216                 ipc_hangup(fs_info->phone);
     221                async_session_destroy(&fs_info->session);
     222                ipc_hangup(phone);
    217223                free(fs_info);
    218224                ipc_answer_0(callid, EINVAL);
     
    270276                        fibril_mutex_unlock(&fs_head_lock);
    271277                        fibril_mutex_lock(&fs->phone_lock);
    272                         phone = async_transaction_begin(fs->phone);
     278                        phone = async_transaction_begin(&fs->session);
    273279                        fibril_mutex_unlock(&fs->phone_lock);
    274280
     
    296302                        fibril_mutex_unlock(&fs_head_lock);
    297303                        fibril_mutex_lock(&fs->phone_lock);
    298                         async_transaction_end(fs->phone, phone);
     304                        async_transaction_end(&fs->session, phone);
    299305                        fibril_mutex_unlock(&fs->phone_lock);
    300306                        return;
Note: See TracChangeset for help on using the changeset viewer.