xref: /inferno-os/utils/libmach/obj.h (revision d67b7dad77bb8aa973dad1f7c3ab0c309b114278)
174a4d8c2SCharles.Forsyth /*
274a4d8c2SCharles.Forsyth  * obj.h -- defs for dealing with object files
374a4d8c2SCharles.Forsyth  */
474a4d8c2SCharles.Forsyth 
574a4d8c2SCharles.Forsyth typedef enum Kind		/* variable defs and references in obj */
674a4d8c2SCharles.Forsyth {
774a4d8c2SCharles.Forsyth 	aNone,			/* we don't care about this prog */
874a4d8c2SCharles.Forsyth 	aName,			/* introduces a name */
974a4d8c2SCharles.Forsyth 	aText,			/* starts a function */
1074a4d8c2SCharles.Forsyth 	aData,			/* references to a global object */
1174a4d8c2SCharles.Forsyth } Kind;
1274a4d8c2SCharles.Forsyth 
1374a4d8c2SCharles.Forsyth typedef struct	Prog	Prog;
1474a4d8c2SCharles.Forsyth 
1574a4d8c2SCharles.Forsyth struct Prog		/* info from .$O files */
1674a4d8c2SCharles.Forsyth {
1774a4d8c2SCharles.Forsyth 	Kind	kind;		/* what kind of symbol */
1874a4d8c2SCharles.Forsyth 	char	type;		/* type of the symbol: ie, 'T', 'a', etc. */
1974a4d8c2SCharles.Forsyth 	char	sym;		/* index of symbol's name */
2074a4d8c2SCharles.Forsyth 	char	*id;		/* name for the symbol, if it introduces one */
21*d67b7dadSforsyth 	uint	sig;		/* type signature for symbol */
2274a4d8c2SCharles.Forsyth };
2374a4d8c2SCharles.Forsyth 
2474a4d8c2SCharles.Forsyth #define UNKNOWN	'?'
25*d67b7dadSforsyth void		_offset(int, vlong);
26