mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
Introduce a sysfs library to handle the common reads/writes to the PCI sysfs files, for example, getting the total number of VFs supported by the device via /sys/bus/pci/devices/$BDF/sriov_totalvfs. The library will be used in the upcoming test patch to configure the VFs for a given PF device. Since readlink() is quite commonly used in the lib, introduce and use readlink_safe() to take care of potential buffer overrun errors and to safely terminate the buffer with '\0'. Opportunistically, move vfio_pci_get_group_from_dev() to this library as it falls under the same bucket. Rename it to sysfs_iommu_group_get() to align with other function names. Signed-off-by: Raghavendra Rao Ananta <rananta@google.com> Reviewed-by: Vipin Sharma <vipinsh@google.com> Reviewed-by: David Matlack <dmatlack@google.com> Tested-by: David Matlack <dmatlack@google.com> Link: https://lore.kernel.org/r/20260505212838.1698034-4-rananta@google.com Signed-off-by: Alex Williamson <alex@shazbot.org>
37 lines
1.2 KiB
C
37 lines
1.2 KiB
C
/* 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/sysfs.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 */
|