Changeset bcf23cf in mainline


Ignore:
Timestamp:
2007-09-27T12:38:31Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
37e7dc54
Parents:
5d4e90f0
Message:

VFS work.
Start support for the Patch Lookup Buffer.
Also add rootfs pointer.

Location:
uspace/srv/vfs
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/vfs/Makefile

    r5d4e90f0 rbcf23cf  
    4343SOURCES = \
    4444        vfs.c \
    45         vfs_register.c
     45        vfs_register.c \
     46        vfs_lookup.c \
     47        vfs_mount.c
    4648
    4749OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
  • uspace/srv/vfs/vfs.c

    r5d4e90f0 rbcf23cf  
    3333/**
    3434 * @file        vfs.c
    35  * @brief       VFS multiplexer for HelenOS.
     35 * @brief       VFS service for HelenOS.
    3636 */
    3737
     
    4242#include <stdio.h>
    4343#include <bool.h>
     44#include <string.h>
     45#include <as.h>
    4446#include <libadt/list.h>
    4547#include "vfs.h"
     
    109111        printf("VFS: HelenOS VFS server\n");
    110112
     113        /*
     114         * Initialize the list of registered file systems.
     115         */
    111116        list_initialize(&fs_head);
     117
     118        /*
     119         * Allocate and initialize the Path Lookup Buffer.
     120         */
     121        list_initialize(&plb_head);
     122        plb = as_get_mappable_page(PLB_SIZE);
     123//      memset(plb, 0, PLB_SIZE);
     124       
     125        /*
     126         * Set a connectio handling function/fibril.
     127         */
    112128        async_set_client_connection(vfs_connection);
     129
     130        /*
     131         * Register at the naming service.
     132         */
    113133        ipc_connect_to_me(PHONE_NS, SERVICE_VFS, 0, &phonead);
     134
     135        /*
     136         * Start accepting connections.
     137         */
    114138        async_manager();
    115139        return 0;
  • uspace/srv/vfs/vfs.h

    r5d4e90f0 rbcf23cf  
    3737#include <libadt/list.h>
    3838#include <atomic.h>
    39 #include <types.h>
     39#include <sys/types.h>
    4040
    4141#define dprintf(...)    printf(__VA_ARGS__)
     
    4444
    4545#define IPC_METHOD_TO_VFS_OP(m) ((m) - VFS_FIRST)       
    46 
    47 typedef int64_t off_t;
    4846
    4947typedef enum {
     
    126124} vfs_file_t;
    127125
    128 extern link_t fs_head;
     126extern link_t fs_head;          /**< List of registered file systems. */
    129127
    130 extern void vfs_register(ipc_callid_t rid, ipc_call_t *request);
     128extern vfs_node_t *rootfs;      /**< Root node of the root file system. */
     129
     130#define MAX_PATH_LEN            (64 * 1024)
     131
     132#define PLB_SIZE                (2 * MAX_PATH_LEN)
     133
     134/** Each instance of this type describes one path lookup in progress. */
     135typedef struct {
     136        link_t  plb_link;       /**< Active PLB entries list link. */
     137        unsigned index;         /**< Index of the first character in PLB. */
     138        size_t len;             /**< Number of characters in this PLB entry. */
     139} plb_entry_t;
     140
     141extern atomic_t plb_futex;      /**< Futex protecting plb and plb_head. */
     142extern uint8_t *plb;            /**< Path Lookup Buffer */
     143extern link_t plb_head;         /**< List of active PLB entries. */
     144
     145extern void vfs_register(ipc_callid_t, ipc_call_t *);
     146extern void vfs_lookup(ipc_callid_t, ipc_call_t *);
    131147
    132148#endif
Note: See TracChangeset for help on using the changeset viewer.