Lines Matching defs:cmi

94 typedef struct cmi {
95 struct cmi *cmi_next;
96 struct cmi *cmi_prev;
122 #define CMI_OPS(cmi) (cmi)->cmi_ops
123 #define CMI_OP_PRESENT(cmi, op) ((cmi) && CMI_OPS(cmi)->op != NULL)
131 cmi_link(cmi_t *cmi)
135 cmi->cmi_prev = NULL;
136 cmi->cmi_next = cmi_list;
138 cmi_list->cmi_prev = cmi;
139 cmi_list = cmi;
143 cmi_unlink(cmi_t *cmi)
146 ASSERT(cmi->cmi_refcnt == 0);
148 if (cmi->cmi_prev != NULL)
149 cmi->cmi_prev = cmi->cmi_next;
151 if (cmi->cmi_next != NULL)
152 cmi->cmi_next->cmi_prev = cmi->cmi_prev;
154 if (cmi_list == cmi)
155 cmi_list = cmi->cmi_next;
164 cmi_hold(cmi_t *cmi)
169 cmi->cmi_modp->mod_ref++;
171 cmi->cmi_refcnt++;
175 cmi_rele(cmi_t *cmi)
180 cmi->cmi_modp->mod_ref--;
183 if (--cmi->cmi_refcnt == 0) {
184 cmi_unlink(cmi);
185 kmem_free(cmi, sizeof (cmi_t));
215 cmi_t *cmi;
220 for (cmi = cmi_list; cmi != NULL; cmi = cmi->cmi_next) {
221 if (cmi->cmi_modp == modp)
222 return (cmi);
252 cmi = kmem_zalloc(sizeof (*cmi), KM_SLEEP);
253 cmi->cmi_ops = ops;
254 cmi->cmi_modp = modp;
256 cmi_link(cmi);
258 return (cmi);
303 cmi_t *cmi = NULL;
309 cmi = HDL2CMI(dhdl);
313 return (cmi);
320 cmi_t *cmi;
332 if ((cmi = cmi_search_list(hdl, match)) != NULL) {
333 cmi_hold(cmi);
334 return (cmi);
347 cmi = cmi_load_modctl(modp);
348 if (cmi)
349 cmi_hold(cmi);
352 return (cmi);
361 cmi_t *cmi;
370 if ((cmi = cmi_load_module(hdl, i, &suffixlevel)) == NULL)
378 if ((err = cmi->cmi_ops->cmi_init(hdl, datap)) == 0) {
382 cmi->cmi_modp->mod_modname,
386 return (cmi);
390 cmi->cmi_modp->mod_modname,
400 cmi_rele(cmi);
415 cmi_t *cmi;
425 cmi = cmi_load_modctl(modp);
426 if (cmi)
427 cmi_hold(cmi);
430 if (cmi == NULL)
433 if ((err = cmi->cmi_ops->cmi_init(hdl, datap)) != 0) {
437 cmi_rele(cmi);
441 return (cmi);
448 cmi_t *cmi = NULL;
468 cmi = cmi_load_specific(hdl, &data);
470 if (cmi == NULL && (cmi = cmi_load_generic(hdl, &data)) == NULL) {
478 cmi_hdl_setcmi(hdl, cmi, data);
496 cmi_t *cmi = HDL2CMI(hdl);
501 if (CMI_OP_PRESENT(cmi, cmi_fini))
502 CMI_OPS(cmi)->cmi_fini(hdl);
515 cmi_t *cmi;
521 cmi = HDL2CMI(hdl);
523 if (CMI_OP_PRESENT(cmi, cmi_post_startup))
524 CMI_OPS(cmi)->cmi_post_startup(hdl);
539 cmi_t *cmi;
545 cmi = HDL2CMI(hdl);
547 if (CMI_OP_PRESENT(cmi, cmi_post_mpstartup))
548 CMI_OPS(cmi)->cmi_post_mpstartup(hdl);
556 cmi_t *cmi = HDL2CMI(hdl);
561 if (CMI_OP_PRESENT(cmi, cmi_faulted_enter))
562 CMI_OPS(cmi)->cmi_faulted_enter(hdl);
568 cmi_t *cmi = HDL2CMI(hdl);
573 if (CMI_OP_PRESENT(cmi, cmi_faulted_exit))
574 CMI_OPS(cmi)->cmi_faulted_exit(hdl);
580 cmi_t *cmi;
585 cmi = HDL2CMI(hdl);
587 if (CMI_OP_PRESENT(cmi, cmi_mca_init))
588 CMI_OPS(cmi)->cmi_mca_init(hdl);
690 cmi_t *cmi;
706 (cmi = HDL2CMI(hdl)) == NULL ||
707 !CMI_OP_PRESENT(cmi, cmi_mca_trap)) {
721 disp = CMI_OPS(cmi)->cmi_mca_trap(hdl, rp);
764 cmi_t *cmi = HDL2CMI(hdl);
766 if (!CMI_OP_PRESENT(cmi, cmi_hdl_poke))
769 CMI_OPS(cmi)->cmi_hdl_poke(hdl);
777 cmi_t *cmi;
784 (cmi = HDL2CMI(hdl)) == NULL ||
785 !CMI_OP_PRESENT(cmi, cmi_cmci_trap)) {
798 CMI_OPS(cmi)->cmi_cmci_trap(hdl);
936 cmi_t *cmi = cmi_hdl_getcmi(hdl);
939 if (!CMI_OP_PRESENT(cmi, cmi_msrinject))
943 rc = CMI_OPS(cmi)->cmi_msrinject(hdl, regs, nregs, force);
959 cmi_t *cmi;
964 cmi = cmi_hdl_getcmi(hdl);
965 if (CMI_OP_PRESENT(cmi, cmi_panic_callback))
966 CMI_OPS(cmi)->cmi_panic_callback();