summaryrefslogtreecommitdiff
path: root/byterun/memory.h
diff options
context:
space:
mode:
authorNo author <no_author@ocaml.org>1995-06-15 08:17:30 +0000
committerNo author <no_author@ocaml.org>1995-06-15 08:17:30 +0000
commitf0a0321f07084edd6d4b4761b855d74e0521a86a (patch)
tree1a49ecaa36e8d05f8171b3395e46f69e24e94462 /byterun/memory.h
parent3ceaa85c72b2094bb090a1819b65a2792cf2d3c1 (diff)
downloadocaml-unlabeled-1.1.2.tar.gz
This commit was manufactured by cvs2svn to create branchunlabeled-1.1.2
'unlabeled-1.1.2'. git-svn-id: http://caml.inria.fr/svn/ocaml/branches/unlabeled-1.1.2@35 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/memory.h')
-rw-r--r--byterun/memory.h88
1 files changed, 0 insertions, 88 deletions
diff --git a/byterun/memory.h b/byterun/memory.h
deleted file mode 100644
index 5df199e02e..0000000000
--- a/byterun/memory.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Allocation macros and functions */
-
-#ifndef _memory_
-#define _memory_
-
-
-#include "config.h"
-#include "gc.h"
-#include "major_gc.h"
-#include "minor_gc.h"
-#include "misc.h"
-#include "mlvalues.h"
-
-value alloc_shr P((mlsize_t, tag_t));
-void adjust_gc_speed P((mlsize_t, mlsize_t));
-void modify P((value *, value));
-void initialize P((value *, value));
-char * stat_alloc P((asize_t)); /* Size in bytes. */
-void stat_free P((char *));
-char * stat_resize P((char *, asize_t)); /* Size in bytes. */
-
-
-#define Alloc_small(result, wosize, tag) { \
- char *_res_ = young_ptr; \
- young_ptr += Bhsize_wosize (wosize); \
- if (young_ptr > young_end){ \
- Setup_for_gc; \
- minor_collection (); \
- Restore_after_gc; \
- _res_ = young_ptr; \
- young_ptr += Bhsize_wosize (wosize); \
- } \
- Hd_hp (_res_) = Make_header ((wosize), (tag), Black); \
- (result) = Val_hp (_res_); \
-}
-
-/* You must use [Modify] to change a field of an existing shared block,
- unless you are sure the value being overwritten is not a shared block and
- the value being written is not a young block. */
-/* [Modify] never calls the GC. */
-
-#define Modify(fp, val) { \
- value _old_ = *(fp); \
- *(fp) = (val); \
- if (Is_in_heap (fp)){ \
- if (gc_phase == Phase_mark) darken (_old_); \
- if (Is_block (val) && Is_young (val) \
- && ! (Is_block (_old_) && Is_young (_old_))){ \
- *ref_table_ptr++ = (fp); \
- if (ref_table_ptr >= ref_table_limit){ \
- Assert (ref_table_ptr == ref_table_limit); \
- realloc_ref_table (); \
- } \
- } \
- } \
-} \
-
-/* [Push_roots] and [Pop_roots] are used for C variables that are GC roots.
- * It must contain all values in C local variables at the time the minor GC is
- * called.
- * Usage:
- * At the end of the declarations of your C local variables, add
- * [ Push_roots (variable_name, size); ]
- * The size is the number of declared roots. They are accessed as
- * [ variable_name [0] ... variable_name [size - 1] ].
- * The [variable_name] and the [size] must not be [ _ ].
- * Just before the function return, add a call to [Pop_roots].
- */
-
-extern value *local_roots;
-
-#define Push_roots(name, size) \
- value name [(size) + 2]; \
- { long _; for (_ = 0; _ < (size); name [_++] = Val_long (0)); } \
- name [(size)] = (value) (size); \
- name [(size) + 1] = (value) local_roots; \
- local_roots = &(name [(size)]);
-
-#define Pop_roots() {local_roots = (value *) local_roots [1]; }
-
-/* [register_global_root] registers a global C variable as a memory root
- for the duration of the program. */
-
-void register_global_root P((value *));
-
-
-#endif /* _memory_ */
-