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