Blame view

include/linux/xattr.h 2.87 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  /*
    File: linux/xattr.h
  
    Extended attributes handling.
  
    Copyright (C) 2001 by Andreas Gruenbacher <a.gruenbacher@computer.org>
    Copyright (c) 2001-2002 Silicon Graphics, Inc.  All Rights Reserved.
    Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com>
  */
  #ifndef _LINUX_XATTR_H
  #define _LINUX_XATTR_H
  
  #define XATTR_CREATE	0x1	/* set value, fail if attr already exists */
  #define XATTR_REPLACE	0x2	/* set value, fail if attr does not exist */
5b0a2075a   Adrian Bunk   [PATCH] cleanup i...
15
16
17
  #ifdef  __KERNEL__
  
  #include <linux/types.h>
e0ad7b073   Andrew Morton   [PATCH] move xatt...
18
19
20
  /* Namespaces */
  #define XATTR_OS2_PREFIX "os2."
  #define XATTR_OS2_PREFIX_LEN (sizeof (XATTR_OS2_PREFIX) - 1)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
21
  #define XATTR_SECURITY_PREFIX	"security."
e0ad7b073   Andrew Morton   [PATCH] move xatt...
22
23
24
25
26
27
28
29
30
31
  #define XATTR_SECURITY_PREFIX_LEN (sizeof (XATTR_SECURITY_PREFIX) - 1)
  
  #define XATTR_SYSTEM_PREFIX "system."
  #define XATTR_SYSTEM_PREFIX_LEN (sizeof (XATTR_SYSTEM_PREFIX) - 1)
  
  #define XATTR_TRUSTED_PREFIX "trusted."
  #define XATTR_TRUSTED_PREFIX_LEN (sizeof (XATTR_TRUSTED_PREFIX) - 1)
  
  #define XATTR_USER_PREFIX "user."
  #define XATTR_USER_PREFIX_LEN (sizeof (XATTR_USER_PREFIX) - 1)
af4f13605   Mimi Zohar   security: move LS...
32
33
34
35
36
37
38
39
40
41
42
43
44
  /* Security namespace */
  #define XATTR_SELINUX_SUFFIX "selinux"
  #define XATTR_NAME_SELINUX XATTR_SECURITY_PREFIX XATTR_SELINUX_SUFFIX
  
  #define XATTR_SMACK_SUFFIX "SMACK64"
  #define XATTR_SMACK_IPIN "SMACK64IPIN"
  #define XATTR_SMACK_IPOUT "SMACK64IPOUT"
  #define XATTR_NAME_SMACK XATTR_SECURITY_PREFIX XATTR_SMACK_SUFFIX
  #define XATTR_NAME_SMACKIPIN	XATTR_SECURITY_PREFIX XATTR_SMACK_IPIN
  #define XATTR_NAME_SMACKIPOUT	XATTR_SECURITY_PREFIX XATTR_SMACK_IPOUT
  
  #define XATTR_CAPS_SUFFIX "capability"
  #define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX
5b0a2075a   Adrian Bunk   [PATCH] cleanup i...
45
46
  struct inode;
  struct dentry;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
47
48
  
  struct xattr_handler {
bb4354538   Stephen Hemminger   fs: xattr_handler...
49
  	const char *prefix;
431547b3c   Christoph Hellwig   sanitize xattr ha...
50
51
52
53
54
55
56
  	int flags;	/* fs private flags passed back to the handlers */
  	size_t (*list)(struct dentry *dentry, char *list, size_t list_size,
  		       const char *name, size_t name_len, int handler_flags);
  	int (*get)(struct dentry *dentry, const char *name, void *buffer,
  		   size_t size, int handler_flags);
  	int (*set)(struct dentry *dentry, const char *name, const void *buffer,
  		   size_t size, int flags, int handler_flags);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
57
  };
424925940   David P. Quigley   VFS/Security: Rew...
58
  ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t);
8f0cfa52a   David Howells   xattr: add missin...
59
  ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t);
659564c8a   Bill Nottingham   [PATCH] Introduce...
60
  ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
b1ab7e4b2   David P. Quigley   VFS: Factor out p...
61
  int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int);
8f0cfa52a   David Howells   xattr: add missin...
62
63
  int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int);
  int vfs_removexattr(struct dentry *, const char *);
5be196e5f   Christoph Hellwig   [PATCH] add vfs_*...
64

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
65
66
67
68
  ssize_t generic_getxattr(struct dentry *dentry, const char *name, void *buffer, size_t size);
  ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size);
  int generic_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags);
  int generic_removexattr(struct dentry *dentry, const char *name);
5b0a2075a   Adrian Bunk   [PATCH] cleanup i...
69
  #endif  /*  __KERNEL__  */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
70
  #endif	/* _LINUX_XATTR_H */