A dynamic tracer for Linux

func.h 670B

1234567891011121314151617181920212223242526
  1. #ifndef _FUNC_H
  2. #define _FUNC_H
  3. struct node;
  4. struct prog;
  5. struct type;
  6. struct func {
  7. const char *name;
  8. struct type *type;
  9. int static_ret:1; /* return type is statically known */
  10. int (*static_validate)(const struct func *, struct node *);
  11. int (*type_infer) (const struct func *, struct node *);
  12. int (*rewrite) (const struct func *, struct node *, struct prog *);
  13. int (*ir_pre) (const struct func *, struct node *, struct prog *);
  14. int (*ir_post)(const struct func *, struct node *, struct prog *);
  15. };
  16. int func_static_validate(const struct func *func, struct node *n);
  17. struct type *func_return_type(const struct func *func);
  18. #endif /* _FUNC_H */