def METHOD_NAME(ql, offset, size):
    address = begin + offset                        
    hardware = self.find(address)
    if hardware:
        return hardware.read(address - hardware.base, size)
    else:
        ql.log.debug('%s Read non-mapped hardware [0x%08x]' % (info, address))                
        buf = ctypes.create_string_buffer(size)
        ctypes.memmove(buf, ctypes.addressof(mmio) + offset, size)
        return int.from_bytes(buf.raw, byteorder='little')