xref: /plan9/sys/src/libmach/obj.h (revision 0c547597109109560d53d0e274a258f0150779c4)
13e12c5d1SDavid du Colombier /*
23e12c5d1SDavid du Colombier  * obj.h -- defs for dealing with object files
33e12c5d1SDavid du Colombier  */
43e12c5d1SDavid du Colombier 
5bd389b36SDavid du Colombier typedef enum Kind		/* variable defs and references in obj */
63e12c5d1SDavid du Colombier {
73e12c5d1SDavid du Colombier 	aNone,			/* we don't care about this prog */
83e12c5d1SDavid du Colombier 	aName,			/* introduces a name */
93e12c5d1SDavid du Colombier 	aText,			/* starts a function */
103e12c5d1SDavid du Colombier 	aData,			/* references to a global object */
113e12c5d1SDavid du Colombier } Kind;
123e12c5d1SDavid du Colombier 
13bd389b36SDavid du Colombier typedef struct	Prog	Prog;
143e12c5d1SDavid du Colombier 
153e12c5d1SDavid du Colombier struct Prog		/* info from .$O files */
163e12c5d1SDavid du Colombier {
173e12c5d1SDavid du Colombier 	Kind	kind;		/* what kind of symbol */
183e12c5d1SDavid du Colombier 	char	type;		/* type of the symbol: ie, 'T', 'a', etc. */
193e12c5d1SDavid du Colombier 	char	sym;		/* index of symbol's name */
20219b2ee8SDavid du Colombier 	char	*id;		/* name for the symbol, if it introduces one */
21*0c547597SDavid du Colombier 	uint	sig;		/* type signature for symbol */
223e12c5d1SDavid du Colombier };
233e12c5d1SDavid du Colombier 
24bd389b36SDavid du Colombier #define UNKNOWN	'?'
254de34a7eSDavid du Colombier void		_offset(int, vlong);
26