少年修仙传客户端基础资源
hch
2024-04-01 d01413b00ef631ac20347716b23818b0b811f65f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * \file
 */
 
#ifndef __MONO_CODEMAN_H__
#define __MONO_CODEMAN_H__
 
#include <mono/utils/mono-publib.h>
 
typedef struct _MonoCodeManager MonoCodeManager;
 
typedef struct {
    void (*chunk_new) (void *chunk, int size);
    void (*chunk_destroy) (void *chunk);
} MonoCodeManagerCallbacks;
 
MONO_API MonoCodeManager* mono_code_manager_new     (void);
MONO_API MonoCodeManager* mono_code_manager_new_dynamic (void);
MONO_API void             mono_code_manager_destroy (MonoCodeManager *cman);
MONO_API void             mono_code_manager_invalidate (MonoCodeManager *cman);
MONO_API void             mono_code_manager_set_read_only (MonoCodeManager *cman);
 
MONO_API void*            mono_code_manager_reserve_align (MonoCodeManager *cman, int size, int alignment);
 
MONO_API void*            mono_code_manager_reserve (MonoCodeManager *cman, int size);
MONO_API void             mono_code_manager_commit  (MonoCodeManager *cman, void *data, int size, int newsize);
MONO_API int              mono_code_manager_size    (MonoCodeManager *cman, int *used_size);
MONO_API void             mono_code_manager_init (void);
MONO_API void             mono_code_manager_cleanup (void);
MONO_API void             mono_code_manager_install_callbacks (MonoCodeManagerCallbacks* callbacks);
 
/* find the extra block allocated to resolve branches close to code */
typedef int    (*MonoCodeManagerFunc)      (void *data, int csize, int size, void *user_data);
void            mono_code_manager_foreach  (MonoCodeManager *cman, MonoCodeManagerFunc func, void *user_data);
 
#endif /* __MONO_CODEMAN_H__ */