A dynamic tracer for Linux

sym.h 588B

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