Subversion Repositories HelenOS

Rev

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

Rev 4419 Rev 4420
Line 36... Line 36...
36
#include <ipc/ipc.h>
36
#include <ipc/ipc.h>
37
#include <libadt/list.h>
37
#include <libadt/list.h>
38
#include <futex.h>
38
#include <futex.h>
39
#include <rwlock.h>
39
#include <rwlock.h>
40
#include <sys/types.h>
40
#include <sys/types.h>
-
 
41
#include <devmap.h>
41
#include <bool.h>
42
#include <bool.h>
42
 
43
 
43
// FIXME: according to CONFIG_DEBUG
44
// FIXME: according to CONFIG_DEBUG
44
// #define dprintf(...) printf(__VA_ARGS__)
45
// #define dprintf(...) printf(__VA_ARGS__)
45
 
46
 
Line 47... Line 48...
47
 
48
 
48
#define VFS_FIRST   IPC_FIRST_USER_METHOD
49
#define VFS_FIRST   IPC_FIRST_USER_METHOD
49
 
50
 
50
/* Basic types. */
51
/* Basic types. */
51
typedef int16_t fs_handle_t;
52
typedef int16_t fs_handle_t;
52
typedef int16_t dev_handle_t;
-
 
53
typedef uint32_t fs_index_t;
53
typedef uint32_t fs_index_t;
54
 
54
 
55
typedef enum {
55
typedef enum {
56
    VFS_READ = VFS_FIRST,
56
    VFS_READ = VFS_FIRST,
57
    VFS_WRITE,
57
    VFS_WRITE,
Line 164... Line 164...
164
 * L_UNLINK is used to remove leaves from the file system namespace. This flag
164
 * L_UNLINK is used to remove leaves from the file system namespace. This flag
165
 * cannot be passed directly by the client, but will be set by VFS during
165
 * cannot be passed directly by the client, but will be set by VFS during
166
 * VFS_UNLINK.
166
 * VFS_UNLINK.
167
 */
167
 */
168
#define L_UNLINK    32  
168
#define L_UNLINK    32  
169
/**
-
 
170
 * L_PARENT performs a lookup but returns the triplet of the parent node.
-
 
171
 * This flag may not be combined with any other lookup flag.
-
 
172
 */
-
 
173
#define L_PARENT    64  
-
 
174
 
169
 
175
typedef enum vfs_node_type {
170
typedef enum vfs_node_type {
176
    VFS_NODE_UNKNOWN,
171
    VFS_NODE_UNKNOWN,
177
    VFS_NODE_FILE,
172
    VFS_NODE_FILE,
178
    VFS_NODE_DIRECTORY,
173
    VFS_NODE_DIRECTORY,
Line 252... Line 247...
252
 
247
 
253
extern futex_t plb_futex;   /**< Futex protecting plb and plb_head. */
248
extern futex_t plb_futex;   /**< Futex protecting plb and plb_head. */
254
extern uint8_t *plb;        /**< Path Lookup Buffer */
249
extern uint8_t *plb;        /**< Path Lookup Buffer */
255
extern link_t plb_head;     /**< List of active PLB entries. */
250
extern link_t plb_head;     /**< List of active PLB entries. */
256
 
251
 
-
 
252
#define MAX_MNTOPTS_LEN     256
-
 
253
 
257
/** Holding this rwlock prevents changes in file system namespace. */
254
/** Holding this rwlock prevents changes in file system namespace. */
258
extern rwlock_t namespace_rwlock;
255
extern rwlock_t namespace_rwlock;
259
 
256
 
260
extern int vfs_grab_phone(fs_handle_t);
257
extern int vfs_grab_phone(fs_handle_t);
261
extern void vfs_release_phone(int);
258
extern void vfs_release_phone(int);