27 lines
1.0 KiB
C
27 lines
1.0 KiB
C
|
|
||
|
/*
|
||
|
* Copyright (c) 1999 by Silicon Graphics. All rights reserved.
|
||
|
*
|
||
|
* THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
|
||
|
* OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
|
||
|
*
|
||
|
* Permission is hereby granted to use or copy this program
|
||
|
* for any purpose, provided the above notices are retained on all copies.
|
||
|
* Permission to modify the code and to distribute modified code is granted,
|
||
|
* provided the above notices are retained, and a notice that the code was
|
||
|
* modified is included with the above copyright notice.
|
||
|
*/
|
||
|
/* Descriptor for allocation request. May be redefined by client. */
|
||
|
typedef struct {
|
||
|
GC_word bitmap; /* Bitmap describing pointer locations. */
|
||
|
/* High order bit correspond to 0th */
|
||
|
/* word. 2 lsbs must be 0. */
|
||
|
size_t length; /* In bytes, must be multiple of word */
|
||
|
/* size. Must be >0, <= 512 */
|
||
|
} * GC_copy_descriptor;
|
||
|
|
||
|
/* The collector accesses descriptors only through these two macros. */
|
||
|
#define GC_SIZE_FROM_DESCRIPTOR(d) ((d) -> length)
|
||
|
#define GC_BIT_MAP_FROM_DESCRIPTOR(d) ((d) -> bitmap)
|
||
|
|