linux/include/linux/evm.h
<<
>>
Prefs
   1/*
   2 * evm.h
   3 *
   4 * Copyright (c) 2009 IBM Corporation
   5 * Author: Mimi Zohar <zohar@us.ibm.com>
   6 */
   7
   8#ifndef _LINUX_EVM_H
   9#define _LINUX_EVM_H
  10
  11#include <linux/integrity.h>
  12#include <linux/xattr.h>
  13
  14struct integrity_iint_cache;
  15
  16#ifdef CONFIG_EVM
  17extern enum integrity_status evm_verifyxattr(struct dentry *dentry,
  18                                             const char *xattr_name,
  19                                             void *xattr_value,
  20                                             size_t xattr_value_len,
  21                                             struct integrity_iint_cache *iint);
  22extern int evm_inode_setattr(struct dentry *dentry, struct iattr *attr);
  23extern void evm_inode_post_setattr(struct dentry *dentry, int ia_valid);
  24extern int evm_inode_setxattr(struct dentry *dentry, const char *name,
  25                              const void *value, size_t size);
  26extern void evm_inode_post_setxattr(struct dentry *dentry,
  27                                    const char *xattr_name,
  28                                    const void *xattr_value,
  29                                    size_t xattr_value_len);
  30extern int evm_inode_removexattr(struct dentry *dentry, const char *xattr_name);
  31extern void evm_inode_post_removexattr(struct dentry *dentry,
  32                                       const char *xattr_name);
  33extern int evm_inode_init_security(struct inode *inode,
  34                                   const struct xattr *xattr_array,
  35                                   struct xattr *evm);
  36#ifdef CONFIG_FS_POSIX_ACL
  37extern int posix_xattr_acl(const char *xattrname);
  38#else
  39static inline int posix_xattr_acl(const char *xattrname)
  40{
  41        return 0;
  42}
  43#endif
  44#else
  45#ifdef CONFIG_INTEGRITY
  46static inline enum integrity_status evm_verifyxattr(struct dentry *dentry,
  47                                                    const char *xattr_name,
  48                                                    void *xattr_value,
  49                                                    size_t xattr_value_len,
  50                                        struct integrity_iint_cache *iint)
  51{
  52        return INTEGRITY_UNKNOWN;
  53}
  54#endif
  55
  56static inline int evm_inode_setattr(struct dentry *dentry, struct iattr *attr)
  57{
  58        return 0;
  59}
  60
  61static inline void evm_inode_post_setattr(struct dentry *dentry, int ia_valid)
  62{
  63        return;
  64}
  65
  66static inline int evm_inode_setxattr(struct dentry *dentry, const char *name,
  67                                     const void *value, size_t size)
  68{
  69        return 0;
  70}
  71
  72static inline void evm_inode_post_setxattr(struct dentry *dentry,
  73                                           const char *xattr_name,
  74                                           const void *xattr_value,
  75                                           size_t xattr_value_len)
  76{
  77        return;
  78}
  79
  80static inline int evm_inode_removexattr(struct dentry *dentry,
  81                                        const char *xattr_name)
  82{
  83        return 0;
  84}
  85
  86static inline void evm_inode_post_removexattr(struct dentry *dentry,
  87                                              const char *xattr_name)
  88{
  89        return;
  90}
  91
  92static inline int evm_inode_init_security(struct inode *inode,
  93                                          const struct xattr *xattr_array,
  94                                          struct xattr *evm)
  95{
  96        return 0;
  97}
  98
  99#endif /* CONFIG_EVM */
 100#endif /* LINUX_EVM_H */
 101