// Copyright 2018 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.

library zircon.syscalls.pci;

union PciField {
    usize addr;
    handle<vmo> @handle;
};

struct ZxPciBar {
    uint32 id;
    uint32 type;
    usize size;
    PciField u;
};

enum ZxPciIrqMode : uint8 {
    DISABLED = 0;
    LEGACY = 1;
    MSI = 2;
    MSI_X = 3;
};

struct ZxPcieDeviceInfo {
    uint16 vendor_id;
    uint16 device_id;

    uint8 base_class;
    uint8 sub_class;
    uint8 program_interface;
    uint8 revision_id;

    uint8 bus_id;
    uint8 dev_id;
    uint8 func_id;
};
