LLVM  14.0.0git
Classes | Enumerations | Functions | Variables
llvm::msf Namespace Reference


class  IMSFFile
class  MappedBlockStream
 MappedBlockStream represents data stored in an MSF file into chunks of a particular size (called the Block Size), and whose chunks may not be necessarily contiguous. More...
class  MSFBuilder
class  MSFError
 Base class for errors originating when parsing raw PDB files. More...
struct  MSFLayout
class  MSFStreamLayout
 Describes the layout of a stream in an MSF layout. More...
struct  SuperBlock
class  WritableMappedBlockStream


enum  msf_error_code {
  msf_error_code::unspecified = 1, msf_error_code::insufficient_buffer, msf_error_code::size_overflow, msf_error_code::not_writable,
  msf_error_code::no_stream, msf_error_code::invalid_format, msf_error_code::block_in_use


MSFStreamLayout getFpmStreamLayout (const MSFLayout &Msf, bool IncludeUnusedFpmData=false, bool AltFpm=false)
 Determine the layout of the FPM stream, given the MSF layout. More...
bool isValidBlockSize (uint32_t Size)
uint32_t getMinimumBlockCount ()
uint32_t getFirstUnreservedBlock ()
uint64_t bytesToBlocks (uint64_t NumBytes, uint64_t BlockSize)
uint64_t blockToOffset (uint64_t BlockNumber, uint64_t BlockSize)
uint32_t getFpmIntervalLength (const MSFLayout &L)
uint32_t getNumFpmIntervals (uint32_t BlockSize, uint32_t NumBlocks, bool IncludeUnusedFpmData, int FpmNumber)
 Given an MSF with the specified block size and number of blocks, determine how many pieces the specified Fpm is split into. More...
uint32_t getNumFpmIntervals (const MSFLayout &L, bool IncludeUnusedFpmData=false, bool AltFpm=false)
Error validateSuperBlock (const SuperBlock &SB)
const std::error_categoryMSFErrCategory ()
std::error_code make_error_code (msf_error_code E)


static const char Magic []

Enumeration Type Documentation

◆ msf_error_code


Definition at line 16 of file MSFError.h.

Function Documentation

◆ blockToOffset()

uint64_t llvm::msf::blockToOffset ( uint64_t  BlockNumber,
uint64_t  BlockSize 

◆ bytesToBlocks()

uint64_t llvm::msf::bytesToBlocks ( uint64_t  NumBytes,
uint64_t  BlockSize 

◆ getFirstUnreservedBlock()

uint32_t llvm::msf::getFirstUnreservedBlock ( )

Definition at line 109 of file MSFCommon.h.

◆ getFpmIntervalLength()

uint32_t llvm::msf::getFpmIntervalLength ( const MSFLayout L)

Definition at line 119 of file MSFCommon.h.

References llvm::msf::SuperBlock::BlockSize, and llvm::msf::MSFLayout::SB.

Referenced by getFpmStreamLayout().

◆ getFpmStreamLayout()

MSFStreamLayout llvm::msf::getFpmStreamLayout ( const MSFLayout Msf,
bool  IncludeUnusedFpmData = false,
bool  AltFpm = false 

◆ getMinimumBlockCount()

uint32_t llvm::msf::getMinimumBlockCount ( )

Definition at line 105 of file MSFCommon.h.

Referenced by llvm::msf::MSFBuilder::create().

◆ getNumFpmIntervals() [1/2]

uint32_t llvm::msf::getNumFpmIntervals ( const MSFLayout L,
bool  IncludeUnusedFpmData = false,
bool  AltFpm = false 

◆ getNumFpmIntervals() [2/2]

uint32_t llvm::msf::getNumFpmIntervals ( uint32_t  BlockSize,
uint32_t  NumBlocks,
bool  IncludeUnusedFpmData,
int  FpmNumber 

Given an MSF with the specified block size and number of blocks, determine how many pieces the specified Fpm is split into.

BlockSize - the block size of the MSF NumBlocks - the total number of blocks in the MSF IncludeUnusedFpmData - When true, this will count every block that is both in the file and matches the form of an FPM block, even if some of those FPM blocks are unused (a single FPM block can describe the allocation status of up to 32,767 blocks, although one appears only every 4,096 blocks). So there are 8x as many blocks that match the form as there are blocks that are necessary to describe the allocation status of the file. When this parameter is false, these extraneous trailing blocks are not counted.

Definition at line 135 of file MSFCommon.h.

References assert(), BlockSize, and llvm::divideCeil().

Referenced by getFpmStreamLayout(), and getNumFpmIntervals().

◆ isValidBlockSize()

bool llvm::msf::isValidBlockSize ( uint32_t  Size)

Definition at line 90 of file MSFCommon.h.

References llvm::Check::Size.

Referenced by llvm::msf::MSFBuilder::create(), and validateSuperBlock().

◆ make_error_code()

std::error_code llvm::msf::make_error_code ( msf_error_code  E)

Definition at line 37 of file MSFError.h.

References E, and MSFErrCategory().

◆ MSFErrCategory()

const std::error_category & llvm::msf::MSFErrCategory ( )

Definition at line 48 of file MSFError.cpp.

References MSFCategory.

Referenced by make_error_code().

◆ validateSuperBlock()

Error llvm::msf::validateSuperBlock ( const SuperBlock SB)

Variable Documentation

◆ Magic

const char llvm::msf::Magic[]
Initial value:
= {'M', 'i', 'c', 'r', 'o', 's', 'o', 'f',
't', ' ', 'C', '/', 'C', '+', '+', ' ',
'M', 'S', 'F', ' ', '7', '.', '0', '0',
'\r', '\n', '\x1a', 'D', 'S', '\0', '\0', '\0'}

Definition at line 23 of file MSFCommon.h.

Referenced by llvm::msf::MSFBuilder::generateLayout(), and validateSuperBlock().