A dynamic tracer for Linux

sym.h 605B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef _PLY_SYM_H
  2. #define _PLY_SYM_H
  3. #include <stdint.h>
  4. #include "ir.h"
  5. #include "type.h"
  6. typedef struct symtab symtab_t;
  7. typedef struct sym {
  8. symtab_t *st;
  9. const char *name;
  10. type_t *type;
  11. irstate_t irs;
  12. } sym_t;
  13. struct symtab {
  14. sym_t **sym;
  15. size_t len;
  16. };
  17. sym_t *sym_get(symtab_t *st, const char *name);
  18. int sym_add(symtab_t *st, const char *name, type_t *type, sym_t **new);
  19. void sym_dump(sym_t *sym, FILE *fp);
  20. void symtab_dump(symtab_t *st, FILE *fp);
  21. //#define symtab_foreach(_st, _sym) for((_sym) = (_st)->sym; (_sym) < (_st)->sym[(_st)->len]; (_sym)++)
  22. #endif /* _PLY_SYM_H */