Ignore:
File:
1 edited

Legend:

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

    r5930e3f r35a35651  
    4343#include <stdio.h>
    4444#include <sys/stat.h>
    45 #include <sys/statfs.h>
    4645#include <sys/types.h>
    4746#include <ipc/services.h>
     
    893892}
    894893
    895 int statfs(const char *path, struct statfs *statfs)
    896 {
    897         sysarg_t rc;
    898         sysarg_t rc_orig;
    899         aid_t req;
    900         size_t pa_size;
    901        
    902         char *pa = absolutize(path, &pa_size);
    903         if (!pa)
    904                 return ENOMEM;
    905         async_exch_t *exch = vfs_exchange_begin();
    906        
    907         req = async_send_0(exch, VFS_IN_STATFS, NULL);
    908         rc = async_data_write_start(exch, pa, pa_size);
    909         if (rc != EOK) {
    910                 vfs_exchange_end(exch);
    911                 free(pa);
    912                 async_wait_for(req, &rc_orig);
    913                 if (rc_orig == EOK)
    914                         return (int) rc;
    915                 else
    916                         return (int) rc_orig;
    917         }
    918         rc = async_data_read_start(exch, (void *) statfs, sizeof(struct statfs));
    919         if (rc != EOK) {
    920                 vfs_exchange_end(exch);
    921                 free(pa);
    922                 async_wait_for(req, &rc_orig);
    923                 if (rc_orig == EOK)
    924                         return (int) rc;
    925                 else
    926                         return (int) rc_orig;
    927         }
    928         vfs_exchange_end(exch);
    929         free(pa);
    930         async_wait_for(req, &rc);
    931         return rc;
    932 }
    933 
    934894/** @}
    935895 */
Note: See TracChangeset for help on using the changeset viewer.