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...
| 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 uint8 * | getFunctionStartAddress (uint32 functionIndex) const noexcept | 
| const uint8 * | getFunctionEndAddress (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 uint8 * | programStart = nullptr | 
| const uint32 | maxProgramSize | 
| Static Public Attributes | |
| static constexpr uint32 | programHeaderSize = 10 | 
| 
 | noexcept | 
| 
 | noexcept | 
References programStart, and readInt16().
Referenced by checksumMatches().
| 
 | noexcept | 
References getProgramSize(), and programStart.
Referenced by checksumMatches().
| 
 | noexcept | 
References calculateChecksum(), and getStoredChecksum().
Referenced by littlefoot::LittleFootRemoteHeap< ImplementationClass >::isProgramLoaded().
| 
 | noexcept | 
References programStart, and readInt16().
Referenced by getFunctionEndAddress().
| 
 | noexcept | 
References readInt16().
References getProgramSize(), programStart, and readInt16().
Referenced by getFunctionEndAddress().
References getFunctionStartAddress(), getNumFunctions(), getProgramSize(), and programStart.
| 
 | noexcept | 
References maxProgramSize, programHeaderSize, programStart, and readInt16().
Referenced by calculateChecksum(), littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::clearHeapAndGlobals(), getFunctionEndAddress(), getFunctionStartAddress(), getTotalSpaceNeeded(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::isProgramLoaded(), and littlefoot::Runner< programAndHeapSpace, stackAndGlobalsSpace >::setDataByte().
| 
 | noexcept | 
Returns the number of bytes of heap space the program needs.
References programStart, and readInt16().
Referenced by getTotalSpaceNeeded().
| 
 | noexcept | 
Returns the number of global variables the program uses.
References programStart, and readInt16().
| 
 | noexcept | 
References getHeapSizeBytes(), and getProgramSize().
For a given op code, this returns the number of program bytes that follow it.
References littlefoot::endOfOpcodes, LITTLEFOOT_OP, LITTLEFOOT_OP_INT16, LITTLEFOOT_OP_INT32, LITTLEFOOT_OP_INT8, and LITTLEFOOT_OPCODES.
| 
 | staticnoexcept | 
| 
 | staticnoexcept | 
| 
 | staticconstexpr | 
Referenced by getProgramSize().
| const uint8* littlefoot::Program::programStart = nullptr | 
| const uint32 littlefoot::Program::maxProgramSize | 
Referenced by getProgramSize().