A reference to a block of memory which contains a complete program. More...

Public Member Functions

 Program (const void *data, uint32 totalMemorySize) noexcept
 
uint16 getStoredChecksum () const noexcept
 
uint16 calculateChecksum () const noexcept
 
bool checksumMatches () const noexcept
 
uint32 getNumFunctions () const noexcept
 
FunctionID getFunctionID (uint32 functionIndex) const noexcept
 
const uint8getFunctionStartAddress (uint32 functionIndex) const noexcept
 
const uint8getFunctionEndAddress (uint32 functionIndex) const noexcept
 
uint32 getProgramSize () const noexcept
 
uint16 getHeapSizeBytes () const noexcept
 Returns the number of bytes of heap space the program needs. More...
 
uint16 getNumGlobals () const noexcept
 Returns the number of global variables the program uses. More...
 
uint32 getTotalSpaceNeeded () const noexcept
 

Static Public Member Functions

static uint8 getNumExtraBytesForOpcode (OpCode op) noexcept
 For a given op code, this returns the number of program bytes that follow it. More...
 
static float intToFloat (int32 value) noexcept
 
static int32 floatToInt (float value) noexcept
 
static int16 readInt16 (const uint8 *d) noexcept
 
static int32 readInt32 (const uint8 *d) noexcept
 
static void writeInt16 (uint8 *d, int16 v) noexcept
 
static void writeInt32 (uint8 *d, int32 v) noexcept
 

Public Attributes

const uint8programStart = 0
 
const uint32 maxProgramSize
 

Static Public Attributes

static constexpr uint32 programHeaderSize = 10
 

Detailed Description

A reference to a block of memory which contains a complete program.

Data format: 2 bytes - program checksum 2 bytes - program size 2 bytes - num functions 2 bytes - num globals 2 bytes - amount of heap space needed (bytes) 2 bytes - ID of function 1 2 bytes - byte offset of function 1 code 2 bytes - ID of function 2 2 bytes - byte offset of function 2 code etc.. ...function code...

Constructor & Destructor Documentation

◆ Program()

littlefoot::Program::Program ( const void *  data,
uint32  totalMemorySize 
)
noexcept

References jassert.

Member Function Documentation

◆ getStoredChecksum()

uint16 littlefoot::Program::getStoredChecksum ( ) const
noexcept

◆ calculateChecksum()

uint16 littlefoot::Program::calculateChecksum ( ) const
noexcept

◆ checksumMatches()

◆ getNumFunctions()

uint32 littlefoot::Program::getNumFunctions ( ) const
noexcept

◆ getFunctionID()

FunctionID littlefoot::Program::getFunctionID ( uint32  functionIndex) const
noexcept

◆ getFunctionStartAddress()

const uint8* littlefoot::Program::getFunctionStartAddress ( uint32  functionIndex) const
noexcept

◆ getFunctionEndAddress()

const uint8* littlefoot::Program::getFunctionEndAddress ( uint32  functionIndex) const
noexcept

◆ getProgramSize()

◆ getHeapSizeBytes()

uint16 littlefoot::Program::getHeapSizeBytes ( ) const
noexcept

Returns the number of bytes of heap space the program needs.

Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::run().

◆ getNumGlobals()

uint16 littlefoot::Program::getNumGlobals ( ) const
noexcept

Returns the number of global variables the program uses.

Referenced by littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::FunctionExecutionContext::run().

◆ getTotalSpaceNeeded()

uint32 littlefoot::Program::getTotalSpaceNeeded ( ) const
noexcept

◆ getNumExtraBytesForOpcode()

static uint8 littlefoot::Program::getNumExtraBytesForOpcode ( OpCode  op)
staticnoexcept

For a given op code, this returns the number of program bytes that follow it.

References jassertfalse, littlefoot::LITTLEFOOT_OP, LITTLEFOOT_OP_INT16, LITTLEFOOT_OP_INT32, LITTLEFOOT_OP_INT8, and LITTLEFOOT_OPCODES.

◆ intToFloat()

static float littlefoot::Program::intToFloat ( int32  value)
staticnoexcept

◆ floatToInt()

static int32 littlefoot::Program::floatToInt ( float  value)
staticnoexcept

◆ readInt16()

static int16 littlefoot::Program::readInt16 ( const uint8 d)
staticnoexcept

◆ readInt32()

◆ writeInt16()

static void littlefoot::Program::writeInt16 ( uint8 d,
int16  v 
)
staticnoexcept

◆ writeInt32()

static void littlefoot::Program::writeInt32 ( uint8 d,
int32  v 
)
staticnoexcept

Member Data Documentation

◆ programHeaderSize

constexpr uint32 littlefoot::Program::programHeaderSize = 10
static

◆ programStart

const uint8* littlefoot::Program::programStart = 0

◆ maxProgramSize

const uint32 littlefoot::Program::maxProgramSize

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