Changeset b6035ba in mainline for uspace/lib/libfs/libfs.c


Ignore:
Timestamp:
2009-05-05T22:09:13Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
770d281
Parents:
c852f4be
Message:

Introduce the concept of FS nodes. A FS node is a typed abstraction of
file-system-specific node type. It replaces the void * in libfs interfaces
and is suitable for holding various information such as mount point data.

File:
1 edited

Legend:

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

    rc852f4be rb6035ba  
    149149                last += PLB_SIZE;
    150150
    151         void *par = NULL;
    152         void *cur = ops->root_get(dev_handle);
    153         void *tmp = NULL;
     151        fs_node_t *par = NULL;
     152        fs_node_t *cur = ops->root_get(dev_handle);
     153        fs_node_t *tmp = NULL;
    154154
    155155        if (ops->plb_get_char(next) == '/')
     
    190190                                        goto out;
    191191                                }
    192                                 void *nodep;
     192                                fs_node_t *fn;
    193193                                if (lflag & L_CREATE)
    194                                         nodep = ops->create(dev_handle, lflag);
     194                                        fn = ops->create(dev_handle, lflag);
    195195                                else
    196                                         nodep = ops->node_get(dev_handle,
     196                                        fn = ops->node_get(dev_handle,
    197197                                            index);
    198                                 if (nodep) {
     198                                if (fn) {
    199199                                        int rc;
    200200
    201                                         rc = ops->link(cur, nodep, component);
     201                                        rc = ops->link(cur, fn, component);
    202202                                        if (rc != EOK) {
    203203                                                if (lflag & L_CREATE) {
    204                                                         (void)ops->destroy(
    205                                                             nodep);
     204                                                        (void)ops->destroy(fn);
    206205                                                }
    207206                                                ipc_answer_0(rid, rc);
     
    209208                                                ipc_answer_5(rid, EOK,
    210209                                                    fs_handle, dev_handle,
    211                                                     ops->index_get(nodep),
    212                                                     ops->size_get(nodep),
    213                                                     ops->lnkcnt_get(nodep));
    214                                                 ops->node_put(nodep);
     210                                                    ops->index_get(fn),
     211                                                    ops->size_get(fn),
     212                                                    ops->lnkcnt_get(fn));
     213                                                ops->node_put(fn);
    215214                                        }
    216215                                } else {
     
    264263                        component[len] = '\0';
    265264                               
    266                         void *nodep;
     265                        fs_node_t *fn;
    267266                        if (lflag & L_CREATE)
    268                                 nodep = ops->create(dev_handle, lflag);
     267                                fn = ops->create(dev_handle, lflag);
    269268                        else
    270                                 nodep = ops->node_get(dev_handle, index);
    271                         if (nodep) {
     269                                fn = ops->node_get(dev_handle, index);
     270                        if (fn) {
    272271                                int rc;
    273272
    274                                 rc = ops->link(cur, nodep, component);
     273                                rc = ops->link(cur, fn, component);
    275274                                if (rc != EOK) {
    276275                                        if (lflag & L_CREATE)
    277                                                 (void)ops->destroy(nodep);
     276                                                (void)ops->destroy(fn);
    278277                                        ipc_answer_0(rid, rc);
    279278                                } else {
    280279                                        ipc_answer_5(rid, EOK,
    281280                                            fs_handle, dev_handle,
    282                                             ops->index_get(nodep),
    283                                             ops->size_get(nodep),
    284                                             ops->lnkcnt_get(nodep));
    285                                         ops->node_put(nodep);
     281                                            ops->index_get(fn),
     282                                            ops->size_get(fn),
     283                                            ops->lnkcnt_get(fn));
     284                                        ops->node_put(fn);
    286285                                }
    287286                        } else {
Note: See TracChangeset for help on using the changeset viewer.