1/*-
2 * Copyright (c) 2018 VMware, Inc.
3 *
4 * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
5 *
6 * $FreeBSD$
7 */
8
9/* Some common utilities used by the VMCI kernel module. */
10
11#ifndef _VMCI_KERNEL_DEFS_H_
12#define _VMCI_KERNEL_DEFS_H_
13
14#include <sys/param.h>
15#include <sys/systm.h>
16
17typedef uint32_t PPN;
18
19#define ASSERT(cond)		KASSERT(cond, ("%s", #cond))
20#define ASSERT_ON_COMPILE(e)	_Static_assert(e, #e);
21
22#define LIKELY(_exp)		__predict_true(_exp)
23#define UNLIKELY(_exp)		__predict_false(_exp)
24
25#define CONST64U(c)		UINT64_C(c)
26
27#define ARRAYSIZE(a)		nitems(a)
28
29#define ROUNDUP(x, y)		roundup(x, y)
30#define CEILING(x, y)		howmany(x, y)
31
32#endif /* !_VMCI_KERNEL_DEFS_H_ */
33