1 /* util.h -- header for utility routines for vlock,
2 * the VT locking program for linux
4 * This program is copyright (C) 2007 Frank Benkstein, and is free
5 * software which is freely distributable under the terms of the
6 * GNU General Public License version 2, included as the file COPYING in this
7 * distribution. It is NOT public domain software, and any
8 * redistribution not permitted by the GNU General Public License is
9 * expressly forbidden without prior written permission from
18 /* Parse the given string (interpreted as seconds) into a
19 * timespec. On error NULL is returned. The caller is responsible
20 * to free the result. The string may be NULL, in which case NULL
21 * is returned, too. */
22 struct timespec
*parse_seconds(const char *s
);
24 void fatal_error(const char *format
, ...)
25 __attribute__((noreturn
, format(printf
, 1, 2)));
26 void fatal_error_free(char *errmsg
)
27 __attribute__((noreturn
));
29 #define ensure_atexit(func) \
31 if (atexit(func) != 0) \
32 fatal_error("vlock-main: Cannot register function '%s' with atexit().", #func); \
35 void *ensure_malloc(size_t);
36 void *ensure_calloc(size_t, size_t);
37 void *ensure_realloc(void *, size_t);
38 void *ensure_not_null(void *, const char *);