1
#ifndef ORBIT_IDL_MARSHAL_H
2
#define ORBIT_IDL_MARSHAL_H 1
4
#include "orbit-idl3-types.h"
6
typedef enum { MARSHAL_INLINE=1<<0, MARSHAL_FUNC=1<<1, MARSHAL_ANY=1<<2,
7
MARSHAL_ALL=0xFFFF } OIDL_Marshal_Method;
9
#define INLINE_SIZE_THRESHOLD 5
12
OIDL_Marshal_Method mtype, dmtype, avail_mtype, avail_dmtype;
16
} OIDL_Type_Marshal_Info;
20
} OIDL_Marshal_Tree_Entry;
22
struct _OIDL_Marshal_Context {
23
GHashTable *type_marshal_info;
26
OIDL_Marshal_Context *oidl_marshal_context_new(IDL_tree tree);
27
void oidl_marshal_context_dump(OIDL_Marshal_Context *ctxt);
28
void oidl_marshal_context_free(OIDL_Marshal_Context *ctxt);
29
OIDL_Type_Marshal_Info *oidl_marshal_context_find(OIDL_Marshal_Context *ctxt, IDL_tree tree);
32
OIDL_Marshal_Context *ctxt;
33
enum { PI_BUILD_FUNC = 1<<0 } flags;
34
OIDL_Marshal_Where where;
37
OIDL_Marshal_Node *marshal_populate(IDL_tree tree, OIDL_Marshal_Node *parent, OIDL_Populate_Info *pi);