Subversion Repositories HelenOS

Rev

Rev 2760 | Rev 2770 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2760 Rev 2763
Line 68... Line 68...
68
 * Implementation of the libfs interface.
68
 * Implementation of the libfs interface.
69
 */
69
 */
70
 
70
 
71
/* Forward declarations of static functions. */
71
/* Forward declarations of static functions. */
72
static bool tmpfs_match(void *, void *, const char *);
72
static bool tmpfs_match(void *, void *, const char *);
-
 
73
static void *tmpfs_node_get(int, int, unsigned long);
73
static void *tmpfs_create_node(int);
74
static void *tmpfs_create_node(int);
74
static bool tmpfs_link_node(void *, void *, const char *);
75
static bool tmpfs_link_node(void *, void *, const char *);
75
static int tmpfs_unlink_node(void *, void *);
76
static int tmpfs_unlink_node(void *, void *);
76
static void tmpfs_destroy_node(void *);
77
static void tmpfs_destroy_node(void *);
77
 
78
 
Line 122... Line 123...
122
}
123
}
123
 
124
 
124
/** libfs operations */
125
/** libfs operations */
125
libfs_ops_t tmpfs_libfs_ops = {
126
libfs_ops_t tmpfs_libfs_ops = {
126
    .match = tmpfs_match,
127
    .match = tmpfs_match,
-
 
128
    .node_get = tmpfs_node_get,
127
    .create = tmpfs_create_node,
129
    .create = tmpfs_create_node,
128
    .destroy = tmpfs_destroy_node,
130
    .destroy = tmpfs_destroy_node,
129
    .link = tmpfs_link_node,
131
    .link = tmpfs_link_node,
130
    .unlink = tmpfs_unlink_node,
132
    .unlink = tmpfs_unlink_node,
131
    .index_get = tmpfs_index_get,
133
    .index_get = tmpfs_index_get,
Line 258... Line 260...
258
    tmpfs_name_t *namep = hash_table_get_instance(hlp, tmpfs_name_t, link);
260
    tmpfs_name_t *namep = hash_table_get_instance(hlp, tmpfs_name_t, link);
259
 
261
 
260
    return !strcmp(namep->name, component);
262
    return !strcmp(namep->name, component);
261
}
263
}
262
 
264
 
-
 
265
void *tmpfs_node_get(int fs_handle, int dev_handle, unsigned long index)
-
 
266
{
-
 
267
    link_t *lnk = hash_table_find(&dentries, &index);
-
 
268
    if (!lnk)
-
 
269
        return NULL;
-
 
270
    return hash_table_get_instance(lnk, tmpfs_dentry_t, dh_link);
-
 
271
}
-
 
272
 
263
void *tmpfs_create_node(int lflag)
273
void *tmpfs_create_node(int lflag)
264
{
274
{
265
    assert((lflag & L_FILE) ^ (lflag & L_DIRECTORY));
275
    assert((lflag & L_FILE) ^ (lflag & L_DIRECTORY));
266
 
276
 
267
    tmpfs_dentry_t *node = malloc(sizeof(tmpfs_dentry_t));
277
    tmpfs_dentry_t *node = malloc(sizeof(tmpfs_dentry_t));