internal.h File Reference

Internals. More...

#include "tm.h"
#include <limits.h>
#include <sys/time.h>
#include <setjmp.h>
#include "tredmill/list.h"
#include "tredmill/config.h"
#include "tredmill/color.h"
#include "tredmill/debug.h"
#include "tredmill/node.h"
#include "tredmill/block.h"
#include "tredmill/type.h"
#include "tredmill/stats.h"
#include "tredmill/barrier.h"
#include "util/bitset.h"
#include "tredmill/os.h"
#include "tredmill/root.h"
#include "tredmill/page.h"
#include "tredmill/ptr.h"
#include "tredmill/mark.h"
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <stdarg.h>
#include <unistd.h>
#include <string.h>
Include dependency graph for internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  tm_root
 A root set region to be scanned for possible pointers. More...
struct  tm_data
 Internal data for the allocator. More...

Defines

#define tm_type_hash_LEN   101
#define tm_BITMAP_SIZE   (tm_address_range_k / (tm_page_SIZE / 1024) / bitset_ELEM_BSIZE)
 The size of a page-indexed bit map.
#define tm_ptr_l   tm.ptr_range[0]
 The lowest allocated node address.
#define tm_ptr_h   tm.ptr_range[1]
 The highest allocated node address.
#define tm_node_LOOP_INIT(C)   tm_node_iterator_init(&tm.node_color_iter[C])
 Initialize the iterator of all nodes of a given color.
#define tm_node_LOOP(C)
 Begin a loop over all nodes of a given color.
#define tm_node_LOOP_BREAK(C)   break
 Break out of a loop over all nodes of a given color.
#define tm_node_LOOP_END(C)
 End a loop over all nodes of a given color.
#define _tm_clear_some_stack_words()

Enumerations

enum  tm_phase {
  tm_ALLOC, tm_UNMARK, tm_ROOT, tm_SCAN,
  tm_SWEEP, tm_phase_END
}
 

The phases of the allocator.

More...

Functions

static __inline void tm_node_iterator_init (tm_node_iterator *ni)
 Initializes a colored node iterator.
static __inline tm_nodetm_node_iterator_next (tm_node_iterator *ni)
 Returns the next node from the iterator.
void _tm_phase_init (int p)
 Initializes a new allocation phase.
void tm_node_set_color (tm_node *n, tm_block *b, tm_color c)
 Sets the color of a tm_node, in a tm_block.
void _tm_set_stack_ptr (void *ptr)
 Set the stack pointer.
void __tm_clear_some_stack_words ()
 Clears the stack and initializes register root set.
void * _tm_alloc_inner (size_t size)
 Allocates a node of a particular size.
void * _tm_alloc_desc_inner (tm_adesc *desc)
 Allocates a node of a particular type.
void * _tm_realloc_inner (void *ptr, size_t size)
 Reallocates a node to a particular size.
void _tm_free_inner (void *ptr)
 Manually returns a node back to its tm_type free list.
void _tm_gc_full_inner ()
 Force a full GC sequence.

Variables

struct tm_data tm
 Global data.

Detailed Description

Internals.

Id
internal.h,v 1.17 2009-08-01 10:47:31 stephens Exp

Definition in file internal.h.


Define Documentation

#define tm_BITMAP_SIZE   (tm_address_range_k / (tm_page_SIZE / 1024) / bitset_ELEM_BSIZE)

The size of a page-indexed bit map.

Definition at line 171 of file internal.h.

#define tm_type_hash_LEN   101

Definition at line 134 of file internal.h.

Referenced by tm_init(), and tm_size_hash().


Generated on Mon Jan 25 06:33:12 2010 for TM(tredmill) by  doxygen 1.6.1