1 #ifndef MARSHAL_H
2 #define MARSHAL_H
3 
4 typedef struct WFILE{
5 
6 	char *str;
7 	char *ptr;
8 	char *end;
9 
10 } WFILE;
11 
12 #define HUGE_STRING_LENGTH  4096
13 #define TYPE_NULL	'0'
14 #define TYPE_NONE	'N'
15 #define TYPE_ELLIPSIS   '.'
16 #define TYPE_INT	'i'
17 #define TYPE_INT64	'I'
18 #define TYPE_FLOAT	'f'
19 #define TYPE_COMPLEX	'x'
20 #define TYPE_LONG	'l'
21 #define TYPE_STRING	's'
22 #define TYPE_TUPLE	'('
23 #define TYPE_LIST	'['
24 #define TYPE_DICT	'{'
25 #define TYPE_CODE	'c'
26 #define TYPE_UNICODE	'u'
27 #define TYPE_UNKNOWN	'?'
28 
29 void insert_data(WFILE* dest, WFILE* src);
30 void w_byte(char c, WFILE* p);
31 
32 void w_string(char* s, int n, WFILE* p);
33 void w_short(int x, WFILE* p);
34 void w_long(long x, WFILE* p);
35 void write_string(char* s, long len, WFILE* p);
36 void write_integer(int number, WFILE* wf);
37 
38 #endif
39