Fairport  v1.0.38
fairport::disk::dlist_page< T > Struct Template Reference

A metapage holding information about AMap pages. More...

#include <disk.h>

+ Collaboration diagram for fairport::disk::dlist_page< T >:

List of all members.

Public Attributes

byte flags
 Flags indicating the state of the dlist page.
byte num_entries
 Number of entries in the entries array.
union {
   ulong   current_page
 The current AMap page used for allocations.
   ulong   backfill_location
 The current backfill marker, when backfilling.
}; 
union {
   ulong   entries [max_entries]
 Each entry has bits for the amap page (ordinal) and free space (slots)
   byte   _ignore [extra_space]
}; 
page_trailer< T > trailer
 The page trailer.

Static Public Attributes

static const size_t extra_space = page<T>::page_data_size - 8
static const size_t max_entries = extra_space / sizeof(ulong)
 Maximum number of entries in the dlist page.

Detailed Description

template<typename T>
struct fairport::disk::dlist_page< T >

A metapage holding information about AMap pages.

The Density List page contains a list of AMap pages in the file, in ascending order of density. That is to say, the "emptiest" page is at the top. This is the data backing the new allocation scheme which replaced the old pmap/fmap/fpmap scheme, starting in Outlook 2007 SP2.

Template Parameters:
Tulonglong for a unicode store, ulong for an ANSI store
See also:
[MS-PST] 2.2.2.7.4.2

Definition at line 712 of file disk.h.


Member Data Documentation

union { ... }
union { ... }
template<typename T >
byte fairport::disk::dlist_page< T >::_ignore[extra_space]

Definition at line 727 of file disk.h.

template<typename T >
ulong fairport::disk::dlist_page< T >::backfill_location

The current backfill marker, when backfilling.

Definition at line 722 of file disk.h.

template<typename T >
ulong fairport::disk::dlist_page< T >::current_page

The current AMap page used for allocations.

Definition at line 721 of file disk.h.

template<typename T >
ulong fairport::disk::dlist_page< T >::entries[max_entries]

Each entry has bits for the amap page (ordinal) and free space (slots)

Definition at line 726 of file disk.h.

template<typename T >
const size_t fairport::disk::dlist_page< T >::extra_space = page<T>::page_data_size - 8 [static]

Definition at line 714 of file disk.h.

template<typename T >
byte fairport::disk::dlist_page< T >::flags

Flags indicating the state of the dlist page.

Definition at line 717 of file disk.h.

template<typename T >
const size_t fairport::disk::dlist_page< T >::max_entries = extra_space / sizeof(ulong) [static]

Maximum number of entries in the dlist page.

Definition at line 715 of file disk.h.

template<typename T >
byte fairport::disk::dlist_page< T >::num_entries

Number of entries in the entries array.

Definition at line 718 of file disk.h.

template<typename T >
page_trailer<T> fairport::disk::dlist_page< T >::trailer

The page trailer.

Definition at line 729 of file disk.h.


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