A dynamic tracer for Linux

ply.h 542B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef _PLY_H
  2. #define _PLY_H
  3. #include "node.h"
  4. #include "sym.h"
  5. #include "type.h"
  6. #include "arch.h"
  7. typedef struct prog prog_t;
  8. typedef struct provider provider_t;
  9. struct prog {
  10. const char *probe;
  11. node_t *ast;
  12. symtab_t *locals;
  13. symtab_t *globals;
  14. provider_t *provider;
  15. void *provider_data;
  16. };
  17. typedef struct ctx {
  18. prog_t **progs;
  19. symtab_t *globals;
  20. } ctx_t;
  21. struct provider {
  22. const char *name;
  23. int (*resolve)(prog_t *, node_t *);
  24. int (*probe)(prog_t *);
  25. };
  26. void provider_register(provider_t *prov);
  27. #endif /* _PLY_H */