| // Copyright 2021 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 fuchsia.hardware.syscalls.pci; |
| |
| using zx; |
| |
| // Defines and structures related to zx_pci_*() |
| // Info returned to dev manager for PCIe devices when probing. |
| struct PcieDeviceInfo { |
| 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; |
| |
| uint8 padding1; |
| }; |
| |
| enum PciIrqMode : uint8 { |
| DISABLED = 0; |
| LEGACY = 1; |
| LEGACY_NOACK = 2; |
| MSI = 3; |
| MSI_X = 4; |
| }; |
| |
| resource union PciField { |
| 1: uint64 addr; |
| 2: zx.handle:VMO handle; |
| }; |
| |
| resource struct PciBar { |
| uint32 id; |
| uint32 type; |
| uint64 size; |
| PciField u; |
| }; |