Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/vfs/vfs.c

    r27b76ca r8fd04ba9  
    6969 *
    7070 */
    71 async_exch_t *vfs_exchange_begin(void)
     71static async_exch_t *vfs_exchange_begin(void)
    7272{
    7373        fibril_mutex_lock(&vfs_mutex);
     
    8787 *
    8888 */
    89 void vfs_exchange_end(async_exch_t *exch)
     89static void vfs_exchange_end(async_exch_t *exch)
    9090{
    9191        async_exchange_end(exch);
     
    329329}
    330330
     331int open_node(fdi_node_t *node, int oflag)
     332{
     333        async_exch_t *exch = vfs_exchange_begin();
     334       
     335        ipc_call_t answer;
     336        aid_t req = async_send_4(exch, VFS_IN_OPEN_NODE, node->fs_handle,
     337            node->devmap_handle, node->index, oflag, &answer);
     338       
     339        vfs_exchange_end(exch);
     340
     341        sysarg_t rc;
     342        async_wait_for(req, &rc);
     343       
     344        if (rc != EOK)
     345                return (int) rc;
     346       
     347        return (int) IPC_GET_ARG1(answer);
     348}
     349
    331350int close(int fildes)
    332351{
     
    800819}
    801820
     821int fd_node(int fildes, fdi_node_t *node)
     822{
     823        struct stat stat;
     824        int rc = fstat(fildes, &stat);
     825       
     826        if (rc == EOK) {
     827                node->fs_handle = stat.fs_handle;
     828                node->devmap_handle = stat.devmap_handle;
     829                node->index = stat.index;
     830        }
     831       
     832        return rc;
     833}
     834
    802835int dup2(int oldfd, int newfd)
    803836{
     
    815848}
    816849
    817 int fd_wait(void)
    818 {
    819         async_exch_t *exch = vfs_exchange_begin();
    820        
    821         sysarg_t ret;
    822         sysarg_t rc = async_req_0_1(exch, VFS_IN_WAIT_HANDLE, &ret);
    823        
    824         vfs_exchange_end(exch);
    825        
    826         if (rc == EOK)
    827                 return (int) ret;
    828        
    829         return (int) rc;
    830 }
    831 
    832850/** @}
    833851 */
Note: See TracChangeset for help on using the changeset viewer.