1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright 2015 Joyent, Inc. 14 */ 15 16 #ifndef _LIBVARPD_H 17 #define _LIBVARPD_H 18 19 /* 20 * varpd interfaces 21 */ 22 23 #include <sys/types.h> 24 #include <stdint.h> 25 #include <sys/mac.h> 26 #include <libvarpd_client.h> 27 #include <stdio.h> 28 29 #ifdef __cplusplus 30 extern "C" { 31 #endif 32 33 typedef struct __varpd_handle varpd_handle_t; 34 typedef struct __varpd_prop_handle varpd_prop_handle_t; 35 typedef struct __varpd_instance_handle varpd_instance_handle_t; 36 37 extern int libvarpd_create(varpd_handle_t **); 38 extern void libvarpd_destroy(varpd_handle_t *); 39 40 extern int libvarpd_persist_enable(varpd_handle_t *, const char *); 41 extern int libvarpd_persist_restore(varpd_handle_t *); 42 extern int libvarpd_persist_disable(varpd_handle_t *); 43 44 extern int libvarpd_instance_create(varpd_handle_t *, datalink_id_t, 45 const char *, varpd_instance_handle_t **); 46 extern uint64_t libvarpd_instance_id(varpd_instance_handle_t *); 47 extern varpd_instance_handle_t *libvarpd_instance_lookup(varpd_handle_t *, 48 uint64_t); 49 extern void libvarpd_instance_destroy(varpd_instance_handle_t *); 50 extern int libvarpd_instance_activate(varpd_instance_handle_t *); 51 52 extern int libvarpd_plugin_load(varpd_handle_t *, const char *); 53 typedef int (*libvarpd_plugin_walk_f)(varpd_handle_t *, const char *, void *); 54 extern int libvarpd_plugin_walk(varpd_handle_t *, libvarpd_plugin_walk_f, 55 void *); 56 57 extern int libvarpd_prop_handle_alloc(varpd_handle_t *, 58 varpd_instance_handle_t *, varpd_prop_handle_t **); 59 extern void libvarpd_prop_handle_free(varpd_prop_handle_t *); 60 extern int libvarpd_prop_nprops(varpd_instance_handle_t *, uint_t *); 61 extern int libvarpd_prop_info_fill(varpd_prop_handle_t *, uint_t); 62 extern int libvarpd_prop_info(varpd_prop_handle_t *, const char **, uint_t *, 63 uint_t *, const void **, uint32_t *, const mac_propval_range_t **); 64 extern int libvarpd_prop_get(varpd_prop_handle_t *, void *, uint32_t *); 65 extern int libvarpd_prop_set(varpd_prop_handle_t *, const void *, uint32_t); 66 67 extern int libvarpd_door_server_create(varpd_handle_t *, const char *); 68 extern void libvarpd_door_server_destroy(varpd_handle_t *); 69 70 extern void *libvarpd_overlay_lookup_run(void *); 71 extern void libvarpd_overlay_lookup_quiesce(varpd_handle_t *); 72 73 #ifdef __cplusplus 74 } 75 #endif 76 77 #endif /* _LIBVARPD_H */ 78