Lines Matching refs:mod
46 rtld_fini(topo_mod_t *mod)
48 topo_rtld_t *rp = mod->tm_data;
50 assert(mod != NULL);
52 if (mod->tm_flags & TOPO_MOD_REG) {
53 rp->rtld_fini(mod);
54 if (mod->tm_flags & TOPO_MOD_REG) {
55 topo_mod_unregister(mod);
61 topo_mod_free(mod, rp, sizeof (topo_rtld_t));
67 rtld_init(topo_mod_t *mod, topo_version_t version)
73 if ((dlp = dlopen(mod->tm_path, RTLD_LOCAL | RTLD_NOW)) == NULL) {
74 topo_dprintf(mod->tm_hdl, TOPO_DBG_ERR,
76 return (topo_mod_seterrno(mod, ETOPO_RTLD_OPEN));
79 if ((rp = mod->tm_data = topo_mod_alloc(mod, sizeof (topo_rtld_t)))
81 return (topo_mod_seterrno(mod, ETOPO_RTLD_OPEN));
90 return (topo_mod_seterrno(mod, ETOPO_RTLD_INIT));
96 err = rp->rtld_init(mod, version);
98 if (err < 0 || !(mod->tm_flags & TOPO_MOD_REG)) {
99 (void) rtld_fini(mod);
100 return (topo_mod_seterrno(mod, ETOPO_MOD_NOREG));