diff --git a/classes.h b/classes.h new file mode 100644 index 0000000..44d9ce0 --- /dev/null +++ b/classes.h @@ -0,0 +1,44 @@ +#ifndef _PAHOLE_CLASSES_H_ +#define _PAHOLE_CLASSES_H_ 1 +/* + Copyright (C) 2006 Mandriva Conectiva S.A. + Copyright (C) 2006 Arnaldo Carvalho de Melo + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. +*/ + + +#include + +#include "list.h" + +struct cu_info { + unsigned int cu; + uintmax_t offset; +}; + +struct class { + struct list_head node; + struct list_head members; + char name[32]; + unsigned long size; + struct cu_info id; + struct cu_info type; + unsigned int tag; /* struct, union, base type, etc */ + uintmax_t nr_entries; /* For arrays */ + const char *decl_file; + unsigned int decl_line; +}; + +struct class_member { + struct list_head node; + char name[32]; + struct cu_info type; + unsigned int offset; + unsigned int bit_size; + unsigned int bit_offset; +}; + +#endif /* _PAHOLE_CLASSES_H_ */ diff --git a/pahole.c b/pahole.c index a107eb3..59f9272 100644 --- a/pahole.c +++ b/pahole.c @@ -7,10 +7,8 @@ published by the Free Software Foundation. */ - #include #include -#include #include #include #include @@ -19,6 +17,7 @@ #include #include "list.h" +#include "classes.h" static char bf[4096]; @@ -32,24 +31,6 @@ static void *zalloc(const size_t size) static LIST_HEAD(classes); -struct cu_info { - unsigned int cu; - uintmax_t offset; -}; - -struct class { - struct list_head node; - struct list_head members; - char name[32]; - unsigned long size; - struct cu_info id; - struct cu_info type; - unsigned int tag; /* struct, union, base type, etc */ - uintmax_t nr_entries; /* For arrays */ - const char *decl_file; - unsigned int decl_line; -}; - const char *tag_name(const unsigned int tag) { switch (tag) { @@ -141,15 +122,6 @@ const char *class__name(struct class *self, char *bf, size_t len) return bf; } -struct class_member { - struct list_head node; - char name[32]; - struct cu_info type; - unsigned int offset; - unsigned int bit_size; - unsigned int bit_offset; -}; - struct class_member *class_member__new(unsigned int cu, uintmax_t type, const char *name,