1b886d83cSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 20ed3b28aSJohn Johansen /* 30ed3b28aSJohn Johansen * AppArmor security module 40ed3b28aSJohn Johansen * 50ed3b28aSJohn Johansen * This file contains AppArmor capability mediation definitions. 60ed3b28aSJohn Johansen * 70ed3b28aSJohn Johansen * Copyright (C) 1998-2008 Novell/SUSE 8dd0c6e86SJohn Johansen * Copyright 2009-2013 Canonical Ltd. 90ed3b28aSJohn Johansen */ 100ed3b28aSJohn Johansen 110ed3b28aSJohn Johansen #ifndef __AA_CAPABILITY_H 120ed3b28aSJohn Johansen #define __AA_CAPABILITY_H 130ed3b28aSJohn Johansen 140ed3b28aSJohn Johansen #include <linux/sched.h> 150ed3b28aSJohn Johansen 1684f1f787SJohn Johansen #include "apparmorfs.h" 1784f1f787SJohn Johansen 18c70c86c4SJohn Johansen struct aa_label; 190ed3b28aSJohn Johansen 200ed3b28aSJohn Johansen /* aa_caps - confinement data for capabilities 210ed3b28aSJohn Johansen * @allowed: capabilities mask 220ed3b28aSJohn Johansen * @audit: caps that are to be audited 23c70c86c4SJohn Johansen * @denied: caps that are explicitly denied 240ed3b28aSJohn Johansen * @quiet: caps that should not be audited 250ed3b28aSJohn Johansen * @kill: caps that when requested will result in the task being killed 260ed3b28aSJohn Johansen * @extended: caps that are subject finer grained mediation 270ed3b28aSJohn Johansen */ 280ed3b28aSJohn Johansen struct aa_caps { 290ed3b28aSJohn Johansen kernel_cap_t allow; 300ed3b28aSJohn Johansen kernel_cap_t audit; 31c70c86c4SJohn Johansen kernel_cap_t denied; 320ed3b28aSJohn Johansen kernel_cap_t quiet; 330ed3b28aSJohn Johansen kernel_cap_t kill; 340ed3b28aSJohn Johansen kernel_cap_t extended; 350ed3b28aSJohn Johansen }; 360ed3b28aSJohn Johansen 37c97204baSJohn Johansen extern struct aa_sfs_entry aa_sfs_entry_caps[]; 3884f1f787SJohn Johansen 39*690f33e1SJohn Johansen int aa_capable(const struct cred *subj_cred, struct aa_label *label, 40*690f33e1SJohn Johansen int cap, unsigned int opts); 410ed3b28aSJohn Johansen aa_free_cap_rules(struct aa_caps * caps)420ed3b28aSJohn Johansenstatic inline void aa_free_cap_rules(struct aa_caps *caps) 430ed3b28aSJohn Johansen { 440ed3b28aSJohn Johansen /* NOP */ 450ed3b28aSJohn Johansen } 460ed3b28aSJohn Johansen 470ed3b28aSJohn Johansen #endif /* __AA_CAPBILITY_H */ 48