xalloc: general purpose memory allocation handling wrappers Signed-off-by: Davidlohr Bueso <dave@xxxxxxx> --- include/xalloc.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-) create mode 100644 include/xalloc.h diff --git a/include/xalloc.h b/include/xalloc.h new file mode 100644 index 0000000..7ac63a6 --- /dev/null +++ b/include/xalloc.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2010 Davidlohr Bueso <dave@xxxxxxx> + * + * This file may be redistributed under the terms of the + * GNU Lesser General Public License. + * + * General memory allocation wrappers for malloc, realloc and calloc + */ + +#ifndef UTIL_LINUX_XALLOC +#define UTIL_LINUX_XALLOC + +#include <stdlib.h> +#include <err.h> + +static inline void *xmalloc(const size_t size) +{ + void *ret = malloc(size); + + if (!ret) + err(EXIT_FAILURE, "cannot allocate %lu bytes", size); + return ret; +} + +static inline void *xrealloc(void *ptr, const size_t size) +{ + void *ret = realloc(ptr, size); + + if (!ret) + err(EXIT_FAILURE, "cannot allocate %lu bytes", size); + return ret; +} + +static inline void *xcalloc(const size_t nelems, const size_t size) +{ + void *ret = calloc(nelems, size); + + if (!ret) + err(EXIT_FAILURE, "cannot allocate %lu bytes", size); + return ret; +} + +#endif -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html