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
12typedef sepol_context_t semanage_context_t;
13typedef sepol_ibendport_t semanage_ibendport_t;
14typedef sepol_ibendport_key_t semanage_ibendport_key_t;
15#define _SEMANAGE_IBENDPORT_DEFINED_
16#define _SEMANAGE_CONTEXT_DEFINED_
17
18typedef semanage_ibendport_t record_t;
19typedef 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
26int 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
32hidden_def(semanage_ibendport_compare)
33
34int semanage_ibendport_compare2(const semanage_ibendport_t *ibendport,
35				const semanage_ibendport_t *ibendport2)
36{
37	return sepol_ibendport_compare2(ibendport, ibendport2);
38}
39
40hidden_def(semanage_ibendport_compare2)
41
42hidden int semanage_ibendport_compare2_qsort(const semanage_ibendport_t **ibendport,
43					     const semanage_ibendport_t **ibendport2)
44{
45	return sepol_ibendport_compare2(*ibendport, *ibendport2);
46}
47
48int semanage_ibendport_key_create(semanage_handle_t *handle,
49				  const char *ibdev_name,
50				  int port,
51				  semanage_ibendport_key_t **key_ptr)
52{
53	return sepol_ibendport_key_create(handle->sepolh, ibdev_name, port, key_ptr);
54}
55
56int semanage_ibendport_key_extract(semanage_handle_t *handle,
57				   const semanage_ibendport_t *ibendport,
58				   semanage_ibendport_key_t **key_ptr)
59{
60	return sepol_ibendport_key_extract(handle->sepolh, ibendport, key_ptr);
61}
62
63hidden_def(semanage_ibendport_key_extract)
64
65void semanage_ibendport_key_free(semanage_ibendport_key_t *key)
66{
67	sepol_ibendport_key_free(key);
68}
69
70hidden_def(semanage_ibendport_key_free)
71
72int semanage_ibendport_get_ibdev_name(semanage_handle_t *handle,
73				      const semanage_ibendport_t *ibendport,
74				      char **ibdev_name_ptr)
75{
76	return sepol_ibendport_get_ibdev_name(handle->sepolh, ibendport, ibdev_name_ptr);
77}
78
79hidden_def(semanage_ibendport_get_ibdev_name)
80
81int semanage_ibendport_set_ibdev_name(semanage_handle_t *handle,
82				      semanage_ibendport_t *ibendport,
83				      const char *ibdev_name)
84{
85	return sepol_ibendport_set_ibdev_name(handle->sepolh, ibendport, ibdev_name);
86}
87
88hidden_def(semanage_ibendport_set_ibdev_name)
89
90int semanage_ibendport_get_port(const semanage_ibendport_t *ibendport)
91{
92	return sepol_ibendport_get_port(ibendport);
93}
94
95hidden_def(semanage_ibendport_get_port)
96
97void semanage_ibendport_set_port(semanage_ibendport_t *ibendport, int port)
98{
99	sepol_ibendport_set_port(ibendport, port);
100}
101
102hidden_def(semanage_ibendport_set_port)
103
104semanage_context_t *semanage_ibendport_get_con(const semanage_ibendport_t *ibendport)
105{
106	return sepol_ibendport_get_con(ibendport);
107}
108
109hidden_def(semanage_ibendport_get_con)
110
111int semanage_ibendport_set_con(semanage_handle_t *handle,
112			       semanage_ibendport_t *ibendport,
113			       semanage_context_t *con)
114{
115	return sepol_ibendport_set_con(handle->sepolh, ibendport, con);
116}
117
118hidden_def(semanage_ibendport_set_con)
119
120int semanage_ibendport_create(semanage_handle_t *handle,
121			      semanage_ibendport_t **ibendport_ptr)
122{
123	return sepol_ibendport_create(handle->sepolh, ibendport_ptr);
124}
125
126hidden_def(semanage_ibendport_create)
127
128int semanage_ibendport_clone(semanage_handle_t *handle,
129			     const semanage_ibendport_t *ibendport,
130			     semanage_ibendport_t **ibendport_ptr)
131{
132	return sepol_ibendport_clone(handle->sepolh, ibendport, ibendport_ptr);
133}
134
135hidden_def(semanage_ibendport_clone)
136
137void semanage_ibendport_free(semanage_ibendport_t *ibendport)
138{
139	sepol_ibendport_free(ibendport);
140}
141
142hidden_def(semanage_ibendport_free)
143
144/*key base functions */
145record_table_t SEMANAGE_IBENDPORT_RTABLE = {
146	.create = semanage_ibendport_create,
147	.key_extract = semanage_ibendport_key_extract,
148	.key_free = semanage_ibendport_key_free,
149	.clone = semanage_ibendport_clone,
150	.compare = semanage_ibendport_compare,
151	.compare2 = semanage_ibendport_compare2,
152	.compare2_qsort = semanage_ibendport_compare2_qsort,
153	.free = semanage_ibendport_free,
154};
155