1/*	$OpenBSD: util.c,v 1.5 2019/11/28 18:40:42 kn Exp $	*/
2
3/*
4 * Copyright (c) 2012 Mark Kettenis
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19#include <err.h>
20#include <stdarg.h>
21#include <stdio.h>
22#include <stdlib.h>
23#include <string.h>
24
25#include "ldom_util.h"
26
27int debug;
28
29void *
30xmalloc(size_t size)
31{
32	void *p;
33
34	p = malloc(size);
35	if (p == NULL)
36		err(1, NULL);
37	return p;
38}
39
40void *
41xzalloc(size_t size)
42{
43	void *p;
44
45	p = xmalloc(size);
46	memset(p, 0, size);
47	return p;
48}
49
50void *
51xreallocarray(void *o, size_t nmemb, size_t size)
52{
53	void *p;
54
55	p = reallocarray(o, nmemb, size);
56	if (p == NULL)
57		err(1, NULL);
58	return p;
59}
60
61char *
62xstrdup(const char *s)
63{
64	char *p;
65
66	p = strdup(s);
67	if (p == NULL)
68		err(1, NULL);
69	return p;
70}
71
72int
73xasprintf(char **str, const char *fmt, ...)
74{
75	va_list ap;
76	int ret;
77
78	va_start(ap, fmt);
79	ret = vasprintf(str, fmt, ap);
80	va_end(ap);
81	if (ret == -1)
82		err(1, NULL);
83	return ret;
84}
85