44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* $Header$ */
 | 
						|
/* SELECTOR DESCRIPTOR */
 | 
						|
 | 
						|
struct sdef	{		/* for selectors */
 | 
						|
	struct sdef *next;
 | 
						|
	int sd_level;
 | 
						|
	struct idf *sd_idf;	/* its name */
 | 
						|
	struct sdef *sd_sdef;	/* the next selector */
 | 
						|
	struct type *sd_stype;	/* the struct it belongs to */
 | 
						|
	struct type *sd_type;	/* its type */
 | 
						|
	arith sd_offset;
 | 
						|
};
 | 
						|
 | 
						|
extern char *st_alloc();
 | 
						|
 | 
						|
 | 
						|
/* allocation definitions of struct sdef */
 | 
						|
/* ALLOCDEF "sdef" */
 | 
						|
extern char *st_alloc();
 | 
						|
extern struct sdef *h_sdef;
 | 
						|
#define	new_sdef() ((struct sdef *) \
 | 
						|
		st_alloc((char **)&h_sdef, sizeof(struct sdef)))
 | 
						|
#define	free_sdef(p) st_free(p, h_sdef, sizeof(struct sdef))
 | 
						|
 | 
						|
 | 
						|
struct tag	{		/* for struct-, union- and enum tags */
 | 
						|
	struct tag *next;
 | 
						|
	int tg_level;
 | 
						|
	int tg_busy;	/* non-zero during declaration of struct/union pack */
 | 
						|
	struct type *tg_type;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* allocation definitions of struct tag */
 | 
						|
/* ALLOCDEF "tag" */
 | 
						|
extern char *st_alloc();
 | 
						|
extern struct tag *h_tag;
 | 
						|
#define	new_tag() ((struct tag *) \
 | 
						|
		st_alloc((char **)&h_tag, sizeof(struct tag)))
 | 
						|
#define	free_tag(p) st_free(p, h_tag, sizeof(struct tag))
 | 
						|
 | 
						|
 | 
						|
struct sdef *idf2sdef();
 |