Validating resolved target peripherals in TDF validation

This commit is contained in:
Nav
2024-06-05 19:28:49 +01:00
parent 4e837218e5
commit 75c58310ad
4 changed files with 101 additions and 3 deletions

View File

@@ -61,4 +61,24 @@ class AddressSpace
)
);
}
/**
* Returns all memory segments that intercept with the given address range.
*
* @param int $startAddress
* @param int $endAddress
*
* @return MemorySegment[]
*/
public function findIntersectingMemorySegments(int $startAddress, int $endAddress): array
{
return array_filter(
$this->memorySegments,
function (MemorySegment $segment) use ($startAddress, $endAddress) : bool {
$segmentEndAddress = $segment->startAddress + $segment->size - 1;
return ($startAddress <= $segment->startAddress && $endAddress >= $segment->startAddress)
|| ($startAddress >= $segment->startAddress && $startAddress <= $segmentEndAddress);
}
);
}
}