Lines Matching defs:kmc

53 kmc_free(kmdb_modctl_t *kmc)
55 if (kmc->kmc_modname != NULL)
56 strfree(kmc->kmc_modname);
57 mdb_free(kmc, sizeof (kmdb_modctl_t));
69 kmdb_modctl_t *kmc = NULL;
77 kmc = MDB_NV_COOKIE(v);
79 if (kmc->kmc_state == KMDB_MC_STATE_LOADING)
86 kmc = mdb_zalloc(sizeof (kmdb_modctl_t), UM_SLEEP);
87 kmc->kmc_loadmode = mode;
88 kmc->kmc_modname = strdup(modname);
89 kmc->kmc_state = KMDB_MC_STATE_LOADING;
91 if (mdb_nv_insert(&mdb.m_dmodctl, modname, NULL, (uintptr_t)kmc, 0) ==
94 kmc_free(kmc);
126 kmdb_modctl_t *kmc;
160 kmc = mdb_zalloc(sizeof (kmdb_modctl_t), UM_SLEEP);
161 kmc->kmc_loadmode = MDB_MOD_LOCAL;
162 kmc->kmc_modname = strdup(modname);
163 kmc->kmc_state = KMDB_MC_STATE_LOADING;
166 (uintptr_t)kmc, 0);
168 kmc = MDB_NV_COOKIE(v);
169 ASSERT(kmc->kmc_symtab == NULL);
172 kmc->kmc_modctl = modp;
173 kmc->kmc_exported = (mp->flags & KOBJ_EXPORTED) != 0;
174 mdb_gelf_ehdr_to_gehdr(&mp->hdr, &kmc->kmc_ehdr);
176 kmc->kmc_symtab = mdb_gelf_symtab_create_raw(&kmc->kmc_ehdr, mp->symhdr,
181 kmc->kmc_flags |= KMDB_MC_FL_NOUNLOAD;
184 kmc->kmc_loadmode, &kmc->kmc_mod) < 0)
187 kmc->kmc_state = KMDB_MC_STATE_LOADED;
192 if (kmc->kmc_symtab != NULL)
193 mdb_gelf_symtab_destroy(kmc->kmc_symtab);
195 kmdb_module_request_unload(kmc, kmc->kmc_modname, MDB_MOD_DEFER);
226 kmdb_module_request_unload(kmdb_modctl_t *kmc, const char *modname, int mode)
231 dur->dur_modctl = kmc->kmc_modctl;
235 kmc->kmc_state = KMDB_MC_STATE_UNLOADING;
249 kmdb_modctl_t *kmc = NULL;
267 kmc = MDB_NV_COOKIE(v);
268 switch (kmc->kmc_state) {
276 ASSERT(kmc->kmc_state == KMDB_MC_STATE_LOADED);
279 if (kmc->kmc_flags & KMDB_MC_FL_NOUNLOAD)
301 ASSERT(kmc->kmc_dlrefcnt == 0);
303 mdb_gelf_symtab_destroy(kmc->kmc_symtab);
305 kmdb_module_request_unload(kmc, basename, mode);
358 kmdb_modctl_t *kmc = MDB_NV_COOKIE(v);
361 if (kmc->kmc_state != KMDB_MC_STATE_LOADED)
364 mp = kmc->kmc_modctl->mod_mp;
367 !kmc->kmc_exported) {
372 if (kmc->kmc_symtab != NULL)
373 mdb_gelf_symtab_destroy(kmc->kmc_symtab);
375 kmc->kmc_symtab = mdb_gelf_symtab_create_raw(
376 &kmc->kmc_ehdr, mp->symhdr, mp->symtbl, mp->strhdr,
379 if (kmc->kmc_mod->mod_ctfp != NULL) {
380 ctf_close(kmc->kmc_mod->mod_ctfp);
381 kmc->kmc_mod->mod_ctfp =
382 mdb_ctf_open(kmc->kmc_modname, NULL);
384 kmc->kmc_exported = TRUE;