Fairport  v1.0.38
Page Structures
+ Collaboration diagram for Page Structures:

Classes

struct  fairport::disk::page_trailer< ulonglong >
 The Unicode store version of the page trailer. More...
struct  fairport::disk::page_trailer< ulong >
 The ANSI store version of the page trailer. More...
struct  fairport::disk::page< T >
 Generic page structure. More...
struct  fairport::disk::amap_page< T >
 The authoritative source of free space in the file. More...
struct  fairport::disk::pmap_page< T >
 An old allocation system optimized for pages. More...
struct  fairport::disk::fmap_page< T >
 A deprecated allocation system optimized for AMap page searching. More...
struct  fairport::disk::fpmap_page< T >
 A deprecated allocation system optimized for PMap page searching. More...
struct  fairport::disk::dlist_page< T >
 A metapage holding information about AMap pages. More...
struct  fairport::disk::bt_entry< T >
 BTree Entry. More...
struct  fairport::disk::nbt_leaf_entry< T >
 NBT Leaf Entry. More...
struct  fairport::disk::bbt_leaf_entry< T >
 BBT Leaf Entry. More...
struct  fairport::disk::bt_page< T, EntryType >
 The fundamental page structure which forms the basis of the two BTrees. More...
struct  fairport::disk::nbt_nonleaf_page< T >
 NBT non-leaf page. More...
struct  fairport::disk::bbt_nonleaf_page< T >
 BBT non-leaf page. More...
struct  fairport::disk::nbt_leaf_page< T >
 NBT leaf page. More...
struct  fairport::disk::bbt_leaf_page< T >
 BBT leaf page. More...

Enumerations

enum  fairport::disk::page_type {
  fairport::disk::page_type_bbt = 0x80, fairport::disk::page_type_nbt = 0x81, fairport::disk::page_type_fmap = 0x82, fairport::disk::page_type_pmap = 0x83,
  fairport::disk::page_type_amap = 0x84, fairport::disk::page_type_fpmap = 0x85, fairport::disk::page_type_dlist = 0x86
}
 Valid page types. More...

Functions

ulong fairport::disk::dlist_get_page_num (ulong entry)
 Get a amap page number (ordinal) from a DLIST entry.
ulong fairport::disk::dlist_get_slots (ulong entry)
 Get the number of free slots from a DLIST entry.

Variables

const size_t fairport::disk::page_size = 512
 Size of all pages in the file in bytes, including the page trailer.
const size_t fairport::disk::bytes_per_slot = 64
 Number of bytes each slot (bit) in an AMap page refers to.
const size_t fairport::disk::first_amap_page_location = 0x4400
 The location of the first AMap page in the file.
const size_t fairport::disk::dlist_page_location = 0x4200
 The location of the only DList page in the file.
const ulong fairport::disk::dlist_page_num_mask = 0x0000FFFF
 The portion of the dlist entry which refers to the amap page number.
const ulong fairport::disk::dlist_slots_shift = 20
 The bits to shift a dlist entry to get the slots on that amap page.

Enumeration Type Documentation

Valid page types.

Used in the page_type and page_type_repeat fields of the page trailer.

See also:
[MS-PST] 2.2.2.7.1/ptype
Enumerator:
page_type_bbt 

A BBT (Blocks BTree) page.

page_type_nbt 

A NBT (Nodes BTree) page.

page_type_fmap 
Deprecated:
A FMap (Free Map) page
page_type_pmap 
Deprecated:
A PMap (Page Map) page
page_type_amap 

An AMap (Allocation Map) page.

page_type_fpmap 
Deprecated:
A FPMap (Free Page Map) page. Unicode stores only.
page_type_dlist 

A DList (Density List) page.

Definition at line 532 of file disk.h.


Function Documentation

ulong fairport::disk::dlist_get_page_num ( ulong  entry) [inline]

Get a amap page number (ordinal) from a DLIST entry.

Parameters:
[in]entryThe entry to inspect
See also:
[MS-PST] 2.2.2.7.4.1

Definition at line 750 of file disk.h.

ulong fairport::disk::dlist_get_slots ( ulong  entry) [inline]

Get the number of free slots from a DLIST entry.

Parameters:
[in]entryThe entry to inspect
See also:
[MS-PST] 2.2.2.7.4.1

Definition at line 756 of file disk.h.


Variable Documentation

const size_t fairport::disk::bytes_per_slot = 64

Number of bytes each slot (bit) in an AMap page refers to.

See also:
[MS-PST] 2.2.2.7.2

Definition at line 611 of file disk.h.

const size_t fairport::disk::dlist_page_location = 0x4200

The location of the only DList page in the file.

See also:
[MS-PST] 2.2.2.7.4

Definition at line 700 of file disk.h.

const ulong fairport::disk::dlist_page_num_mask = 0x0000FFFF

The portion of the dlist entry which refers to the amap page number.

See also:
[MS-PST] 2.2.2.7.4.1

Definition at line 739 of file disk.h.

The bits to shift a dlist entry to get the slots on that amap page.

See also:
[MS-PST] 2.2.2.7.4.1

Definition at line 744 of file disk.h.

The location of the first AMap page in the file.

See also:
[MS-PST] 2.2.2.7.2

Definition at line 616 of file disk.h.

const size_t fairport::disk::page_size = 512

Size of all pages in the file in bytes, including the page trailer.

See also:
[MS-PST] 2.2.2.7

Definition at line 525 of file disk.h.