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();
 |