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
28LDAP_BEGIN_DECL
29
30/*
31 * backends
32 */
33int
34monitor_subsys_backend_init LDAP_P((
35	BackendDB		*be,
36	monitor_subsys_t	*ms ));
37
38/*
39 * cache
40 */
41extern int
42monitor_cache_cmp LDAP_P((
43	const void		*c1,
44	const void		*c2 ));
45extern int
46monitor_cache_dup LDAP_P((
47	void			*c1,
48	void			*c2 ));
49extern int
50monitor_cache_add LDAP_P((
51	monitor_info_t		*mi,
52	Entry			*e ));
53extern int
54monitor_cache_get LDAP_P((
55	monitor_info_t		*mi,
56	struct berval		*ndn,
57	Entry			**ep ));
58extern int
59monitor_cache_remove LDAP_P((
60	monitor_info_t		*mi,
61	struct berval		*ndn,
62	Entry			**ep ));
63extern int
64monitor_cache_dn2entry LDAP_P((
65	Operation		*op,
66	SlapReply		*rs,
67	struct berval		*ndn,
68	Entry			**ep,
69	Entry			**matched ));
70extern int
71monitor_cache_lock LDAP_P((
72	Entry			*e ));
73extern int
74monitor_cache_release LDAP_P((
75	monitor_info_t		*mi,
76	Entry			*e ));
77
78extern int
79monitor_cache_destroy LDAP_P((
80	monitor_info_t		*mi ));
81
82extern int
83monitor_back_release(
84	Operation *op,
85	Entry *e,
86	int rw );
87
88/*
89 * connections
90 */
91extern int
92monitor_subsys_conn_init LDAP_P((
93	BackendDB		*be,
94	monitor_subsys_t	*ms ));
95
96/*
97 * databases
98 */
99extern int
100monitor_subsys_database_init LDAP_P((
101	BackendDB		*be,
102	monitor_subsys_t	*ms ));
103
104/*
105 * entry
106 */
107extern int
108monitor_entry_update LDAP_P((
109	Operation		*op,
110	SlapReply		*rs,
111	Entry			*e ));
112extern int
113monitor_entry_create LDAP_P((
114	Operation		*op,
115	SlapReply		*rs,
116	struct berval		*ndn,
117	Entry			*e_parent,
118	Entry			**ep ));
119extern int
120monitor_entry_modify LDAP_P((
121	Operation		*op,
122	SlapReply		*rs,
123	Entry			*e ));
124extern int
125monitor_entry_test_flags LDAP_P((
126	monitor_entry_t		*mp,
127	int			cond ));
128extern monitor_entry_t *
129monitor_back_entrypriv_create LDAP_P((
130	void ));
131extern Entry *
132monitor_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 ));
139extern Entry *
140monitor_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 */
150extern int
151monitor_subsys_is_opened LDAP_P((
152	void ));
153extern int
154monitor_back_register_subsys LDAP_P((
155	monitor_subsys_t	*ms ));
156extern int
157monitor_back_register_subsys_late LDAP_P((
158	monitor_subsys_t	*ms ));
159extern int
160monitor_back_register_backend LDAP_P((
161	BackendInfo		*bi ));
162extern int
163monitor_back_register_database LDAP_P((
164	BackendDB		*be,
165	struct berval	*ndn ));
166extern int
167monitor_back_register_overlay_info LDAP_P((
168	slap_overinst		*on ));
169extern int
170monitor_back_register_overlay LDAP_P((
171	BackendDB		*be,
172	struct slap_overinst	*on,
173	struct berval		*ndn_out ));
174extern int
175monitor_back_register_backend_limbo LDAP_P((
176	BackendInfo		*bi ));
177extern int
178monitor_back_register_database_limbo LDAP_P((
179	BackendDB		*be,
180	struct berval		*ndn_out ));
181extern int
182monitor_back_register_overlay_info_limbo LDAP_P((
183	slap_overinst		*on ));
184extern int
185monitor_back_register_overlay_limbo LDAP_P((
186	BackendDB		*be,
187	struct slap_overinst	*on,
188	struct berval		*ndn_out ));
189extern monitor_subsys_t *
190monitor_back_get_subsys LDAP_P((
191	const char		*name ));
192extern monitor_subsys_t *
193monitor_back_get_subsys_by_dn LDAP_P((
194	struct berval		*ndn,
195	int			sub ));
196extern int
197monitor_back_is_configured LDAP_P(( void ));
198extern int
199monitor_back_register_entry LDAP_P((
200	Entry			*e,
201	monitor_callback_t	*cb,
202	monitor_subsys_t	*mss,
203	unsigned long		flags ));
204extern int
205monitor_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 ));
213extern int
214monitor_search2ndn LDAP_P((
215	struct berval		*base,
216	int			scope,
217	struct berval		*filter,
218	struct berval		*ndn ));
219extern int
220monitor_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 ));
227extern int
228monitor_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 ));
234extern int
235monitor_back_unregister_entry LDAP_P((
236	struct berval		*ndn ));
237extern int
238monitor_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 ));
244extern int
245monitor_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 ));
252extern int
253monitor_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 */
263extern int
264monitor_subsys_listener_init LDAP_P((
265	BackendDB		*be,
266	monitor_subsys_t	*ms ));
267
268/*
269 * log
270 */
271extern int
272monitor_subsys_log_init LDAP_P((
273	BackendDB		*be,
274	monitor_subsys_t	*ms ));
275
276/*
277 * operations
278 */
279extern int
280monitor_subsys_ops_init LDAP_P((
281	BackendDB		*be,
282	monitor_subsys_t	*ms ));
283
284/*
285 * overlay
286 */
287extern int
288monitor_subsys_overlay_init LDAP_P((
289	BackendDB		*be,
290	monitor_subsys_t	*ms ));
291
292/*
293 * sent
294 */
295extern int
296monitor_subsys_sent_init LDAP_P((
297	BackendDB		*be,
298	monitor_subsys_t	*ms ));
299
300/*
301 * threads
302 */
303extern int
304monitor_subsys_thread_init LDAP_P((
305	BackendDB		*be,
306	monitor_subsys_t	*ms ));
307
308/*
309 * time
310 */
311extern int monitor_subsys_time_init LDAP_P((
312	BackendDB		*be,
313	monitor_subsys_t	*ms ));
314
315/*
316 * waiters
317 */
318extern int
319monitor_subsys_rww_init LDAP_P((
320	BackendDB		*be,
321	monitor_subsys_t	*ms ));
322
323/*
324 * former external.h
325 */
326
327extern BI_init			monitor_back_initialize;
328
329extern BI_db_init		monitor_back_db_init;
330extern BI_db_open		monitor_back_db_open;
331extern BI_config		monitor_back_config;
332extern BI_db_destroy		monitor_back_db_destroy;
333extern BI_db_config		monitor_back_db_config;
334
335extern BI_op_search		monitor_back_search;
336extern BI_op_compare		monitor_back_compare;
337extern BI_op_modify		monitor_back_modify;
338extern BI_op_bind		monitor_back_bind;
339extern BI_operational		monitor_back_operational;
340
341LDAP_END_DECL
342
343#endif /* _PROTO_BACK_MONITOR */
344
345