|
<< Click to Display Table of Contents >> Navigation: ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 16 – Device Model & DMA > 16.12 Repository Directory Mapping |
The device and DMA subsystem spans several library directories:
Directory |
Key Files |
Responsibility |
|---|---|---|
mmioLib/ |
mmio_Manager.h, IDeviceEmulator.h, mmio_DeviceCatalog.h, mmio_deviceTemplate.h, mmio_DMACoherencyManager.h, ScsiControllerKzpba.h |
MMIO dispatch, device interface contract, template system, DMA coherency, bus controllers |
deviceLib/ |
ISCSIDevice.h, SCSIDisk.h, SCSITape.h, SCSIBus.h, SCSI_helpers.h |
SCSI protocol types, virtual devices, bus abstraction |
coreLib/ |
mmio_core.h, IRQPendingState.h, IPI_core.h, onIPLChanged_inl.h |
Shared types (MMIOStatus, MMIOWindow, mmio_DeviceClass), IRQ system, IPI definitions |
memoryLib/ |
GuestMemory.h, FirmwareDeviceManager.h |
PA routing (RouteTarget::MMIOManager), firmware device management (~540 lines) |
cpuCoreLib/ |
ReservationManager.h |
LL/SC reservation invalidation on DMA writes |
configLib/ |
global_EmulatorSettings.h, EMulatR.ini |
Device configuration, storage paths, network endpoints |
palLib_EV6/ |
PalService.h |
PAL interrupt dispatch entry point, device control via HW_REI |
Total device subsystem: Approximately 1,800 lines in the MMIO/device infrastructure headers, plus device-specific implementation in deviceLib/ (line counts vary by device emulator maturity). The coreLib/ IRQ components add approximately 400 lines of interrupt infrastructure.
See Also: Chapter 14 – Execution Domains (“Boxes”) (MBox, CBox interaction with devices); Chapter 15 – Memory System Implementation Details (GuestMemory routing); Chapter 17 – Address Translation, TLB, and PTE (VA->PA before MMIO dispatch); Chapter 18 – Fault Dispatcher & Precise Exceptions (MMIO fault delivery).