// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_DEVICES_BUS_DRIVERS_PCI_BAR_INFO_H_
#define SRC_DEVICES_BUS_DRIVERS_PCI_BAR_INFO_H_

#include "src/devices/bus/drivers/pci/allocation.h"

// The public facing type for passing out bar information.
struct BarInfo {
  size_t size = 0;
  zx_paddr_t address = 0;
  uint8_t bar_id;
  bool is_mmio;
  bool is_64bit;
  bool is_prefetchable;
};

struct Bar {
  size_t size = 0;
  zx_paddr_t address = 0;  // Allocated address for the bar
  uint8_t bar_id;          // The bar index in the config space. If the bar is 64 bit
  bool is_mmio;            // then the id represents the lowerindex of the two.
  bool is_64bit;
  bool is_prefetchable;
  // then this corresponds to the first half of the register pair
  std::unique_ptr<pci::PciAllocation> allocation;
};

#endif  // SRC_DEVICES_BUS_DRIVERS_PCI_BAR_INFO_H_
