elftosb::EncoreBootImage::NopCommand Class Reference

No operation bootloader command. More...

`#include <EncoreBootImage.h>`

Inheritance diagram for elftosb::EncoreBootImage::NopCommand:
[legend]
Collaboration diagram for elftosb::EncoreBootImage::NopCommand:
[legend]

## Public Member Functions

| NopCommand ()
| Default constructor.
virtual void | initFromData (const cipher_block_t *blocks, unsigned count, unsigned *consumed)
| Read the command contents from raw data. More...
virtual void | debugPrint () const
| Print out a string representation of the object.
Header
virtual uint8_t | getTag () const
| Returns the tag value for this command.
virtual void | fillCommandHeader (boot_command_t &header)
| Constructs the header for this boot command. More...
Public Member Functions inherited from elftosb::EncoreBootImage::BootCommand
| BootCommand ()
| Default constructor.
virtual | ~BootCommand ()
| Destructor.
virtual uint8_t | calculateChecksum (const boot_command_t &header)
| Calculates the checksum for the given command header. More...
virtual unsigned | getBlockCount () const
| Returns the total number of cipher blocks. More...
virtual unsigned | getBlocks (unsigned offset, unsigned maxCount, cipher_block_t *data)
| Returns the contents of up to maxCount cipher blocks. More...
virtual unsigned | getDataBlockCount () const
| Returns the number of data cipher blocks that follow this command. More...
virtual unsigned | getDataBlocks (unsigned offset, unsigned maxCount, cipher_block_t *data)
| Returns the contents of up to maxCount data blocks. More...
Cipher blocks

## Additional Inherited Members

Static Public Member Functions inherited from elftosb::EncoreBootImage::BootCommand
static BootCommand * | createFromData (const cipher_block_t *blocks, unsigned count, unsigned *consumed)
| Creates the correct subclass of BootCommand for the given raw data. More...
Protected Types inherited from elftosb::EncoreBootImage::BootCommand
enum | { CMD_TAG_FIELD = 1, CMD_FLAGS_FIELD = 2, CMD_ADDRESS_FIELD = 4, CMD_COUNT_FIELD = 8, CMD_DATA_FIELD = 16 }
| The flag bit values for the whichFields parameter of validateHeader().
Protected Member Functions inherited from elftosb::EncoreBootImage::BootCommand
void | validateHeader (const boot_command_t *modelHeader, const boot_command_t *testHeader, unsigned whichFields)

## Detailed Description

No operation bootloader command.

## Member Function Documentation

void EncoreBootImage::NopCommand::fillCommandHeader | ( | boot_command_t & | header | ) |

virtual

Constructs the header for this boot command.

All fields of the boot command header structure are set to 0, except for the checksum. This includes the tag field since the tag value for the ROM_NOP_CMD is zero. And since all fields are zeroes the checksum remains the initial checksum value of 0x5a.

Implements elftosb::EncoreBootImage::BootCommand.

void EncoreBootImage::NopCommand::initFromData | ( | const cipher_block_t * | blocks,
|  | unsigned | count,
|  | unsigned * | consumed
| ) |  |

virtual

Read the command contents from raw data.

Since the NOP command has no data, this method just validates the command header. All fields except the checksum are expected to be set to 0.

Parameters

  | blocks | Pointer to the raw data blocks.
  | count | Number of blocks pointed to by blocks.
  [out] | consumed | On exit, this points to the number of cipher blocks that were occupied by the command. Should be at least 1 for every command. This must not be NULL on entry!

Exceptions

  std::runtime_error | Thrown if header fields are invalid.

Implements elftosb::EncoreBootImage::BootCommand.

The documentation for this class was generated from the following files:

- EncoreBootImage.h
- EncoreBootImage.cpp