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