<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def memory_read64(self, addr, num_long_words):
 """Reads memory from the target system in units of 64-bits. Args: self (JLink):
 the ``JLink`` instance addr (int):
 start address to read from num_long_words (int):
 number of long words to read Returns: List of long words read from the target system. Raises: JLinkException: if memory could not be read """

        buf_size = num_long_words
        buf = (ctypes.c_ulonglong * buf_size)()
        units_read = self._dll.JLINKARM_ReadMemU64(addr, buf_size, buf, 0)
        if units_read < 0:
            raise errors.JLinkException(units_read)

        return buf[:units_read]