#include "hv/arch.h" #include "hv/image.h" struct hv_image_span hv_image_span(void) { struct hv_image_span span; span.start = (uint64_t)(uintptr_t)__image_start; span.end = (uint64_t)(uintptr_t)__image_end; span.size = span.end - span.start; return span; } bool hv_image_contains(uint64_t addr, uint64_t len) { struct hv_image_span span = hv_image_span(); uint64_t end; if (len == 0u || hv_add_overflow_u64(addr, len, &end)) { return false; } return addr >= span.start && end <= span.end; }