Lines Matching refs:libp

141 	plugin_lib_t *libp;  member
185 cfga_err_t (*resolve_lib)(plugin_lib_t *libp);
241 static cfga_err_t null_resolve(plugin_lib_t *libp);
242 static cfga_err_t resolve_v1(plugin_lib_t *libp);
243 static cfga_err_t resolve_v2(plugin_lib_t *libp);
249 plugin_lib_t *libp, lib_loc_t *liblocp);
251 plugin_lib_t *libp, lib_loc_t *liblocp);
253 plugin_lib_t *libp, lib_loc_t *liblocp);
385 plugin_lib_t *libp; in config_change_state() local
415 libloc.libp = NULL; in config_change_state()
421 libp = libloc.libp; in config_change_state()
427 retval = (*libp->cfga_change_state_p) in config_change_state()
435 if ((retval = libp->vers_ops->get_cond(&libloc, &cond, in config_change_state()
443 (*libp->cfga_change_state_p)( in config_change_state()
452 rele_lib(libp); in config_change_state()
495 libloc.libp = NULL; in config_private_func()
502 retval = (*libloc.libp->cfga_private_func_p)(function, in config_private_func()
505 rele_lib(libloc.libp); in config_private_func()
546 libloc.libp = NULL; in config_test()
553 retval = (*libloc.libp->cfga_test_p)(libloc.ap_physical, in config_test()
555 rele_lib(libloc.libp); in config_test()
774 plugin_lib_t *libp, *prev = &plugin_list, *next = NULL; in config_unload_libs() local
780 for (libp = plugin_list.next; libp != NULL; libp = next) { in config_unload_libs()
781 next = libp->next; in config_unload_libs()
782 (void) mutex_lock(&libp->lock); in config_unload_libs()
783 if (libp->refcnt) { in config_unload_libs()
784 (void) mutex_unlock(&libp->lock); in config_unload_libs()
785 prev = libp; in config_unload_libs()
788 (void) mutex_unlock(&libp->lock); in config_unload_libs()
790 (void) dlclose(libp->handle); in config_unload_libs()
791 (void) mutex_destroy(&libp->lock); in config_unload_libs()
792 free(libp); in config_unload_libs()
850 libloc.libp = NULL; in config_ap_id_cmp()
855 ret = (*libloc.libp->cfga_ap_id_cmp_p)(ap1, ap2); in config_ap_id_cmp()
857 rele_lib(libloc.libp); in config_ap_id_cmp()
911 libloc.libp = NULL; in config_help()
918 retval = (*libloc.libp->cfga_help_p)(msgp, options, flags); in config_help()
919 rele_lib(libloc.libp); in config_help()
1047 plugin_lib_t *libp, in null_mklog() argument
1057 plugin_lib_t *libp, in mklog_v1() argument
1064 if (libp->plugin_vers != CFGA_HSL_V1) { in mklog_v1()
1089 plugin_lib_t *libp, in mklog_v2() argument
1097 if (libp->plugin_vers != CFGA_HSL_V2) { in mklog_v2()
1153 plugin_lib_t *libp, in mklog_hp() argument
1179 plugin_lib_t *libp, in resolve_lib_ref() argument
1183 void *libhdlp = libp->handle; in resolve_lib_ref()
1206 libp->plugin_vers = plug_vers; in resolve_lib_ref()
1207 libp->vers_ops = &cfga_vers_ops[plug_vers]; in resolve_lib_ref()
1214 libp->cfga_change_state_p = (cfga_err_t (*)(cfga_cmd_t, in resolve_lib_ref()
1222 libp->cfga_private_func_p = (cfga_err_t (*)(const char *, in resolve_lib_ref()
1230 libp->cfga_test_p = (cfga_err_t (*)(const char *, const char *, in resolve_lib_ref()
1237 libp->cfga_help_p = (cfga_err_t (*)(struct cfga_msg *, in resolve_lib_ref()
1241 libp->cfga_ap_id_cmp_p = default_ap_id_cmp; in resolve_lib_ref()
1243 libp->cfga_ap_id_cmp_p = (int (*)(const in resolve_lib_ref()
1247 return (libp->vers_ops->resolve_lib(libp)); in resolve_lib_ref()
1252 null_resolve(plugin_lib_t *libp) in null_resolve() argument
1258 resolve_v1(plugin_lib_t *libp) in resolve_v1() argument
1260 void *sym, *libhdlp = libp->handle; in resolve_v1()
1263 if (libp->plugin_vers != CFGA_HSL_V1) { in resolve_v1()
1271 libp->cfga_stat_p = (cfga_err_t (*)(const char *, in resolve_v1()
1279 libp->cfga_list_p = (cfga_err_t (*)(struct cfga_stat_data **, in resolve_v1()
1286 resolve_v2(plugin_lib_t *libp) in resolve_v2() argument
1291 if (libp->plugin_vers != CFGA_HSL_V2) { in resolve_v2()
1295 if ((sym = dlsym(libp->handle, "cfga_list_ext")) == NULL) { in resolve_v2()
1299 libp->cfga_list_ext_p = (cfga_err_t (*)(const char *, in resolve_v2()
1347 lib_loc_p->libp = NULL; in config_get_lib()
1430 plugin_lib_t *libp; in config_get_lib() local
1432 libp = lib_loc_p->libp; in config_get_lib()
1435 assert(strcmp(libp->libpath, lib_loc_p->pathname) == 0); in config_get_lib()
1436 assert(VALID_HSL_VERS(libp->plugin_vers)); in config_get_lib()
1442 assert(dyncomp == NULL || libp->plugin_vers >= CFGA_HSL_V2); in config_get_lib()
1462 lib_loc_p->libp = NULL; in config_get_lib()
1465 assert(ret != CFGA_OK || lib_loc_p->libp != NULL); in config_get_lib()
1502 plugin_lib_t *libp, *list_libp; in load_lib_impl() local
1528 libloc_p->libp = libp = list_libp; in load_lib_impl()
1530 if (libp->vers_ops->mklog(node, minor, libp, libloc_p) in load_lib_impl()
1536 if (mklog_hp(node, hp, libp, libloc_p) != CFGA_OK) { in load_lib_impl()
1551 libp = config_calloc_check(1, sizeof (plugin_lib_t), NULL); in load_lib_impl()
1552 if (libp == NULL) { in load_lib_impl()
1557 (void) snprintf(libp->libpath, sizeof (libp->libpath), "%s", in load_lib_impl()
1563 libp->handle = dlopen(libp->libpath, RTLD_NOW); in load_lib_impl()
1564 if (libp->handle == NULL) { in load_lib_impl()
1566 free(libp); in load_lib_impl()
1571 if (resolve_lib_ref(libp, libloc_p) != CFGA_OK || in load_lib_impl()
1572 libp->vers_ops->mklog(node, minor, libp, libloc_p) in load_lib_impl()
1575 (void) dlclose(libp->handle); in load_lib_impl()
1576 free(libp); in load_lib_impl()
1580 if (resolve_lib_ref(libp, libloc_p) != CFGA_OK || in load_lib_impl()
1581 mklog_hp(node, hp, libp, libloc_p) != CFGA_OK) { in load_lib_impl()
1583 (void) dlclose(libp->handle); in load_lib_impl()
1584 free(libp); in load_lib_impl()
1595 libp->next = list_libp->next; in load_lib_impl()
1596 list_libp->next = libp; in load_lib_impl()
1599 libp->refcnt = 1; in load_lib_impl()
1600 (void) mutex_init(&libp->lock, USYNC_THREAD, NULL); in load_lib_impl()
1607 libloc_p->libp = libp; in load_lib_impl()
1849 plugin_lib_t *libp = entry->lc_libp; in lookup_cache() local
1850 libloc_p->libp = libp; in lookup_cache()
1851 hold_lib(libp); in lookup_cache()
1852 (void) strcpy(libloc_p->pathname, libp->libpath); in lookup_cache()
1888 entry->lc_libp = libloc_p->libp; in update_cache()
1988 libloc_p->libp = NULL; in find_ap_common()
1999 if (libloc_p->libp == NULL) { in find_ap_common()
2023 libloc_p->libp = NULL; in find_ap_common()
2035 if (libloc_p->libp != NULL) { in find_ap_common()
2293 plugin_lib_t *libp = NULL; in lib_in_list() local
2295 for (libp = plugin_list.next; libp != NULL; libp = libp->next) { in lib_in_list()
2296 if (strncmp(libpath, libp->libpath, MAXPATHLEN) == 0) { in lib_in_list()
2297 return (libp); in lib_in_list()
2633 plugin_lib_t *libp; in do_list_common_impl() local
2642 lib_loc.libp = NULL; in do_list_common_impl()
2671 libp = lib_loc.libp; in do_list_common_impl()
2672 assert(libp != NULL); in do_list_common_impl()
2679 if (compat_plugin(&lstatp->use_vers, libp->plugin_vers)) { in do_list_common_impl()
2681 (void) libp->vers_ops->stat_plugin(lstatp, in do_list_common_impl()
2692 ret = libp->vers_ops->stat_plugin(lstatp, in do_list_common_impl()
2707 rele_lib(libp); in do_list_common_impl()
2724 plugin_lib_t *libp; in stat_common() local
2732 libloc.libp = NULL; in stat_common()
2737 assert(libloc.libp != NULL); in stat_common()
2738 libp = libloc.libp; in stat_common()
2744 rele_lib(libp); in stat_common()
2753 rc = libp->vers_ops->stat_plugin(lstatp, &libloc, in stat_common()
2755 rele_lib(libp); in stat_common()
2796 if ((rc = (*(libloc_p->libp->cfga_stat_p))(libloc_p->ap_physical, in stat_plugin_v1()
2855 if ((rc = (*(libloc_p->libp->cfga_list_ext_p))( in stat_plugin_v2()
3036 plugin_lib_t *libp; in get_cond_v1() local
3041 libp = liblocp->libp; in get_cond_v1()
3042 if (libp->plugin_vers != CFGA_HSL_V1) { in get_cond_v1()
3047 if ((rc = (*liblocp->libp->cfga_stat_p)( in get_cond_v1()
3062 plugin_lib_t *libp; in get_cond_v2() local
3067 libp = liblocp->libp; in get_cond_v2()
3068 if (libp->plugin_vers != CFGA_HSL_V2) { in get_cond_v2()
3075 if ((rc = (*liblocp->libp->cfga_list_ext_p)( in get_cond_v2()
3281 hold_lib(plugin_lib_t *libp) in hold_lib() argument
3283 assert(libp->refcnt >= 0); in hold_lib()
3284 (void) mutex_lock(&libp->lock); in hold_lib()
3285 libp->refcnt++; in hold_lib()
3286 (void) mutex_unlock(&libp->lock); in hold_lib()
3290 rele_lib(plugin_lib_t *libp) in rele_lib() argument
3292 assert(libp->refcnt > 0); in rele_lib()
3293 (void) mutex_lock(&libp->lock); in rele_lib()
3294 libp->refcnt--; in rele_lib()
3295 (void) mutex_unlock(&libp->lock); in rele_lib()