#include <uk/print.h>
#include <uk/alloc_impl.h>
+#include <uk/essentials.h>
#include <uk/preempt.h>
static inline struct uk_alloc *_uk_alloc_get_actual_default(void)
__sz alloc_size;
void *ret;
- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno = ENOMEM;
+ return NULL;
+ }
WATCH_STATS_START(p);
ret = uk_do_malloc(p, size);
__sz alloc_size;
void *ret;
- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno = ENOMEM;
+ return NULL;
+ }
WATCH_STATS_START(p);
ret = uk_do_calloc(p, nmemb, size);
__sz alloc_size;
int ret;
- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ return ENOMEM;
+ }
WATCH_STATS_START(p);
ret = uk_do_posix_memalign(p, memptr, align, size);
__sz alloc_size;
void *ret;
- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno = ENOMEM;
+ return NULL;
+ }
WATCH_STATS_START(p);
ret = uk_do_memalign(p, align, size);
__sz alloc_size;
void *ret;
- UK_ASSERT(p);
+ if (unlikely(!p)) {
+ update_stats(&a->_stats, 0, 1, 0, 0);
+ errno = ENOMEM;
+ return NULL;
+ }
WATCH_STATS_START(p);
ret = uk_do_realloc(p, ptr, size);