xref: /aosp_15_r20/external/selinux/libsemanage/src/ibendport_record.c (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1 /*Copyright (C) 2005 Red Hat, Inc. */
2 
3 /*Object: semanage_ibendport_t (Infiniband Pkey)
4  *Object: semanage_ibendport_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/ibendport_record.h>
11 
12 typedef sepol_context_t semanage_context_t;
13 typedef sepol_ibendport_t semanage_ibendport_t;
14 typedef sepol_ibendport_key_t semanage_ibendport_key_t;
15 #define _SEMANAGE_IBENDPORT_DEFINED_
16 #define _SEMANAGE_CONTEXT_DEFINED_
17 
18 typedef semanage_ibendport_t record_t;
19 typedef semanage_ibendport_key_t record_key_t;
20 #define DBASE_RECORD_DEFINED
21 
22 #include "ibendport_internal.h"
23 #include "handle.h"
24 #include "database.h"
25 
semanage_ibendport_compare(const semanage_ibendport_t * ibendport,const semanage_ibendport_key_t * key)26 int semanage_ibendport_compare(const semanage_ibendport_t *ibendport,
27 			       const semanage_ibendport_key_t *key)
28 {
29 	return sepol_ibendport_compare(ibendport, key);
30 }
31 
32 
semanage_ibendport_compare2(const semanage_ibendport_t * ibendport,const semanage_ibendport_t * ibendport2)33 int semanage_ibendport_compare2(const semanage_ibendport_t *ibendport,
34 				const semanage_ibendport_t *ibendport2)
35 {
36 	return sepol_ibendport_compare2(ibendport, ibendport2);
37 }
38 
39 
semanage_ibendport_compare2_qsort(const semanage_ibendport_t ** ibendport,const semanage_ibendport_t ** ibendport2)40  int semanage_ibendport_compare2_qsort(const semanage_ibendport_t **ibendport,
41 					     const semanage_ibendport_t **ibendport2)
42 {
43 	return sepol_ibendport_compare2(*ibendport, *ibendport2);
44 }
45 
semanage_ibendport_key_create(semanage_handle_t * handle,const char * ibdev_name,int port,semanage_ibendport_key_t ** key_ptr)46 int semanage_ibendport_key_create(semanage_handle_t *handle,
47 				  const char *ibdev_name,
48 				  int port,
49 				  semanage_ibendport_key_t **key_ptr)
50 {
51 	return sepol_ibendport_key_create(handle->sepolh, ibdev_name, port, key_ptr);
52 }
53 
semanage_ibendport_key_extract(semanage_handle_t * handle,const semanage_ibendport_t * ibendport,semanage_ibendport_key_t ** key_ptr)54 int semanage_ibendport_key_extract(semanage_handle_t *handle,
55 				   const semanage_ibendport_t *ibendport,
56 				   semanage_ibendport_key_t **key_ptr)
57 {
58 	return sepol_ibendport_key_extract(handle->sepolh, ibendport, key_ptr);
59 }
60 
61 
semanage_ibendport_key_free(semanage_ibendport_key_t * key)62 void semanage_ibendport_key_free(semanage_ibendport_key_t *key)
63 {
64 	sepol_ibendport_key_free(key);
65 }
66 
67 
semanage_ibendport_get_ibdev_name(semanage_handle_t * handle,const semanage_ibendport_t * ibendport,char ** ibdev_name_ptr)68 int semanage_ibendport_get_ibdev_name(semanage_handle_t *handle,
69 				      const semanage_ibendport_t *ibendport,
70 				      char **ibdev_name_ptr)
71 {
72 	return sepol_ibendport_get_ibdev_name(handle->sepolh, ibendport, ibdev_name_ptr);
73 }
74 
75 
semanage_ibendport_set_ibdev_name(semanage_handle_t * handle,semanage_ibendport_t * ibendport,const char * ibdev_name)76 int semanage_ibendport_set_ibdev_name(semanage_handle_t *handle,
77 				      semanage_ibendport_t *ibendport,
78 				      const char *ibdev_name)
79 {
80 	return sepol_ibendport_set_ibdev_name(handle->sepolh, ibendport, ibdev_name);
81 }
82 
83 
semanage_ibendport_get_port(const semanage_ibendport_t * ibendport)84 int semanage_ibendport_get_port(const semanage_ibendport_t *ibendport)
85 {
86 	return sepol_ibendport_get_port(ibendport);
87 }
88 
89 
semanage_ibendport_set_port(semanage_ibendport_t * ibendport,int port)90 void semanage_ibendport_set_port(semanage_ibendport_t *ibendport, int port)
91 {
92 	sepol_ibendport_set_port(ibendport, port);
93 }
94 
95 
semanage_ibendport_get_con(const semanage_ibendport_t * ibendport)96 semanage_context_t *semanage_ibendport_get_con(const semanage_ibendport_t *ibendport)
97 {
98 	return sepol_ibendport_get_con(ibendport);
99 }
100 
101 
semanage_ibendport_set_con(semanage_handle_t * handle,semanage_ibendport_t * ibendport,semanage_context_t * con)102 int semanage_ibendport_set_con(semanage_handle_t *handle,
103 			       semanage_ibendport_t *ibendport,
104 			       semanage_context_t *con)
105 {
106 	return sepol_ibendport_set_con(handle->sepolh, ibendport, con);
107 }
108 
109 
semanage_ibendport_create(semanage_handle_t * handle,semanage_ibendport_t ** ibendport_ptr)110 int semanage_ibendport_create(semanage_handle_t *handle,
111 			      semanage_ibendport_t **ibendport_ptr)
112 {
113 	return sepol_ibendport_create(handle->sepolh, ibendport_ptr);
114 }
115 
116 
semanage_ibendport_clone(semanage_handle_t * handle,const semanage_ibendport_t * ibendport,semanage_ibendport_t ** ibendport_ptr)117 int semanage_ibendport_clone(semanage_handle_t *handle,
118 			     const semanage_ibendport_t *ibendport,
119 			     semanage_ibendport_t **ibendport_ptr)
120 {
121 	return sepol_ibendport_clone(handle->sepolh, ibendport, ibendport_ptr);
122 }
123 
124 
semanage_ibendport_free(semanage_ibendport_t * ibendport)125 void semanage_ibendport_free(semanage_ibendport_t *ibendport)
126 {
127 	sepol_ibendport_free(ibendport);
128 }
129 
130 
131 /*key base functions */
132 record_table_t SEMANAGE_IBENDPORT_RTABLE = {
133 	.create = semanage_ibendport_create,
134 	.key_extract = semanage_ibendport_key_extract,
135 	.key_free = semanage_ibendport_key_free,
136 	.clone = semanage_ibendport_clone,
137 	.compare = semanage_ibendport_compare,
138 	.compare2 = semanage_ibendport_compare2,
139 	.compare2_qsort = semanage_ibendport_compare2_qsort,
140 	.free = semanage_ibendport_free,
141 };
142