initial commit with v2.6.9
[linux-2.6.9-moxart.git] / fs / devpts / xattr.h
blobecd74a0986a6fe55e5c8740cbf7bdcd824223186
1 /*
2 File: fs/devpts/xattr.h
4 Derived from fs/ext3/xattr.h, changed in the following ways:
5 drop everything related to persistent storage of EAs
6 pass dentry rather than inode to internal methods
7 only presently define a handler for security modules
8 */
10 #include <linux/config.h>
11 #include <linux/xattr.h>
13 /* Name indexes */
14 #define DEVPTS_XATTR_INDEX_MAX 10
15 #define DEVPTS_XATTR_INDEX_SECURITY 1
17 # ifdef CONFIG_DEVPTS_FS_XATTR
19 struct devpts_xattr_handler {
20 char *prefix;
21 size_t (*list)(struct dentry *dentry, char *buffer);
22 int (*get)(struct dentry *dentry, const char *name, void *buffer,
23 size_t size);
24 int (*set)(struct dentry *dentry, const char *name, const void *buffer,
25 size_t size, int flags);
28 extern int devpts_xattr_register(int, struct devpts_xattr_handler *);
29 extern void devpts_xattr_unregister(int, struct devpts_xattr_handler *);
31 extern int devpts_setxattr(struct dentry *, const char *, const void *, size_t, int);
32 extern ssize_t devpts_getxattr(struct dentry *, const char *, void *, size_t);
33 extern ssize_t devpts_listxattr(struct dentry *, char *, size_t);
34 extern int devpts_removexattr(struct dentry *, const char *);
36 extern int init_devpts_xattr(void);
37 extern void exit_devpts_xattr(void);
39 # else /* CONFIG_DEVPTS_FS_XATTR */
40 # define devpts_setxattr NULL
41 # define devpts_getxattr NULL
42 # define devpts_listxattr NULL
43 # define devpts_removexattr NULL
45 static inline int
46 init_devpts_xattr(void)
48 return 0;
51 static inline void
52 exit_devpts_xattr(void)
56 # endif /* CONFIG_DEVPTS_FS_XATTR */
58 extern struct devpts_xattr_handler devpts_xattr_security_handler;