[sdks] Bump Android NDK, build tools and platform tools versions
[mono-project.git] / mono / utils / mono-codeman.h
blobe7139a0907443da589c3a59b17ebc34fc3ef3d9d
1 /**
2 * \file
3 */
5 #ifndef __MONO_CODEMAN_H__
6 #define __MONO_CODEMAN_H__
8 #include <mono/utils/mono-publib.h>
10 typedef struct _MonoCodeManager MonoCodeManager;
12 typedef struct {
13 void (*chunk_new) (void *chunk, int size);
14 void (*chunk_destroy) (void *chunk);
15 } MonoCodeManagerCallbacks;
17 MONO_API MonoCodeManager* mono_code_manager_new (void);
18 MONO_API MonoCodeManager* mono_code_manager_new_dynamic (void);
19 MONO_API void mono_code_manager_destroy (MonoCodeManager *cman);
20 MONO_API void mono_code_manager_invalidate (MonoCodeManager *cman);
21 MONO_API void mono_code_manager_set_read_only (MonoCodeManager *cman);
23 MONO_API void* mono_code_manager_reserve_align (MonoCodeManager *cman, int size, int alignment);
24 #define mono_code_manager_reserve_align(cman, size, align) (g_cast (mono_code_manager_reserve_align ((cman), (size), (align))))
26 MONO_API void* mono_code_manager_reserve (MonoCodeManager *cman, int size);
27 #define mono_code_manager_reserve(cman, size) (g_cast (mono_code_manager_reserve ((cman), (size))))
28 MONO_API void mono_code_manager_commit (MonoCodeManager *cman, void *data, int size, int newsize);
29 MONO_API int mono_code_manager_size (MonoCodeManager *cman, int *used_size);
30 MONO_API void mono_code_manager_init (void);
31 MONO_API void mono_code_manager_cleanup (void);
32 MONO_API void mono_code_manager_install_callbacks (MonoCodeManagerCallbacks* callbacks);
34 /* find the extra block allocated to resolve branches close to code */
35 typedef int (*MonoCodeManagerFunc) (void *data, int csize, int size, void *user_data);
36 void mono_code_manager_foreach (MonoCodeManager *cman, MonoCodeManagerFunc func, void *user_data);
38 #endif /* __MONO_CODEMAN_H__ */