diff --git a/server/include/utils.h b/server/include/utils.h index 8b5f72582..4e822af04 100644 --- a/server/include/utils.h +++ b/server/include/utils.h @@ -75,6 +75,9 @@ void print(enum log_level lvl, const char *fmt, ...); */ cpu_set_t to_cpu_set(int set); +/** Allocate and initialize memory. */ +void * alloc(size_t bytes); + /** Get delta between two timespec structs */ double timespec_delta(struct timespec *start, struct timespec *end); diff --git a/server/src/utils.c b/server/src/utils.c index 7464ad8f1..c332e7799 100644 --- a/server/src/utils.c +++ b/server/src/utils.c @@ -80,6 +80,17 @@ cpu_set_t to_cpu_set(int set) return cset; } +void * alloc(size_t bytes) +{ + void *p = malloc(bytes); + if (!p) + error("Failed to allocate memory"); + + memset(p, 0, bytes); + + return p; +} + double timespec_delta(struct timespec *start, struct timespec *end) { double sec = end->tv_sec - start->tv_sec;