home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / xattr.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.9 KB  |  53 lines

  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. /* Namespaces */
  17. #define XATTR_OS2_PREFIX "os2."
  18. #define XATTR_OS2_PREFIX_LEN (sizeof (XATTR_OS2_PREFIX) - 1)
  19.  
  20. #define XATTR_SECURITY_PREFIX    "security."
  21. #define XATTR_SECURITY_PREFIX_LEN (sizeof (XATTR_SECURITY_PREFIX) - 1)
  22.  
  23. #define XATTR_SYSTEM_PREFIX "system."
  24. #define XATTR_SYSTEM_PREFIX_LEN (sizeof (XATTR_SYSTEM_PREFIX) - 1)
  25.  
  26. #define XATTR_TRUSTED_PREFIX "trusted."
  27. #define XATTR_TRUSTED_PREFIX_LEN (sizeof (XATTR_TRUSTED_PREFIX) - 1)
  28.  
  29. #define XATTR_USER_PREFIX "user."
  30. #define XATTR_USER_PREFIX_LEN (sizeof (XATTR_USER_PREFIX) - 1)
  31.  
  32.  
  33. struct xattr_handler {
  34.     char *prefix;
  35.     size_t (*list)(struct inode *inode, char *list, size_t list_size,
  36.                const char *name, size_t name_len);
  37.     int (*get)(struct inode *inode, const char *name, void *buffer,
  38.            size_t size);
  39.     int (*set)(struct inode *inode, const char *name, const void *buffer,
  40.            size_t size, int flags);
  41. };
  42.  
  43. ssize_t vfs_getxattr(struct dentry *, char *, void *, size_t);
  44. int vfs_setxattr(struct dentry *, char *, void *, size_t, int);
  45. int vfs_removexattr(struct dentry *, char *);
  46.  
  47. ssize_t generic_getxattr(struct dentry *dentry, const char *name, void *buffer, size_t size);
  48. ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size);
  49. int generic_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags);
  50. int generic_removexattr(struct dentry *dentry, const char *name);
  51.  
  52. #endif    /* _LINUX_XATTR_H */
  53.