Remove building with NOCRYPTO option
[minix.git] / external / bsd / dhcp / dist / includes / omapip / omapip.h
blobe4ad7e5e39114273ce19a63a1928f638f6e73786
1 /* $NetBSD: omapip.h,v 1.1.1.3 2014/07/12 11:57:57 spz Exp $ */
2 /* omapip.h
4 Definitions for the object management API and protocol... */
6 /*
7 * Copyright (c) 2009,2013-2014 by Internet Systems Consortium, Inc. ("ISC")
8 * Copyright (c) 2004,2007 by Internet Systems Consortium, Inc. ("ISC")
9 * Copyright (c) 1996-2003 by Internet Software Consortium
11 * Permission to use, copy, modify, and distribute this software for any
12 * purpose with or without fee is hereby granted, provided that the above
13 * copyright notice and this permission notice appear in all copies.
15 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
16 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
18 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
20 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
21 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 * Internet Systems Consortium, Inc.
24 * 950 Charter Street
25 * Redwood City, CA 94063
26 * <info@isc.org>
27 * https://www.isc.org/
31 #ifndef _OMAPIP_H_
32 #define _OMAPIP_H_
33 #include "result.h"
34 #include <stdarg.h>
36 #include <dns/tsec.h>
38 typedef unsigned int omapi_handle_t;
40 struct __omapi_object;
41 typedef struct __omapi_object omapi_object_t;
43 typedef enum {
44 omapi_datatype_int,
45 omapi_datatype_string,
46 omapi_datatype_data,
47 omapi_datatype_object
48 } omapi_datatype_t;
50 typedef struct {
51 int refcnt;
52 omapi_datatype_t type;
53 union {
54 struct {
55 unsigned len;
56 #define OMAPI_TYPED_DATA_NOBUFFER_LEN (sizeof (int) + \
57 sizeof (omapi_datatype_t) + \
58 sizeof (int))
59 unsigned char value [1];
60 } buffer;
61 #define OMAPI_TYPED_DATA_OBJECT_LEN (sizeof (int) + \
62 sizeof (omapi_datatype_t) + \
63 sizeof (omapi_object_t *))
64 omapi_object_t *object;
65 #define OMAPI_TYPED_DATA_REF_LEN (sizeof (int) + \
66 sizeof (omapi_datatype_t) + \
67 3 * sizeof (void *))
68 struct {
69 void *ptr;
70 isc_result_t (*reference) (void *,
71 void *, const char *, int);
72 isc_result_t (*dereference) (void *,
73 const char *, int);
74 } ref;
75 #define OMAPI_TYPED_DATA_INT_LEN (sizeof (int) + \
76 sizeof (omapi_datatype_t) + \
77 sizeof (int))
78 int integer;
79 } u;
80 } omapi_typed_data_t;
82 typedef struct {
83 int refcnt;
84 unsigned len;
85 #define OMAPI_DATA_STRING_EMPTY_SIZE (2 * sizeof (int))
86 unsigned char value [1];
87 } omapi_data_string_t;
89 typedef struct {
90 int refcnt;
91 omapi_data_string_t *name;
92 omapi_typed_data_t *value;
93 } omapi_value_t;
95 typedef struct __omapi_object_type_t {
96 const char *name;
97 struct __omapi_object_type_t *next;
99 isc_result_t (*set_value) (omapi_object_t *, omapi_object_t *,
100 omapi_data_string_t *,
101 omapi_typed_data_t *);
102 isc_result_t (*get_value) (omapi_object_t *,
103 omapi_object_t *,
104 omapi_data_string_t *, omapi_value_t **);
105 isc_result_t (*destroy) (omapi_object_t *, const char *, int);
106 isc_result_t (*signal_handler) (omapi_object_t *,
107 const char *, va_list);
108 isc_result_t (*stuff_values) (omapi_object_t *,
109 omapi_object_t *, omapi_object_t *);
110 isc_result_t (*lookup) (omapi_object_t **, omapi_object_t *,
111 omapi_object_t *);
112 isc_result_t (*create) (omapi_object_t **, omapi_object_t *);
113 isc_result_t (*remove) (omapi_object_t *, omapi_object_t *);
114 isc_result_t (*freer) (omapi_object_t *, const char *, int);
115 isc_result_t (*allocator) (omapi_object_t **, const char *, int);
116 isc_result_t (*sizer) (size_t);
117 size_t size;
118 int rc_flag;
119 isc_result_t (*initialize) (omapi_object_t *, const char *, int);
120 } omapi_object_type_t;
122 #define OMAPI_OBJECT_PREAMBLE \
123 omapi_object_type_t *type; \
124 int refcnt; \
125 omapi_handle_t handle; \
126 omapi_object_t *outer, *inner
128 /* The omapi handle structure. */
129 struct __omapi_object {
130 OMAPI_OBJECT_PREAMBLE;
133 /* The port on which applications should listen for OMAPI connections. */
134 #define OMAPI_PROTOCOL_PORT 7911
136 typedef struct {
137 unsigned addrtype;
138 unsigned addrlen;
139 unsigned char address [16];
140 unsigned port;
141 } omapi_addr_t;
143 typedef struct {
144 int refcnt;
145 unsigned count;
146 omapi_addr_t *addresses;
147 } omapi_addr_list_t;
149 typedef struct auth_key {
150 OMAPI_OBJECT_PREAMBLE;
151 char *name;
152 char *algorithm;
153 omapi_data_string_t *key;
154 dns_tsec_t *tsec_key;
155 } omapi_auth_key_t;
157 #define OMAPI_CREATE 1
158 #define OMAPI_UPDATE 2
159 #define OMAPI_EXCL 4
160 #define OMAPI_NOTIFY_PROTOCOL 8
162 #define OMAPI_OBJECT_ALLOC(name, stype, type) \
163 isc_result_t name##_allocate (stype **p, const char *file, int line) \
165 return omapi_object_allocate ((omapi_object_t **)p, \
166 type, 0, file, line); \
169 isc_result_t name##_reference (stype **pptr, stype *ptr, \
170 const char *file, int line) \
172 return omapi_object_reference ((omapi_object_t **)pptr, \
173 (omapi_object_t *)ptr, file, line); \
176 isc_result_t name##_dereference (stype **ptr, const char *file, int line) \
178 return omapi_object_dereference ((omapi_object_t **)ptr, file, line); \
181 #define OMAPI_OBJECT_ALLOC_DECL(name, stype, type) \
182 isc_result_t name##_allocate (stype **p, const char *file, int line); \
183 isc_result_t name##_reference (stype **pptr, stype *ptr, \
184 const char *file, int line); \
185 isc_result_t name##_dereference (stype **ptr, const char *file, int line);
187 typedef isc_result_t (*omapi_array_ref_t) (char **, char *, const char *, int);
188 typedef isc_result_t (*omapi_array_deref_t) (char **, const char *, int);
190 /* An extensible array type. */
191 typedef struct {
192 char **data;
193 omapi_array_ref_t ref;
194 omapi_array_deref_t deref;
195 int count;
196 int max;
197 } omapi_array_t;
199 #define OMAPI_ARRAY_TYPE(name, stype) \
200 isc_result_t name##_array_allocate (omapi_array_t **p, \
201 const char *file, int line) \
203 return (omapi_array_allocate \
204 (p, \
205 (omapi_array_ref_t)name##_reference, \
206 (omapi_array_deref_t)name##_dereference, \
207 file, line)); \
210 isc_result_t name##_array_free (omapi_array_t **p, \
211 const char *file, int line) \
213 return omapi_array_free (p, file, line); \
216 isc_result_t name##_array_extend (omapi_array_t *pptr, stype *ptr, int *index,\
217 const char *file, int line) \
219 return omapi_array_extend (pptr, (char *)ptr, index, file, line); \
222 isc_result_t name##_array_set (omapi_array_t *pptr, stype *ptr, int index, \
223 const char *file, int line) \
225 return omapi_array_set (pptr, (char *)ptr, index, file, line); \
228 isc_result_t name##_array_lookup (stype **ptr, omapi_array_t *pptr, \
229 int index, const char *file, int line) \
231 return omapi_array_lookup ((char **)ptr, pptr, index, file, line); \
234 #define OMAPI_ARRAY_TYPE_DECL(name, stype) \
235 isc_result_t name##_array_allocate (omapi_array_t **, const char *, int); \
236 isc_result_t name##_array_free (omapi_array_t **, const char *, int); \
237 isc_result_t name##_array_extend (omapi_array_t *, stype *, int *, \
238 const char *, int); \
239 isc_result_t name##_array_set (omapi_array_t *, \
240 stype *, int, const char *, int); \
241 isc_result_t name##_array_lookup (stype **, \
242 omapi_array_t *, int, const char *, int)
244 #define omapi_array_foreach_begin(array, stype, var) \
246 int omapi_array_foreach_index; \
247 stype *var = (stype *)0; \
248 for (omapi_array_foreach_index = 0; \
249 array && \
250 omapi_array_foreach_index < (array) -> count; \
251 omapi_array_foreach_index++) { \
252 if ((array) -> data [omapi_array_foreach_index]) { \
253 ((*(array) -> ref) \
254 ((char **)&var, \
255 (array) -> data [omapi_array_foreach_index],\
256 MDL));
258 #define omapi_array_foreach_end(array, stype, var) \
259 (*(array) -> deref) ((char **)&var, MDL); \
264 isc_result_t omapi_protocol_connect (omapi_object_t *,
265 const char *, unsigned, omapi_object_t *);
266 isc_result_t omapi_connect_list (omapi_object_t *, omapi_addr_list_t *,
267 omapi_addr_t *);
268 isc_result_t omapi_protocol_listen (omapi_object_t *, unsigned, int);
269 isc_boolean_t omapi_protocol_authenticated (omapi_object_t *);
270 isc_result_t omapi_protocol_configure_security (omapi_object_t *,
271 isc_result_t (*)
272 (omapi_object_t *,
273 omapi_addr_t *),
274 isc_result_t (*)
275 (omapi_object_t *,
276 omapi_auth_key_t *));
277 isc_result_t omapi_protocol_accept (omapi_object_t *);
278 isc_result_t omapi_protocol_send_intro (omapi_object_t *, unsigned, unsigned);
279 isc_result_t omapi_protocol_ready (omapi_object_t *);
280 isc_result_t omapi_protocol_add_auth (omapi_object_t *, omapi_object_t *,
281 omapi_handle_t);
282 isc_result_t omapi_protocol_lookup_auth (omapi_object_t **, omapi_object_t *,
283 omapi_handle_t);
284 isc_result_t omapi_protocol_set_value (omapi_object_t *, omapi_object_t *,
285 omapi_data_string_t *,
286 omapi_typed_data_t *);
287 isc_result_t omapi_protocol_get_value (omapi_object_t *, omapi_object_t *,
288 omapi_data_string_t *,
289 omapi_value_t **);
290 isc_result_t omapi_protocol_stuff_values (omapi_object_t *,
291 omapi_object_t *,
292 omapi_object_t *);
294 isc_result_t omapi_protocol_destroy (omapi_object_t *, const char *, int);
295 isc_result_t omapi_protocol_send_message (omapi_object_t *,
296 omapi_object_t *,
297 omapi_object_t *,
298 omapi_object_t *);
299 isc_result_t omapi_protocol_signal_handler (omapi_object_t *,
300 const char *, va_list);
301 isc_result_t omapi_protocol_listener_set_value (omapi_object_t *,
302 omapi_object_t *,
303 omapi_data_string_t *,
304 omapi_typed_data_t *);
305 isc_result_t omapi_protocol_listener_get_value (omapi_object_t *,
306 omapi_object_t *,
307 omapi_data_string_t *,
308 omapi_value_t **);
309 isc_result_t omapi_protocol_listener_destroy (omapi_object_t *,
310 const char *, int);
311 isc_result_t omapi_protocol_listener_signal (omapi_object_t *,
312 const char *, va_list);
313 isc_result_t omapi_protocol_listener_stuff (omapi_object_t *,
314 omapi_object_t *,
315 omapi_object_t *);
316 isc_result_t omapi_protocol_send_status (omapi_object_t *, omapi_object_t *,
317 isc_result_t, unsigned, const char *);
318 isc_result_t omapi_protocol_send_open (omapi_object_t *, omapi_object_t *,
319 const char *, omapi_object_t *,
320 unsigned);
321 isc_result_t omapi_protocol_send_update (omapi_object_t *, omapi_object_t *,
322 unsigned, omapi_object_t *);
324 isc_result_t omapi_connect (omapi_object_t *, const char *, unsigned);
325 isc_result_t omapi_disconnect (omapi_object_t *, int);
326 int omapi_connection_readfd (omapi_object_t *);
327 int omapi_connection_writefd (omapi_object_t *);
328 isc_result_t omapi_connection_connect (omapi_object_t *);
329 isc_result_t omapi_connection_reader (omapi_object_t *);
330 isc_result_t omapi_connection_writer (omapi_object_t *);
331 isc_result_t omapi_connection_reaper (omapi_object_t *);
332 isc_result_t omapi_connection_output_auth_length (omapi_object_t *,
333 unsigned *);
334 isc_result_t omapi_connection_set_value (omapi_object_t *, omapi_object_t *,
335 omapi_data_string_t *,
336 omapi_typed_data_t *);
337 isc_result_t omapi_connection_get_value (omapi_object_t *, omapi_object_t *,
338 omapi_data_string_t *,
339 omapi_value_t **);
340 isc_result_t omapi_connection_destroy (omapi_object_t *, const char *, int);
341 isc_result_t omapi_connection_signal_handler (omapi_object_t *,
342 const char *, va_list);
343 isc_result_t omapi_connection_stuff_values (omapi_object_t *,
344 omapi_object_t *,
345 omapi_object_t *);
346 isc_result_t omapi_connection_write_typed_data (omapi_object_t *,
347 omapi_typed_data_t *);
348 isc_result_t omapi_connection_put_name (omapi_object_t *, const char *);
349 isc_result_t omapi_connection_put_string (omapi_object_t *, const char *);
350 isc_result_t omapi_connection_put_handle (omapi_object_t *c,
351 omapi_object_t *h);
352 isc_result_t omapi_connection_put_named_uint32 (omapi_object_t *,
353 const char *,
354 u_int32_t);
355 isc_result_t omapi_listen (omapi_object_t *, unsigned, int);
356 isc_result_t omapi_listen_addr (omapi_object_t *,
357 omapi_addr_t *, int);
358 isc_result_t omapi_listener_accept (omapi_object_t *);
359 int omapi_listener_readfd (omapi_object_t *);
360 isc_result_t omapi_accept (omapi_object_t *);
361 isc_result_t omapi_listener_configure_security (omapi_object_t *,
362 isc_result_t (*)
363 (omapi_object_t *,
364 omapi_addr_t *));
365 isc_result_t omapi_listener_set_value (omapi_object_t *, omapi_object_t *,
366 omapi_data_string_t *,
367 omapi_typed_data_t *);
368 isc_result_t omapi_listener_get_value (omapi_object_t *, omapi_object_t *,
369 omapi_data_string_t *,
370 omapi_value_t **);
371 isc_result_t omapi_listener_destroy (omapi_object_t *, const char *, int);
372 isc_result_t omapi_listener_signal_handler (omapi_object_t *,
373 const char *, va_list);
374 isc_result_t omapi_listener_stuff_values (omapi_object_t *,
375 omapi_object_t *,
376 omapi_object_t *);
378 isc_result_t omapi_register_io_object (omapi_object_t *,
379 int (*)(omapi_object_t *),
380 int (*)(omapi_object_t *),
381 isc_result_t (*)(omapi_object_t *),
382 isc_result_t (*)(omapi_object_t *),
383 isc_result_t (*)(omapi_object_t *));
384 isc_result_t omapi_reregister_io_object (omapi_object_t *,
385 int (*)(omapi_object_t *),
386 int (*)(omapi_object_t *),
387 isc_result_t (*)(omapi_object_t *),
388 isc_result_t (*)(omapi_object_t *),
389 isc_result_t (*)(omapi_object_t *));
390 isc_result_t omapi_unregister_io_object (omapi_object_t *);
391 isc_result_t omapi_dispatch (struct timeval *);
392 isc_result_t omapi_wait_for_completion (omapi_object_t *, struct timeval *);
393 isc_result_t omapi_one_dispatch (omapi_object_t *, struct timeval *);
394 isc_result_t omapi_io_set_value (omapi_object_t *, omapi_object_t *,
395 omapi_data_string_t *,
396 omapi_typed_data_t *);
397 isc_result_t omapi_io_get_value (omapi_object_t *, omapi_object_t *,
398 omapi_data_string_t *, omapi_value_t **);
399 isc_result_t omapi_io_destroy (omapi_object_t *, const char *, int);
400 isc_result_t omapi_io_signal_handler (omapi_object_t *, const char *, va_list);
401 isc_result_t omapi_io_stuff_values (omapi_object_t *,
402 omapi_object_t *,
403 omapi_object_t *);
404 isc_result_t omapi_waiter_signal_handler (omapi_object_t *,
405 const char *, va_list);
406 isc_result_t omapi_io_state_foreach (isc_result_t (*func) (omapi_object_t *,
407 void *),
408 void *p);
410 isc_result_t omapi_generic_new (omapi_object_t **, const char *, int);
411 isc_result_t omapi_generic_set_value (omapi_object_t *, omapi_object_t *,
412 omapi_data_string_t *,
413 omapi_typed_data_t *);
414 isc_result_t omapi_generic_get_value (omapi_object_t *, omapi_object_t *,
415 omapi_data_string_t *,
416 omapi_value_t **);
417 isc_result_t omapi_generic_destroy (omapi_object_t *, const char *, int);
418 isc_result_t omapi_generic_signal_handler (omapi_object_t *,
419 const char *, va_list);
420 isc_result_t omapi_generic_stuff_values (omapi_object_t *,
421 omapi_object_t *,
422 omapi_object_t *);
423 isc_result_t omapi_generic_clear_flags (omapi_object_t *);
425 isc_result_t omapi_message_new (omapi_object_t **, const char *, int);
426 isc_result_t omapi_message_set_value (omapi_object_t *, omapi_object_t *,
427 omapi_data_string_t *,
428 omapi_typed_data_t *);
429 isc_result_t omapi_message_get_value (omapi_object_t *, omapi_object_t *,
430 omapi_data_string_t *,
431 omapi_value_t **);
432 isc_result_t omapi_message_destroy (omapi_object_t *, const char *, int);
433 isc_result_t omapi_message_signal_handler (omapi_object_t *,
434 const char *, va_list);
435 isc_result_t omapi_message_stuff_values (omapi_object_t *,
436 omapi_object_t *,
437 omapi_object_t *);
438 isc_result_t omapi_message_register (omapi_object_t *);
439 isc_result_t omapi_message_unregister (omapi_object_t *);
440 isc_result_t omapi_message_process (omapi_object_t *, omapi_object_t *);
442 OMAPI_OBJECT_ALLOC_DECL (omapi_auth_key,
443 omapi_auth_key_t, omapi_type_auth_key)
444 isc_result_t omapi_auth_key_new (omapi_auth_key_t **, const char *, int);
445 isc_result_t omapi_auth_key_destroy (omapi_object_t *, const char *, int);
446 isc_result_t omapi_auth_key_enter (omapi_auth_key_t *);
447 isc_result_t omapi_auth_key_lookup_name (omapi_auth_key_t **, const char *);
448 isc_result_t omapi_auth_key_lookup (omapi_object_t **,
449 omapi_object_t *,
450 omapi_object_t *);
451 isc_result_t omapi_auth_key_get_value (omapi_object_t *, omapi_object_t *,
452 omapi_data_string_t *,
453 omapi_value_t **);
454 isc_result_t omapi_auth_key_stuff_values (omapi_object_t *,
455 omapi_object_t *,
456 omapi_object_t *);
458 extern omapi_object_type_t *omapi_type_connection;
459 extern omapi_object_type_t *omapi_type_listener;
460 extern omapi_object_type_t *omapi_type_io_object;
461 extern omapi_object_type_t *omapi_type_generic;
462 extern omapi_object_type_t *omapi_type_protocol;
463 extern omapi_object_type_t *omapi_type_protocol_listener;
464 extern omapi_object_type_t *omapi_type_waiter;
465 extern omapi_object_type_t *omapi_type_remote;
466 extern omapi_object_type_t *omapi_type_message;
467 extern omapi_object_type_t *omapi_type_auth_key;
469 extern omapi_object_type_t *omapi_object_types;
471 void omapi_type_relinquish (void);
472 isc_result_t omapi_init (void);
473 isc_result_t omapi_object_type_register (omapi_object_type_t **,
474 const char *,
475 isc_result_t (*)
476 (omapi_object_t *,
477 omapi_object_t *,
478 omapi_data_string_t *,
479 omapi_typed_data_t *),
480 isc_result_t (*)
481 (omapi_object_t *,
482 omapi_object_t *,
483 omapi_data_string_t *,
484 omapi_value_t **),
485 isc_result_t (*) (omapi_object_t *,
486 const char *, int),
487 isc_result_t (*) (omapi_object_t *,
488 const char *,
489 va_list),
490 isc_result_t (*) (omapi_object_t *,
491 omapi_object_t *,
492 omapi_object_t *),
493 isc_result_t (*) (omapi_object_t **,
494 omapi_object_t *,
495 omapi_object_t *),
496 isc_result_t (*) (omapi_object_t **,
497 omapi_object_t *),
498 isc_result_t (*) (omapi_object_t *,
499 omapi_object_t *),
500 isc_result_t (*) (omapi_object_t *,
501 const char *, int),
502 isc_result_t (*) (omapi_object_t **,
503 const char *, int),
504 isc_result_t (*) (size_t), size_t,
505 isc_result_t (*) (omapi_object_t *,
506 const char *, int),
507 int);
508 isc_result_t omapi_signal (omapi_object_t *, const char *, ...);
509 isc_result_t omapi_signal_in (omapi_object_t *, const char *, ...);
510 isc_result_t omapi_set_value (omapi_object_t *, omapi_object_t *,
511 omapi_data_string_t *,
512 omapi_typed_data_t *);
513 isc_result_t omapi_set_value_str (omapi_object_t *, omapi_object_t *,
514 const char *, omapi_typed_data_t *);
515 isc_result_t omapi_set_boolean_value (omapi_object_t *, omapi_object_t *,
516 const char *, int);
517 isc_result_t omapi_set_int_value (omapi_object_t *, omapi_object_t *,
518 const char *, int);
519 isc_result_t omapi_set_object_value (omapi_object_t *, omapi_object_t *,
520 const char *, omapi_object_t *);
521 isc_result_t omapi_set_string_value (omapi_object_t *, omapi_object_t *,
522 const char *, const char *);
523 isc_result_t omapi_get_value (omapi_object_t *, omapi_object_t *,
524 omapi_data_string_t *,
525 omapi_value_t **);
526 isc_result_t omapi_get_value_str (omapi_object_t *, omapi_object_t *,
527 const char *, omapi_value_t **);
528 isc_result_t omapi_stuff_values (omapi_object_t *,
529 omapi_object_t *,
530 omapi_object_t *);
531 isc_result_t omapi_object_create (omapi_object_t **, omapi_object_t *,
532 omapi_object_type_t *);
533 isc_result_t omapi_object_update (omapi_object_t *, omapi_object_t *,
534 omapi_object_t *, omapi_handle_t);
535 int omapi_data_string_cmp (omapi_data_string_t *, omapi_data_string_t *);
536 int omapi_ds_strcmp (omapi_data_string_t *, const char *);
537 int omapi_td_strcmp (omapi_typed_data_t *, const char *);
538 int omapi_td_strcasecmp (omapi_typed_data_t *, const char *);
539 isc_result_t omapi_make_value (omapi_value_t **, omapi_data_string_t *,
540 omapi_typed_data_t *, const char *, int);
541 isc_result_t omapi_make_const_value (omapi_value_t **, omapi_data_string_t *,
542 const unsigned char *,
543 unsigned, const char *, int);
544 isc_result_t omapi_make_int_value (omapi_value_t **, omapi_data_string_t *,
545 int, const char *, int);
546 isc_result_t omapi_make_uint_value (omapi_value_t **, omapi_data_string_t *,
547 unsigned int, const char *, int);
548 isc_result_t omapi_make_object_value (omapi_value_t **, omapi_data_string_t *,
549 omapi_object_t *, const char *, int);
550 isc_result_t omapi_make_handle_value (omapi_value_t **, omapi_data_string_t *,
551 omapi_object_t *, const char *, int);
552 isc_result_t omapi_make_string_value (omapi_value_t **, omapi_data_string_t *,
553 const char *, const char *, int);
554 isc_result_t omapi_get_int_value (unsigned long *, omapi_typed_data_t *);
556 isc_result_t omapi_object_handle (omapi_handle_t *, omapi_object_t *);
557 isc_result_t omapi_handle_lookup (omapi_object_t **, omapi_handle_t);
558 isc_result_t omapi_handle_td_lookup (omapi_object_t **, omapi_typed_data_t *);
560 void * dmalloc (unsigned, const char *, int);
561 void dfree (void *, const char *, int);
562 #if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
563 defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
564 void dmalloc_reuse (void *, const char *, int, int);
565 void dmalloc_dump_outstanding (void);
566 #else
567 #define dmalloc_reuse(x,y,l,z)
568 #endif
569 #define MDL __FILE__, __LINE__
570 #if defined (DEBUG_RC_HISTORY)
571 void dump_rc_history (void *);
572 void rc_history_next (int);
573 #endif
574 void omapi_print_dmalloc_usage_by_caller (void);
575 isc_result_t omapi_object_allocate (omapi_object_t **,
576 omapi_object_type_t *,
577 size_t, const char *, int);
578 isc_result_t omapi_object_initialize (omapi_object_t *,
579 omapi_object_type_t *,
580 size_t, size_t, const char *, int);
581 isc_result_t omapi_object_reference (omapi_object_t **,
582 omapi_object_t *, const char *, int);
583 isc_result_t omapi_object_dereference (omapi_object_t **, const char *, int);
584 isc_result_t omapi_typed_data_new (const char *, int, omapi_typed_data_t **,
585 omapi_datatype_t, ...);
586 isc_result_t omapi_typed_data_reference (omapi_typed_data_t **,
587 omapi_typed_data_t *,
588 const char *, int);
589 isc_result_t omapi_typed_data_dereference (omapi_typed_data_t **,
590 const char *, int);
591 isc_result_t omapi_data_string_new (omapi_data_string_t **,
592 unsigned, const char *, int);
593 isc_result_t omapi_data_string_reference (omapi_data_string_t **,
594 omapi_data_string_t *,
595 const char *, int);
596 isc_result_t omapi_data_string_dereference (omapi_data_string_t **,
597 const char *, int);
598 isc_result_t omapi_value_new (omapi_value_t **, const char *, int);
599 isc_result_t omapi_value_reference (omapi_value_t **,
600 omapi_value_t *, const char *, int);
601 isc_result_t omapi_value_dereference (omapi_value_t **, const char *, int);
602 isc_result_t omapi_addr_list_new (omapi_addr_list_t **, unsigned,
603 const char *, int);
604 isc_result_t omapi_addr_list_reference (omapi_addr_list_t **,
605 omapi_addr_list_t *,
606 const char *, int);
607 isc_result_t omapi_addr_list_dereference (omapi_addr_list_t **,
608 const char *, int);
610 isc_result_t omapi_array_allocate (omapi_array_t **, omapi_array_ref_t,
611 omapi_array_deref_t, const char *, int);
612 isc_result_t omapi_array_free (omapi_array_t **, const char *, int);
613 isc_result_t omapi_array_extend (omapi_array_t *, char *, int *,
614 const char *, int);
615 isc_result_t omapi_array_set (omapi_array_t *, void *, int, const char *, int);
616 isc_result_t omapi_array_lookup (char **,
617 omapi_array_t *, int, const char *, int);
618 OMAPI_ARRAY_TYPE_DECL(omapi_object, omapi_object_t);
619 #endif /* _OMAPIP_H_ */