xalloc.h 699 B

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