Changeset 9dc6083 in mainline for uspace/lib/c/generic/vfs/vfs.c
- Timestamp:
- 2013-07-06T15:53:01Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 11baebb
- Parents:
- 66366470
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/vfs/vfs.c
r66366470 r9dc6083 43 43 #include <stdio.h> 44 44 #include <sys/stat.h> 45 #include <sys/statfs.h> 45 46 #include <sys/types.h> 46 47 #include <ipc/services.h> … … 892 893 } 893 894 894 int statfs(const char *path, struct statfs *buf) 895 { 896 sysarg_t rc; 897 //aid_t req; 898 899 if ( NULL == buf ) 900 return 1; 901 902 sysarg_t value; 903 async_exch_t *exch = vfs_exchange_begin(); 904 rc = async_req_0_1(exch, VFS_IN_STATFS, &value); 905 if (rc != EOK) 906 goto exit; 907 908 buf->f_bsize = value; 909 exit: 910 vfs_exchange_end(exch); 895 #include <stdio.h> 896 int statfs(const char *path, struct statfs *statfs) 897 { 898 sysarg_t rc; 899 sysarg_t rc_orig; 900 aid_t req; 901 size_t pa_size; 902 903 char *pa = absolutize(path, &pa_size); 904 if (!pa) 905 return ENOMEM; 906 907 async_exch_t *exch = vfs_exchange_begin(); 908 909 req = async_send_0(exch, VFS_IN_STATFS, NULL); 910 rc = async_data_write_start(exch, pa, pa_size); 911 if (rc != EOK) { 912 vfs_exchange_end(exch); 913 free(pa); 914 async_wait_for(req, &rc_orig); 915 if (rc_orig == EOK) 916 return (int) rc; 917 else 918 return (int) rc_orig; 919 } 920 printf("TRACE: send VFS_IN_STATFS\n"); 921 rc = async_data_read_start(exch, statfs, sizeof(struct statfs)); 922 if (rc != EOK) { 923 printf("TRACE: error reply\n"); 924 vfs_exchange_end(exch); 925 free(pa); 926 async_wait_for(req, &rc_orig); 927 if (rc_orig == EOK) 928 return (int) rc; 929 else 930 return (int) rc_orig; 931 } 932 vfs_exchange_end(exch); 933 free(pa); 934 async_wait_for(req, &rc); 911 935 return rc; 912 936 }
Note:
See TracChangeset
for help on using the changeset viewer.