Lines Matching refs:ps

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