qemu/tests/qtest/libqos/generic-pcihost.h
<<
>>
Prefs
   1/*
   2 * libqos Generic PCI bindings and generic pci host bridge
   3 *
   4 * Copyright Red Hat Inc., 2022
   5 *
   6 * Authors:
   7 *  Eric Auger <eric.auger@redhat.com>
   8 *
   9 * This work is licensed under the terms of the GNU GPL, version 2 or later.
  10 * See the COPYING file in the top-level directory.
  11 */
  12
  13#ifndef LIBQOS_GENERIC_PCIHOST_H
  14#define LIBQOS_GENERIC_PCIHOST_H
  15
  16#include "pci.h"
  17#include "libqos-malloc.h"
  18#include "qgraph.h"
  19
  20typedef struct QGenericPCIBus {
  21    QOSGraphObject obj;
  22    QPCIBus bus;
  23    uint64_t gpex_pio_base;
  24    uint64_t ecam_alloc_ptr;
  25} QGenericPCIBus;
  26
  27/*
  28 * qpci_init_generic():
  29 * @ret: A valid QGenericPCIBus * pointer
  30 * @qts: The %QTestState
  31 * @alloc: A previously initialized @alloc providing memory for @qts
  32 * @bool: devices can be hotplugged on this bus
  33 *
  34 * This function initializes an already allocated
  35 * QGenericPCIBus object.
  36 */
  37void qpci_init_generic(QGenericPCIBus *ret, QTestState *qts,
  38                       QGuestAllocator *alloc, bool hotpluggable);
  39
  40/* QGenericPCIHost */
  41
  42typedef struct QGenericPCIHost QGenericPCIHost;
  43
  44struct QGenericPCIHost {
  45    QOSGraphObject obj;
  46    QGenericPCIBus pci;
  47};
  48
  49QOSGraphObject *generic_pcihost_get_device(void *obj, const char *device);
  50void qos_create_generic_pcihost(QGenericPCIHost *host,
  51                                QTestState *qts,
  52                                QGuestAllocator *alloc);
  53
  54#endif
  55