diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2000-02-10 14:04:59 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2000-02-10 14:04:59 +0000 |
commit | 9e206909f48d5d2579b6ec17764d3273df23ff08 (patch) | |
tree | 3319a3e0c3383ed812f781859aadffd7f1462fdf /byterun/intext.h | |
parent | 7175ab048dcaaa39649ebc386ae37750baaf27e1 (diff) |
Introduction des blocs de type Custom.
Remplacement des blocs de type Final par des blocs de type Custom.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2804 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/intext.h')
-rw-r--r-- | byterun/intext.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/byterun/intext.h b/byterun/intext.h index d56432406..c346dcb44 100644 --- a/byterun/intext.h +++ b/byterun/intext.h @@ -48,6 +48,7 @@ #define CODE_DOUBLE_ARRAY32_LITTLE 0x7 #define CODE_CODEPOINTER 0x10 #define CODE_INFIXPOINTER 0x11 +#define CODE_CUSTOM 0x12 #ifdef ARCH_BIG_ENDIAN #define CODE_DOUBLE_NATIVE CODE_DOUBLE_BIG @@ -84,6 +85,34 @@ void output_val (struct channel * chan, value v, value flags); value input_val (struct channel * chan); value input_val_from_string (value str, long ofs); +/* Functions for writing user-defined marshallers */ + +extern void serialize_int_1(int i); +extern void serialize_int_2(int i); +extern void serialize_int_4(int32 i); +extern void serialize_int_8(int64 i); +extern void serialize_float_4(float f); +extern void serialize_float_8(double f); +extern void serialize_block_1(void * data, long len); +extern void serialize_block_2(void * data, long len); +extern void serialize_block_4(void * data, long len); +extern void serialize_block_8(void * data, long len); + +extern int deserialize_uint_1(void); +extern int deserialize_sint_1(void); +extern int deserialize_uint_2(void); +extern int deserialize_sint_2(void); +extern uint32 deserialize_uint_4(void); +extern int32 deserialize_sint_4(void); +extern uint64 deserialize_uint_8(void); +extern int64 deserialize_sint_8(void); +extern float deserialize_float_4(void); +extern double deserialize_float_8(void); +extern void deserialize_block_1(void * data, long len); +extern void deserialize_block_2(void * data, long len); +extern void deserialize_block_4(void * data, long len); +extern void deserialize_block_8(void * data, long len); + /* Auxiliary stuff for sending code pointers */ unsigned char * code_checksum (void); @@ -95,6 +124,5 @@ unsigned char * code_checksum (void); extern char * code_area_start, * code_area_end; #endif - #endif |