LCOV - code coverage report
Current view: top level - lkbce/fs/ext2 - acl.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2017-01-25 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /*
       2             :   File: fs/ext2/acl.h
       3             : 
       4             :   (C) 2001 Andreas Gruenbacher, <a.gruenbacher@computer.org>
       5             : */
       6             : 
       7             : #include <linux/posix_acl_xattr.h>
       8             : 
       9             : #define EXT2_ACL_VERSION        0x0001
      10             : 
      11             : typedef struct {
      12             :         __le16          e_tag;
      13             :         __le16          e_perm;
      14             :         __le32          e_id;
      15             : } ext2_acl_entry;
      16             : 
      17             : typedef struct {
      18             :         __le16          e_tag;
      19             :         __le16          e_perm;
      20             : } ext2_acl_entry_short;
      21             : 
      22             : typedef struct {
      23             :         __le32          a_version;
      24             : } ext2_acl_header;
      25             : 
      26             : static inline size_t ext2_acl_size(int count)
      27             : {
      28             :         if (count <= 4) {
      29             :                 return sizeof(ext2_acl_header) +
      30             :                        count * sizeof(ext2_acl_entry_short);
      31             :         } else {
      32             :                 return sizeof(ext2_acl_header) +
      33             :                        4 * sizeof(ext2_acl_entry_short) +
      34             :                        (count - 4) * sizeof(ext2_acl_entry);
      35             :         }
      36             : }
      37             : 
      38             : static inline int ext2_acl_count(size_t size)
      39             : {
      40             :         ssize_t s;
      41             :         size -= sizeof(ext2_acl_header);
      42             :         s = size - 4 * sizeof(ext2_acl_entry_short);
      43             :         if (s < 0) {
      44             :                 if (size % sizeof(ext2_acl_entry_short))
      45             :                         return -1;
      46             :                 return size / sizeof(ext2_acl_entry_short);
      47             :         } else {
      48             :                 if (s % sizeof(ext2_acl_entry))
      49             :                         return -1;
      50             :                 return s / sizeof(ext2_acl_entry) + 4;
      51             :         }
      52             : }
      53             : 
      54             : #ifdef CONFIG_EXT2_FS_POSIX_ACL
      55             : 
      56             : /* acl.c */
      57             : extern int ext2_check_acl (struct inode *, int);
      58             : extern int ext2_acl_chmod (struct inode *);
      59             : extern int ext2_init_acl (struct inode *, struct inode *);
      60             : 
      61             : #else
      62             : #include <linux/sched.h>
      63             : #define ext2_check_acl  NULL
      64             : #define ext2_get_acl    NULL
      65             : #define ext2_set_acl    NULL
      66             : 
      67             : static inline int
      68             : ext2_acl_chmod (struct inode *inode)
      69             : {
      70             :         return 0;
      71             : }
      72             : 
      73             : static inline int ext2_init_acl (struct inode *inode, struct inode *dir)
      74             : {
      75          16 :         return 0;
      76             : }
      77             : #endif
      78             : 

Generated by: LCOV version 1.10