| /* |
| * Linux Security Module for Chromium OS |
| * |
| * Copyright 2016 Google Inc. All Rights Reserved |
| * |
| * Authors: |
| * Mattias Nissler <mnissler@chromium.org> |
| * |
| * This software is licensed under the terms of the GNU General Public |
| * License version 2, as published by the Free Software Foundation, and |
| * may be copied, distributed, and modified under those terms. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| /* FS feature availability policy for inode. */ |
| enum chromiumos_inode_security_policy { |
| CHROMIUMOS_INODE_POLICY_INHERIT, /* Inherit policy from parent dir */ |
| CHROMIUMOS_INODE_POLICY_ALLOW, |
| CHROMIUMOS_INODE_POLICY_BLOCK, |
| }; |
| |
| /* |
| * Inode security policy types available for use. To add an additional |
| * security policy, simply add a new member here, add the corresponding policy |
| * files in securityfs.c, and associate the files being added with the new enum |
| * member. |
| */ |
| enum chromiumos_inode_security_policy_type { |
| CHROMIUMOS_SYMLINK_TRAVERSAL = 0, |
| CHROMIUMOS_FIFO_ACCESS, |
| CHROMIUMOS_NUMBER_OF_POLICIES, /* Do not add entries after this line. */ |
| }; |
| |
| extern int chromiumos_update_inode_security_policy( |
| struct inode *inode, |
| enum chromiumos_inode_security_policy_type type, |
| enum chromiumos_inode_security_policy policy); |
| int chromiumos_flush_inode_security_policies(struct super_block *sb); |
| |
| extern enum chromiumos_inode_security_policy |
| chromiumos_get_inode_security_policy( |
| struct dentry *dentry, struct inode *inode, |
| enum chromiumos_inode_security_policy_type type); |