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 debug_print_page_list(), 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 debug_print_page_list().

struct page_group* page_entry::group

Back pointer to the page group this page came from.

Referenced by 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 clear_marks(), debug_print_page_list(), 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 debug_print_page_list(), 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: