ref: bb7cbd717363d9cc12430d406f63e9d6a7e64a62
dir: /sys/src/cmd/dtracy/dat.h/
typedef struct Node Node;
typedef struct Symbol Symbol;
typedef struct SymTab SymTab;
typedef struct Clause Clause;
typedef struct Enab Enab;
typedef struct Stat Stat;
typedef struct Type Type;
typedef struct Agg Agg;
enum {
SYMHASH = 256,
};
struct Type {
enum {
TYPINVAL,
TYPINT,
TYPPTR,
TYPSTRING,
} type;
int size;
uchar sign;
Type *ref;
Type *typenext;
};
struct Symbol {
enum {
SYMNONE,
SYMVAR,
} type;
char *name;
int idx;
Symbol *next;
Type *typ;
};
struct SymTab {
Symbol *sym[SYMHASH];
};
struct Node {
enum {
OINVAL,
OSYM,
ONUM,
OSTR,
OBIN,
OLNOT,
OTERN,
ORECORD,
OCAST,
} type;
enum {
OPINVAL,
OPADD,
OPSUB,
OPMUL,
OPDIV,
OPMOD,
OPAND,
OPOR,
OPXOR,
OPLSH,
OPRSH,
OPEQ,
OPNE,
OPLT,
OPLE,
OPLAND,
OPLOR,
OPXNOR,
} op;
Node *n1, *n2, *n3;
Symbol *sym;
char *str;
s64int num;
int line;
/* used by elidecasts() */
char databits;
enum {UPZX, UPSX} upper;
int recsize;
Type *typ;
};
struct Stat {
enum {
STATEXPR,
STATPRINT,
STATPRINTF,
STATAGG,
} type;
/* STATEXPR */
Node *n;
/* STATPRINT, STATPRINTF */
int narg;
Node **arg;
/* STATAGG */
struct {
Symbol *name;
int type;
Node *key, *value;
} agg;
};
struct Clause {
int id;
Stat *stats;
int nstats;
char **probs;
int nprob;
DTExpr *pred;
};
struct Enab {
int epid;
int reclen;
char *probe;
Clause *cl;
Enab *next;
};
struct Agg {
DTAgg;
char *name;
};
extern int errors;
#pragma varargck type "α" int
#pragma varargck type "t" int
#pragma varargck type "τ" Type *
#pragma varargck type "ε" Node *
#pragma varargck argpos error 1
extern int dflag;
extern DTAgg noagg;
extern int aggid;
extern Agg *aggs;