mono-codeman.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * \file
  3. */
  4. #ifndef __MONO_CODEMAN_H__
  5. #define __MONO_CODEMAN_H__
  6. #include <mono/utils/mono-publib.h>
  7. typedef struct _MonoCodeManager MonoCodeManager;
  8. #define MONO_CODE_MANAGER_CALLBACKS \
  9. MONO_CODE_MANAGER_CALLBACK (void, chunk_new, (void *chunk, int size)) \
  10. MONO_CODE_MANAGER_CALLBACK (void, chunk_destroy, (void *chunk)) \
  11. typedef struct {
  12. #undef MONO_CODE_MANAGER_CALLBACK
  13. #define MONO_CODE_MANAGER_CALLBACK(ret, name, sig) ret (*name) sig;
  14. MONO_CODE_MANAGER_CALLBACKS
  15. } MonoCodeManagerCallbacks;
  16. MonoCodeManager* mono_code_manager_new (void);
  17. MonoCodeManager* mono_code_manager_new_dynamic (void);
  18. void mono_code_manager_destroy (MonoCodeManager *cman);
  19. void mono_code_manager_invalidate (MonoCodeManager *cman);
  20. void mono_code_manager_set_read_only (MonoCodeManager *cman);
  21. void* mono_code_manager_reserve_align (MonoCodeManager *cman, int size, int alignment);
  22. void* mono_code_manager_reserve (MonoCodeManager *cman, int size);
  23. void mono_code_manager_commit (MonoCodeManager *cman, void *data, int size, int newsize);
  24. int mono_code_manager_size (MonoCodeManager *cman, int *used_size);
  25. void mono_code_manager_init (void);
  26. void mono_code_manager_cleanup (void);
  27. void mono_code_manager_install_callbacks (const MonoCodeManagerCallbacks* callbacks);
  28. /* find the extra block allocated to resolve branches close to code */
  29. typedef int (*MonoCodeManagerFunc) (void *data, int csize, int size, void *user_data);
  30. void mono_code_manager_foreach (MonoCodeManager *cman, MonoCodeManagerFunc func, void *user_data);
  31. void mono_codeman_enable_write (void);
  32. void mono_codeman_disable_write (void);
  33. #endif /* __MONO_CODEMAN_H__ */