GCC Middle and Back End API Reference
page_entry Struct Reference
Collaboration diagram for page_entry:

Data Fields

struct page_entrynext
struct page_entryprev
size_t bytes
char * page
struct page_groupgroup
unsigned long index_by_depth
unsigned short context_depth
unsigned short num_free_objects
unsigned short next_bit_hint
unsigned char order
bool discarded
unsigned long in_use_p [1]

Detailed Description

   A page_entry records the status of an allocation page.  This
   structure is dynamically sized to fit the bitmap in_use_p.  

Field Documentation

size_t page_entry::bytes
     The number of bytes allocated.  (This will always be a multiple
     of the host system page size.)  

Referenced by alloc_anon(), init_ggc_pch(), and set_page_group_in_use().

unsigned short page_entry::context_depth
     Context depth of this page.  

Referenced by clear_marks(), compute_inverse(), and sweep_pages().

bool page_entry::discarded
     Discarded page? 

Referenced by alloc_anon().

struct page_group* page_entry::group
     Back pointer to the page group this page came from.  

Referenced by alloc_anon(), and debug_print_page_list().

unsigned long page_entry::in_use_p[1]
     A bit vector indicating whether or not objects are in use.  The
     Nth bit is one if the Nth object on this page is allocated.  This
     array is dynamically sized.  

Referenced by clear_marks(), compute_inverse(), gt_ggc_m_S(), and sweep_pages().

unsigned long page_entry::index_by_depth
     This is the index in the by_depth varray where this page table
     can be found.  
struct page_entry* page_entry::next
     The next page-entry with objects of the same size, or NULL if
     this is the last page-entry.  

Referenced by alloc_anon(), clear_marks(), gt_ggc_mx(), and set_page_group_in_use().

unsigned short page_entry::next_bit_hint
     A likely candidate for the bit position of a free object for the
     next allocation from this page.  
unsigned short page_entry::num_free_objects
     The number of free objects remaining on this page.  

Referenced by compute_inverse(), and gt_ggc_m_S().

unsigned char page_entry::order
     The lg of size of objects allocated from this page.  

Referenced by alloc_anon(), gt_ggc_m_S(), set_page_group_in_use(), and sweep_pages().

char* page_entry::page
struct page_entry* page_entry::prev
     The previous page-entry with objects of the same size, or NULL if
     this is the first page-entry.   The PREV pointer exists solely to
     keep the cost of ggc_free manageable.  

Referenced by gt_ggc_m_S(), and gt_ggc_mx().

The documentation for this struct was generated from the following file: