/* SPDX-License-Identifier: BSD-3-Clause */ #ifndef __COMMONLIB_STDLIB_H__ #define __COMMONLIB_STDLIB_H__ #include #include #include #if CONFIG(COREBOOT_BUILD) #include #include #define HALT(x) halt() #else #include #define printk(level, ...) printf(__VA_ARGS__) #define HALT(x) abort() #endif static inline void *xmalloc_work(size_t size, const char *file, const char *func, int line) { void *ret = malloc(size); if (!ret && size) { printk(BIOS_ERR, "%s/%s/line %d: Failed to malloc %zu bytes\n", file, func, line, size); while (1) HALT(1); } return ret; } #define xmalloc(size) xmalloc_work((size), __FILE__, __func__, __LINE__) static inline void *xzalloc_work(size_t size, const char *file, const char *func, int line) { void *ret = xmalloc_work(size, file, func, line); memset(ret, 0, size); return ret; } #define xzalloc(size) xzalloc_work((size), __FILE__, __func__, __LINE__) void *dma_malloc(size_t size); int dma_coherent(void *ptr); #endif /* __COMMONLIB_STDLIB_H__ */