Subversion Repositories HelenOS

Rev

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

Rev 2521 Rev 2523
Line 31... Line 31...
31
 */
31
 */
32
 
32
 
33
#ifndef VFS_VFS_H_
33
#ifndef VFS_VFS_H_
34
#define VFS_VFS_H_
34
#define VFS_VFS_H_
35
 
35
 
-
 
36
#include <ipc/ipc.h>
-
 
37
 
-
 
38
#define VFS_FIRST   FIRST_USER_METHOD
-
 
39
 
36
typedef enum {
40
typedef enum {
37
    VFS_REGISTER = 0,
41
    VFS_REGISTER = VFS_FIRST,
38
    VFS_MOUNT,
42
    VFS_MOUNT,
39
    VFS_UNMOUNT,
43
    VFS_UNMOUNT,
40
    VFS_OPEN,
44
    VFS_OPEN,
-
 
45
    VFS_CREATE,
-
 
46
    VFS_CLOSE,
-
 
47
    VFS_READ,
-
 
48
    VFS_WRITE,
-
 
49
    VFS_SEEK,
41
    VFS_LAST,       /* keep this the last member of the enum */
50
    VFS_LAST,       /* keep this the last member of the enum */
42
} vfs_request_t;
51
} vfs_request_t;
43
 
52
 
44
 
53
 
45
/**
54
/**
46
 * An instance of this structure is associated with a particular FS operation.
55
 * An instance of this structure is associated with a particular FS operation.
47
 * It tells VFS if the FS supports the operation or maybe if a default one
56
 * It tells VFS if the FS supports the operation or maybe if a default one
48
 * should be used.
57
 * should be used.
49
 */
58
 */
50
typedef enum {
59
typedef enum {
51
    VFS_OP_NOTSUP = 0,
60
    VFS_OP_NULL = 0,
52
    VFS_OP_DEFAULT,
61
    VFS_OP_DEFAULT,
53
    VFS_OP_DEFINED
62
    VFS_OP_DEFINED
54
} vfs_op_t;
63
} vfs_op_t;
55
 
64
 
56
#define FS_NAME_MAXLEN  20
65
#define FS_NAME_MAXLEN  20
Line 60... Line 69...
60
 * registration. It assosiates a human-readable identifier with each
69
 * registration. It assosiates a human-readable identifier with each
61
 * registered FS. More importantly, through this structure, the FS announces
70
 * registered FS. More importantly, through this structure, the FS announces
62
 * what operations it supports.
71
 * what operations it supports.
63
 */
72
 */
64
typedef struct {
73
typedef struct {
65
    char fs_name[FS_NAME_MAXLEN];   /**< Unique identifier of the fs. */
74
    /** Unique identifier of the fs. */
-
 
75
    char fs_name[FS_NAME_MAXLEN];
-
 
76
   
-
 
77
    /** Operations. */
66
    vfs_op_t ops[VFS_LAST];     /**< Operations. */
78
    vfs_op_t ops[VFS_LAST - VFS_FIRST];
67
} vfs_info_t;
79
} vfs_info_t;
68
 
80
 
69
#endif
81
#endif
70
 
82
 
71
/**
83
/**
72
 * @}
84
 * @}
73
 */
85
 */