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 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 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 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 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 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