xref: /netbsd-src/external/bsd/openldap/dist/servers/slapd/back-monitor/proto-back-monitor.h (revision 549b59ed3ccf0d36d3097190a0db27b770f3a839)
1 /*	$NetBSD: proto-back-monitor.h,v 1.3 2021/08/14 16:15:00 christos Exp $	*/
2 
3 /* $OpenLDAP$ */
4 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
5  *
6  * Copyright 2001-2021 The OpenLDAP Foundation.
7  * Portions Copyright 2001-2003 Pierangelo Masarati.
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted only as authorized by the OpenLDAP
12  * Public License.
13  *
14  * A copy of this license is available in file LICENSE in the
15  * top-level directory of the distribution or, alternatively, at
16  * <http://www.OpenLDAP.org/license.html>.
17  */
18 /* ACKNOWLEDGEMENTS:
19  * This work was initially developed by Pierangelo Masarati for inclusion
20  * in OpenLDAP Software.
21  */
22 
23 #ifndef _PROTO_BACK_MONITOR
24 #define _PROTO_BACK_MONITOR
25 
26 #include <ldap_cdefs.h>
27 
28 LDAP_BEGIN_DECL
29 
30 /*
31  * backends
32  */
33 int
34 monitor_subsys_backend_init LDAP_P((
35 	BackendDB		*be,
36 	monitor_subsys_t	*ms ));
37 
38 /*
39  * cache
40  */
41 extern int
42 monitor_cache_cmp LDAP_P((
43 	const void		*c1,
44 	const void		*c2 ));
45 extern int
46 monitor_cache_dup LDAP_P((
47 	void			*c1,
48 	void			*c2 ));
49 extern int
50 monitor_cache_add LDAP_P((
51 	monitor_info_t		*mi,
52 	Entry			*e ));
53 extern int
54 monitor_cache_get LDAP_P((
55 	monitor_info_t		*mi,
56 	struct berval		*ndn,
57 	Entry			**ep ));
58 extern int
59 monitor_cache_remove LDAP_P((
60 	monitor_info_t		*mi,
61 	struct berval		*ndn,
62 	Entry			**ep ));
63 extern int
64 monitor_cache_dn2entry LDAP_P((
65 	Operation		*op,
66 	SlapReply		*rs,
67 	struct berval		*ndn,
68 	Entry			**ep,
69 	Entry			**matched ));
70 extern int
71 monitor_cache_lock LDAP_P((
72 	Entry			*e ));
73 extern int
74 monitor_cache_release LDAP_P((
75 	monitor_info_t		*mi,
76 	Entry			*e ));
77 
78 extern int
79 monitor_cache_destroy LDAP_P((
80 	monitor_info_t		*mi ));
81 
82 extern int
83 monitor_back_release(
84 	Operation *op,
85 	Entry *e,
86 	int rw );
87 
88 /*
89  * connections
90  */
91 extern int
92 monitor_subsys_conn_init LDAP_P((
93 	BackendDB		*be,
94 	monitor_subsys_t	*ms ));
95 
96 /*
97  * databases
98  */
99 extern int
100 monitor_subsys_database_init LDAP_P((
101 	BackendDB		*be,
102 	monitor_subsys_t	*ms ));
103 
104 /*
105  * entry
106  */
107 extern int
108 monitor_entry_update LDAP_P((
109 	Operation		*op,
110 	SlapReply		*rs,
111 	Entry			*e ));
112 extern int
113 monitor_entry_create LDAP_P((
114 	Operation		*op,
115 	SlapReply		*rs,
116 	struct berval		*ndn,
117 	Entry			*e_parent,
118 	Entry			**ep ));
119 extern int
120 monitor_entry_modify LDAP_P((
121 	Operation		*op,
122 	SlapReply		*rs,
123 	Entry			*e ));
124 extern int
125 monitor_entry_test_flags LDAP_P((
126 	monitor_entry_t		*mp,
127 	int			cond ));
128 extern monitor_entry_t *
129 monitor_back_entrypriv_create LDAP_P((
130 	void ));
131 extern Entry *
132 monitor_back_entry_stub LDAP_P((
133 	struct berval	*pdn,
134 	struct berval	*pndn,
135 	struct berval	*rdn,
136 	ObjectClass		*oc,
137 	struct berval	*create,
138 	struct berval	*modify ));
139 extern Entry *
140 monitor_back_entry_get_unlocked LDAP_P((
141 	struct berval	*ndn ));
142 
143 #define monitor_entrypriv_create monitor_back_entrypriv_create
144 #define monitor_entry_stub monitor_back_entry_stub
145 #define monitor_entry_get_unlocked monitor_back_entry_get_unlocked
146 
147 /*
148  * init
149  */
150 extern int
151 monitor_subsys_is_opened LDAP_P((
152 	void ));
153 extern int
154 monitor_back_register_subsys LDAP_P((
155 	monitor_subsys_t	*ms ));
156 extern int
157 monitor_back_register_subsys_late LDAP_P((
158 	monitor_subsys_t	*ms ));
159 extern int
160 monitor_back_register_backend LDAP_P((
161 	BackendInfo		*bi ));
162 extern int
163 monitor_back_register_database LDAP_P((
164 	BackendDB		*be,
165 	struct berval	*ndn ));
166 extern int
167 monitor_back_register_overlay_info LDAP_P((
168 	slap_overinst		*on ));
169 extern int
170 monitor_back_register_overlay LDAP_P((
171 	BackendDB		*be,
172 	struct slap_overinst	*on,
173 	struct berval		*ndn_out ));
174 extern int
175 monitor_back_register_backend_limbo LDAP_P((
176 	BackendInfo		*bi ));
177 extern int
178 monitor_back_register_database_limbo LDAP_P((
179 	BackendDB		*be,
180 	struct berval		*ndn_out ));
181 extern int
182 monitor_back_register_overlay_info_limbo LDAP_P((
183 	slap_overinst		*on ));
184 extern int
185 monitor_back_register_overlay_limbo LDAP_P((
186 	BackendDB		*be,
187 	struct slap_overinst	*on,
188 	struct berval		*ndn_out ));
189 extern monitor_subsys_t *
190 monitor_back_get_subsys LDAP_P((
191 	const char		*name ));
192 extern monitor_subsys_t *
193 monitor_back_get_subsys_by_dn LDAP_P((
194 	struct berval		*ndn,
195 	int			sub ));
196 extern int
197 monitor_back_is_configured LDAP_P(( void ));
198 extern int
199 monitor_back_register_entry LDAP_P((
200 	Entry			*e,
201 	monitor_callback_t	*cb,
202 	monitor_subsys_t	*mss,
203 	unsigned long		flags ));
204 extern int
205 monitor_back_register_entry_parent LDAP_P((
206 	Entry			*e,
207 	monitor_callback_t	*cb,
208 	monitor_subsys_t	*mss,
209 	unsigned long		flags,
210 	struct berval		*base,
211 	int			scope,
212 	struct berval		*filter ));
213 extern int
214 monitor_search2ndn LDAP_P((
215 	struct berval		*base,
216 	int			scope,
217 	struct berval		*filter,
218 	struct berval		*ndn ));
219 extern int
220 monitor_back_register_entry_attrs LDAP_P((
221 	struct berval		*ndn,
222 	Attribute		*a,
223 	monitor_callback_t	*cb,
224 	struct berval		*base,
225 	int			scope,
226 	struct berval		*filter ));
227 extern int
228 monitor_back_register_entry_callback LDAP_P((
229 	struct berval		*ndn,
230 	monitor_callback_t	*cb,
231 	struct berval		*base,
232 	int			scope,
233 	struct berval		*filter ));
234 extern int
235 monitor_back_unregister_entry LDAP_P((
236 	struct berval		*ndn ));
237 extern int
238 monitor_back_unregister_entry_parent LDAP_P((
239 	struct berval		*nrdn,
240 	monitor_callback_t	*target_cb,
241 	struct berval		*base,
242 	int			scope,
243 	struct berval		*filter ));
244 extern int
245 monitor_back_unregister_entry_attrs LDAP_P((
246 	struct berval		*ndn,
247 	Attribute		*a,
248 	monitor_callback_t	*cb,
249 	struct berval		*base,
250 	int			scope,
251 	struct berval		*filter ));
252 extern int
253 monitor_back_unregister_entry_callback LDAP_P((
254 	struct berval		*ndn,
255 	monitor_callback_t	*cb,
256 	struct berval		*base,
257 	int			scope,
258 	struct berval		*filter ));
259 
260 /*
261  * listener
262  */
263 extern int
264 monitor_subsys_listener_init LDAP_P((
265 	BackendDB		*be,
266 	monitor_subsys_t	*ms ));
267 
268 /*
269  * log
270  */
271 extern int
272 monitor_subsys_log_init LDAP_P((
273 	BackendDB		*be,
274 	monitor_subsys_t	*ms ));
275 
276 /*
277  * operations
278  */
279 extern int
280 monitor_subsys_ops_init LDAP_P((
281 	BackendDB		*be,
282 	monitor_subsys_t	*ms ));
283 
284 /*
285  * overlay
286  */
287 extern int
288 monitor_subsys_overlay_init LDAP_P((
289 	BackendDB		*be,
290 	monitor_subsys_t	*ms ));
291 
292 /*
293  * sent
294  */
295 extern int
296 monitor_subsys_sent_init LDAP_P((
297 	BackendDB		*be,
298 	monitor_subsys_t	*ms ));
299 
300 /*
301  * threads
302  */
303 extern int
304 monitor_subsys_thread_init LDAP_P((
305 	BackendDB		*be,
306 	monitor_subsys_t	*ms ));
307 
308 /*
309  * time
310  */
311 extern int monitor_subsys_time_init LDAP_P((
312 	BackendDB		*be,
313 	monitor_subsys_t	*ms ));
314 
315 /*
316  * waiters
317  */
318 extern int
319 monitor_subsys_rww_init LDAP_P((
320 	BackendDB		*be,
321 	monitor_subsys_t	*ms ));
322 
323 /*
324  * former external.h
325  */
326 
327 extern BI_init			monitor_back_initialize;
328 
329 extern BI_db_init		monitor_back_db_init;
330 extern BI_db_open		monitor_back_db_open;
331 extern BI_config		monitor_back_config;
332 extern BI_db_destroy		monitor_back_db_destroy;
333 extern BI_db_config		monitor_back_db_config;
334 
335 extern BI_op_search		monitor_back_search;
336 extern BI_op_compare		monitor_back_compare;
337 extern BI_op_modify		monitor_back_modify;
338 extern BI_op_bind		monitor_back_bind;
339 extern BI_operational		monitor_back_operational;
340 
341 LDAP_END_DECL
342 
343 #endif /* _PROTO_BACK_MONITOR */
344 
345