ducky.hdt module

Hardware Description Table structures.

class ducky.hdt.HDT(logger, config=None)[source]

Bases: object

Root of HDT. Provides methods for creating HDT for a given machine configuration.

Parameters:
  • logger (logging.Logger) – logger instance used for logging.
  • config (ducky.config.MachineConfig) – configuration file HDT should reflect.
create()[source]

Create HDT header and entries from config file.

klasses = [<class 'ducky.hdt.HDTEntry_Memory'>, <class 'ducky.hdt.HDTEntry_CPU'>, <class 'ducky.hdt.HDTEntry_Argument'>]
class ducky.hdt.HDTEntry(entry_type, length)[source]

Bases: ducky.hdt.HDTStructure

Base class of all HDT entries.

Each entry has at least two fields, type and length. Other fields depend on type of entry, and follow immediately after length field.

Parameters:
classmethod create(*args, **kwargs)[source]
class ducky.hdt.HDTEntryTypes[source]

Bases: enum.IntEnum

Types of different HDT entries.

ARGUMENT = <HDTEntryTypes.ARGUMENT: 3>
CPU = <HDTEntryTypes.CPU: 1>
MEMORY = <HDTEntryTypes.MEMORY: 2>
UNDEFINED = <HDTEntryTypes.UNDEFINED: 0>
class ducky.hdt.HDTEntry_Argument(arg_name, arg_type, arg_value)[source]

Bases: ducky.hdt.HDTEntry

MAX_NAME_LENGTH = 13
classmethod create(logger, config)[source]
length

Structure/Union member

name

Structure/Union member

name_length

Structure/Union member

type

Structure/Union member

value

Structure/Union member

value_length

Structure/Union member

class ducky.hdt.HDTEntry_CPU(logger, config)[source]

Bases: ducky.hdt.HDTEntry

HDT entry describing CPU configuration.

Parameters:
  • nr_cpus (u16_t) – number of CPUs.
  • nr_cores (u16_t) – number of cores per CPU.
length

Structure/Union member

nr_cores

Structure/Union member

nr_cpus

Structure/Union member

type

Structure/Union member

class ducky.hdt.HDTEntry_Memory(logger, config)[source]

Bases: ducky.hdt.HDTEntry

HDT entry describing memory configuration.

Parameters:size (u32_t) – size of memory, in bytes.
length

Structure/Union member

size

Structure/Union member

type

Structure/Union member

class ducky.hdt.HDTHeader[source]

Bases: ducky.hdt.HDTStructure

HDT header. Contains magic number, number of HDT entries that immediately follow header.

entries

Structure/Union member

length

Structure/Union member

magic

Structure/Union member

class ducky.hdt.HDTStructure[source]

Bases: _ctypes.Structure

Base class of all HDT structures.

ducky.hdt.HDT_MAGIC = 1298034544

Magic number present in HDT header