Changes in uspace/lib/fs/libfs.c [5930e3f:2d884ab] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fs/libfs.c
r5930e3f r2d884ab 45 45 #include <mem.h> 46 46 #include <sys/stat.h> 47 #include <sys/statfs.h>48 47 #include <stdlib.h> 49 48 … … 75 74 static void libfs_open_node(libfs_ops_t *, fs_handle_t, ipc_callid_t, 76 75 ipc_call_t *); 77 static void libfs_statfs(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *);78 76 79 77 static void vfs_out_mounted(ipc_callid_t rid, ipc_call_t *req) … … 221 219 } 222 220 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 }227 221 static void vfs_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg) 228 222 { … … 282 276 case VFS_OUT_SYNC: 283 277 vfs_out_sync(callid, &call); 284 break;285 case VFS_OUT_STATFS:286 vfs_out_statfs(callid, &call);287 278 break; 288 279 default: … … 839 830 } 840 831 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 867 ops->node_put(fn);868 869 async_data_read_finalize(callid, &statfs, sizeof(struct statfs));870 async_answer_0(rid, EOK);871 }872 873 874 832 /** Open VFS triplet. 875 833 *
Note:
See TracChangeset
for help on using the changeset viewer.