summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/vfio/lib/include/libvfio.h
blob: 1b6da54cc2cb726e8524084ac1f822bebb172d4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef SELFTESTS_VFIO_LIB_INCLUDE_LIBVFIO_H
#define SELFTESTS_VFIO_LIB_INCLUDE_LIBVFIO_H

#include <libvfio/assert.h>
#include <libvfio/iommu.h>
#include <libvfio/iova_allocator.h>
#include <libvfio/vfio_pci_device.h>
#include <libvfio/vfio_pci_driver.h>

/*
 * Return the BDF string of the device that the test should use.
 *
 * If a BDF string is provided by the user on the command line (as the last
 * element of argv[]), then this function will return that and decrement argc
 * by 1.
 *
 * Otherwise this function will attempt to use the environment variable
 * $VFIO_SELFTESTS_BDF.
 *
 * If BDF cannot be determined then the test will exit with KSFT_SKIP.
 */
const char *vfio_selftests_get_bdf(int *argc, char *argv[]);
char **vfio_selftests_get_bdfs(int *argc, char *argv[], int *nr_bdfs);

/*
 * Reserve virtual address space of size at an address satisfying
 * (vaddr % align) == offset.
 *
 * Returns the reserved vaddr. The caller is responsible for unmapping
 * the returned region.
 */
void *mmap_reserve(size_t size, size_t align, size_t offset);

#endif /* SELFTESTS_VFIO_LIB_INCLUDE_LIBVFIO_H */