Subversion Repositories HelenOS

Rev

Rev 4537 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4537 Rev 4668
Line 34... Line 34...
34
#define VFS_VFS_H_
34
#define VFS_VFS_H_
35
 
35
 
36
#include <ipc/ipc.h>
36
#include <ipc/ipc.h>
37
#include <adt/list.h>
37
#include <adt/list.h>
38
#include <fibril_sync.h>
38
#include <fibril_sync.h>
39
#include <futex.h>
-
 
40
#include <sys/types.h>
39
#include <sys/types.h>
41
#include <devmap.h>
40
#include <devmap.h>
42
#include <bool.h>
41
#include <bool.h>
43
#include <ipc/vfs.h>
42
#include <ipc/vfs.h>
44
 
43
 
Line 143... Line 142...
143
 
142
 
144
    /** Current position in the file. */
143
    /** Current position in the file. */
145
    off_t pos;
144
    off_t pos;
146
} vfs_file_t;
145
} vfs_file_t;
147
 
146
 
148
extern futex_t nodes_futex;
147
extern fibril_mutex_t nodes_mutex;
149
 
148
 
-
 
149
extern fibril_condvar_t fs_head_cv;
-
 
150
extern fibril_mutex_t fs_head_lock;
150
extern link_t fs_head;      /**< List of registered file systems. */
151
extern link_t fs_head;      /**< List of registered file systems. */
151
 
152
 
152
extern vfs_pair_t rootfs;   /**< Root file system. */
153
extern vfs_pair_t rootfs;   /**< Root file system. */
153
 
154
 
154
/** Each instance of this type describes one path lookup in progress. */
155
/** Each instance of this type describes one path lookup in progress. */
Line 156... Line 157...
156
    link_t  plb_link;   /**< Active PLB entries list link. */
157
    link_t  plb_link;   /**< Active PLB entries list link. */
157
    unsigned index;     /**< Index of the first character in PLB. */
158
    unsigned index;     /**< Index of the first character in PLB. */
158
    size_t len;     /**< Number of characters in this PLB entry. */
159
    size_t len;     /**< Number of characters in this PLB entry. */
159
} plb_entry_t;
160
} plb_entry_t;
160
 
161
 
161
extern futex_t plb_futex;   /**< Futex protecting plb and plb_head. */
162
extern fibril_mutex_t plb_mutex;/**< Mutex protecting plb and plb_head. */
162
extern uint8_t *plb;        /**< Path Lookup Buffer */
163
extern uint8_t *plb;        /**< Path Lookup Buffer */
163
extern link_t plb_head;     /**< List of active PLB entries. */
164
extern link_t plb_head;     /**< List of active PLB entries. */
164
 
165
 
165
#define MAX_MNTOPTS_LEN     256
166
#define MAX_MNTOPTS_LEN     256
166
 
167
 
Line 191... Line 192...
191
extern void vfs_file_delref(vfs_file_t *);
192
extern void vfs_file_delref(vfs_file_t *);
192
 
193
 
193
extern void vfs_node_addref(vfs_node_t *);
194
extern void vfs_node_addref(vfs_node_t *);
194
extern void vfs_node_delref(vfs_node_t *);
195
extern void vfs_node_delref(vfs_node_t *);
195
 
196
 
196
extern void vfs_process_pending_mount(void);
-
 
197
extern void vfs_register(ipc_callid_t, ipc_call_t *);
197
extern void vfs_register(ipc_callid_t, ipc_call_t *);
198
extern void vfs_mount(ipc_callid_t, ipc_call_t *);
198
extern void vfs_mount(ipc_callid_t, ipc_call_t *);
199
extern void vfs_open(ipc_callid_t, ipc_call_t *);
199
extern void vfs_open(ipc_callid_t, ipc_call_t *);
200
extern void vfs_open_node(ipc_callid_t, ipc_call_t *);
200
extern void vfs_open_node(ipc_callid_t, ipc_call_t *);
201
extern void vfs_device(ipc_callid_t, ipc_call_t *);
-
 
202
extern void vfs_sync(ipc_callid_t, ipc_call_t *);
201
extern void vfs_sync(ipc_callid_t, ipc_call_t *);
203
extern void vfs_node(ipc_callid_t, ipc_call_t *);
-
 
204
extern void vfs_close(ipc_callid_t, ipc_call_t *);
202
extern void vfs_close(ipc_callid_t, ipc_call_t *);
205
extern void vfs_read(ipc_callid_t, ipc_call_t *);
203
extern void vfs_read(ipc_callid_t, ipc_call_t *);
206
extern void vfs_write(ipc_callid_t, ipc_call_t *);
204
extern void vfs_write(ipc_callid_t, ipc_call_t *);
207
extern void vfs_seek(ipc_callid_t, ipc_call_t *);
205
extern void vfs_seek(ipc_callid_t, ipc_call_t *);
208
extern void vfs_truncate(ipc_callid_t, ipc_call_t *);
206
extern void vfs_truncate(ipc_callid_t, ipc_call_t *);
-
 
207
extern void vfs_fstat(ipc_callid_t, ipc_call_t *);
-
 
208
extern void vfs_fstat(ipc_callid_t, ipc_call_t *);
-
 
209
extern void vfs_stat(ipc_callid_t, ipc_call_t *);
209
extern void vfs_mkdir(ipc_callid_t, ipc_call_t *);
210
extern void vfs_mkdir(ipc_callid_t, ipc_call_t *);
210
extern void vfs_unlink(ipc_callid_t, ipc_call_t *);
211
extern void vfs_unlink(ipc_callid_t, ipc_call_t *);
211
extern void vfs_rename(ipc_callid_t, ipc_call_t *);
212
extern void vfs_rename(ipc_callid_t, ipc_call_t *);
212
 
213
 
213
#endif
214
#endif