1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Implementation of the security services. |
4 | * |
5 | * Author : Stephen Smalley, <stephen.smalley.work@gmail.com> |
6 | */ |
7 | #ifndef _SS_SERVICES_H_ |
8 | #define _SS_SERVICES_H_ |
9 | |
10 | #include "policydb.h" |
11 | |
12 | /* Mapping for a single class */ |
13 | struct selinux_mapping { |
14 | u16 value; /* policy value for class */ |
15 | u16 num_perms; /* number of permissions in class */ |
16 | u32 perms[sizeof(u32) * 8]; /* policy values for permissions */ |
17 | }; |
18 | |
19 | /* Map for all of the classes, with array size */ |
20 | struct selinux_map { |
21 | struct selinux_mapping *mapping; /* indexed by class */ |
22 | u16 size; /* array size of mapping */ |
23 | }; |
24 | |
25 | struct selinux_policy { |
26 | struct sidtab *sidtab; |
27 | struct policydb policydb; |
28 | struct selinux_map map; |
29 | u32 latest_granting; |
30 | } __randomize_layout; |
31 | |
32 | struct convert_context_args { |
33 | struct policydb *oldp; |
34 | struct policydb *newp; |
35 | }; |
36 | |
37 | void services_compute_xperms_drivers(struct extended_perms *xperms, |
38 | struct avtab_node *node); |
39 | void services_compute_xperms_decision(struct extended_perms_decision *xpermd, |
40 | struct avtab_node *node); |
41 | |
42 | int services_convert_context(struct convert_context_args *args, |
43 | struct context *oldc, struct context *newc, |
44 | gfp_t gfp_flags); |
45 | |
46 | #endif /* _SS_SERVICES_H_ */ |
47 | |