Merge pull request #1345 from mattleibow/websocket-continuation-frame-fix
[mono.git] / mono / mini / cfgdump.h
1 /*
2  * Copyright (C) 2016 Xamarin Inc
3  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
4  */
5
6 #ifndef __MINI_CFGDUMP_H__
7 #define __MINI_CFGDUMP_H__
8 #include <glib.h>
9
10 #define CONSTANT_POOL_MAX_SIZE 8000
11
12 #define BEGIN_GROUP 0x00
13 #define BEGIN_GRAPH 0x01
14 #define CLOSE_GROUP 0x02
15
16 #define POOL_NEW 0x00
17 #define POOL_STRING 0x01
18 #define POOL_ENUM 0x02
19 #define POOL_KLASS 0x03
20 #define POOL_METHOD 0x04
21 #define POOL_NULL 0x05
22 #define POOL_NODE_CLASS 0x06
23 #define POOL_FIELD 0x07
24 #define POOL_SIGNATURE 0x08
25
26 #define PROPERTY_POOL 0x00
27 #define PROPERTY_INT 0x01
28 #define PROPERTY_LONG 0x02
29 #define PROPERTY_DOUBLE 0x03
30 #define PROPERTY_FLOAT 0x04
31 #define PROPERTY_TRUE 0x05
32 #define PROPERTY_FALSE 0x06
33 #define PROPERTY_ARRAY 0x07
34 #define PROPERTY_SUBGRAPH 0x08
35
36 #define KLASS 0x00
37 #define ENUM_KLASS 0x01
38
39
40 #define DEFAULT_PORT 4445
41 #define DEFAULT_HOST "127.0.0.1"
42
43 typedef enum {
44         PT_STRING,
45         PT_METHOD,
46         PT_KLASS,
47         PT_OPTYPE,
48         PT_INPUTTYPE,
49         PT_ENUMKLASS,
50         PT_SIGNATURE
51 } pool_type;
52
53 struct _MonoGraphDumper {
54         int fd;
55         GHashTable *constant_pool;
56         short next_cp_id;
57         GHashTable *insn2id;
58         int next_insn_id;
59 };
60
61 typedef struct _MonoGraphDumper MonoGraphDumper;
62
63 struct _ConstantPoolEntry {
64         pool_type pt;
65         void *data;
66 };
67
68 typedef struct _ConstantPoolEntry ConstantPoolEntry;
69 #endif /* __MINI_CFGDUMP_H__ */