xref: /openbmc/linux/include/linux/xattr.h (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
1 /*
2   File: linux/xattr.h
3 
4   Extended attributes handling.
5 
6   Copyright (C) 2001 by Andreas Gruenbacher <a.gruenbacher@computer.org>
7   Copyright (c) 2001-2002 Silicon Graphics, Inc.  All Rights Reserved.
8   Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com>
9 */
10 #ifndef _LINUX_XATTR_H
11 #define _LINUX_XATTR_H
12 
13 #define XATTR_CREATE	0x1	/* set value, fail if attr already exists */
14 #define XATTR_REPLACE	0x2	/* set value, fail if attr does not exist */
15 
16 #define XATTR_SECURITY_PREFIX	"security."
17 
18 struct xattr_handler {
19 	char *prefix;
20 	size_t (*list)(struct inode *inode, char *list, size_t list_size,
21 		       const char *name, size_t name_len);
22 	int (*get)(struct inode *inode, const char *name, void *buffer,
23 		   size_t size);
24 	int (*set)(struct inode *inode, const char *name, const void *buffer,
25 		   size_t size, int flags);
26 };
27 
28 ssize_t generic_getxattr(struct dentry *dentry, const char *name, void *buffer, size_t size);
29 ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size);
30 int generic_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags);
31 int generic_removexattr(struct dentry *dentry, const char *name);
32 
33 #endif	/* _LINUX_XATTR_H */
34