• 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 
32 
semanage_ibpkey_compare2(const semanage_ibpkey_t * ibpkey,const semanage_ibpkey_t * ibpkey2)33 int semanage_ibpkey_compare2(const semanage_ibpkey_t *ibpkey,
34 			     const semanage_ibpkey_t *ibpkey2)
35 {
36 	return sepol_ibpkey_compare2(ibpkey, ibpkey2);
37 }
38 
39 
semanage_ibpkey_compare2_qsort(const semanage_ibpkey_t ** ibpkey,const semanage_ibpkey_t ** ibpkey2)40  int semanage_ibpkey_compare2_qsort(const semanage_ibpkey_t **ibpkey,
41 					  const semanage_ibpkey_t **ibpkey2)
42 {
43 	return sepol_ibpkey_compare2(*ibpkey, *ibpkey2);
44 }
45 
semanage_ibpkey_key_create(semanage_handle_t * handle,const char * subnet_prefix,int low,int high,semanage_ibpkey_key_t ** key_ptr)46 int semanage_ibpkey_key_create(semanage_handle_t *handle,
47 			       const char *subnet_prefix,
48 			       int low, int high,
49 			       semanage_ibpkey_key_t **key_ptr)
50 {
51 	return sepol_ibpkey_key_create(handle->sepolh, subnet_prefix, low, high, key_ptr);
52 }
53 
semanage_ibpkey_key_extract(semanage_handle_t * handle,const semanage_ibpkey_t * ibpkey,semanage_ibpkey_key_t ** key_ptr)54 int semanage_ibpkey_key_extract(semanage_handle_t *handle,
55 				const semanage_ibpkey_t *ibpkey,
56 				semanage_ibpkey_key_t **key_ptr)
57 {
58 	return sepol_ibpkey_key_extract(handle->sepolh, ibpkey, key_ptr);
59 }
60 
61 
semanage_ibpkey_key_free(semanage_ibpkey_key_t * key)62 void semanage_ibpkey_key_free(semanage_ibpkey_key_t *key)
63 {
64 	sepol_ibpkey_key_free(key);
65 }
66 
67 
semanage_ibpkey_get_subnet_prefix(semanage_handle_t * handle,const semanage_ibpkey_t * ibpkey,char ** subnet_prefix_ptr)68 int semanage_ibpkey_get_subnet_prefix(semanage_handle_t *handle,
69 				      const semanage_ibpkey_t *ibpkey,
70 				      char **subnet_prefix_ptr)
71 {
72 	return sepol_ibpkey_get_subnet_prefix(handle->sepolh, ibpkey, subnet_prefix_ptr);
73 }
74 
75 
semanage_ibpkey_get_subnet_prefix_bytes(const semanage_ibpkey_t * ibpkey)76 uint64_t semanage_ibpkey_get_subnet_prefix_bytes(const semanage_ibpkey_t *ibpkey)
77 {
78 	return sepol_ibpkey_get_subnet_prefix_bytes(ibpkey);
79 }
80 
81 
semanage_ibpkey_set_subnet_prefix(semanage_handle_t * handle,semanage_ibpkey_t * ibpkey,const char * subnet_prefix)82 int semanage_ibpkey_set_subnet_prefix(semanage_handle_t *handle,
83 				      semanage_ibpkey_t *ibpkey,
84 				      const char *subnet_prefix)
85 {
86 	return sepol_ibpkey_set_subnet_prefix(handle->sepolh, ibpkey, subnet_prefix);
87 }
88 
89 
semanage_ibpkey_set_subnet_prefix_bytes(semanage_ibpkey_t * ibpkey,uint64_t subnet_prefix)90 void semanage_ibpkey_set_subnet_prefix_bytes(semanage_ibpkey_t *ibpkey,
91 					     uint64_t subnet_prefix)
92 {
93 	return sepol_ibpkey_set_subnet_prefix_bytes(ibpkey, subnet_prefix);
94 }
95 
96 
semanage_ibpkey_get_low(const semanage_ibpkey_t * ibpkey)97 int semanage_ibpkey_get_low(const semanage_ibpkey_t *ibpkey)
98 {
99 	return sepol_ibpkey_get_low(ibpkey);
100 }
101 
102 
semanage_ibpkey_get_high(const semanage_ibpkey_t * ibpkey)103 int semanage_ibpkey_get_high(const semanage_ibpkey_t *ibpkey)
104 {
105 	return sepol_ibpkey_get_high(ibpkey);
106 }
107 
108 
semanage_ibpkey_set_pkey(semanage_ibpkey_t * ibpkey,int ibpkey_num)109 void semanage_ibpkey_set_pkey(semanage_ibpkey_t *ibpkey, int ibpkey_num)
110 {
111 	sepol_ibpkey_set_pkey(ibpkey, ibpkey_num);
112 }
113 
114 
semanage_ibpkey_set_range(semanage_ibpkey_t * ibpkey,int low,int high)115 void semanage_ibpkey_set_range(semanage_ibpkey_t *ibpkey, int low, int high)
116 {
117 	sepol_ibpkey_set_range(ibpkey, low, high);
118 }
119 
120 
semanage_ibpkey_get_con(const semanage_ibpkey_t * ibpkey)121 semanage_context_t *semanage_ibpkey_get_con(const semanage_ibpkey_t *ibpkey)
122 {
123 	return sepol_ibpkey_get_con(ibpkey);
124 }
125 
126 
semanage_ibpkey_set_con(semanage_handle_t * handle,semanage_ibpkey_t * ibpkey,semanage_context_t * con)127 int semanage_ibpkey_set_con(semanage_handle_t *handle,
128 			    semanage_ibpkey_t *ibpkey, semanage_context_t *con)
129 {
130 	return sepol_ibpkey_set_con(handle->sepolh, ibpkey, con);
131 }
132 
133 
semanage_ibpkey_create(semanage_handle_t * handle,semanage_ibpkey_t ** ibpkey_ptr)134 int semanage_ibpkey_create(semanage_handle_t *handle,
135 			   semanage_ibpkey_t **ibpkey_ptr)
136 {
137 	return sepol_ibpkey_create(handle->sepolh, ibpkey_ptr);
138 }
139 
140 
semanage_ibpkey_clone(semanage_handle_t * handle,const semanage_ibpkey_t * ibpkey,semanage_ibpkey_t ** ibpkey_ptr)141 int semanage_ibpkey_clone(semanage_handle_t *handle,
142 			  const semanage_ibpkey_t *ibpkey,
143 			  semanage_ibpkey_t **ibpkey_ptr)
144 {
145 	return sepol_ibpkey_clone(handle->sepolh, ibpkey, ibpkey_ptr);
146 }
147 
148 
semanage_ibpkey_free(semanage_ibpkey_t * ibpkey)149 void semanage_ibpkey_free(semanage_ibpkey_t *ibpkey)
150 {
151 	sepol_ibpkey_free(ibpkey);
152 }
153 
154 
155 /* key base functions */
156 record_table_t SEMANAGE_IBPKEY_RTABLE = {
157 	.create = semanage_ibpkey_create,
158 	.key_extract = semanage_ibpkey_key_extract,
159 	.key_free = semanage_ibpkey_key_free,
160 	.clone = semanage_ibpkey_clone,
161 	.compare = semanage_ibpkey_compare,
162 	.compare2 = semanage_ibpkey_compare2,
163 	.compare2_qsort = semanage_ibpkey_compare2_qsort,
164 	.free = semanage_ibpkey_free,
165 };
166