Lines Matching refs:ps

125 pmclog_get_record(struct pmclog_parse_state *ps, char **data, ssize_t *len)
133 return (ps->ps_state = PL_STATE_ERROR);
138 if (ps->ps_state == PL_STATE_NEW_RECORD)
139 ps->ps_svcount = 0;
141 dst = (char *) &ps->ps_saved + ps->ps_svcount;
143 switch (ps->ps_state) {
161 ps->ps_svcount = used = copylen;
164 ps->ps_state = PL_STATE_EXPECTING_HEADER;
171 h = PMCLOG_HEADER_FROM_SAVED_STATE(ps);
179 ps->ps_svcount = used = recordsize;
185 ps->ps_svcount = used = avail;
186 ps->ps_state = PL_STATE_PARTIAL_RECORD;
206 if (avail + ps->ps_svcount < HEADERSIZE) {
208 ps->ps_svcount += avail;
213 used = copylen = HEADERSIZE - ps->ps_svcount;
218 ps->ps_svcount += copylen;
234 h = PMCLOG_HEADER_FROM_SAVED_STATE(ps);
240 if (avail + ps->ps_svcount < recordsize) {
242 ps->ps_state = PL_STATE_PARTIAL_RECORD;
244 copylen = recordsize - ps->ps_svcount;
245 ps->ps_state = PL_STATE_NEW_RECORD;
249 ps->ps_svcount += copylen;
260 return ps->ps_state;
263 ps->ps_state = PL_STATE_ERROR;
264 return ps->ps_state;
281 struct pmclog_parse_state *ps;
283 ps = (struct pmclog_parse_state *) cookie;
285 assert(ps->ps_state != PL_STATE_ERROR);
287 if ((e = pmclog_get_record(ps,data,len)) == PL_STATE_ERROR) {
297 PMCLOG_INITIALIZE_READER(le, ps->ps_saved);
302 ps->ps_state = PL_STATE_ERROR;
342 ps->ps_version = ev->pl_u.pl_i.pl_version;
343 ps->ps_arch = ev->pl_u.pl_i.pl_arch;
344 ps->ps_initialized = 1;
368 _pmc_name_of_event(ev->pl_u.pl_a.pl_event, ps->ps_arch))
416 ps->ps_state = PL_STATE_ERROR;
421 ev->pl_offset = (ps->ps_offset += evlen);
422 ev->pl_count = (ps->ps_count += 1);
428 ps->ps_state = PL_STATE_ERROR;
447 struct pmclog_parse_state *ps;
449 ps = (struct pmclog_parse_state *) cookie;
451 if (ps->ps_state == PL_STATE_ERROR) {
460 if (ps->ps_len == 0) {
469 if (ps->ps_fd != PMCLOG_FD_NONE) {
471 nread = read(ps->ps_fd, ps->ps_buffer,
482 ps->ps_len = nread;
483 ps->ps_data = ps->ps_buffer;
488 assert(ps->ps_len > 0);
492 retval = pmclog_get_event(ps, &ps->ps_data, &ps->ps_len, ev);
499 ps->ps_fd != -1) {
500 assert(ps->ps_len == 0);
517 struct pmclog_parse_state *ps;
519 ps = (struct pmclog_parse_state *) cookie;
522 ps->ps_buffer || /* called for a file parser */
523 ps->ps_len != 0) /* unnecessary call */
526 ps->ps_data = data;
527 ps->ps_len = len;
539 struct pmclog_parse_state *ps;
541 if ((ps = (struct pmclog_parse_state *) malloc(sizeof(*ps))) == NULL)
544 ps->ps_state = PL_STATE_NEW_RECORD;
545 ps->ps_arch = -1;
546 ps->ps_initialized = 0;
547 ps->ps_count = 0;
548 ps->ps_offset = (off_t) 0;
549 bzero(&ps->ps_saved, sizeof(ps->ps_saved));
550 ps->ps_svcount = 0;
551 ps->ps_fd = fd;
552 ps->ps_data = NULL;
553 ps->ps_buffer = NULL;
554 ps->ps_len = 0;
557 if (ps->ps_fd != PMCLOG_FD_NONE) {
558 if ((ps->ps_buffer = malloc(PMCLOG_BUFFER_SIZE)) == NULL) {
559 free(ps);
564 return ps;
575 struct pmclog_parse_state *ps;
577 ps = (struct pmclog_parse_state *) cookie;
579 if (ps->ps_buffer)
580 free(ps->ps_buffer);
582 free(ps);