OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [reiserfs_xattr.h] - Blame information for rev 81

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
  File: linux/reiserfs_xattr.h
3
*/
4
 
5
#ifndef _LINUX_REISERFS_XATTR_H
6
#define _LINUX_REISERFS_XATTR_H
7
 
8
#include <linux/types.h>
9
 
10
/* Magic value in header */
11
#define REISERFS_XATTR_MAGIC 0x52465841 /* "RFXA" */
12
 
13
struct reiserfs_xattr_header {
14
        __le32 h_magic;         /* magic number for identification */
15
        __le32 h_hash;          /* hash of the value */
16
};
17
 
18
#ifdef __KERNEL__
19
 
20
#include <linux/init.h>
21
#include <linux/list.h>
22
#include <linux/rwsem.h>
23
#include <linux/reiserfs_fs_i.h>
24
#include <linux/reiserfs_fs.h>
25
 
26
struct inode;
27
struct dentry;
28
struct iattr;
29
struct super_block;
30
struct nameidata;
31
 
32
struct reiserfs_xattr_handler {
33
        char *prefix;
34
        int (*init) (void);
35
        void (*exit) (void);
36
        int (*get) (struct inode * inode, const char *name, void *buffer,
37
                    size_t size);
38
        int (*set) (struct inode * inode, const char *name, const void *buffer,
39
                    size_t size, int flags);
40
        int (*del) (struct inode * inode, const char *name);
41
        int (*list) (struct inode * inode, const char *name, int namelen,
42
                     char *out);
43
        struct list_head handlers;
44
};
45
 
46
#ifdef CONFIG_REISERFS_FS_XATTR
47
#define is_reiserfs_priv_object(inode) IS_PRIVATE(inode)
48
#define has_xattr_dir(inode) (REISERFS_I(inode)->i_flags & i_has_xattr_dir)
49
ssize_t reiserfs_getxattr(struct dentry *dentry, const char *name,
50
                          void *buffer, size_t size);
51
int reiserfs_setxattr(struct dentry *dentry, const char *name,
52
                      const void *value, size_t size, int flags);
53
ssize_t reiserfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
54
int reiserfs_removexattr(struct dentry *dentry, const char *name);
55
int reiserfs_delete_xattrs(struct inode *inode);
56
int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs);
57
int reiserfs_xattr_init(struct super_block *sb, int mount_flags);
58
int reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd);
59
 
60
int reiserfs_xattr_del(struct inode *, const char *);
61
int reiserfs_xattr_get(const struct inode *, const char *, void *, size_t);
62
int reiserfs_xattr_set(struct inode *, const char *, const void *, size_t, int);
63
 
64
extern struct reiserfs_xattr_handler user_handler;
65
extern struct reiserfs_xattr_handler trusted_handler;
66
extern struct reiserfs_xattr_handler security_handler;
67
 
68
int reiserfs_xattr_register_handlers(void) __init;
69
void reiserfs_xattr_unregister_handlers(void);
70
 
71
static inline void reiserfs_write_lock_xattrs(struct super_block *sb)
72
{
73
        down_write(&REISERFS_XATTR_DIR_SEM(sb));
74
}
75
static inline void reiserfs_write_unlock_xattrs(struct super_block *sb)
76
{
77
        up_write(&REISERFS_XATTR_DIR_SEM(sb));
78
}
79
static inline void reiserfs_read_lock_xattrs(struct super_block *sb)
80
{
81
        down_read(&REISERFS_XATTR_DIR_SEM(sb));
82
}
83
 
84
static inline void reiserfs_read_unlock_xattrs(struct super_block *sb)
85
{
86
        up_read(&REISERFS_XATTR_DIR_SEM(sb));
87
}
88
 
89
static inline void reiserfs_write_lock_xattr_i(struct inode *inode)
90
{
91
        down_write(&REISERFS_I(inode)->xattr_sem);
92
}
93
static inline void reiserfs_write_unlock_xattr_i(struct inode *inode)
94
{
95
        up_write(&REISERFS_I(inode)->xattr_sem);
96
}
97
static inline void reiserfs_read_lock_xattr_i(struct inode *inode)
98
{
99
        down_read(&REISERFS_I(inode)->xattr_sem);
100
}
101
 
102
static inline void reiserfs_read_unlock_xattr_i(struct inode *inode)
103
{
104
        up_read(&REISERFS_I(inode)->xattr_sem);
105
}
106
 
107
static inline void reiserfs_mark_inode_private(struct inode *inode)
108
{
109
        inode->i_flags |= S_PRIVATE;
110
}
111
 
112
static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
113
{
114
        init_rwsem(&REISERFS_I(inode)->xattr_sem);
115
}
116
 
117
#else
118
 
119
#define is_reiserfs_priv_object(inode) 0
120
#define reiserfs_mark_inode_private(inode) do {;} while(0)
121
#define reiserfs_getxattr NULL
122
#define reiserfs_setxattr NULL
123
#define reiserfs_listxattr NULL
124
#define reiserfs_removexattr NULL
125
#define reiserfs_write_lock_xattrs(sb) do {;} while(0)
126
#define reiserfs_write_unlock_xattrs(sb) do {;} while(0)
127
#define reiserfs_read_lock_xattrs(sb)
128
#define reiserfs_read_unlock_xattrs(sb)
129
 
130
#define reiserfs_permission NULL
131
 
132
#define reiserfs_xattr_register_handlers() 0
133
#define reiserfs_xattr_unregister_handlers()
134
 
135
static inline int reiserfs_delete_xattrs(struct inode *inode)
136
{
137
        return 0;
138
};
139
static inline int reiserfs_chown_xattrs(struct inode *inode,
140
                                        struct iattr *attrs)
141
{
142
        return 0;
143
};
144
static inline int reiserfs_xattr_init(struct super_block *sb, int mount_flags)
145
{
146
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL);     /* to be sure */
147
        return 0;
148
};
149
static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
150
{
151
}
152
#endif  /*  CONFIG_REISERFS_FS_XATTR  */
153
 
154
#endif  /*  __KERNEL__  */
155
 
156
#endif  /*  _LINUX_REISERFS_XATTR_H  */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.