xref: /minix3/external/bsd/dhcp/dist/dhcpctl/dhcpctl.h (revision 83ee113ee0d94f3844d44065af2311604e9a30ad)
1 /*	$NetBSD: dhcpctl.h,v 1.1.1.4 2014/07/12 11:57:51 spz Exp $	*/
2 /* Id: dhcpctl.h,v 1.18 2009/11/24 02:06:56 sar Exp
3 
4    Subroutines providing general support for objects. */
5 
6 /*
7  * Copyright (c) 2004,2009,2014 by Internet Systems Consortium, Inc. ("ISC")
8  * Copyright (c) 1999-2003 by Internet Software Consortium
9  *
10  * Permission to use, copy, modify, and distribute this software for any
11  * purpose with or without fee is hereby granted, provided that the above
12  * copyright notice and this permission notice appear in all copies.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
15  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
17  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
20  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21  *
22  *   Internet Systems Consortium, Inc.
23  *   950 Charter Street
24  *   Redwood City, CA 94063
25  *   <info@isc.org>
26  *   https://www.isc.org/
27  *
28  */
29 
30 #ifndef _DHCPCTL_H_
31 #define _DHCPCTL_H_
32 
33 #include <omapip/omapip.h>
34 
35 typedef isc_result_t dhcpctl_status;
36 typedef omapi_object_t *dhcpctl_handle;
37 typedef omapi_data_string_t *dhcpctl_data_string;
38 
39 #define dhcpctl_null_handle ((dhcpctl_handle) 0)
40 
41 #define DHCPCTL_CREATE		OMAPI_CREATE
42 #define DHCPCTL_UPDATE		OMAPI_UPDATE
43 #define DHCPCTL_EXCL		OMAPI_EXCL
44 
45 typedef struct {
46 	OMAPI_OBJECT_PREAMBLE;
47 	omapi_object_t *object;
48 	void *data;
49 	void (*callback) (dhcpctl_handle, dhcpctl_status, void *);
50 } dhcpctl_callback_object_t;
51 
52 typedef struct {
53 	OMAPI_OBJECT_PREAMBLE;
54 	omapi_typed_data_t *rtype;
55 	isc_result_t waitstatus;
56 	omapi_typed_data_t *message;
57 	omapi_handle_t remote_handle;
58 } dhcpctl_remote_object_t;
59 
60 extern omapi_object_type_t *dhcpctl_callback_type;
61 extern omapi_object_type_t *dhcpctl_remote_type;
62 
63 dhcpctl_status dhcpctl_initialize (void);
64 dhcpctl_status dhcpctl_connect (dhcpctl_handle *,
65 				const char *, int, dhcpctl_handle);
66 dhcpctl_status dhcpctl_wait_for_completion (dhcpctl_handle, dhcpctl_status *);
67 dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *,
68 				  dhcpctl_handle, const char *);
69 dhcpctl_status dhcpctl_get_boolean (int *, dhcpctl_handle, const char *);
70 dhcpctl_status dhcpctl_set_value (dhcpctl_handle,
71 				  dhcpctl_data_string, const char *);
72 dhcpctl_status dhcpctl_set_string_value (dhcpctl_handle, const char *,
73 					 const char *);
74 dhcpctl_status dhcpctl_set_data_value (dhcpctl_handle,
75 				       const char *, unsigned, const char *);
76 dhcpctl_status dhcpctl_set_null_value (dhcpctl_handle, const char *);
77 dhcpctl_status dhcpctl_set_boolean_value (dhcpctl_handle, int, const char *);
78 dhcpctl_status dhcpctl_set_int_value (dhcpctl_handle, int, const char *);
79 dhcpctl_status dhcpctl_object_update (dhcpctl_handle, dhcpctl_handle);
80 dhcpctl_status dhcpctl_object_refresh (dhcpctl_handle, dhcpctl_handle);
81 dhcpctl_status dhcpctl_object_remove (dhcpctl_handle, dhcpctl_handle);
82 
83 dhcpctl_status dhcpctl_set_callback (dhcpctl_handle, void *,
84 				     void (*) (dhcpctl_handle,
85 					       dhcpctl_status, void *));
86 isc_result_t dhcpctl_callback_set_value  (omapi_object_t *, omapi_object_t *,
87 					  omapi_data_string_t *,
88 					  omapi_typed_data_t *);
89 isc_result_t dhcpctl_callback_get_value (omapi_object_t *, omapi_object_t *,
90 					 omapi_data_string_t *,
91 					 omapi_value_t **);
92 isc_result_t dhcpctl_callback_destroy (omapi_object_t *, const char *, int);
93 isc_result_t dhcpctl_callback_signal_handler (omapi_object_t *,
94 					      const char *, va_list);
95 isc_result_t dhcpctl_callback_stuff_values (omapi_object_t *,
96 					    omapi_object_t *,
97 					    omapi_object_t *);
98 
99 dhcpctl_status dhcpctl_new_authenticator (dhcpctl_handle *,
100 					  const char *, const char *,
101 					  const unsigned char *, unsigned);
102 
103 dhcpctl_status dhcpctl_open_object (dhcpctl_handle, dhcpctl_handle, int);
104 dhcpctl_status dhcpctl_new_object (dhcpctl_handle *,
105 				   dhcpctl_handle, const char *);
106 isc_result_t dhcpctl_remote_set_value  (omapi_object_t *, omapi_object_t *,
107 					omapi_data_string_t *,
108 					omapi_typed_data_t *);
109 isc_result_t dhcpctl_remote_get_value (omapi_object_t *, omapi_object_t *,
110 				       omapi_data_string_t *,
111 				       omapi_value_t **);
112 isc_result_t dhcpctl_remote_destroy (omapi_object_t *, const char *, int);
113 isc_result_t dhcpctl_remote_signal_handler (omapi_object_t *,
114 					    const char *, va_list);
115 isc_result_t dhcpctl_remote_stuff_values (omapi_object_t *,
116 					  omapi_object_t *,
117 					  omapi_object_t *);
118 isc_result_t dhcpctl_data_string_dereference (dhcpctl_data_string *,
119 					      const char *, int);
120 #endif /* _DHCPCTL_H_ */
121