Changes in uspace/lib/fs/libfs.c [2d884ab:67632f7] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fs/libfs.c
r2d884ab r67632f7 45 45 #include <mem.h> 46 46 #include <sys/stat.h> 47 #include <sys/statfs.h> 47 48 #include <stdlib.h> 48 49 … … 74 75 static void libfs_open_node(libfs_ops_t *, fs_handle_t, ipc_callid_t, 75 76 ipc_call_t *); 77 static void libfs_statfs(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *); 76 78 77 79 static void vfs_out_mounted(ipc_callid_t rid, ipc_call_t *req) … … 219 221 } 220 222 223 static void vfs_out_statfs(ipc_callid_t rid, ipc_call_t *req) 224 { 225 libfs_statfs(libfs_ops, reg.fs_handle, rid, req); 226 } 221 227 static void vfs_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg) 222 228 { … … 276 282 case VFS_OUT_SYNC: 277 283 vfs_out_sync(callid, &call); 284 break; 285 case VFS_OUT_STATFS: 286 vfs_out_statfs(callid, &call); 278 287 break; 279 288 default: … … 830 839 } 831 840 841 void libfs_statfs(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid, 842 ipc_call_t *request) 843 { 844 service_id_t service_id = (service_id_t) IPC_GET_ARG1(*request); 845 fs_index_t index = (fs_index_t) IPC_GET_ARG2(*request); 846 847 fs_node_t *fn; 848 int rc = ops->node_get(&fn, service_id, index); 849 on_error(rc, answer_and_return(rid, rc)); 850 851 ipc_callid_t callid; 852 size_t size; 853 if ((!async_data_read_receive(&callid, &size)) || 854 (size != sizeof(struct statfs))) { 855 ops->node_put(fn); 856 async_answer_0(callid, EINVAL); 857 async_answer_0(rid, EINVAL); 858 return; 859 } 860 861 struct statfs statfs; 862 memset(&statfs, 0, sizeof(struct statfs)); 863 864 if (NULL != ops->size_block) 865 statfs.f_bsize = ops->size_block(service_id); 866 if (NULL != ops->total_block) 867 statfs.f_blocks = ops->total_block(service_id); 868 if (NULL != ops->free_block) 869 statfs.f_bfree = ops->free_block(service_id); 870 871 ops->node_put(fn); 872 873 async_data_read_finalize(callid, &statfs, sizeof(struct statfs)); 874 async_answer_0(rid, EOK); 875 } 876 877 832 878 /** Open VFS triplet. 833 879 *
Note:
See TracChangeset
for help on using the changeset viewer.