Changeset 595edf5 in mainline for uspace/lib/libfs/libfs.c


Ignore:
Timestamp:
2009-06-03T19:28:15Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
36b8100a
Parents:
d00ae4c
Message:

add libfs_open_node() helper function
cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libfs/libfs.c

    rd00ae4c r595edf5  
    4343#include <assert.h>
    4444#include <dirent.h>
     45#include <mem.h>
    4546
    4647/** Register file system server.
     
    209210 * as returned by the canonify() function.
    210211 *
    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 *
    217219 */
    218220void libfs_lookup(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid,
     
    427429}
    428430
     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 */
     439void 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
    429458/** @}
    430459 */
Note: See TracChangeset for help on using the changeset viewer.