Lines Matching refs:wp
87 walk_init(fm_cmi_walk_t *wp, uint_t chipid, uint_t coreid, uint_t strandid,
90 wp->chipid = chipid;
91 wp->coreid = coreid;
92 wp->strandid = strandid;
97 if ((wp->cbfunc = cbfunc) == NULL) {
98 wp->hdls = kmem_alloc(sizeof (cmi_hdl_t) * INIT_HDLS, KM_SLEEP);
99 wp->nhdl_max = INIT_HDLS;
100 wp->nhdl = 0;
105 walk_fini(fm_cmi_walk_t *wp)
107 if (wp->cbfunc == NULL)
108 kmem_free(wp->hdls, sizeof (cmi_hdl_t) * wp->nhdl_max);
114 fm_cmi_walk_t *wp = (fm_cmi_walk_t *)arg1;
116 if (wp->chipid != ANY_ID && wp->chipid != cmi_hdl_chipid(hdl))
118 if (wp->coreid != ANY_ID && wp->coreid != cmi_hdl_coreid(hdl))
120 if (wp->strandid != ANY_ID && wp->strandid != cmi_hdl_strandid(hdl))
129 if (wp->cbfunc != NULL)
130 return (wp->cbfunc(hdl, arg2, arg3));
132 if (wp->nhdl == wp->nhdl_max) {
133 size_t sz = sizeof (cmi_hdl_t) * wp->nhdl_max;
136 bcopy(wp->hdls, newarray, sz);
137 kmem_free(wp->hdls, sz);
138 wp->hdls = newarray;
139 wp->nhdl_max <<= 1;
143 wp->hdls[wp->nhdl++] = hdl;