/* File: fs/devpts/xattr.h Derived from fs/ext3/xattr.h, changed in the following ways: drop everything related to persistent storage of EAs pass dentry rather than inode to internal methods only presently define a handler for security modules */ #include #include /* Name indexes */ #define DEVPTS_XATTR_INDEX_MAX 10 #define DEVPTS_XATTR_INDEX_SECURITY 1 # ifdef CONFIG_DEVPTS_FS_XATTR struct devpts_xattr_handler { char *prefix; size_t (*list)(struct dentry *dentry, char *buffer); int (*get)(struct dentry *dentry, const char *name, void *buffer, size_t size); int (*set)(struct dentry *dentry, const char *name, const void *buffer, size_t size, int flags); }; extern int devpts_xattr_register(int, struct devpts_xattr_handler *); extern void devpts_xattr_unregister(int, struct devpts_xattr_handler *); extern int devpts_setxattr(struct dentry *, const char *, const void *, size_t, int); extern ssize_t devpts_getxattr(struct dentry *, const char *, void *, size_t); extern ssize_t devpts_listxattr(struct dentry *, char *, size_t); extern int devpts_removexattr(struct dentry *, const char *); extern int init_devpts_xattr(void); extern void exit_devpts_xattr(void); # else /* CONFIG_DEVPTS_FS_XATTR */ # define devpts_setxattr NULL # define devpts_getxattr NULL # define devpts_listxattr NULL # define devpts_removexattr NULL static inline int init_devpts_xattr(void) { return 0; } static inline void exit_devpts_xattr(void) { } # endif /* CONFIG_DEVPTS_FS_XATTR */ extern struct devpts_xattr_handler devpts_xattr_security_handler;