diff options
Diffstat (limited to 'extension_eppic.h')
-rw-r--r-- | extension_eppic.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/extension_eppic.h b/extension_eppic.h new file mode 100644 index 0000000..24189ba --- /dev/null +++ b/extension_eppic.h @@ -0,0 +1,95 @@ +/* + * extension_eppic.h + * + * Created by: Aravinda Prasad <aravinda@linux.vnet.ibm.com> + * + * Copyright (C) 2012, 2013 IBM Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#ifndef _EXTENSION_EPPIC_H +#define _EXTENSION_EPPIC_H + +#include "eppic_api.h" +#include "erase_info.h" + +/* + * MEMBER_S, ENUM_S, DEF_S and TYPE_S are extracts from eppic header + * file eppic.h. The reason for not including the eppic.h header file + * in this file is because, lot of things in eppic.h are not required + * for makedumpfile extension. + */ + +#define MAX_ARRAY_DIMENSION 16 + +/* member information */ +typedef MEMBER_S { + + char *name; + int offset; /* offset from top of structure */ + int size; /* size in bytes of the member or of the bit array */ + int fbit; /* fist bit (-1) is not a bit field */ + int nbits; /* number of bits for this member */ + int value; /* for a enum member, the corresponding value_t */ + +} member_t; + +/* list to hold enum constant information */ +typedef ENUM_S { + struct enum_s *next; + char *name; + int value; + +} enum_t; + +/* list of macro symbols and there corresponding value_ts */ +typedef DEF_S { + struct def_s *next; + char *name; + char *val; + +} def_t; + + +typedef TYPE_S { + int type; /* type_t of type_t */ + ull idx; /* index to basetype_t or ctype_t */ + int size; /* size of this item */ + /* ... next fields are use internally */ + int typattr; /* base type_t qualifiers */ + int ref; /* level of reference */ + int fct; /* 1 if function pointer */ + int *idxlst; /* points to list of indexes if array */ + ull rtype; /* type_t a reference refers too */ +} type_t; + +#define ERRMSG(x...) \ +do { \ + fprintf(stderr, __FUNCTION__); \ + fprintf(stderr, ": "); \ + fprintf(stderr, x); \ +} while (0) + + +struct call_back *cb; + +#define GET_DOMAIN_ALL cb->get_domain_all +#define READMEM cb->readmem +#define GET_DIE_ATTR_TYPE cb->get_die_attr_type +#define GET_DIE_NAME cb->get_die_name +#define GET_DIE_OFFSET cb->get_die_offset +#define GET_DIE_LENGTH cb->get_die_length +#define GET_DIE_MEMBER_ALL cb->get_die_member_all +#define GET_DIE_NFIELDS_ALL cb->get_die_nfields_all +#define GET_SYMBOL_ADDR_ALL cb->get_symbol_addr_all +#define UPDATE_FILTER_INFO_RAW cb->update_filter_info_raw + +#endif /* _EXTENSION_EPPIC_H */ |