Root/
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 | #ifdef __KERNEL__ |
17 | |
18 | #include <linux/types.h> |
19 | |
20 | /* Namespaces */ |
21 | #define XATTR_OS2_PREFIX "os2." |
22 | #define XATTR_OS2_PREFIX_LEN (sizeof (XATTR_OS2_PREFIX) - 1) |
23 | |
24 | #define XATTR_SECURITY_PREFIX "security." |
25 | #define XATTR_SECURITY_PREFIX_LEN (sizeof (XATTR_SECURITY_PREFIX) - 1) |
26 | |
27 | #define XATTR_SYSTEM_PREFIX "system." |
28 | #define XATTR_SYSTEM_PREFIX_LEN (sizeof (XATTR_SYSTEM_PREFIX) - 1) |
29 | |
30 | #define XATTR_TRUSTED_PREFIX "trusted." |
31 | #define XATTR_TRUSTED_PREFIX_LEN (sizeof (XATTR_TRUSTED_PREFIX) - 1) |
32 | |
33 | #define XATTR_USER_PREFIX "user." |
34 | #define XATTR_USER_PREFIX_LEN (sizeof (XATTR_USER_PREFIX) - 1) |
35 | |
36 | /* Security namespace */ |
37 | #define XATTR_SELINUX_SUFFIX "selinux" |
38 | #define XATTR_NAME_SELINUX XATTR_SECURITY_PREFIX XATTR_SELINUX_SUFFIX |
39 | |
40 | #define XATTR_SMACK_SUFFIX "SMACK64" |
41 | #define XATTR_SMACK_IPIN "SMACK64IPIN" |
42 | #define XATTR_SMACK_IPOUT "SMACK64IPOUT" |
43 | #define XATTR_NAME_SMACK XATTR_SECURITY_PREFIX XATTR_SMACK_SUFFIX |
44 | #define XATTR_NAME_SMACKIPIN XATTR_SECURITY_PREFIX XATTR_SMACK_IPIN |
45 | #define XATTR_NAME_SMACKIPOUT XATTR_SECURITY_PREFIX XATTR_SMACK_IPOUT |
46 | |
47 | #define XATTR_CAPS_SUFFIX "capability" |
48 | #define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX |
49 | |
50 | struct inode; |
51 | struct dentry; |
52 | |
53 | struct xattr_handler { |
54 | const char *prefix; |
55 | int flags; /* fs private flags passed back to the handlers */ |
56 | size_t (*list)(struct dentry *dentry, char *list, size_t list_size, |
57 | const char *name, size_t name_len, int handler_flags); |
58 | int (*get)(struct dentry *dentry, const char *name, void *buffer, |
59 | size_t size, int handler_flags); |
60 | int (*set)(struct dentry *dentry, const char *name, const void *buffer, |
61 | size_t size, int flags, int handler_flags); |
62 | }; |
63 | |
64 | ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t); |
65 | ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t); |
66 | ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size); |
67 | int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int); |
68 | int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int); |
69 | int vfs_removexattr(struct dentry *, const char *); |
70 | |
71 | ssize_t generic_getxattr(struct dentry *dentry, const char *name, void *buffer, size_t size); |
72 | ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size); |
73 | int generic_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags); |
74 | int generic_removexattr(struct dentry *dentry, const char *name); |
75 | |
76 | #endif /* __KERNEL__ */ |
77 | |
78 | #endif /* _LINUX_XATTR_H */ |
79 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9