/* * Attach a dynamically-initialized event. Zero it, set up the type * and string pointers and then act like it was statically initialized. */ void evcnt_attach_dynamic(struct evcnt *ev, int type, const struct evcnt *parent, const char *group, const char *name) { memset(ev, 0, sizeof *ev); evcnt_attach_dynamic_nozero(ev, type, parent, group, name); }
void pmap_tlb_info_evcnt_attach(struct pmap_tlb_info *ti) { #ifdef MULTIPROCESSOR evcnt_attach_dynamic_nozero(&ti->ti_evcnt_synci_desired, EVCNT_TYPE_MISC, NULL, ti->ti_name, "icache syncs desired"); evcnt_attach_dynamic_nozero(&ti->ti_evcnt_synci_asts, EVCNT_TYPE_MISC, &ti->ti_evcnt_synci_desired, ti->ti_name, "icache sync asts"); evcnt_attach_dynamic_nozero(&ti->ti_evcnt_synci_all, EVCNT_TYPE_MISC, &ti->ti_evcnt_synci_asts, ti->ti_name, "icache full syncs"); evcnt_attach_dynamic_nozero(&ti->ti_evcnt_synci_pages, EVCNT_TYPE_MISC, &ti->ti_evcnt_synci_asts, ti->ti_name, "icache pages synced"); evcnt_attach_dynamic_nozero(&ti->ti_evcnt_synci_duplicate, EVCNT_TYPE_MISC, &ti->ti_evcnt_synci_desired, ti->ti_name, "icache dup pages skipped"); evcnt_attach_dynamic_nozero(&ti->ti_evcnt_synci_deferred, EVCNT_TYPE_MISC, &ti->ti_evcnt_synci_desired, ti->ti_name, "icache pages deferred"); #endif /* MULTIPROCESSOR */ evcnt_attach_dynamic_nozero(&ti->ti_evcnt_asid_reinits, EVCNT_TYPE_MISC, NULL, ti->ti_name, "asid pool reinit"); }