def munmap(self, start, size):
start = self._floor(start)<EOL>end = self._ceil(start + size)<EOL>self.cpu._publish('<STR_LIT>', start, size)<EOL>for m in self._maps_in_range(start, end):<EOL><INDENT>self._del(m)<EOL>head, tail = m.split(start)<EOL>middle, tail = tail.split(end)<EOL>assert middle is not None<EOL>if head:<EOL><INDENT>self._add(head)<EOL><DEDENT>if tail:<EOL><INDENT>self._add(tail)<EOL><DEDENT><DEDENT>self.cpu._publish('<STR_LIT>', start, size)<EOL>logger.debug(f'<STR_LIT>')<EOL>
Deletes the mappings for the specified address range and causes further
references to addresses within the range to generate invalid memory
references.

:param start: the starting address to delete.
:param size: the length of the unmapping.