summaryrefslogtreecommitdiffstats
path: root/byterun/intext.h
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2000-02-10 14:04:59 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2000-02-10 14:04:59 +0000
commit9e206909f48d5d2579b6ec17764d3273df23ff08 (patch)
tree3319a3e0c3383ed812f781859aadffd7f1462fdf /byterun/intext.h
parent7175ab048dcaaa39649ebc386ae37750baaf27e1 (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.h30
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