coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
stdlib.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 
3 #ifndef __COMMONLIB_STDLIB_H__
4 #define __COMMONLIB_STDLIB_H__
5 
6 #include <stddef.h>
7 #include <stdlib.h>
8 #include <string.h>
9 
10 #if CONFIG(COREBOOT_BUILD)
11 #include <console/console.h>
12 #include <halt.h>
13 #define HALT(x) halt()
14 #else
15 #include <stdio.h>
16 #define printk(level, ...) printf(__VA_ARGS__)
17 #define HALT(x) abort()
18 #endif
19 
20 static inline void *xmalloc_work(size_t size, const char *file,
21  const char *func, int line)
22 {
23  void *ret = malloc(size);
24  if (!ret && size) {
25  printk(BIOS_ERR, "%s/%s/line %d: Failed to malloc %zu bytes\n",
26  file, func, line, size);
27  while (1)
28  HALT(1);
29  }
30  return ret;
31 }
32 #define xmalloc(size) xmalloc_work((size), __FILE__, __func__, __LINE__)
33 
34 static inline void *xzalloc_work(size_t size, const char *file,
35  const char *func, int line)
36 {
37  void *ret = xmalloc_work(size, file, func, line);
38  memset(ret, 0, size);
39  return ret;
40 }
41 #define xzalloc(size) xzalloc_work((size), __FILE__, __func__, __LINE__)
42 
43 void *dma_malloc(size_t size);
44 int dma_coherent(void *ptr);
45 
46 #endif /* __COMMONLIB_STDLIB_H__ */
void * memset(void *dstpp, int c, size_t len)
Definition: memset.c:12
#define HALT(x)
Definition: stdlib.h:17
void * dma_malloc(size_t size)
Definition: sdhci.c:24
#define printk(level,...)
Definition: stdlib.h:16
int dma_coherent(void *ptr)
static void * xmalloc_work(size_t size, const char *file, const char *func, int line)
Definition: stdlib.h:20
static void * xzalloc_work(size_t size, const char *file, const char *func, int line)
Definition: stdlib.h:34
void * malloc(size_t size)
Definition: malloc.c:53
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
Definition: loglevel.h:72
Definition: gcov-glue.c:7