1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef XALLOC_H
4 #define XALLOC_H
5 
6 #include <stdlib.h>
7 #include <string.h>
8 
xmalloc(size_t size)9 static inline void *xmalloc(size_t size)
10 {
11 	void *p = malloc(size);
12 
13 	if (!p)
14 		exit(1);
15 	return p;
16 }
17 
xcalloc(size_t nmemb,size_t size)18 static inline void *xcalloc(size_t nmemb, size_t size)
19 {
20 	void *p = calloc(nmemb, size);
21 
22 	if (!p)
23 		exit(1);
24 	return p;
25 }
26 
xrealloc(void * p,size_t size)27 static inline void *xrealloc(void *p, size_t size)
28 {
29 	p = realloc(p, size);
30 	if (!p)
31 		exit(1);
32 	return p;
33 }
34 
xstrdup(const char * s)35 static inline char *xstrdup(const char *s)
36 {
37 	char *p = strdup(s);
38 
39 	if (!p)
40 		exit(1);
41 	return p;
42 }
43 
xstrndup(const char * s,size_t n)44 static inline char *xstrndup(const char *s, size_t n)
45 {
46 	char *p = strndup(s, n);
47 
48 	if (!p)
49 		exit(1);
50 	return p;
51 }
52 
53 #endif /* XALLOC_H */
54