URI:
       tdat.h - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tdat.h (1792B)
       ---
            1 typedef struct Type Type;
            2 typedef struct Typeref Typeref;
            3 typedef struct TypeList TypeList;
            4 typedef struct Sym Sym;
            5 
            6 enum
            7 {
            8         None,
            9         Base,
           10         Enum,
           11         Aggr,
           12         Function,
           13         Pointer,
           14         Array,
           15         Range,
           16         Defer,
           17         Typedef
           18 };
           19 
           20 struct Type
           21 {        /* Font Tab 4 */
           22         uint        ty;                        /* None, Struct, ... */
           23         vlong        lo;                        /* for range */
           24         char        sue;
           25         vlong        hi;
           26         uint        gen;
           27         uint        n1;                        /* type number (impl dependent) */
           28         uint        n2;                        /* another type number */
           29         char        *name;                /* name of type */
           30         char        *suename;        /* name of struct, union, enumeration */
           31         uint        isunion;        /* is this Struct a union? */
           32         uint        printfmt;        /* describes base type */
           33         uint        xsizeof;        /* size of type */
           34         Type        *sub;                /* subtype */
           35         uint        n;                        /* count for t, tname, val */
           36         Type        **t;                /* members of sue, params of function */
           37         char        **tname;        /* associated names */
           38         long        *val;                /* associated offsets or values */
           39         uint        didtypedef;        /* internal flag */
           40         uint        didrange;        /* internal flag */
           41         uint         printed;        /* internal flag */
           42         Type        *equiv;                /* internal */
           43 };
           44 
           45 struct TypeList
           46 {
           47         Type *hd;
           48         TypeList *tl;
           49 };
           50 
           51 struct Sym
           52 {
           53         char *fn;
           54         char *name;
           55         Type *type;
           56         Sym *next;
           57 };
           58 
           59 void *erealloc(void*, uint);
           60 void *emalloc(uint);
           61 char *estrdup(char*);
           62 void warn(char*, ...);
           63 
           64 Type *typebynum(uint n1, uint n2);
           65 Type *typebysue(char, char*);
           66 void printtypes(Biobuf*);
           67 void renumber(TypeList*, uint);
           68 void denumber(void);
           69 TypeList *mktl(Type*, TypeList*);
           70 
           71 struct Dwarf;
           72 struct Stab;
           73 int dwarf2acid(struct Dwarf*, Biobuf*);
           74 int stabs2acid(struct Stab*, Biobuf*);
           75 
           76 Type *newtype(void);
           77 Type *defer(Type*);
           78 char *nameof(Type*, int);
           79 void freetypes(void);
           80 
           81 extern char *prefix;
           82 extern int verbose;
           83 
           84 char *fixname(char*);
           85 char *cleanstl(char*);
           86 
           87 void addsymx(char*, char*, Type*);
           88 void dumpsyms(Biobuf*);
           89 
           90 int Bfmt(Fmt*);
           91 
           92 #ifdef VARARGCK
           93 #pragma varargck type "B" char*
           94 #endif