aboutsummaryrefslogtreecommitdiffstats
path: root/security/selinux/include/security.h
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /security/selinux/include/security.h
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'security/selinux/include/security.h')
-rw-r--r--security/selinux/include/security.h36
1 files changed, 31 insertions, 5 deletions
diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h
index 1f7c2491d3dc..3ba4feba048a 100644
--- a/security/selinux/include/security.h
+++ b/security/selinux/include/security.h
@@ -8,7 +8,9 @@
8#ifndef _SELINUX_SECURITY_H_ 8#ifndef _SELINUX_SECURITY_H_
9#define _SELINUX_SECURITY_H_ 9#define _SELINUX_SECURITY_H_
10 10
11#include <linux/dcache.h>
11#include <linux/magic.h> 12#include <linux/magic.h>
13#include <linux/types.h>
12#include "flask.h" 14#include "flask.h"
13 15
14#define SECSID_NULL 0x00000000 /* unspecified SID */ 16#define SECSID_NULL 0x00000000 /* unspecified SID */
@@ -27,13 +29,15 @@
27#define POLICYDB_VERSION_POLCAP 22 29#define POLICYDB_VERSION_POLCAP 22
28#define POLICYDB_VERSION_PERMISSIVE 23 30#define POLICYDB_VERSION_PERMISSIVE 23
29#define POLICYDB_VERSION_BOUNDARY 24 31#define POLICYDB_VERSION_BOUNDARY 24
32#define POLICYDB_VERSION_FILENAME_TRANS 25
33#define POLICYDB_VERSION_ROLETRANS 26
30 34
31/* Range of policy versions we understand*/ 35/* Range of policy versions we understand*/
32#define POLICYDB_VERSION_MIN POLICYDB_VERSION_BASE 36#define POLICYDB_VERSION_MIN POLICYDB_VERSION_BASE
33#ifdef CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX 37#ifdef CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX
34#define POLICYDB_VERSION_MAX CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX_VALUE 38#define POLICYDB_VERSION_MAX CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX_VALUE
35#else 39#else
36#define POLICYDB_VERSION_MAX POLICYDB_VERSION_BOUNDARY 40#define POLICYDB_VERSION_MAX POLICYDB_VERSION_ROLETRANS
37#endif 41#endif
38 42
39/* Mask for just the mount related flags */ 43/* Mask for just the mount related flags */
@@ -82,6 +86,8 @@ extern int selinux_policycap_openperm;
82int security_mls_enabled(void); 86int security_mls_enabled(void);
83 87
84int security_load_policy(void *data, size_t len); 88int security_load_policy(void *data, size_t len);
89int security_read_policy(void **data, size_t *len);
90size_t security_policydb_len(void);
85 91
86int security_policycap_supported(unsigned int req_cap); 92int security_policycap_supported(unsigned int req_cap);
87 93
@@ -103,11 +109,11 @@ void security_compute_av(u32 ssid, u32 tsid,
103void security_compute_av_user(u32 ssid, u32 tsid, 109void security_compute_av_user(u32 ssid, u32 tsid,
104 u16 tclass, struct av_decision *avd); 110 u16 tclass, struct av_decision *avd);
105 111
106int security_transition_sid(u32 ssid, u32 tsid, 112int security_transition_sid(u32 ssid, u32 tsid, u16 tclass,
107 u16 tclass, u32 *out_sid); 113 const struct qstr *qstr, u32 *out_sid);
108 114
109int security_transition_sid_user(u32 ssid, u32 tsid, 115int security_transition_sid_user(u32 ssid, u32 tsid, u16 tclass,
110 u16 tclass, u32 *out_sid); 116 const char *objname, u32 *out_sid);
111 117
112int security_member_sid(u32 ssid, u32 tsid, 118int security_member_sid(u32 ssid, u32 tsid,
113 u16 tclass, u32 *out_sid); 119 u16 tclass, u32 *out_sid);
@@ -191,5 +197,25 @@ static inline int security_netlbl_sid_to_secattr(u32 sid,
191 197
192const char *security_get_initial_sid_context(u32 sid); 198const char *security_get_initial_sid_context(u32 sid);
193 199
200/*
201 * status notifier using mmap interface
202 */
203extern struct page *selinux_kernel_status_page(void);
204
205#define SELINUX_KERNEL_STATUS_VERSION 1
206struct selinux_kernel_status {
207 u32 version; /* version number of thie structure */
208 u32 sequence; /* sequence number of seqlock logic */
209 u32 enforcing; /* current setting of enforcing mode */
210 u32 policyload; /* times of policy reloaded */
211 u32 deny_unknown; /* current setting of deny_unknown */
212 /*
213 * The version > 0 supports above members.
214 */
215} __attribute__((packed));
216
217extern void selinux_status_update_setenforce(int enforcing);
218extern void selinux_status_update_policyload(int seqno);
219
194#endif /* _SELINUX_SECURITY_H_ */ 220#endif /* _SELINUX_SECURITY_H_ */
195 221