• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (C) 2017 Mellanox Technologies Inc. */
2 
3 /* Object: semanage_ibpkey_t (Infiniband Pkey)
4  * Object: semanage_ibpkey_key_t (Infiniband Pkey Key)
5  * Implements: record_t (Database Record)
6  * Implements: record_key_t (Database Record Key)
7  */
8 
9 #include <sepol/context_record.h>
10 #include <sepol/ibpkey_record.h>
11 
12 typedef sepol_context_t semanage_context_t;
13 typedef sepol_ibpkey_t semanage_ibpkey_t;
14 typedef sepol_ibpkey_key_t semanage_ibpkey_key_t;
15 #define _SEMANAGE_IBPKEY_DEFINED_
16 #define _SEMANAGE_CONTEXT_DEFINED_
17 
18 typedef semanage_ibpkey_t record_t;
19 typedef semanage_ibpkey_key_t record_key_t;
20 #define DBASE_RECORD_DEFINED
21 
22 #include "ibpkey_internal.h"
23 #include "handle.h"
24 #include "database.h"
25 
semanage_ibpkey_compare(const semanage_ibpkey_t * ibpkey,const semanage_ibpkey_key_t * key)26 int semanage_ibpkey_compare(const semanage_ibpkey_t *ibpkey,
27 			    const semanage_ibpkey_key_t *key)
28 {
29 	return sepol_ibpkey_compare(ibpkey, key);
30 }
31 
hidden_def(semanage_ibpkey_compare)32 hidden_def(semanage_ibpkey_compare)
33 
34 int semanage_ibpkey_compare2(const semanage_ibpkey_t *ibpkey,
35 			     const semanage_ibpkey_t *ibpkey2)
36 {
37 	return sepol_ibpkey_compare2(ibpkey, ibpkey2);
38 }
39 
hidden_def(semanage_ibpkey_compare2)40 hidden_def(semanage_ibpkey_compare2)
41 
42 hidden int semanage_ibpkey_compare2_qsort(const semanage_ibpkey_t **ibpkey,
43 					  const semanage_ibpkey_t **ibpkey2)
44 {
45 	return sepol_ibpkey_compare2(*ibpkey, *ibpkey2);
46 }
47 
semanage_ibpkey_key_create(semanage_handle_t * handle,const char * subnet_prefix,int low,int high,semanage_ibpkey_key_t ** key_ptr)48 int semanage_ibpkey_key_create(semanage_handle_t *handle,
49 			       const char *subnet_prefix,
50 			       int low, int high,
51 			       semanage_ibpkey_key_t **key_ptr)
52 {
53 	return sepol_ibpkey_key_create(handle->sepolh, subnet_prefix, low, high, key_ptr);
54 }
55 
semanage_ibpkey_key_extract(semanage_handle_t * handle,const semanage_ibpkey_t * ibpkey,semanage_ibpkey_key_t ** key_ptr)56 int semanage_ibpkey_key_extract(semanage_handle_t *handle,
57 				const semanage_ibpkey_t *ibpkey,
58 				semanage_ibpkey_key_t **key_ptr)
59 {
60 	return sepol_ibpkey_key_extract(handle->sepolh, ibpkey, key_ptr);
61 }
62 
hidden_def(semanage_ibpkey_key_extract)63 hidden_def(semanage_ibpkey_key_extract)
64 
65 void semanage_ibpkey_key_free(semanage_ibpkey_key_t *key)
66 {
67 	sepol_ibpkey_key_free(key);
68 }
69 
hidden_def(semanage_ibpkey_key_free)70 hidden_def(semanage_ibpkey_key_free)
71 
72 int semanage_ibpkey_get_subnet_prefix(semanage_handle_t *handle,
73 				      const semanage_ibpkey_t *ibpkey,
74 				      char **subnet_prefix_ptr)
75 {
76 	return sepol_ibpkey_get_subnet_prefix(handle->sepolh, ibpkey, subnet_prefix_ptr);
77 }
78 
hidden_def(semanage_ibpkey_get_subnet_prefix)79 hidden_def(semanage_ibpkey_get_subnet_prefix)
80 
81 uint64_t semanage_ibpkey_get_subnet_prefix_bytes(const semanage_ibpkey_t *ibpkey)
82 {
83 	return sepol_ibpkey_get_subnet_prefix_bytes(ibpkey);
84 }
85 
hidden_def(semanage_ibpkey_get_subnet_prefix_bytes)86 hidden_def(semanage_ibpkey_get_subnet_prefix_bytes)
87 
88 int semanage_ibpkey_set_subnet_prefix(semanage_handle_t *handle,
89 				      semanage_ibpkey_t *ibpkey,
90 				      const char *subnet_prefix)
91 {
92 	return sepol_ibpkey_set_subnet_prefix(handle->sepolh, ibpkey, subnet_prefix);
93 }
94 
hidden_def(semanage_ibpkey_set_subnet_prefix)95 hidden_def(semanage_ibpkey_set_subnet_prefix)
96 
97 void semanage_ibpkey_set_subnet_prefix_bytes(semanage_ibpkey_t *ibpkey,
98 					     uint64_t subnet_prefix)
99 {
100 	return sepol_ibpkey_set_subnet_prefix_bytes(ibpkey, subnet_prefix);
101 }
102 
hidden_def(semanage_ibpkey_set_subnet_prefix_bytes)103 hidden_def(semanage_ibpkey_set_subnet_prefix_bytes)
104 
105 int semanage_ibpkey_get_low(const semanage_ibpkey_t *ibpkey)
106 {
107 	return sepol_ibpkey_get_low(ibpkey);
108 }
109 
hidden_def(semanage_ibpkey_get_low)110 hidden_def(semanage_ibpkey_get_low)
111 
112 int semanage_ibpkey_get_high(const semanage_ibpkey_t *ibpkey)
113 {
114 	return sepol_ibpkey_get_high(ibpkey);
115 }
116 
hidden_def(semanage_ibpkey_get_high)117 hidden_def(semanage_ibpkey_get_high)
118 
119 void semanage_ibpkey_set_pkey(semanage_ibpkey_t *ibpkey, int ibpkey_num)
120 {
121 	sepol_ibpkey_set_pkey(ibpkey, ibpkey_num);
122 }
123 
hidden_def(semanage_ibpkey_set_pkey)124 hidden_def(semanage_ibpkey_set_pkey)
125 
126 void semanage_ibpkey_set_range(semanage_ibpkey_t *ibpkey, int low, int high)
127 {
128 	sepol_ibpkey_set_range(ibpkey, low, high);
129 }
130 
hidden_def(semanage_ibpkey_set_range)131 hidden_def(semanage_ibpkey_set_range)
132 
133 semanage_context_t *semanage_ibpkey_get_con(const semanage_ibpkey_t *ibpkey)
134 {
135 	return sepol_ibpkey_get_con(ibpkey);
136 }
137 
hidden_def(semanage_ibpkey_get_con)138 hidden_def(semanage_ibpkey_get_con)
139 
140 int semanage_ibpkey_set_con(semanage_handle_t *handle,
141 			    semanage_ibpkey_t *ibpkey, semanage_context_t *con)
142 {
143 	return sepol_ibpkey_set_con(handle->sepolh, ibpkey, con);
144 }
145 
hidden_def(semanage_ibpkey_set_con)146 hidden_def(semanage_ibpkey_set_con)
147 
148 int semanage_ibpkey_create(semanage_handle_t *handle,
149 			   semanage_ibpkey_t **ibpkey_ptr)
150 {
151 	return sepol_ibpkey_create(handle->sepolh, ibpkey_ptr);
152 }
153 
hidden_def(semanage_ibpkey_create)154 hidden_def(semanage_ibpkey_create)
155 
156 int semanage_ibpkey_clone(semanage_handle_t *handle,
157 			  const semanage_ibpkey_t *ibpkey,
158 			  semanage_ibpkey_t **ibpkey_ptr)
159 {
160 	return sepol_ibpkey_clone(handle->sepolh, ibpkey, ibpkey_ptr);
161 }
162 
hidden_def(semanage_ibpkey_clone)163 hidden_def(semanage_ibpkey_clone)
164 
165 void semanage_ibpkey_free(semanage_ibpkey_t *ibpkey)
166 {
167 	sepol_ibpkey_free(ibpkey);
168 }
169 
170 hidden_def(semanage_ibpkey_free)
171 
172 /* key base functions */
173 record_table_t SEMANAGE_IBPKEY_RTABLE = {
174 	.create = semanage_ibpkey_create,
175 	.key_extract = semanage_ibpkey_key_extract,
176 	.key_free = semanage_ibpkey_key_free,
177 	.clone = semanage_ibpkey_clone,
178 	.compare = semanage_ibpkey_compare,
179 	.compare2 = semanage_ibpkey_compare2,
180 	.compare2_qsort = semanage_ibpkey_compare2_qsort,
181 	.free = semanage_ibpkey_free,
182 };
183