tmpfs_ops.c File Reference

Implementation of VFS operations for the TMPFS file system server. More...

#include "tmpfs.h"
#include "../../vfs/vfs.h"
#include <macros.h>
#include <stdint.h>
#include <async.h>
#include <errno.h>
#include <atomic.h>
#include <stdlib.h>
#include <str.h>
#include <stdio.h>
#include <assert.h>
#include <sys/types.h>
#include <adt/hash_table.h>
#include <as.h>
#include <libfs.h>

Go to the source code of this file.

Defines

#define max(a, b)   ((a) > (b) ? (a) : (b))
#define min(a, b)   ((a) < (b) ? (a) : (b))
#define NODES_BUCKETS   256
#define NODES_KEY_DEV   0
#define NODES_KEY_INDEX   1
#define TMPFS_SOME_ROOT   0
 All root nodes have index 0.

Functions

static int nodes_compare (unsigned long key[], hash_count_t keys, link_t *item)
static hash_index_t nodes_hash (unsigned long key[])
static void nodes_remove_callback (link_t *item)
void tmpfs_close (ipc_callid_t, ipc_call_t *)
static int tmpfs_create_node (fs_node_t **, devmap_handle_t, int)
static void tmpfs_dentry_initialize (tmpfs_dentry_t *dentryp)
void tmpfs_destroy (ipc_callid_t, ipc_call_t *)
static int tmpfs_destroy_node (fs_node_t *)
static devmap_handle_t tmpfs_device_get (fs_node_t *fn)
static int tmpfs_has_children (bool *has_children, fs_node_t *fn)
static fs_index_t tmpfs_index_get (fs_node_t *fn)
bool tmpfs_init (void)
static void tmpfs_instance_done (devmap_handle_t devmap_handle)
static bool tmpfs_instance_init (devmap_handle_t devmap_handle)
static bool tmpfs_is_directory (fs_node_t *fn)
static bool tmpfs_is_file (fs_node_t *fn)
static int tmpfs_link_node (fs_node_t *, fs_node_t *, const char *)
static unsigned tmpfs_lnkcnt_get (fs_node_t *fn)
void tmpfs_lookup (ipc_callid_t, ipc_call_t *)
static int tmpfs_match (fs_node_t **, fs_node_t *, const char *)
void tmpfs_mount (ipc_callid_t, ipc_call_t *)
void tmpfs_mounted (ipc_callid_t, ipc_call_t *)
static int tmpfs_node_get (fs_node_t **, devmap_handle_t, fs_index_t)
static void tmpfs_node_initialize (tmpfs_node_t *nodep)
static int tmpfs_node_open (fs_node_t *)
static int tmpfs_node_put (fs_node_t *)
void tmpfs_open_node (ipc_callid_t, ipc_call_t *)
static char tmpfs_plb_get_char (unsigned pos)
void tmpfs_read (ipc_callid_t, ipc_call_t *)
static int tmpfs_root_get (fs_node_t **rfn, devmap_handle_t devmap_handle)
static aoff64_t tmpfs_size_get (fs_node_t *fn)
void tmpfs_stat (ipc_callid_t, ipc_call_t *)
void tmpfs_sync (ipc_callid_t, ipc_call_t *)
void tmpfs_truncate (ipc_callid_t, ipc_call_t *)
static int tmpfs_unlink_node (fs_node_t *, fs_node_t *, const char *)
void tmpfs_unmount (ipc_callid_t, ipc_call_t *)
void tmpfs_unmounted (ipc_callid_t, ipc_call_t *)
void tmpfs_write (ipc_callid_t, ipc_call_t *)

Variables

hash_table_t nodes
 Hash table of all TMPFS nodes.
hash_table_operations_t nodes_ops
 TMPFS nodes hash table operations.
libfs_ops_t tmpfs_libfs_ops
 libfs operations
fs_index_t tmpfs_next_index = 1
 Global counter for assigning node indices.


Detailed Description

Implementation of VFS operations for the TMPFS file system server.

Definition in file tmpfs_ops.c.


Generated on Thu Jun 2 07:45:55 2011 for HelenOS/USB by  doxygen 1.4.7