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