PCI Configuration Library.
More...
#include <pci.h>
#include <pci/cfg_auto.h>
#include <pci/cfg_static.h>
#include <pci/cfg_read.h>
#include <pci/cfg_peripheral.h>
Go to the source code of this file.
|
#define | SEARCH_CHILDREN 0 /* direct children of bus only */ |
|
#define | SEARCH_DEPTH 1 /* all children of bus */ |
|
#define | PCI_RES_IO 1 |
|
#define | PCI_RES_MEMIO 2 |
|
#define | PCI_RES_MEM_PREFETCH 1 |
|
#define | PCI_RES_MEM (PCI_RES_MEMIO | PCI_RES_MEM_PREFETCH) |
|
#define | PCI_RES_TYPE_MASK 0x3 |
|
#define | PCI_RES_IO32 0x08 |
|
#define | PCI_RES_FAIL 0x10 /* Alloc Failed */ |
|
#define | RES2DEV(res) |
|
#define | PCI_DEV_BRIDGE 0x01 /* Device is a Bridge (struct pci_bus) */ |
|
#define | PCI_DEV_RES_FAIL 0x02 /* Resource alloction for device BARs failed */ |
|
#define | PCI_BUS_IO 0x01 /* 16-bit I/O address decoding */ |
|
#define | PCI_BUS_MEMIO 0x02 /* Bus support non-prefetchable mem (always) */ |
|
#define | PCI_BUS_MEM 0x04 /* Bus support prefetchable memory space */ |
|
#define | PCI_BUS_IO32 0x08 /* 32-bit I/O address decoding */ |
|
#define | BRIDGE_RES_COUNT 2 /* Number of BAR resources a bridge can have */ |
|
#define | BUS_RES_START BRIDGE_RES_COUNT |
|
#define | DEV_RES_CNT (DEV_RES_ROM + 1) |
|
|
enum | {
PCI_CONFIG_LIB_NONE = 0
, PCI_CONFIG_LIB_AUTO = 1
, PCI_CONFIG_LIB_STATIC = 2
, PCI_CONFIG_LIB_READ = 3
,
PCI_CONFIG_LIB_PERIPHERAL = 4
} |
|
enum | { BUS_RES_IO = 0
, BUS_RES_MEMIO = 1
, BUS_RES_MEM = 2
} |
|
enum | {
DEV_RES_BAR1 = 0
, DEV_RES_BAR2 = 1
, DEV_RES_BAR3 = 2
, DEV_RES_BAR4 = 3
,
DEV_RES_BAR5 = 4
, DEV_RES_BAR6 = 5
, DEV_RES_ROM = 6
, BRIDGE_RES_BAR1 = 0
,
BRIDGE_RES_BAR2 = 1
, BRIDGE_RES_IO = 2
, BRIDGE_RES_MEMIO = 3
, BRIDGE_RES_MEM = 4
,
BRIDGE_RES_UNUSED1 = 5
, BRIDGE_RES_ROM = 6
} |
|
|
int | pci_bus_count (void) |
|
int | pci_config_init (void) |
|
void | pci_config_register (void *config) |
|
void | pci_cfg_print (void) |
|
int | pci_for_each_child (struct pci_bus *bus, int(*func)(struct pci_dev *, void *arg), void *arg, int search) |
|
int | pci_for_each_dev (int(*func)(struct pci_dev *, void *arg), void *arg) |
|
int | pci_find_dev (uint16_t ven, uint16_t dev, int index, struct pci_dev **ppdev) |
|
int | pci_get_dev (pci_dev_t pcidev, struct pci_dev **ppdev) |
|
|
uint32_t | pci_invalid_address |
|
const int | pci_config_lib_type |
|
int(* | pci_config_lib_init )(void) |
|
void(* | pci_config_lib_register )(void *config) |
|
struct pci_bus | pci_hb |
|
PCI Configuration Library.
◆ RES2DEV
Value:
((uintptr_t)res - (uintptr_t)(res->bar * (
sizeof(
struct pci_res)))))