Lines Matching refs:ps

104 pmclog_get_record(struct pmclog_parse_state *ps, char **data, ssize_t *len)  in pmclog_get_record()  argument
112 return (ps->ps_state = PL_STATE_ERROR); in pmclog_get_record()
117 if (ps->ps_state == PL_STATE_NEW_RECORD) in pmclog_get_record()
118 ps->ps_svcount = 0; in pmclog_get_record()
120 dst = (char *) &ps->ps_saved + ps->ps_svcount; in pmclog_get_record()
122 switch (ps->ps_state) { in pmclog_get_record()
140 ps->ps_svcount = used = copylen; in pmclog_get_record()
143 ps->ps_state = PL_STATE_EXPECTING_HEADER; in pmclog_get_record()
150 h = PMCLOG_HEADER_FROM_SAVED_STATE(ps); in pmclog_get_record()
158 ps->ps_svcount = used = recordsize; in pmclog_get_record()
164 ps->ps_svcount = used = avail; in pmclog_get_record()
165 ps->ps_state = PL_STATE_PARTIAL_RECORD; in pmclog_get_record()
185 if (avail + ps->ps_svcount < HEADERSIZE) { in pmclog_get_record()
187 ps->ps_svcount += avail; in pmclog_get_record()
192 used = copylen = HEADERSIZE - ps->ps_svcount; in pmclog_get_record()
197 ps->ps_svcount += copylen; in pmclog_get_record()
213 h = PMCLOG_HEADER_FROM_SAVED_STATE(ps); in pmclog_get_record()
219 if (avail + ps->ps_svcount < recordsize) { in pmclog_get_record()
221 ps->ps_state = PL_STATE_PARTIAL_RECORD; in pmclog_get_record()
223 copylen = recordsize - ps->ps_svcount; in pmclog_get_record()
224 ps->ps_state = PL_STATE_NEW_RECORD; in pmclog_get_record()
228 ps->ps_svcount += copylen; in pmclog_get_record()
239 return ps->ps_state; in pmclog_get_record()
242 ps->ps_state = PL_STATE_ERROR; in pmclog_get_record()
243 return ps->ps_state; in pmclog_get_record()
260 struct pmclog_parse_state *ps; in pmclog_get_event() local
263 ps = (struct pmclog_parse_state *) cookie; in pmclog_get_event()
265 assert(ps->ps_state != PL_STATE_ERROR); in pmclog_get_event()
267 if ((e = pmclog_get_record(ps,data,len)) == PL_STATE_ERROR) { in pmclog_get_event()
278 PMCLOG_INITIALIZE_READER(le, ps->ps_saved); in pmclog_get_event()
285 ps->ps_state = PL_STATE_ERROR; in pmclog_get_event()
333 ps->ps_cpuid = strdup(ev->pl_u.pl_i.pl_cpuid); in pmclog_get_event()
334 ps->ps_version = ev->pl_u.pl_i.pl_version; in pmclog_get_event()
335 ps->ps_arch = ev->pl_u.pl_i.pl_arch; in pmclog_get_event()
336 ps->ps_initialized = 1; in pmclog_get_event()
364 pmc_pmu_event_get_by_idx(ps->ps_cpuid, in pmclog_get_event()
369 ps->ps_arch); in pmclog_get_event()
439 ps->ps_state = PL_STATE_ERROR; in pmclog_get_event()
444 ev->pl_offset = (ps->ps_offset += evlen); in pmclog_get_event()
445 ev->pl_count = (ps->ps_count += 1); in pmclog_get_event()
452 ps->ps_state = PL_STATE_ERROR; in pmclog_get_event()
471 struct pmclog_parse_state *ps; in pmclog_read() local
473 ps = (struct pmclog_parse_state *) cookie; in pmclog_read()
475 if (ps->ps_state == PL_STATE_ERROR) { in pmclog_read()
484 if (ps->ps_len == 0) { in pmclog_read()
493 if (ps->ps_fd != PMCLOG_FD_NONE) { in pmclog_read()
495 nread = read(ps->ps_fd, ps->ps_buffer, in pmclog_read()
506 ps->ps_len = nread; in pmclog_read()
507 ps->ps_data = ps->ps_buffer; in pmclog_read()
513 assert(ps->ps_len > 0); in pmclog_read()
517 retval = pmclog_get_event(ps, &ps->ps_data, &ps->ps_len, ev); in pmclog_read()
523 ps->ps_fd != -1) { in pmclog_read()
524 assert(ps->ps_len == 0); in pmclog_read()
541 struct pmclog_parse_state *ps; in pmclog_feed() local
543 ps = (struct pmclog_parse_state *) cookie; in pmclog_feed()
546 ps->ps_buffer || /* called for a file parser */ in pmclog_feed()
547 ps->ps_len != 0) /* unnecessary call */ in pmclog_feed()
550 ps->ps_data = data; in pmclog_feed()
551 ps->ps_len = len; in pmclog_feed()
563 struct pmclog_parse_state *ps; in pmclog_open() local
565 if ((ps = (struct pmclog_parse_state *) malloc(sizeof(*ps))) == NULL) in pmclog_open()
568 ps->ps_state = PL_STATE_NEW_RECORD; in pmclog_open()
569 ps->ps_arch = -1; in pmclog_open()
570 ps->ps_initialized = 0; in pmclog_open()
571 ps->ps_count = 0; in pmclog_open()
572 ps->ps_offset = (off_t) 0; in pmclog_open()
573 bzero(&ps->ps_saved, sizeof(ps->ps_saved)); in pmclog_open()
574 ps->ps_cpuid = NULL; in pmclog_open()
575 ps->ps_svcount = 0; in pmclog_open()
576 ps->ps_fd = fd; in pmclog_open()
577 ps->ps_data = NULL; in pmclog_open()
578 ps->ps_buffer = NULL; in pmclog_open()
579 ps->ps_len = 0; in pmclog_open()
582 if (ps->ps_fd != PMCLOG_FD_NONE) { in pmclog_open()
583 if ((ps->ps_buffer = malloc(PMCLOG_BUFFER_SIZE)) == NULL) { in pmclog_open()
584 free(ps); in pmclog_open()
589 return ps; in pmclog_open()
600 struct pmclog_parse_state *ps; in pmclog_close() local
602 ps = (struct pmclog_parse_state *) cookie; in pmclog_close()
604 if (ps->ps_buffer) in pmclog_close()
605 free(ps->ps_buffer); in pmclog_close()
607 free(ps); in pmclog_close()