Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [PATCH 10/23] perf tools: Introduce swap_header function | Date | Fri, 19 Jul 2013 20:33:37 +0900 |
| |
On Wed, 17 Jul 2013 19:49:50 +0200, Jiri Olsa wrote: > Introducing swap_header function to make the swapping > code more clear and extensible.
[SNIP] > > +static int swap_header(struct perf_file_header *header) > +{ > + mem_bswap_64(header, offsetof(struct perf_file_header, adds_features)); > + > + if (header->size != sizeof(*header)) { > + /* Support the previous format */ > + if (header->size == offsetof(typeof(*header), adds_features)) > + bitmap_zero(header->adds_features, HEADER_FEAT_BITS); > + else > + return -1; > + } else > + swap_features(header->adds_features); > + > + return 0; > +} > + > int perf_file_header__read(struct perf_file_header *header, > struct perf_header *ph, int fd) > { > @@ -2562,19 +2578,8 @@ int perf_file_header__read(struct perf_file_header *header, > return -1; > } > > - if (ph->needs_swap) { > - mem_bswap_64(header, offsetof(struct perf_file_header, > - adds_features)); > - } > - > - if (header->size != sizeof(*header)) { > - /* Support the previous format */ > - if (header->size == offsetof(typeof(*header), adds_features)) > - bitmap_zero(header->adds_features, HEADER_FEAT_BITS); > - else > - return -1; > - } else if (ph->needs_swap) > - swap_features(header->adds_features); > + if (ph->needs_swap && swap_header(header)) > + return -1;
Doesn't it change existing behavior? It looks like supporting previous format on a same endian machines will be removed by this patch.
Thanks, Namhyung
| |