Lines Matching defs:header
33 #include "header.h"
86 void perf_header__set_feat(struct perf_header *header, int feat)
88 __set_bit(feat, header->adds_features);
91 void perf_header__clear_feat(struct perf_header *header, int feat)
93 __clear_bit(feat, header->adds_features);
96 bool perf_header__has_feat(const struct perf_header *header, int feat)
98 return test_bit(feat, header->adds_features);
324 session = container_of(ff->ph, struct perf_session, header);
857 * actual implementation must be in arch/$(SRCARCH)/util/header.c
892 session = container_of(ff->ph, struct perf_session, header);
981 session = container_of(ff->ph, struct perf_session, header);
1828 session = container_of(ff->ph, struct perf_session, header);
2194 session = container_of(ff->ph, struct perf_session, header);
2216 session = container_of(ff->ph, struct perf_session, header);
2275 cpumode = bev->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
2298 if (bev->header.misc & PERF_RECORD_MISC_BUILD_ID_SIZE)
2326 static int perf_header__read_build_ids_abi_quirk(struct perf_header *header,
2329 struct perf_session *session = container_of(header, struct perf_session, header);
2331 struct perf_event_header header;
2345 if (header->needs_swap)
2346 perf_event_header__bswap(&old_bev.header);
2348 len = old_bev.header.size - sizeof(old_bev);
2352 bev.header = old_bev.header;
2356 * it properly. The header.misc value give us nice hint.
2359 if (bev.header.misc == PERF_RECORD_MISC_GUEST_USER ||
2360 bev.header.misc == PERF_RECORD_MISC_GUEST_KERNEL)
2366 offset += bev.header.size;
2372 static int perf_header__read_build_ids(struct perf_header *header,
2375 struct perf_session *session = container_of(header, struct perf_session, header);
2387 if (header->needs_swap)
2388 perf_event_header__bswap(&bev.header);
2390 len = bev.header.size - sizeof(bev);
2409 return perf_header__read_build_ids_abi_quirk(header, input, offset, size);
2414 offset += bev.header.size;
2520 session = container_of(ff->ph, struct perf_session, header);
2630 * The header may be from old perf,
2668 * The header may be from old perf,
2842 session = container_of(ff->ph, struct perf_session, header);
2890 session = container_of(ff->ph, struct perf_session, header);
2957 session = container_of(ff->ph, struct perf_session, header);
3113 session = container_of(ff->ph, struct perf_session, header);
3488 struct perf_header *header = &session->header;
3504 fprintf(fp, "# header version : %u\n", header->version);
3505 fprintf(fp, "# data offset : %" PRIu64 "\n", header->data_offset);
3506 fprintf(fp, "# data size : %" PRIu64 "\n", header->data_size);
3507 fprintf(fp, "# feat offset : %" PRIu64 "\n", header->feat_offset);
3509 perf_header__process_sections(header, fd, &hd,
3516 for_each_clear_bit(bit, header->adds_features, HEADER_LAST_FEATURE) {
3585 static int perf_header__adds_write(struct perf_header *header,
3599 .ph = header,
3602 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS);
3612 sec_start = header->feat_offset;
3615 for_each_set_bit(feat, header->adds_features, HEADER_FEAT_BITS) {
3617 perf_header__clear_feat(header, feat);
3647 pr_debug("failed to write perf pipe header\n");
3661 struct perf_header *header = &session->header;
3674 pr_debug("failed to write perf header\n");
3699 pr_debug("failed to write perf header attribute\n");
3704 if (!header->data_offset)
3705 header->data_offset = lseek(fd, 0, SEEK_CUR);
3706 header->feat_offset = header->data_offset + header->data_size;
3709 err = perf_header__adds_write(header, evlist, fd, fc);
3723 .offset = header->data_offset,
3724 .size = header->data_size,
3729 memcpy(&f_header.adds_features, &header->adds_features, sizeof(header->adds_features));
3734 pr_debug("failed to write perf header\n");
3737 lseek(fd, header->data_offset + header->data_size, SEEK_SET);
3771 static int perf_header__getbuffer64(struct perf_header *header,
3777 if (header->needs_swap)
3783 int perf_header__process_sections(struct perf_header *header, int fd,
3795 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS);
3805 lseek(fd, header->feat_offset, SEEK_SET);
3807 err = perf_header__getbuffer64(header, fd, feat_sec, sec_size);
3811 for_each_set_bit(feat, header->adds_features, HEADER_LAST_FEATURE) {
3812 err = process(sec++, header, feat, fd, data);
3939 int perf_file_header__read(struct perf_file_header *header,
3946 ret = readn(fd, header, sizeof(*header));
3950 if (check_magic_endian(header->magic,
3951 header->attr_size, false, ph) < 0) {
3957 mem_bswap_64(header, offsetof(struct perf_file_header,
3961 if (header->size != sizeof(*header)) {
3963 if (header->size == offsetof(typeof(*header), adds_features))
3964 bitmap_zero(header->adds_features, HEADER_FEAT_BITS);
3983 mem_bswap_64(&header->adds_features,
3986 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
3988 mem_bswap_64(&header->adds_features,
3992 mem_bswap_32(&header->adds_features,
3996 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
3997 bitmap_zero(header->adds_features, HEADER_FEAT_BITS);
3998 __set_bit(HEADER_BUILD_ID, header->adds_features);
4002 memcpy(&ph->adds_features, &header->adds_features,
4005 ph->data_offset = header->data.offset;
4006 ph->data_size = header->data.size;
4007 ph->feat_offset = header->data.offset + header->data.size;
4039 static int perf_file_header__read_pipe(struct perf_pipe_file_header *header,
4050 ret = perf_data__read(data, header, sizeof(*header));
4054 if (check_magic_endian(header->magic, header->size, true, ph) < 0) {
4060 header->size = bswap_64(header->size);
4062 if (repipe && do_write(&ff, header, sizeof(*header)) < 0)
4070 struct perf_header *header = &session->header;
4073 if (perf_file_header__read_pipe(&f_header, header, session->data,
4095 pr_debug("cannot read %d bytes of header attr\n",
4177 struct perf_header *header = &session->header;
4188 session->evlist->env = &header->env;
4189 session->machines.host.env = &header->env;
4193 * check for the pipe header regardless of source.
4201 if (perf_file_header__read(&f_header, header, fd) < 0)
4204 if (header->needs_swap && data->in_place_update) {
4235 if (read_attr(fd, header, &f_attr) < 0)
4238 if (header->needs_swap) {
4250 evsel->needs_swap = header->needs_swap;
4259 * We don't have the cpu and thread maps on the header, so
4269 if (perf_header__getbuffer64(header, fd, &f_id, sizeof(f_id)))
4279 perf_header__process_sections(header, fd, &session->tevent,
4285 perf_header__process_sections(header, fd, NULL, perf_file_section__process);
4304 int type = fe->header.type;
4321 ff.size = event->header.size - sizeof(*fe);
4322 ff.ph = &session->header;
4401 n_ids = event->header.size - sizeof(event->header) - event->attr.attr.size;
4404 * We don't have the cpu and thread maps on the header, so