Program Listing for File pcibus.hpp

Return to documentation for file (dev/pci/pcibus.hpp)

/* SPDX-License-Identifier: BSD-2-Clause */
#pragma once
#include <dev/acpi/device.hpp>
#include <dev/devkit/registry.hpp>
#include <dev/devkit/service.hpp>
#include <vm/heap.hpp>

namespace Gaia::Dev {

class PciBus : public Service {
public:
  void start(Service *provider) override;

  static Vm::UniquePtr<Service> init();

  const char *class_name() override { return "PciBus"; }

  const char *name() override { return name_str.data(); }

private:
  AcpiDevice *acpi_device;
  frg::string<Vm::HeapAllocator> name_str = "";
  uint64_t bus = 0;
};

void pcibus_driver_register();

} // namespace Gaia::Dev