Lines Matching defs:header
29 #include "header.h"
76 void perf_header__set_feat(struct perf_header *header, int feat)
78 set_bit(feat, header->adds_features);
81 void perf_header__clear_feat(struct perf_header *header, int feat)
83 clear_bit(feat, header->adds_features);
86 bool perf_header__has_feat(const struct perf_header *header, int feat)
88 return test_bit(feat, header->adds_features);
312 session = container_of(ff->ph, struct perf_session, header);
849 * actual implementation must be in arch/$(SRCARCH)/util/header.c
884 session = container_of(ff->ph, struct perf_session, header);
939 session = container_of(ff->ph, struct perf_session, header);
1635 session = container_of(ff->ph, struct perf_session, header);
1984 session = container_of(ff->ph, struct perf_session, header);
2006 session = container_of(ff->ph, struct perf_session, header);
2065 cpumode = bev->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
2088 if (bev->header.misc & PERF_RECORD_MISC_BUILD_ID_SIZE)
2115 static int perf_header__read_build_ids_abi_quirk(struct perf_header *header,
2118 struct perf_session *session = container_of(header, struct perf_session, header);
2120 struct perf_event_header header;
2134 if (header->needs_swap)
2135 perf_event_header__bswap(&old_bev.header);
2137 len = old_bev.header.size - sizeof(old_bev);
2141 bev.header = old_bev.header;
2145 * it properly. The header.misc value give us nice hint.
2148 if (bev.header.misc == PERF_RECORD_MISC_GUEST_USER ||
2149 bev.header.misc == PERF_RECORD_MISC_GUEST_KERNEL)
2155 offset += bev.header.size;
2161 static int perf_header__read_build_ids(struct perf_header *header,
2164 struct perf_session *session = container_of(header, struct perf_session, header);
2176 if (header->needs_swap)
2177 perf_event_header__bswap(&bev.header);
2179 len = bev.header.size - sizeof(bev);
2198 return perf_header__read_build_ids_abi_quirk(header, input, offset, size);
2203 offset += bev.header.size;
2309 session = container_of(ff->ph, struct perf_session, header);
2419 * The header may be from old perf,
2457 * The header may be from old perf,
2631 session = container_of(ff->ph, struct perf_session, header);
2680 session = container_of(ff->ph, struct perf_session, header);
2747 session = container_of(ff->ph, struct perf_session, header);
2863 session = container_of(ff->ph, struct perf_session, header);
3171 struct perf_header *header = &session->header;
3187 fprintf(fp, "# header version : %u\n", header->version);
3188 fprintf(fp, "# data offset : %" PRIu64 "\n", header->data_offset);
3189 fprintf(fp, "# data size : %" PRIu64 "\n", header->data_size);
3190 fprintf(fp, "# feat offset : %" PRIu64 "\n", header->feat_offset);
3192 perf_header__process_sections(header, fd, &hd,
3199 for_each_clear_bit(bit, header->adds_features, HEADER_LAST_FEATURE) {
3239 static int perf_header__adds_write(struct perf_header *header,
3252 .ph = header,
3255 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS);
3265 sec_start = header->feat_offset;
3268 for_each_set_bit(feat, header->adds_features, HEADER_FEAT_BITS) {
3270 perf_header__clear_feat(header, feat);
3300 pr_debug("failed to write perf pipe header\n");
3313 struct perf_header *header = &session->header;
3326 pr_debug("failed to write perf header\n");
3343 pr_debug("failed to write perf header attribute\n");
3348 if (!header->data_offset)
3349 header->data_offset = lseek(fd, 0, SEEK_CUR);
3350 header->feat_offset = header->data_offset + header->data_size;
3353 err = perf_header__adds_write(header, evlist, fd);
3367 .offset = header->data_offset,
3368 .size = header->data_size,
3373 memcpy(&f_header.adds_features, &header->adds_features, sizeof(header->adds_features));
3378 pr_debug("failed to write perf header\n");
3381 lseek(fd, header->data_offset + header->data_size, SEEK_SET);
3386 static int perf_header__getbuffer64(struct perf_header *header,
3392 if (header->needs_swap)
3398 int perf_header__process_sections(struct perf_header *header, int fd,
3410 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS);
3420 lseek(fd, header->feat_offset, SEEK_SET);
3422 err = perf_header__getbuffer64(header, fd, feat_sec, sec_size);
3426 for_each_set_bit(feat, header->adds_features, HEADER_LAST_FEATURE) {
3427 err = process(sec++, header, feat, fd, data);
3554 int perf_file_header__read(struct perf_file_header *header,
3561 ret = readn(fd, header, sizeof(*header));
3565 if (check_magic_endian(header->magic,
3566 header->attr_size, false, ph) < 0) {
3572 mem_bswap_64(header, offsetof(struct perf_file_header,
3576 if (header->size != sizeof(*header)) {
3578 if (header->size == offsetof(typeof(*header), adds_features))
3579 bitmap_zero(header->adds_features, HEADER_FEAT_BITS);
3598 mem_bswap_64(&header->adds_features,
3601 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
3603 mem_bswap_64(&header->adds_features,
3607 mem_bswap_32(&header->adds_features,
3611 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
3612 bitmap_zero(header->adds_features, HEADER_FEAT_BITS);
3613 set_bit(HEADER_BUILD_ID, header->adds_features);
3617 memcpy(&ph->adds_features, &header->adds_features,
3620 ph->data_offset = header->data.offset;
3621 ph->data_size = header->data.size;
3622 ph->feat_offset = header->data.offset + header->data.size;
3654 static int perf_file_header__read_pipe(struct perf_pipe_file_header *header,
3664 ret = readn(fd, header, sizeof(*header));
3668 if (check_magic_endian(header->magic, header->size, true, ph) < 0) {
3674 header->size = bswap_64(header->size);
3676 if (repipe && do_write(&ff, header, sizeof(*header)) < 0)
3684 struct perf_header *header = &session->header;
3687 if (perf_file_header__read_pipe(&f_header, header,
3710 pr_debug("cannot read %d bytes of header attr\n",
3792 struct perf_header *header = &session->header;
3803 session->evlist->env = &header->env;
3804 session->machines.host.env = &header->env;
3808 * check for the pipe header regardless of source.
3816 if (perf_file_header__read(&f_header, header, fd) < 0)
3845 if (read_attr(fd, header, &f_attr) < 0)
3848 if (header->needs_swap) {
3860 evsel->needs_swap = header->needs_swap;
3869 * We don't have the cpu and thread maps on the header, so
3879 if (perf_header__getbuffer64(header, fd, &f_id, sizeof(f_id)))
3888 perf_header__process_sections(header, fd, &session->tevent,
3911 int type = fe->header.type;
3927 ff.size = event->header.size - sizeof(*fe);
3928 ff.ph = &session->header;
4007 n_ids = event->header.size - sizeof(event->header) - event->attr.attr.size;
4010 * We don't have the cpu and thread maps on the header, so