Changeset 595edf5 in mainline
- Timestamp:
- 2009-06-03T19:28:15Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 36b8100a
- Parents:
- d00ae4c
- Location:
- uspace/lib/libfs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libfs/libfs.c
rd00ae4c r595edf5 43 43 #include <assert.h> 44 44 #include <dirent.h> 45 #include <mem.h> 45 46 46 47 /** Register file system server. … … 209 210 * as returned by the canonify() function. 210 211 * 211 * @param ops libfs operations structure with function pointers to 212 * file system implementation 213 * @param fs_handle File system handle of the file system where to perform 214 * the lookup. 215 * @param rid Request ID of the VFS_LOOKUP request. 216 * @param request VFS_LOOKUP request data itself. 212 * @param ops libfs operations structure with function pointers to 213 * file system implementation 214 * @param fs_handle File system handle of the file system where to perform 215 * the lookup. 216 * @param rid Request ID of the VFS_LOOKUP request. 217 * @param request VFS_LOOKUP request data itself. 218 * 217 219 */ 218 220 void libfs_lookup(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid, … … 427 429 } 428 430 431 /** Open VFS triplet. 432 * 433 * @param ops libfs operations structure with function pointers to 434 * file system implementation 435 * @param rid Request ID of the VFS_OPEN_NODE request. 436 * @param request VFS_OPEN_NODE request data itself. 437 * 438 */ 439 void libfs_open_node(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid, 440 ipc_call_t *request) 441 { 442 dev_handle_t dev_handle = IPC_GET_ARG1(*request); 443 fs_index_t index = IPC_GET_ARG2(*request); 444 445 fs_node_t *node = ops->node_get(dev_handle, index); 446 447 if (node == NULL) { 448 ipc_answer_0(rid, ENOENT); 449 return; 450 } 451 452 ipc_answer_5(rid, EOK, fs_handle, dev_handle, index, 453 ops->size_get(node), ops->lnkcnt_get(node)); 454 455 ops->node_put(node); 456 } 457 429 458 /** @} 430 459 */ -
uspace/lib/libfs/libfs.h
rd00ae4c r595edf5 27 27 */ 28 28 29 /** @addtogroup libfs 29 /** @addtogroup libfs 30 30 * @{ 31 */ 31 */ 32 32 /** 33 33 * @file … … 35 35 36 36 #ifndef LIBFS_LIBFS_H_ 37 #define LIBFS_LIBFS_H_37 #define LIBFS_LIBFS_H_ 38 38 39 #include "../../srv/vfs/vfs.h"39 #include <ipc/vfs.h> 40 40 #include <stdint.h> 41 41 #include <ipc/ipc.h> 42 42 #include <async.h> 43 #include <devmap.h> 43 44 44 45 typedef struct { … … 50 51 51 52 typedef struct { 52 mp_data_t mp_data; 53 void *data; 53 mp_data_t mp_data; /**< Mount point info. */ 54 void *data; /**< Data of the file system implementation. */ 54 55 } fs_node_t; 55 56 … … 67 68 bool (* has_children)(fs_node_t *); 68 69 fs_node_t *(* root_get)(dev_handle_t); 69 char (* plb_get_char)(unsigned pos); 70 char (* plb_get_char)(unsigned pos); 70 71 bool (* is_directory)(fs_node_t *); 71 72 bool (* is_file)(fs_node_t *); … … 73 74 74 75 typedef struct { 75 int fs_handle; 76 ipcarg_t vfs_phonehash; 77 uint8_t *plb_ro; 76 int fs_handle; /**< File system handle. */ 77 ipcarg_t vfs_phonehash; /**< Initial VFS phonehash. */ 78 uint8_t *plb_ro; /**< Read-only PLB view. */ 78 79 } fs_reg_t; 79 80 … … 84 85 extern void libfs_mount(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *); 85 86 extern void libfs_lookup(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *); 87 extern void libfs_open_node(libfs_ops_t *, fs_handle_t, ipc_callid_t, 88 ipc_call_t *); 86 89 87 90 #endif … … 89 92 /** @} 90 93 */ 91
Note:
See TracChangeset
for help on using the changeset viewer.