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

        :param sim_nmemb: the number of elements to allocated
        :param sim_size: the size of each element (in bytes)

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

        :param sim_nmemb: the number of elements to allocated
        :param sim_size: the size of each element (in bytes)
        """
        raise NotImplementedError("%s not implemented for %s" % (self._calloc.__func__.__name__,
                                                                 self.__class__.__name__))