Messages in this thread |  | | | Date | Mon, 24 Sep 2012 13:01:51 -0300 | | From | Arnaldo Carvalho de Melo <> | | Subject | Re: [PATCH v3 7/9] perf header: Add check_perf_magic() func |
| |
Em Mon, Sep 24, 2012 at 11:24:09PM +0800, Feng Tang escreveu: > With this func, other modules can basically check whether a file > is a legal perf data file by checking its first 8 bytes aginst > all possible perf magic nunbers.
Please consider submitting a patch to http://www.darwinsys.com/file/ :-)
- Arnaldo
> Signed-off-by: Feng Tang <feng.tang@intel.com> > --- > tools/perf/util/header.c | 11 +++++++++++ > tools/perf/util/header.h | 1 + > 2 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c > index ad72b28..555cb68 100644 > --- a/tools/perf/util/header.c > +++ b/tools/perf/util/header.c > @@ -2174,6 +2174,17 @@ static int try_all_pipe_abis(uint64_t hdr_sz, struct perf_header *ph) > return -1; > } > > +/* Return 0 if matched */ > +int check_perf_magic(u64 magic) > +{ > + if (!memcmp(&magic, __perf_magic1, sizeof(magic)) > + || magic == __perf_magic2 > + || magic == __perf_magic2_sw) > + return 0; > + > + return -1; > +} > + > static int check_magic_endian(u64 magic, uint64_t hdr_sz, > bool is_pipe, struct perf_header *ph) > { > diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h > index 58de08b..af1a51c 100644 > --- a/tools/perf/util/header.h > +++ b/tools/perf/util/header.h > @@ -131,6 +131,7 @@ int perf_event__synthesize_build_id(struct perf_tool *tool, > int perf_event__process_build_id(struct perf_tool *tool, > union perf_event *event, > struct perf_session *session); > +int check_perf_magic(u64 magic); > > /* > * arch specific callback > -- > 1.7.1
|  |