5 #ifndef __MONO_CODEMAN_H__
6 #define __MONO_CODEMAN_H__
8 #include <mono/utils/mono-publib.h>
10 typedef struct _MonoCodeManager MonoCodeManager
;
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
);
25 MONO_API
void* mono_code_manager_reserve (MonoCodeManager
*cman
, int size
);
26 MONO_API
void mono_code_manager_commit (MonoCodeManager
*cman
, void *data
, int size
, int newsize
);
27 MONO_API
int mono_code_manager_size (MonoCodeManager
*cman
, int *used_size
);
28 MONO_API
void mono_code_manager_init (void);
29 MONO_API
void mono_code_manager_cleanup (void);
30 MONO_API
void mono_code_manager_install_callbacks (MonoCodeManagerCallbacks
* callbacks
);
32 /* find the extra block allocated to resolve branches close to code */
33 typedef int (*MonoCodeManagerFunc
) (void *data
, int csize
, int size
, void *user_data
);
34 void mono_code_manager_foreach (MonoCodeManager
*cman
, MonoCodeManagerFunc func
, void *user_data
);
36 #endif /* __MONO_CODEMAN_H__ */