Changes in / [6681222:3750c06] in mainline


Ignore:
Location:
uspace
Files:
2 added
2 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/Makefile

    r6681222 r3750c06  
    8787        generic/ipc.c \
    8888        generic/async.c \
    89         generic/async_sess.c \
     89        generic/async_rel.c \
    9090        generic/loader.c \
    9191        generic/getopt.c \
  • uspace/lib/c/generic/async.c

    r6681222 r3750c06  
    749749                return ENOMEM;
    750750        }
    751 
    752         _async_sess_init();
    753751       
    754752        return 0;
  • uspace/lib/c/generic/libc.c

    r6681222 r3750c06  
    5050#include <ipc/ipc.h>
    5151#include <async.h>
     52#include <async_rel.h>
    5253#include <as.h>
    5354#include <loader/pcb.h>
     
    6566        __heap_init();
    6667        __async_init();
     68        (void) async_rel_init();
    6769        fibril_t *fibril = fibril_setup();
    6870        __tcb_set(fibril->tcb);
  • uspace/lib/c/include/async.h

    r6681222 r3750c06  
    3737
    3838#include <ipc/ipc.h>
    39 #include <async_sess.h>
    4039#include <fibril.h>
    4140#include <sys/time.h>
  • uspace/srv/vfs/vfs.h

    r6681222 r3750c06  
    3434#define VFS_VFS_H_
    3535
    36 #include <async.h>
    3736#include <ipc/ipc.h>
    3837#include <adt/list.h>
     
    5453        vfs_info_t vfs_info;
    5554        fs_handle_t fs_handle;
    56         async_sess_t session;
     55        fibril_mutex_t phone_lock;
     56        sysarg_t phone;
    5757} fs_info_t;
    5858
  • uspace/srv/vfs/vfs_register.c

    r6681222 r3750c06  
    3939#include <ipc/services.h>
    4040#include <async.h>
     41#include <async_rel.h>
    4142#include <fibril.h>
    4243#include <fibril_synch.h>
     
    110111void vfs_register(ipc_callid_t rid, ipc_call_t *request)
    111112{
    112         int phone;
    113        
    114113        dprintf("Processing VFS_REGISTER request received from %p.\n",
    115114            request->in_phone_hash);
     
    137136       
    138137        link_initialize(&fs_info->fs_link);
     138        fibril_mutex_initialize(&fs_info->phone_lock);
    139139        fs_info->vfs_info = *vfs_info;
    140140        free(vfs_info);
     
    186186                return;
    187187        }
    188        
    189         phone = IPC_GET_ARG5(call);
    190         async_session_create(&fs_info->session, phone);
     188        fs_info->phone = IPC_GET_ARG5(call);
    191189        ipc_answer_0(callid, EOK);
    192190       
     
    202200                list_remove(&fs_info->fs_link);
    203201                fibril_mutex_unlock(&fs_head_lock);
    204                 async_session_destroy(&fs_info->session);
    205                 ipc_hangup(phone);
     202                ipc_hangup(fs_info->phone);
    206203                free(fs_info);
    207204                ipc_answer_0(callid, EINVAL);
     
    217214                list_remove(&fs_info->fs_link);
    218215                fibril_mutex_unlock(&fs_head_lock);
    219                 async_session_destroy(&fs_info->session);
    220                 ipc_hangup(phone);
     216                ipc_hangup(fs_info->phone);
    221217                free(fs_info);
    222218                ipc_answer_0(callid, EINVAL);
     
    273269                if (fs->fs_handle == handle) {
    274270                        fibril_mutex_unlock(&fs_head_lock);
    275                         phone = async_exchange_begin(&fs->session);
     271                        fibril_mutex_lock(&fs->phone_lock);
     272                        phone = async_relation_create(fs->phone);
     273                        fibril_mutex_unlock(&fs->phone_lock);
    276274
    277275                        assert(phone > 0);
     
    297295                if (fs->fs_handle == handle) {
    298296                        fibril_mutex_unlock(&fs_head_lock);
    299                         async_exchange_end(&fs->session, phone);
     297                        fibril_mutex_lock(&fs->phone_lock);
     298                        async_relation_destroy(fs->phone, phone);
     299                        fibril_mutex_unlock(&fs->phone_lock);
    300300                        return;
    301301                }
Note: See TracChangeset for help on using the changeset viewer.