Lines Matching refs:set
56 static int cpc_set_valid(cpc_t *cpc, cpc_set_t *set);
191 cpc_set_t *set; in cpc_set_create() local
194 if ((set = malloc(sizeof (*set))) == NULL) { in cpc_set_create()
199 set->cs_request = NULL; in cpc_set_create()
200 set->cs_nreqs = 0; in cpc_set_create()
201 set->cs_state = CS_UNBOUND; in cpc_set_create()
202 set->cs_fd = -1; in cpc_set_create()
203 set->cs_pctx = NULL; in cpc_set_create()
204 set->cs_id = -1; in cpc_set_create()
205 set->cs_thr = NULL; in cpc_set_create()
208 set->cs_next = cpc->cpc_sets; in cpc_set_create()
209 cpc->cpc_sets = set; in cpc_set_create()
212 return (set); in cpc_set_create()
216 cpc_set_destroy(cpc_t *cpc, cpc_set_t *set) in cpc_set_destroy() argument
227 if (csp == set) in cpc_set_destroy()
262 free(set); in cpc_set_destroy()
269 cpc_set_add_request(cpc_t *cpc, cpc_set_t *set, const char *event, in cpc_set_add_request() argument
277 if (cpc_set_valid(cpc, set) != 0 || set->cs_state != CS_UNBOUND) { in cpc_set_add_request()
300 req->cr_index = set->cs_nreqs; in cpc_set_add_request()
346 req->cr_next = set->cs_request; in cpc_set_add_request()
347 set->cs_request = req; in cpc_set_add_request()
348 set->cs_nreqs++; in cpc_set_add_request()
359 cpc_buf_create(cpc_t *cpc, cpc_set_t *set) in cpc_buf_create() argument
364 if (cpc_set_valid(cpc, set) != 0) { in cpc_buf_create()
372 buf->cb_size = set->cs_nreqs * sizeof (uint64_t); in cpc_buf_create()
424 cpc_bind_curlwp(cpc_t *cpc, cpc_set_t *set, uint_t flags) in cpc_bind_curlwp() argument
436 if (CPC_SET_VALID_FLAGS(flags) == 0 || set->cs_nreqs <= 0) { in cpc_bind_curlwp()
441 if ((packed_set = __cpc_pack_set(set, flags, &packsize)) == NULL) { in cpc_bind_curlwp()
455 set->cs_thr = thr_self(); in cpc_bind_curlwp()
456 set->cs_state = CS_BOUND_CURLWP; in cpc_bind_curlwp()
462 cpc_bind_pctx(cpc_t *cpc, pctx_t *pctx, id_t id, cpc_set_t *set, uint_t flags) in cpc_bind_pctx() argument
472 if (flags != 0 || cpc_set_valid(cpc, set) != 0 || set->cs_nreqs <= 0) { in cpc_bind_pctx()
477 if ((packed_set = __cpc_pack_set(set, flags, &packsize)) == NULL) { in cpc_bind_pctx()
488 set->cs_pctx = pctx; in cpc_bind_pctx()
489 set->cs_id = id; in cpc_bind_pctx()
490 set->cs_state = CS_BOUND_PCTX; in cpc_bind_pctx()
499 cpc_bind_cpu(cpc_t *cpc, processorid_t id, cpc_set_t *set, uint_t flags) in cpc_bind_cpu() argument
512 if (flags != 0 || cpc_set_valid(cpc, set) != 0 || set->cs_nreqs <= 0) { in cpc_bind_cpu()
517 if (processor_bind(P_LWPID, P_MYID, id, &set->cs_obind) == -1) { in cpc_bind_cpu()
524 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_bind_cpu()
534 if (set->cs_fd != -1) in cpc_bind_cpu()
535 (void) close(set->cs_fd); in cpc_bind_cpu()
536 set->cs_fd = fd; in cpc_bind_cpu()
538 if ((packed_set = __cpc_pack_set(set, flags, &packsize)) == NULL) { in cpc_bind_cpu()
540 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_bind_cpu()
553 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_bind_cpu()
562 set->cs_thr = thr_self(); in cpc_bind_cpu()
563 set->cs_state = CS_BOUND_CPU; in cpc_bind_cpu()
578 cpc_set_restart(cpc_t *cpc, cpc_set_t *set) in cpc_set_restart() argument
585 cpc_unbind(cpc_t *cpc, cpc_set_t *set) in cpc_unbind() argument
590 if (cpc_set_valid(cpc, set) != 0) { in cpc_unbind()
595 switch (set->cs_state) { in cpc_unbind()
604 ret = ioctl(set->cs_fd, CPCIO_RELE, NULL); in cpc_unbind()
606 (void) close(set->cs_fd); in cpc_unbind()
607 set->cs_fd = -1; in cpc_unbind()
608 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_unbind()
611 if (set->cs_pctx != NULL) { in cpc_unbind()
612 ret = __pctx_cpc(set->cs_pctx, cpc, CPC_RELE, in cpc_unbind()
613 set->cs_id, 0, 0, 0, 0); in cpc_unbind()
619 set->cs_thr = NULL; in cpc_unbind()
620 set->cs_id = -1; in cpc_unbind()
621 set->cs_state = CS_UNBOUND; in cpc_unbind()
629 cpc_set_sample(cpc_t *cpc, cpc_set_t *set, cpc_buf_t *buf) in cpc_set_sample() argument
638 if (set->cs_state == CS_UNBOUND || in cpc_set_sample()
639 buf->cb_size != set->cs_nreqs * sizeof (uint64_t)) { in cpc_set_sample()
644 switch (set->cs_state) { in cpc_set_sample()
652 return (ioctl(set->cs_fd, CPCIO_SAMPLE, &args)); in cpc_set_sample()
654 return (__pctx_cpc(set->cs_pctx, cpc, CPC_SAMPLE, set->cs_id, in cpc_set_sample()
781 cpc_walk_requests(cpc_t *cpc, cpc_set_t *set, void *arg, in cpc_walk_requests() argument
789 for (rp = set->cs_request; rp != NULL; rp = rp->cr_next) { in cpc_walk_requests()
1094 cpc_set_t *set; in cpc_invalidate_pctx() local
1098 for (set = cpc->cpc_sets; set != NULL; set = set->cs_next) in cpc_invalidate_pctx()
1099 if (set->cs_pctx == pctx) in cpc_invalidate_pctx()
1100 set->cs_pctx = NULL; in cpc_invalidate_pctx()
1110 cpc_set_valid(cpc_t *cpc, cpc_set_t *set) in cpc_set_valid() argument
1117 if (csp == set) in cpc_set_valid()