view leo-obj/tool/intstruct.h @ 208:f7943bdbb3ea

tiobjd disasm -g: grok struct/union/enum definitions and statics in functions
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Fri, 04 Mar 2016 23:36:16 +0000
parents fd772de226cb
children 71e25510f5af
line wrap: on
line source

/*
 * The structures defined in this header file
 * are internal to our utility.
 */

struct internal_scnhdr {
	char		*name;
	unsigned	size;
	unsigned	data_offset;
	unsigned	reloc_offset;
	unsigned	line_offset;
	unsigned	nreloc;
	unsigned	nlineent;
	unsigned	flags;
	unsigned	nsymbols;
	struct internal_syment **sorted_symbols;
	struct internal_reloc *int_relocs;
	int		disasm_mode;
	struct hint	*hints;
};

#define	DISASM_MODE_UNKNOWN	0
#define	DISASM_MODE_CODE	1
#define	DISASM_MODE_DATA	2
#define	DISASM_MODE_BSS		3

struct internal_syment {
	unsigned	number;
	char		*name;
	unsigned	value;
	int		scnum;
	int		type;
	int		class;
	u_char		*aux;
	struct internal_scnhdr *section;
	char		*struct_name;
	char		*struct_name_raw;
};

struct internal_reloc {
	unsigned	location;
	struct internal_syment *sym;
	int		type;
	char		*typestr;
};

struct hint {
	unsigned	pos;
	unsigned	endpos;
	int		type;
	int		linebrk;
	struct hint	*next;
};

#define	HINT_D8		1
#define	HINT_D16	2
#define	HINT_ASCIZ	3
#define	HINT_D32	4