Lines Matching refs:header
50 void perf_header__set_feat(struct perf_header *header, int feat) in perf_header__set_feat() argument
52 set_bit(feat, header->adds_features); in perf_header__set_feat()
55 void perf_header__clear_feat(struct perf_header *header, int feat) in perf_header__clear_feat() argument
57 clear_bit(feat, header->adds_features); in perf_header__clear_feat()
60 bool perf_header__has_feat(const struct perf_header *header, int feat) in perf_header__has_feat() argument
62 return test_bit(feat, header->adds_features); in perf_header__has_feat()
182 session = container_of(h, struct perf_session, header); in write_build_id()
1198 session = container_of(ph, struct perf_session, header); in print_group_desc()
1231 misc = bev->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; in __event_process_build_id()
1271 static int perf_header__read_build_ids_abi_quirk(struct perf_header *header, in perf_header__read_build_ids_abi_quirk() argument
1274 struct perf_session *session = container_of(header, struct perf_session, header); in perf_header__read_build_ids_abi_quirk()
1276 struct perf_event_header header; in perf_header__read_build_ids_abi_quirk() member
1290 if (header->needs_swap) in perf_header__read_build_ids_abi_quirk()
1291 perf_event_header__bswap(&old_bev.header); in perf_header__read_build_ids_abi_quirk()
1293 len = old_bev.header.size - sizeof(old_bev); in perf_header__read_build_ids_abi_quirk()
1297 bev.header = old_bev.header; in perf_header__read_build_ids_abi_quirk()
1304 if (bev.header.misc == PERF_RECORD_MISC_GUEST_USER || in perf_header__read_build_ids_abi_quirk()
1305 bev.header.misc == PERF_RECORD_MISC_GUEST_KERNEL) in perf_header__read_build_ids_abi_quirk()
1311 offset += bev.header.size; in perf_header__read_build_ids_abi_quirk()
1317 static int perf_header__read_build_ids(struct perf_header *header, in perf_header__read_build_ids() argument
1320 struct perf_session *session = container_of(header, struct perf_session, header); in perf_header__read_build_ids()
1332 if (header->needs_swap) in perf_header__read_build_ids()
1333 perf_event_header__bswap(&bev.header); in perf_header__read_build_ids()
1335 len = bev.header.size - sizeof(bev); in perf_header__read_build_ids()
1354 return perf_header__read_build_ids_abi_quirk(header, input, offset, size); in perf_header__read_build_ids()
1359 offset += bev.header.size; in perf_header__read_build_ids()
1510 struct perf_header *header, int fd, in process_event_desc() argument
1514 struct perf_evsel *evsel, *events = read_event_desc(header, fd); in process_event_desc()
1519 session = container_of(header, struct perf_session, header); in process_event_desc()
1780 session = container_of(ph, struct perf_session, header); in process_group_desc()
1901 struct perf_header *header = &session->header; in perf_header__fprintf_info() local
1906 perf_header__process_sections(header, fd, &hd, in perf_header__fprintf_info()
1939 static int perf_header__adds_write(struct perf_header *header, in perf_header__adds_write() argument
1949 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS); in perf_header__adds_write()
1959 sec_start = header->feat_offset; in perf_header__adds_write()
1962 for_each_set_bit(feat, header->adds_features, HEADER_FEAT_BITS) { in perf_header__adds_write()
1963 if (do_write_feat(fd, header, feat, &p, evlist)) in perf_header__adds_write()
1964 perf_header__clear_feat(header, feat); in perf_header__adds_write()
2004 struct perf_header *header = &session->header; in perf_session__write_header() local
2037 if (!header->data_offset) in perf_session__write_header()
2038 header->data_offset = lseek(fd, 0, SEEK_CUR); in perf_session__write_header()
2039 header->feat_offset = header->data_offset + header->data_size; in perf_session__write_header()
2042 err = perf_header__adds_write(header, evlist, fd); in perf_session__write_header()
2056 .offset = header->data_offset, in perf_session__write_header()
2057 .size = header->data_size, in perf_session__write_header()
2062 memcpy(&f_header.adds_features, &header->adds_features, sizeof(header->adds_features)); in perf_session__write_header()
2070 lseek(fd, header->data_offset + header->data_size, SEEK_SET); in perf_session__write_header()
2075 static int perf_header__getbuffer64(struct perf_header *header, in perf_header__getbuffer64() argument
2081 if (header->needs_swap) in perf_header__getbuffer64()
2087 int perf_header__process_sections(struct perf_header *header, int fd, in perf_header__process_sections() argument
2099 nr_sections = bitmap_weight(header->adds_features, HEADER_FEAT_BITS); in perf_header__process_sections()
2109 lseek(fd, header->feat_offset, SEEK_SET); in perf_header__process_sections()
2111 err = perf_header__getbuffer64(header, fd, feat_sec, sec_size); in perf_header__process_sections()
2115 for_each_set_bit(feat, header->adds_features, HEADER_LAST_FEATURE) { in perf_header__process_sections()
2116 err = process(sec++, header, feat, fd, data); in perf_header__process_sections()
2243 int perf_file_header__read(struct perf_file_header *header, in perf_file_header__read() argument
2250 ret = readn(fd, header, sizeof(*header)); in perf_file_header__read()
2254 if (check_magic_endian(header->magic, in perf_file_header__read()
2255 header->attr_size, false, ph) < 0) { in perf_file_header__read()
2261 mem_bswap_64(header, offsetof(struct perf_file_header, in perf_file_header__read()
2265 if (header->size != sizeof(*header)) { in perf_file_header__read()
2267 if (header->size == offsetof(typeof(*header), adds_features)) in perf_file_header__read()
2268 bitmap_zero(header->adds_features, HEADER_FEAT_BITS); in perf_file_header__read()
2287 mem_bswap_64(&header->adds_features, in perf_file_header__read()
2290 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) { in perf_file_header__read()
2292 mem_bswap_64(&header->adds_features, in perf_file_header__read()
2296 mem_bswap_32(&header->adds_features, in perf_file_header__read()
2300 if (!test_bit(HEADER_HOSTNAME, header->adds_features)) { in perf_file_header__read()
2301 bitmap_zero(header->adds_features, HEADER_FEAT_BITS); in perf_file_header__read()
2302 set_bit(HEADER_BUILD_ID, header->adds_features); in perf_file_header__read()
2306 memcpy(&ph->adds_features, &header->adds_features, in perf_file_header__read()
2309 ph->data_offset = header->data.offset; in perf_file_header__read()
2310 ph->data_size = header->data.size; in perf_file_header__read()
2311 ph->feat_offset = header->data.offset + header->data.size; in perf_file_header__read()
2336 static int perf_file_header__read_pipe(struct perf_pipe_file_header *header, in perf_file_header__read_pipe() argument
2342 ret = readn(fd, header, sizeof(*header)); in perf_file_header__read_pipe()
2346 if (check_magic_endian(header->magic, header->size, true, ph) < 0) { in perf_file_header__read_pipe()
2352 header->size = bswap_64(header->size); in perf_file_header__read_pipe()
2354 if (repipe && do_write(STDOUT_FILENO, header, sizeof(*header)) < 0) in perf_file_header__read_pipe()
2362 struct perf_header *header = &session->header; in perf_header__read_pipe() local
2365 if (perf_file_header__read_pipe(&f_header, header, in perf_header__read_pipe()
2468 struct perf_header *header = &session->header; in perf_session__read_header() local
2482 if (perf_file_header__read(&f_header, header, fd) < 0) in perf_session__read_header()
2504 if (read_attr(fd, header, &f_attr) < 0) in perf_session__read_header()
2507 if (header->needs_swap) { in perf_session__read_header()
2519 evsel->needs_swap = header->needs_swap; in perf_session__read_header()
2538 if (perf_header__getbuffer64(header, fd, &f_id, sizeof(f_id))) in perf_session__read_header()
2549 perf_header__process_sections(header, fd, &session->tevent, in perf_session__read_header()
2587 ev->attr.header.type = PERF_RECORD_HEADER_ATTR; in perf_event__synthesize_attr()
2588 ev->attr.header.size = (u16)size; in perf_event__synthesize_attr()
2590 if (ev->attr.header.size == size) in perf_event__synthesize_attr()
2639 ids = event->header.size; in perf_event__process_attr()
2685 ev.tracing_data.header.type = PERF_RECORD_HEADER_TRACING_DATA; in perf_event__synthesize_tracing_data()
2689 ev.tracing_data.header.size = sizeof(ev.tracing_data); in perf_event__synthesize_tracing_data()
2762 ev.build_id.header.type = PERF_RECORD_HEADER_BUILD_ID; in perf_event__synthesize_build_id()
2763 ev.build_id.header.misc = misc; in perf_event__synthesize_build_id()
2765 ev.build_id.header.size = sizeof(ev.build_id) + len; in perf_event__synthesize_build_id()