45 lines
1.1 KiB
C
45 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();
|