1 #ifndef __MONO_CODEMAN_H__
2 #define __MONO_CODEMAN_H__
4 #include <mono/utils/mono-publib.h>
6 typedef struct _MonoCodeManager MonoCodeManager
;
9 void (*chunk_new
) (void *chunk
, int size
);
10 void (*chunk_destroy
) (void *chunk
);
11 } MonoCodeManagerCallbacks
;
13 MONO_API MonoCodeManager
* mono_code_manager_new (void);
14 MONO_API MonoCodeManager
* mono_code_manager_new_dynamic (void);
15 MONO_API
void mono_code_manager_destroy (MonoCodeManager
*cman
);
16 MONO_API
void mono_code_manager_invalidate (MonoCodeManager
*cman
);
17 MONO_API
void mono_code_manager_set_read_only (MonoCodeManager
*cman
);
19 MONO_API
void* mono_code_manager_reserve_align (MonoCodeManager
*cman
, int size
, int alignment
);
21 MONO_API
void* mono_code_manager_reserve (MonoCodeManager
*cman
, int size
);
22 MONO_API
void mono_code_manager_commit (MonoCodeManager
*cman
, void *data
, int size
, int newsize
);
23 MONO_API
int mono_code_manager_size (MonoCodeManager
*cman
, int *used_size
);
24 MONO_API
void mono_code_manager_init (void);
25 MONO_API
void mono_code_manager_cleanup (void);
26 MONO_API
void mono_code_manager_install_callbacks (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
);
32 #endif /* __MONO_CODEMAN_H__ */