Lines Matching refs: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);
2202 session = container_of(ff->ph, struct perf_session, header);
2224 session = container_of(ff->ph, struct perf_session, header);
2283 cpumode = bev->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
2306 if (bev->header.misc & PERF_RECORD_MISC_BUILD_ID_SIZE)
2334 static int perf_header__read_build_ids_abi_quirk(struct perf_header *header,
2337 struct perf_session *session = container_of(header, struct perf_session, header);
2339 struct perf_event_header header;
2353 if (header->needs_swap)
2354 perf_event_header__bswap(&old_bev.header);
2356 len = old_bev.header.size - sizeof(old_bev);
2360 bev.header = old_bev.header;
2364 * it properly. The header.misc value give us nice hint.
2367 if (bev.header.misc == PERF_RECORD_MISC_GUEST_USER ||
2368 bev.header.misc == PERF_RECORD_MISC_GUEST_KERNEL)
2374 offset += bev.header.size;
2380 static int perf_header__read_build_ids(struct perf_header *header,
2383 struct perf_session *session = container_of(header, struct perf_session, header);
2395 if (header->needs_swap)
2396 perf_event_header__bswap(&bev.header);
2398 len = bev.header.size - sizeof(bev);
2417 return perf_header__read_build_ids_abi_quirk(header, input, offset, size);
2422 offset += bev.header.size;
2528 session = container_of(ff->ph, struct perf_session, header);
2638 * The header may be from old perf,
2676 * The header may be from old perf,
2850 session = container_of(ff->ph, struct perf_session, header);
2898 session = container_of(ff->ph, struct perf_session, header);
2968 session = container_of(ff->ph, struct perf_session, header);
3124 session = container_of(ff->ph, struct perf_session, header);
3511 struct perf_header *header = &session->header;
3527 fprintf(fp, "# header version : %u\n", header->version);
3528 fprintf(fp, "# data offset : %" PRIu64 "\n", header->data_offset);
3529 fprintf(fp, "# data size : %" PRIu64 "\n", header->data_size);
3530 fprintf(fp, "# feat offset : %" PRIu64 "\n", header->feat_offset);
3532 perf_header__process_sections(header, fd, &hd,
3539 for_each_clear_bit(bit, header->adds_features, HEADER_LAST_FEATURE) {
3608 static int perf_header__adds_write(struct perf_header *header,
3615 .ph = header,
3623 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS);
3633 sec_start = header->feat_offset;
3636 for_each_set_bit(feat, header->adds_features, HEADER_FEAT_BITS) {
3638 perf_header__clear_feat(header, feat);
3669 pr_debug("failed to write perf pipe header\n");
3683 struct perf_header *header = &session->header;
3697 pr_debug("failed to write perf header\n");
3723 pr_debug("failed to write perf header attribute\n");
3729 if (!header->data_offset)
3730 header->data_offset = lseek(fd, 0, SEEK_CUR);
3731 header->feat_offset = header->data_offset + header->data_size;
3734 err = perf_header__adds_write(header, evlist, fd, fc);
3750 .offset = header->data_offset,
3751 .size = header->data_size,
3756 memcpy(&f_header.adds_features, &header->adds_features, sizeof(header->adds_features));
3762 pr_debug("failed to write perf header\n");
3765 lseek(fd, header->data_offset + header->data_size, SEEK_SET);
3799 static int perf_header__getbuffer64(struct perf_header *header,
3805 if (header->needs_swap)
3811 int perf_header__process_sections(struct perf_header *header, int fd,
3823 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS);
3833 lseek(fd, header->feat_offset, SEEK_SET);
3835 err = perf_header__getbuffer64(header, fd, feat_sec, sec_size);
3839 for_each_set_bit(feat, header->adds_features, HEADER_LAST_FEATURE) {
3840 err = process(sec++, header, feat, fd, data);
3967 int perf_file_header__read(struct perf_file_header *header,
3974 ret = readn(fd, header, sizeof(*header));
3978 if (check_magic_endian(header->magic,
3979 header->attr_size, false, ph) < 0) {
3985 mem_bswap_64(header, offsetof(struct perf_file_header,
3989 if (header->size != sizeof(*header)) {
3991 if (header->size == offsetof(typeof(*header), adds_features))
3992 bitmap_zero(header->adds_features, HEADER_FEAT_BITS);
4011 mem_bswap_64(&header->adds_features,
4014 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
4016 mem_bswap_64(&header->adds_features,
4020 mem_bswap_32(&header->adds_features,
4024 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
4025 bitmap_zero(header->adds_features, HEADER_FEAT_BITS);
4026 __set_bit(HEADER_BUILD_ID, header->adds_features);
4030 memcpy(&ph->adds_features, &header->adds_features,
4033 ph->data_offset = header->data.offset;
4034 ph->data_size = header->data.size;
4035 ph->feat_offset = header->data.offset + header->data.size;
4067 static int perf_file_header__read_pipe(struct perf_pipe_file_header *header,
4078 ret = perf_data__read(data, header, sizeof(*header));
4082 if (check_magic_endian(header->magic, header->size, true, ph) < 0) {
4088 header->size = bswap_64(header->size);
4090 if (repipe && do_write(&ff, header, sizeof(*header)) < 0)
4098 struct perf_header *header = &session->header;
4101 if (perf_file_header__read_pipe(&f_header, header, session->data,
4123 pr_debug("cannot read %d bytes of header attr\n",
4205 struct perf_header *header = &session->header;
4216 session->evlist->env = &header->env;
4217 session->machines.host.env = &header->env;
4221 * check for the pipe header regardless of source.
4229 if (perf_file_header__read(&f_header, header, fd) < 0)
4232 if (header->needs_swap && data->in_place_update) {
4263 if (read_attr(fd, header, &f_attr) < 0)
4266 if (header->needs_swap) {
4278 evsel->needs_swap = header->needs_swap;
4287 * We don't have the cpu and thread maps on the header, so
4297 if (perf_header__getbuffer64(header, fd, &f_id, sizeof(f_id)))
4307 perf_header__process_sections(header, fd, &session->tevent,
4313 perf_header__process_sections(header, fd, NULL, perf_file_section__process);
4332 int type = fe->header.type;
4349 ff.size = event->header.size - sizeof(*fe);
4350 ff.ph = &session->header;
4429 n_ids = event->header.size - sizeof(event->header) - event->attr.attr.size;
4432 * We don't have the cpu and thread maps on the header, so