1f074036424618c130dacb3464465a8b40bffef5Stephen Smalley/*
2f074036424618c130dacb3464465a8b40bffef5Stephen Smalley * This file describes the class and permission mappings used to
3f074036424618c130dacb3464465a8b40bffef5Stephen Smalley * hide the kernel numbers from userspace by allowing userspace object
4f074036424618c130dacb3464465a8b40bffef5Stephen Smalley * managers to specify a list of classes and permissions.
5f074036424618c130dacb3464465a8b40bffef5Stephen Smalley */
6f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#ifndef _SELINUX_MAPPING_H_
7f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#define _SELINUX_MAPPING_H_
8f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
9f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#include <selinux/selinux.h>
10f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
11f074036424618c130dacb3464465a8b40bffef5Stephen Smalley/*
12f074036424618c130dacb3464465a8b40bffef5Stephen Smalley * Get real, kernel values from mapped values
13f074036424618c130dacb3464465a8b40bffef5Stephen Smalley */
14f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
15f074036424618c130dacb3464465a8b40bffef5Stephen Smalleyextern security_class_t
16f074036424618c130dacb3464465a8b40bffef5Stephen Smalleyunmap_class(security_class_t tclass);
17f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
18f074036424618c130dacb3464465a8b40bffef5Stephen Smalleyextern access_vector_t
19f074036424618c130dacb3464465a8b40bffef5Stephen Smalleyunmap_perm(security_class_t tclass, access_vector_t tperm);
20f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
21f074036424618c130dacb3464465a8b40bffef5Stephen Smalley/*
22f074036424618c130dacb3464465a8b40bffef5Stephen Smalley * Get mapped values from real, kernel values
23f074036424618c130dacb3464465a8b40bffef5Stephen Smalley */
24f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
25f074036424618c130dacb3464465a8b40bffef5Stephen Smalleyextern security_class_t
26f074036424618c130dacb3464465a8b40bffef5Stephen Smalleymap_class(security_class_t kclass);
27f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
28f074036424618c130dacb3464465a8b40bffef5Stephen Smalleyextern access_vector_t
29f074036424618c130dacb3464465a8b40bffef5Stephen Smalleymap_perm(security_class_t tclass, access_vector_t kperm);
30f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
31f074036424618c130dacb3464465a8b40bffef5Stephen Smalleyextern void
32f074036424618c130dacb3464465a8b40bffef5Stephen Smalleymap_decision(security_class_t tclass, struct av_decision *avd);
33f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
34f074036424618c130dacb3464465a8b40bffef5Stephen Smalley/*mapping is not used for embedded build*/
35f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#ifdef DISABLE_AVC
36f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#define unmap_perm(x,y) y
37f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#define unmap_class(x) x
38f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#define map_decision(x,y)
39f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#endif
40f074036424618c130dacb3464465a8b40bffef5Stephen Smalley
41f074036424618c130dacb3464465a8b40bffef5Stephen Smalley#endif				/* _SELINUX_MAPPING_H_ */
42