ducky.devices package¶
Submodules¶
Module contents¶
Emulating different virtual devices like keyboard, display, disks...
-
class
ducky.devices.
Device
(machine, klass, name)[source]¶ Bases:
ducky.interfaces.IMachineWorker
Base class for all devices. Serves more like an API description.
Parameters: - machine (ducky.machine.Machine) – VM this device belongs to.
- klass (str) – device family (input, output, snapshot, ...)
- name (str) – device name. Maps directly to a section of config file that hosts setup for this device.
-
static
create_from_config
(machine, config, section)[source]¶ Create new instance, configured exactly as requested by configuration file.
Parameters: - machine (ducky.machine.Machine) – VM this device belongs to.
- config (ducky.config.MachineConfig) – configuration file.
- section (str) – name of config section with this device’s setup.
-
static
create_hdt_entries
(logger, config, section)[source]¶ Create
HDT
entries for this device, based on configuration file.Parameters: - logger (logging.Logger) – logger to use for logging.
- config (ducky.config.MachineConfig) – configuration file.
- section (str) – name of config section with this device’s setup.
Return type: list
ofducky.hdt.HDTEntry
Returns: list of
HDT
entries. This list is then appended to entries of other devices.
-
class
ducky.devices.
DeviceBackend
(machine, klass, name)[source]¶ Bases:
ducky.devices.Device
Backend is a special component of a device, which is connected to internal queues, and processes events in the queue, originating from user via its frontend counterpart.
-
class
ducky.devices.
DeviceFrontend
(machine, klass, name)[source]¶ Bases:
ducky.devices.Device
Frontend is a special component of a device, that interfaces communication channels from user and internal queues.
-
set_backend
(device)[source]¶ Set backend counterpart.
Parameters: device (ducky.devices.DeviceFrontend) – backend part.
-
-
class
ducky.devices.
MMIOMemoryPage
(device, *args, **kwargs)[source]¶ Bases:
ducky.mm.VirtualMemoryPage
Memory page, suited for memory-mapped IO, supported by a device driver.
Parameters: device (ducky.devices.Device) – device instance, backing this memory page.