Changeset 75160a6 in mainline
- Timestamp:
- 2009-06-28T19:18:15Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 415c7e0d
- Parents:
- 852b801
- Location:
- uspace
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libfs/libfs.c
r852b801 r75160a6 44 44 #include <dirent.h> 45 45 #include <mem.h> 46 #include <sys/stat.h> 46 47 47 48 /** Register file system server. … … 429 430 } 430 431 432 void libfs_stat(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid, 433 ipc_call_t *request) 434 { 435 dev_handle_t dev_handle = (dev_handle_t) IPC_GET_ARG1(*request); 436 fs_index_t index = (fs_index_t) IPC_GET_ARG2(*request); 437 fs_node_t *fn = ops->node_get(dev_handle, index); 438 439 ipc_callid_t callid; 440 size_t size; 441 if (!ipc_data_read_receive(&callid, &size) || 442 size < sizeof(struct stat)) { 443 ipc_answer_0(callid, EINVAL); 444 ipc_answer_0(rid, EINVAL); 445 return; 446 } 447 448 struct stat *stat = malloc(sizeof(struct stat)); 449 if (!stat) { 450 ipc_answer_0(callid, ENOMEM); 451 ipc_answer_0(rid, ENOMEM); 452 return; 453 } 454 memset(stat, 0, sizeof(struct stat)); 455 456 stat->fs_handle = fs_handle; 457 stat->dev_handle = dev_handle; 458 stat->index = index; 459 stat->lnkcnt = ops->lnkcnt_get(fn); 460 stat->is_file = ops->is_file(fn); 461 stat->size = ops->size_get(fn); 462 463 ipc_data_read_finalize(callid, stat, sizeof(struct stat)); 464 ipc_answer_0(rid, EOK); 465 466 free(stat); 467 } 468 431 469 /** Open VFS triplet. 432 470 * -
uspace/lib/libfs/libfs.h
r852b801 r75160a6 85 85 extern void libfs_mount(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *); 86 86 extern void libfs_lookup(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *); 87 extern void libfs_stat(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *); 87 88 extern void libfs_open_node(libfs_ops_t *, fs_handle_t, ipc_callid_t, 88 89 ipc_call_t *); -
uspace/srv/fs/fat/fat_ops.c
r852b801 r75160a6 1205 1205 void fat_stat(ipc_callid_t rid, ipc_call_t *request) 1206 1206 { 1207 ipc_answer_0(rid, ENOTSUP);1207 libfs_stat(&fat_libfs_ops, fat_reg.fs_handle, rid, request); 1208 1208 } 1209 1209 -
uspace/srv/fs/tmpfs/tmpfs_ops.c
r852b801 r75160a6 631 631 void tmpfs_stat(ipc_callid_t rid, ipc_call_t *request) 632 632 { 633 ipc_answer_0(rid, ENOTSUP);633 libfs_stat(&tmpfs_libfs_ops, tmpfs_reg.fs_handle, rid, request); 634 634 } 635 635
Note:
See TracChangeset
for help on using the changeset viewer.