1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * AppArmor security module 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * This file contains AppArmor resource limits function definitions. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Copyright (C) 1998-2008 Novell/SUSE 8*4882a593Smuzhiyun * Copyright 2009-2010 Canonical Ltd. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef __AA_RESOURCE_H 12*4882a593Smuzhiyun #define __AA_RESOURCE_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <linux/resource.h> 15*4882a593Smuzhiyun #include <linux/sched.h> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #include "apparmorfs.h" 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun struct aa_profile; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun /* struct aa_rlimit - rlimit settings for the profile 22*4882a593Smuzhiyun * @mask: which hard limits to set 23*4882a593Smuzhiyun * @limits: rlimit values that override task limits 24*4882a593Smuzhiyun * 25*4882a593Smuzhiyun * AppArmor rlimits are used to set confined task rlimits. Only the 26*4882a593Smuzhiyun * limits specified in @mask will be controlled by apparmor. 27*4882a593Smuzhiyun */ 28*4882a593Smuzhiyun struct aa_rlimit { 29*4882a593Smuzhiyun unsigned int mask; 30*4882a593Smuzhiyun struct rlimit limits[RLIM_NLIMITS]; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun extern struct aa_sfs_entry aa_sfs_entry_rlimit[]; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun int aa_map_resource(int resource); 36*4882a593Smuzhiyun int aa_task_setrlimit(struct aa_label *label, struct task_struct *task, 37*4882a593Smuzhiyun unsigned int resource, struct rlimit *new_rlim); 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun void __aa_transition_rlimits(struct aa_label *old, struct aa_label *new); 40*4882a593Smuzhiyun aa_free_rlimit_rules(struct aa_rlimit * rlims)41*4882a593Smuzhiyunstatic inline void aa_free_rlimit_rules(struct aa_rlimit *rlims) 42*4882a593Smuzhiyun { 43*4882a593Smuzhiyun /* NOP */ 44*4882a593Smuzhiyun } 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #endif /* __AA_RESOURCE_H */ 47