avl_qemu._x86 module

class avl_qemu._x86.X86Agent(*args, **kwargs)[source]

Agent configuration for x86 architecture.

Parameters:
BIN = '/home/docs/bin/qemu-system-x86_64'
REQUEST_PIPE = './AVL_QEMU_IN'
REQUEST_FMT = '<QIIQI'
REQUEST_SIZE = 28
REQUEST_TYPE = {0: 'Fetch', 1: 'Load', 2: 'Store'}
RESPONSE_PIPE = './AVL_QEMU_OUT'
RESPONSE_FMT = '<IQ'
RANGES_FILE = './avl_map.txt'
KERNEL = './c/kernel.elf'
POLL_PERIOD_NS = 10
__init__(name, parent)[source]

Initialize the x86 agent with specific capabilities and supported architectures.

Parameters:
  • name (str) – The name of the agent.

  • parent_agent (avl.Component) – Optional parent agent for hierarchical structuring.

  • parent (Component)

Returns:

None

Return type:

None

add_range(name, start, size, read_cb, write_cb)[source]

Add a memory range to the agent’s configuration.

Parameters:
  • name (str) – The name of the memory range.

  • start (int) – The starting address of the memory range.

  • size (int) – The size of the region

  • read_cb (callable) – callback function for read operations on this range.

  • write_cb (callable) – callback function for write operations on this range.

Returns:

None

Return type:

None

async run_phase()[source]

Run the main phase of the agent.

Create the qemu instance and handle communication through the pipe.

Return type:

None