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