Handler for any libc `malloc` SimProcedure call. If the heap has faithful support for `malloc`, it ought to be
        implemented in a `malloc` function (as opposed to the `_malloc` function).

        :param sim_size: the amount of memory (in bytes) to be allocated

def _malloc(self, sim_size):
        """
        Handler for any libc `malloc` SimProcedure call. If the heap has faithful support for `malloc`, it ought to be
        implemented in a `malloc` function (as opposed to the `_malloc` function).

        :param sim_size: the amount of memory (in bytes) to be allocated
        """
        raise NotImplementedError("%s not implemented for %s" % (self._malloc.__func__.__name__,
                                                                 self.__class__.__name__))