Lines Matching defs:libp
140 plugin_lib_t *libp;
184 cfga_err_t (*resolve_lib)(plugin_lib_t *libp);
240 static cfga_err_t null_resolve(plugin_lib_t *libp);
241 static cfga_err_t resolve_v1(plugin_lib_t *libp);
242 static cfga_err_t resolve_v2(plugin_lib_t *libp);
248 plugin_lib_t *libp, lib_loc_t *liblocp);
250 plugin_lib_t *libp, lib_loc_t *liblocp);
252 plugin_lib_t *libp, lib_loc_t *liblocp);
384 plugin_lib_t *libp;
414 libloc.libp = NULL;
420 libp = libloc.libp;
426 retval = (*libp->cfga_change_state_p)
434 if ((retval = libp->vers_ops->get_cond(&libloc, &cond,
442 (*libp->cfga_change_state_p)(
451 rele_lib(libp);
494 libloc.libp = NULL;
501 retval = (*libloc.libp->cfga_private_func_p)(function,
504 rele_lib(libloc.libp);
545 libloc.libp = NULL;
552 retval = (*libloc.libp->cfga_test_p)(libloc.ap_physical,
554 rele_lib(libloc.libp);
773 plugin_lib_t *libp, *prev = &plugin_list, *next = NULL;
779 for (libp = plugin_list.next; libp != NULL; libp = next) {
780 next = libp->next;
781 (void) mutex_lock(&libp->lock);
782 if (libp->refcnt) {
783 (void) mutex_unlock(&libp->lock);
784 prev = libp;
787 (void) mutex_unlock(&libp->lock);
789 (void) dlclose(libp->handle);
790 (void) mutex_destroy(&libp->lock);
791 free(libp);
849 libloc.libp = NULL;
854 ret = (*libloc.libp->cfga_ap_id_cmp_p)(ap1, ap2);
856 rele_lib(libloc.libp);
910 libloc.libp = NULL;
917 retval = (*libloc.libp->cfga_help_p)(msgp, options, flags);
918 rele_lib(libloc.libp);
1046 plugin_lib_t *libp,
1056 plugin_lib_t *libp,
1063 if (libp->plugin_vers != CFGA_HSL_V1) {
1088 plugin_lib_t *libp,
1096 if (libp->plugin_vers != CFGA_HSL_V2) {
1152 plugin_lib_t *libp,
1178 plugin_lib_t *libp,
1182 void *libhdlp = libp->handle;
1205 libp->plugin_vers = plug_vers;
1206 libp->vers_ops = &cfga_vers_ops[plug_vers];
1213 libp->cfga_change_state_p = (cfga_err_t (*)(cfga_cmd_t,
1221 libp->cfga_private_func_p = (cfga_err_t (*)(const char *,
1229 libp->cfga_test_p = (cfga_err_t (*)(const char *, const char *,
1236 libp->cfga_help_p = (cfga_err_t (*)(struct cfga_msg *,
1240 libp->cfga_ap_id_cmp_p = default_ap_id_cmp;
1242 libp->cfga_ap_id_cmp_p = (int (*)(const
1246 return (libp->vers_ops->resolve_lib(libp));
1251 null_resolve(plugin_lib_t *libp)
1257 resolve_v1(plugin_lib_t *libp)
1259 void *sym, *libhdlp = libp->handle;
1262 if (libp->plugin_vers != CFGA_HSL_V1) {
1270 libp->cfga_stat_p = (cfga_err_t (*)(const char *,
1278 libp->cfga_list_p = (cfga_err_t (*)(struct cfga_stat_data **,
1285 resolve_v2(plugin_lib_t *libp)
1290 if (libp->plugin_vers != CFGA_HSL_V2) {
1294 if ((sym = dlsym(libp->handle, "cfga_list_ext")) == NULL) {
1298 libp->cfga_list_ext_p = (cfga_err_t (*)(const char *,
1346 lib_loc_p->libp = NULL;
1429 plugin_lib_t *libp;
1431 libp = lib_loc_p->libp;
1434 assert(strcmp(libp->libpath, lib_loc_p->pathname) == 0);
1435 assert(VALID_HSL_VERS(libp->plugin_vers));
1441 assert(dyncomp == NULL || libp->plugin_vers >= CFGA_HSL_V2);
1461 lib_loc_p->libp = NULL;
1464 assert(ret != CFGA_OK || lib_loc_p->libp != NULL);
1501 plugin_lib_t *libp, *list_libp;
1527 libloc_p->libp = libp = list_libp;
1529 if (libp->vers_ops->mklog(node, minor, libp, libloc_p)
1535 if (mklog_hp(node, hp, libp, libloc_p) != CFGA_OK) {
1550 libp = config_calloc_check(1, sizeof (plugin_lib_t), NULL);
1551 if (libp == NULL) {
1556 (void) snprintf(libp->libpath, sizeof (libp->libpath), "%s",
1562 libp->handle = dlopen(libp->libpath, RTLD_NOW);
1563 if (libp->handle == NULL) {
1565 free(libp);
1570 if (resolve_lib_ref(libp, libloc_p) != CFGA_OK ||
1571 libp->vers_ops->mklog(node, minor, libp, libloc_p)
1574 (void) dlclose(libp->handle);
1575 free(libp);
1579 if (resolve_lib_ref(libp, libloc_p) != CFGA_OK ||
1580 mklog_hp(node, hp, libp, libloc_p) != CFGA_OK) {
1582 (void) dlclose(libp->handle);
1583 free(libp);
1594 libp->next = list_libp->next;
1595 list_libp->next = libp;
1598 libp->refcnt = 1;
1599 (void) mutex_init(&libp->lock, USYNC_THREAD, NULL);
1604 * record libp and physical node name in the libloc struct
1606 libloc_p->libp = libp;
1848 plugin_lib_t *libp = entry->lc_libp;
1849 libloc_p->libp = libp;
1850 hold_lib(libp);
1851 (void) strcpy(libloc_p->pathname, libp->libpath);
1887 entry->lc_libp = libloc_p->libp;
1987 libloc_p->libp = NULL;
1998 if (libloc_p->libp == NULL) {
2022 libloc_p->libp = NULL;
2034 if (libloc_p->libp != NULL) {
2292 plugin_lib_t *libp = NULL;
2294 for (libp = plugin_list.next; libp != NULL; libp = libp->next) {
2295 if (strncmp(libpath, libp->libpath, MAXPATHLEN) == 0) {
2296 return (libp);
2632 plugin_lib_t *libp;
2641 lib_loc.libp = NULL;
2670 libp = lib_loc.libp;
2671 assert(libp != NULL);
2678 if (compat_plugin(&lstatp->use_vers, libp->plugin_vers)) {
2680 (void) libp->vers_ops->stat_plugin(lstatp,
2691 ret = libp->vers_ops->stat_plugin(lstatp,
2706 rele_lib(libp);
2723 plugin_lib_t *libp;
2731 libloc.libp = NULL;
2736 assert(libloc.libp != NULL);
2737 libp = libloc.libp;
2743 rele_lib(libp);
2752 rc = libp->vers_ops->stat_plugin(lstatp, &libloc,
2754 rele_lib(libp);
2795 if ((rc = (*(libloc_p->libp->cfga_stat_p))(libloc_p->ap_physical,
2854 if ((rc = (*(libloc_p->libp->cfga_list_ext_p))(
3035 plugin_lib_t *libp;
3040 libp = liblocp->libp;
3041 if (libp->plugin_vers != CFGA_HSL_V1) {
3046 if ((rc = (*liblocp->libp->cfga_stat_p)(
3061 plugin_lib_t *libp;
3066 libp = liblocp->libp;
3067 if (libp->plugin_vers != CFGA_HSL_V2) {
3074 if ((rc = (*liblocp->libp->cfga_list_ext_p)(
3280 hold_lib(plugin_lib_t *libp)
3282 assert(libp->refcnt >= 0);
3283 (void) mutex_lock(&libp->lock);
3284 libp->refcnt++;
3285 (void) mutex_unlock(&libp->lock);
3289 rele_lib(plugin_lib_t *libp)
3291 assert(libp->refcnt > 0);
3292 (void) mutex_lock(&libp->lock);
3293 libp->refcnt--;
3294 (void) mutex_unlock(&libp->lock);