LCOV - code coverage report
Current view: top level - include/linux - posix_acl_xattr.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 0 2 0.0 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : /*
       3             :   File: linux/posix_acl_xattr.h
       4             : 
       5             :   Extended attribute system call representation of Access Control Lists.
       6             : 
       7             :   Copyright (C) 2000 by Andreas Gruenbacher <a.gruenbacher@computer.org>
       8             :   Copyright (C) 2002 SGI - Silicon Graphics, Inc <linux-xfs@oss.sgi.com>
       9             :  */
      10             : #ifndef _POSIX_ACL_XATTR_H
      11             : #define _POSIX_ACL_XATTR_H
      12             : 
      13             : #include <uapi/linux/xattr.h>
      14             : #include <uapi/linux/posix_acl_xattr.h>
      15             : #include <linux/posix_acl.h>
      16             : 
      17             : static inline size_t
      18             : posix_acl_xattr_size(int count)
      19             : {
      20             :         return (sizeof(struct posix_acl_xattr_header) +
      21             :                 (count * sizeof(struct posix_acl_xattr_entry)));
      22             : }
      23             : 
      24             : static inline int
      25             : posix_acl_xattr_count(size_t size)
      26             : {
      27             :         if (size < sizeof(struct posix_acl_xattr_header))
      28             :                 return -1;
      29             :         size -= sizeof(struct posix_acl_xattr_header);
      30             :         if (size % sizeof(struct posix_acl_xattr_entry))
      31             :                 return -1;
      32             :         return size / sizeof(struct posix_acl_xattr_entry);
      33             : }
      34             : 
      35             : #ifdef CONFIG_FS_POSIX_ACL
      36             : void posix_acl_fix_xattr_from_user(struct user_namespace *mnt_userns,
      37             :                                    void *value, size_t size);
      38             : void posix_acl_fix_xattr_to_user(struct user_namespace *mnt_userns,
      39             :                                  void *value, size_t size);
      40             : #else
      41             : static inline void posix_acl_fix_xattr_from_user(struct user_namespace *mnt_userns,
      42             :                                                  void *value, size_t size)
      43             : {
      44             : }
      45           0 : static inline void posix_acl_fix_xattr_to_user(struct user_namespace *mnt_userns,
      46             :                                                void *value, size_t size)
      47             : {
      48           0 : }
      49             : #endif
      50             : 
      51             : struct posix_acl *posix_acl_from_xattr(struct user_namespace *user_ns, 
      52             :                                        const void *value, size_t size);
      53             : int posix_acl_to_xattr(struct user_namespace *user_ns,
      54             :                        const struct posix_acl *acl, void *buffer, size_t size);
      55             : 
      56             : extern const struct xattr_handler posix_acl_access_xattr_handler;
      57             : extern const struct xattr_handler posix_acl_default_xattr_handler;
      58             : 
      59             : #endif  /* _POSIX_ACL_XATTR_H */

Generated by: LCOV version 1.14