gc_for_class.h File Reference


Classes

struct  GC_VTable_Info
struct  Partial_Reveal_VTable
struct  Partial_Reveal_Object
struct  Partial_Reveal_Array

Defines

#define CONST_MARK_BIT   0x1
 
Author:
Xiao-Feng Li, 2006/10/05

#define CLEAR_VT_MARK   0x03
#define DUAL_MARKBITS   0x3
#define DUAL_MARKBITS_MASK   (~DUAL_MARKBITS)
#define MARK_BIT_FLIPPING
#define FLIP_MARK_BIT   Cur_Mark_Bit
#define FLIP_FORWARD_BIT   Cur_Forward_Bit
#define FORWARD_BIT   FLIP_FORWARD_BIT
#define OBJ_DIRTY_BIT   0x20
#define OBJ_AGE_BIT   0x40
#define OBJ_REM_BIT   0x80
#define VT   Partial_Reveal_VTable*
#define VT_SIZE_INT   POINTER_SIZE_INT
#define GC_CLASS_FLAG_FINALIZER   1
#define GC_CLASS_FLAG_ARRAY   2
#define GC_CLASS_FLAG_REFS   4
#define GC_CLASS_IS_REF_ARRAY   (GC_CLASS_FLAG_ARRAY|GC_CLASS_FLAG_REFS)
#define GC_CLASS_FLAGS_MASK   (~(GC_CLASS_IS_REF_ARRAY|GC_CLASS_FLAG_FINALIZER))
#define GC_OBJECT_ALIGN_MASK   (GC_OBJECT_ALIGNMENT-1)
#define GCVT_ALIGNMENT   8
#define GCVT_ALIGN_MASK   (GCVT_ALIGNMENT-1)
#define CL_PROP_REFERENCE_TYPE_SHIFT   16
#define CL_PROP_REFERENCE_TYPE_MASK   0x00030000

Typedefs

typedef void * Thread_Handle
typedef POINTER_SIZE_INT Obj_Info_Type

Enumerations

enum  VT_Mark_Status { VT_UNMARKED = 0, VT_MARKED = 0x1, VT_FALLBACK_MARKED = 0x2 }

Functions

FORCE_INLINE Partial_Reveal_VTableencode_vt (Partial_Reveal_VTable *vt)
FORCE_INLINE Partial_Reveal_VTabledecode_vt (Partial_Reveal_VTable *vt)
FORCE_INLINE Obj_Info_Type get_obj_info_raw (Partial_Reveal_Object *obj)
FORCE_INLINE Obj_Info_Type get_obj_info (Partial_Reveal_Object *obj)
FORCE_INLINE void set_obj_info (Partial_Reveal_Object *obj, Obj_Info_Type new_obj_info)
FORCE_INLINE Obj_Info_Typeget_obj_info_addr (Partial_Reveal_Object *obj)
FORCE_INLINE Partial_Reveal_VTableobj_get_vt_raw (Partial_Reveal_Object *obj)
FORCE_INLINE Partial_Reveal_VTable ** obj_get_vt_addr (Partial_Reveal_Object *obj)
FORCE_INLINE Partial_Reveal_VTableobj_get_vt (Partial_Reveal_Object *obj)
FORCE_INLINE void obj_set_vt (Partial_Reveal_Object *obj, Partial_Reveal_VTable *ah)
FORCE_INLINE GC_VTable_Infovtable_get_gcvt_raw (Partial_Reveal_VTable *vt)
FORCE_INLINE GC_VTable_Infovtable_get_gcvt (Partial_Reveal_VTable *vt)
FORCE_INLINE void vtable_set_gcvt (Partial_Reveal_VTable *vt, GC_VTable_Info *new_gcvt)
FORCE_INLINE GC_VTable_Infoobj_get_gcvt_raw (Partial_Reveal_Object *obj)
FORCE_INLINE GC_VTable_Infoobj_get_gcvt (Partial_Reveal_Object *obj)
FORCE_INLINE Boolean object_has_ref_field (Partial_Reveal_Object *obj)
FORCE_INLINE Boolean object_has_ref_field_before_scan (Partial_Reveal_Object *obj)
FORCE_INLINE unsigned int object_ref_field_num (Partial_Reveal_Object *obj)
FORCE_INLINE Boolean object_is_array (Partial_Reveal_Object *obj)
FORCE_INLINE Boolean obj_is_primitive_array (Partial_Reveal_Object *obj)
FORCE_INLINE Class_Handle obj_get_class_handle (Partial_Reveal_Object *obj)
FORCE_INLINE unsigned int nonarray_object_size (Partial_Reveal_Object *obj)
FORCE_INLINE unsigned int array_first_element_offset (Partial_Reveal_Array *obj)
FORCE_INLINE unsigned int array_object_size (Partial_Reveal_Object *obj)
FORCE_INLINE unsigned int vm_object_size (Partial_Reveal_Object *obj)
FORCE_INLINE WeakReferenceType special_reference_type (Partial_Reveal_Object *p_reference)
FORCE_INLINE Boolean type_has_finalizer (Partial_Reveal_VTable *vt)

Variables

unsigned int Cur_Mark_Bit
unsigned int Cur_Forward_Bit
POINTER_SIZE_INT vtable_base


Define Documentation

#define CONST_MARK_BIT   0x1

Author:
Xiao-Feng Li, 2006/10/05

#define CLEAR_VT_MARK   0x03

#define DUAL_MARKBITS   0x3

#define DUAL_MARKBITS_MASK   (~DUAL_MARKBITS)

#define MARK_BIT_FLIPPING

#define FLIP_MARK_BIT   Cur_Mark_Bit

#define FLIP_FORWARD_BIT   Cur_Forward_Bit

#define FORWARD_BIT   FLIP_FORWARD_BIT

#define OBJ_DIRTY_BIT   0x20

#define OBJ_AGE_BIT   0x40

#define OBJ_REM_BIT   0x80

#define VT   Partial_Reveal_VTable*

#define VT_SIZE_INT   POINTER_SIZE_INT

#define GC_CLASS_FLAG_FINALIZER   1

#define GC_CLASS_FLAG_ARRAY   2

#define GC_CLASS_FLAG_REFS   4

#define GC_CLASS_IS_REF_ARRAY   (GC_CLASS_FLAG_ARRAY|GC_CLASS_FLAG_REFS)

#define GC_CLASS_FLAGS_MASK   (~(GC_CLASS_IS_REF_ARRAY|GC_CLASS_FLAG_FINALIZER))

#define GC_OBJECT_ALIGN_MASK   (GC_OBJECT_ALIGNMENT-1)

#define GCVT_ALIGNMENT   8

#define GCVT_ALIGN_MASK   (GCVT_ALIGNMENT-1)

#define CL_PROP_REFERENCE_TYPE_SHIFT   16

#define CL_PROP_REFERENCE_TYPE_MASK   0x00030000


Typedef Documentation

typedef void* Thread_Handle

typedef POINTER_SIZE_INT Obj_Info_Type


Enumeration Type Documentation

enum VT_Mark_Status

Enumerator:
VT_UNMARKED 
VT_MARKED 
VT_FALLBACK_MARKED 


Function Documentation

FORCE_INLINE Partial_Reveal_VTable* encode_vt ( Partial_Reveal_VTable vt  ) 

FORCE_INLINE Partial_Reveal_VTable* decode_vt ( Partial_Reveal_VTable vt  ) 

FORCE_INLINE Obj_Info_Type get_obj_info_raw ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Obj_Info_Type get_obj_info ( Partial_Reveal_Object obj  ) 

FORCE_INLINE void set_obj_info ( Partial_Reveal_Object obj,
Obj_Info_Type  new_obj_info 
)

FORCE_INLINE Obj_Info_Type* get_obj_info_addr ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Partial_Reveal_VTable* obj_get_vt_raw ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Partial_Reveal_VTable* * obj_get_vt_addr ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Partial_Reveal_VTable* obj_get_vt ( Partial_Reveal_Object obj  ) 

FORCE_INLINE void obj_set_vt ( Partial_Reveal_Object obj,
Partial_Reveal_VTable ah 
)

FORCE_INLINE GC_VTable_Info* vtable_get_gcvt_raw ( Partial_Reveal_VTable vt  ) 

FORCE_INLINE GC_VTable_Info* vtable_get_gcvt ( Partial_Reveal_VTable vt  ) 

FORCE_INLINE void vtable_set_gcvt ( Partial_Reveal_VTable vt,
GC_VTable_Info new_gcvt 
)

FORCE_INLINE GC_VTable_Info* obj_get_gcvt_raw ( Partial_Reveal_Object obj  ) 

FORCE_INLINE GC_VTable_Info* obj_get_gcvt ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Boolean object_has_ref_field ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Boolean object_has_ref_field_before_scan ( Partial_Reveal_Object obj  ) 

FORCE_INLINE unsigned int object_ref_field_num ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Boolean object_is_array ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Boolean obj_is_primitive_array ( Partial_Reveal_Object obj  ) 

FORCE_INLINE Class_Handle obj_get_class_handle ( Partial_Reveal_Object obj  ) 

FORCE_INLINE unsigned int nonarray_object_size ( Partial_Reveal_Object obj  ) 

FORCE_INLINE unsigned int array_first_element_offset ( Partial_Reveal_Array obj  ) 

FORCE_INLINE unsigned int array_object_size ( Partial_Reveal_Object obj  ) 

FORCE_INLINE unsigned int vm_object_size ( Partial_Reveal_Object obj  ) 

FORCE_INLINE WeakReferenceType special_reference_type ( Partial_Reveal_Object p_reference  ) 

FORCE_INLINE Boolean type_has_finalizer ( Partial_Reveal_VTable vt  ) 


Variable Documentation

unsigned int Cur_Mark_Bit

unsigned int Cur_Forward_Bit

POINTER_SIZE_INT vtable_base


Genereated on Tue Mar 11 19:25:34 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.