Lines Matching refs:set

57 static int cpc_set_valid(cpc_t *cpc, cpc_set_t *set);
192 cpc_set_t *set; in cpc_set_create() local
195 if ((set = malloc(sizeof (*set))) == NULL) { in cpc_set_create()
200 set->cs_request = NULL; in cpc_set_create()
201 set->cs_nreqs = 0; in cpc_set_create()
202 set->cs_state = CS_UNBOUND; in cpc_set_create()
203 set->cs_fd = -1; in cpc_set_create()
204 set->cs_pctx = NULL; in cpc_set_create()
205 set->cs_id = -1; in cpc_set_create()
206 set->cs_thr = 0; in cpc_set_create()
209 set->cs_next = cpc->cpc_sets; in cpc_set_create()
210 cpc->cpc_sets = set; in cpc_set_create()
213 return (set); in cpc_set_create()
217 cpc_set_destroy(cpc_t *cpc, cpc_set_t *set) in cpc_set_destroy() argument
228 if (csp == set) in cpc_set_destroy()
263 free(set); in cpc_set_destroy()
270 cpc_set_add_request(cpc_t *cpc, cpc_set_t *set, const char *event, in cpc_set_add_request() argument
278 if (cpc_set_valid(cpc, set) != 0 || set->cs_state != CS_UNBOUND) { in cpc_set_add_request()
301 req->cr_index = set->cs_nreqs; in cpc_set_add_request()
347 req->cr_next = set->cs_request; in cpc_set_add_request()
348 set->cs_request = req; in cpc_set_add_request()
349 set->cs_nreqs++; in cpc_set_add_request()
360 cpc_buf_create(cpc_t *cpc, cpc_set_t *set) in cpc_buf_create() argument
365 if (cpc_set_valid(cpc, set) != 0) { in cpc_buf_create()
373 buf->cb_size = set->cs_nreqs * sizeof (uint64_t); in cpc_buf_create()
425 cpc_bind_curlwp(cpc_t *cpc, cpc_set_t *set, uint_t flags) in cpc_bind_curlwp() argument
437 if (CPC_SET_VALID_FLAGS(flags) == 0 || set->cs_nreqs <= 0) { in cpc_bind_curlwp()
442 if ((packed_set = __cpc_pack_set(set, flags, &packsize)) == NULL) { in cpc_bind_curlwp()
456 set->cs_thr = thr_self(); in cpc_bind_curlwp()
457 set->cs_state = CS_BOUND_CURLWP; in cpc_bind_curlwp()
463 cpc_bind_pctx(cpc_t *cpc, pctx_t *pctx, id_t id, cpc_set_t *set, uint_t flags) in cpc_bind_pctx() argument
473 if (flags != 0 || cpc_set_valid(cpc, set) != 0 || set->cs_nreqs <= 0) { in cpc_bind_pctx()
478 if ((packed_set = __cpc_pack_set(set, flags, &packsize)) == NULL) { in cpc_bind_pctx()
489 set->cs_pctx = pctx; in cpc_bind_pctx()
490 set->cs_id = id; in cpc_bind_pctx()
491 set->cs_state = CS_BOUND_PCTX; in cpc_bind_pctx()
500 cpc_bind_cpu(cpc_t *cpc, processorid_t id, cpc_set_t *set, uint_t flags) in cpc_bind_cpu() argument
513 if (flags != 0 || cpc_set_valid(cpc, set) != 0 || set->cs_nreqs <= 0) { in cpc_bind_cpu()
518 if (processor_bind(P_LWPID, P_MYID, id, &set->cs_obind) == -1) { in cpc_bind_cpu()
525 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_bind_cpu()
535 if (set->cs_fd != -1) in cpc_bind_cpu()
536 (void) close(set->cs_fd); in cpc_bind_cpu()
537 set->cs_fd = fd; in cpc_bind_cpu()
539 if ((packed_set = __cpc_pack_set(set, flags, &packsize)) == NULL) { in cpc_bind_cpu()
541 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_bind_cpu()
554 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_bind_cpu()
563 set->cs_thr = thr_self(); in cpc_bind_cpu()
564 set->cs_state = CS_BOUND_CPU; in cpc_bind_cpu()
579 cpc_set_restart(cpc_t *cpc, cpc_set_t *set) in cpc_set_restart() argument
586 cpc_unbind(cpc_t *cpc, cpc_set_t *set) in cpc_unbind() argument
591 if (cpc_set_valid(cpc, set) != 0) { in cpc_unbind()
596 switch (set->cs_state) { in cpc_unbind()
605 ret = ioctl(set->cs_fd, CPCIO_RELE, NULL); in cpc_unbind()
607 (void) close(set->cs_fd); in cpc_unbind()
608 set->cs_fd = -1; in cpc_unbind()
609 (void) processor_bind(P_LWPID, P_MYID, set->cs_obind, NULL); in cpc_unbind()
612 if (set->cs_pctx != NULL) { in cpc_unbind()
613 ret = __pctx_cpc(set->cs_pctx, cpc, CPC_RELE, in cpc_unbind()
614 set->cs_id, 0, 0, 0, 0); in cpc_unbind()
620 set->cs_thr = 0; in cpc_unbind()
621 set->cs_id = -1; in cpc_unbind()
622 set->cs_state = CS_UNBOUND; in cpc_unbind()
630 cpc_set_sample(cpc_t *cpc, cpc_set_t *set, cpc_buf_t *buf) in cpc_set_sample() argument
639 if (set->cs_state == CS_UNBOUND || in cpc_set_sample()
640 buf->cb_size != set->cs_nreqs * sizeof (uint64_t)) { in cpc_set_sample()
645 switch (set->cs_state) { in cpc_set_sample()
653 return (ioctl(set->cs_fd, CPCIO_SAMPLE, &args)); in cpc_set_sample()
655 return (__pctx_cpc(set->cs_pctx, cpc, CPC_SAMPLE, set->cs_id, in cpc_set_sample()
782 cpc_walk_requests(cpc_t *cpc, cpc_set_t *set, void *arg, in cpc_walk_requests() argument
790 for (rp = set->cs_request; rp != NULL; rp = rp->cr_next) { in cpc_walk_requests()
1095 cpc_set_t *set; in cpc_invalidate_pctx() local
1099 for (set = cpc->cpc_sets; set != NULL; set = set->cs_next) in cpc_invalidate_pctx()
1100 if (set->cs_pctx == pctx) in cpc_invalidate_pctx()
1101 set->cs_pctx = NULL; in cpc_invalidate_pctx()
1111 cpc_set_valid(cpc_t *cpc, cpc_set_t *set) in cpc_set_valid() argument
1118 if (csp == set) in cpc_set_valid()