RTEMS 6.3
Loading...
Searching...
No Matches
cfg.h File Reference

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.

Data Structures

struct  pci_res
struct  pci_dev
struct  pci_bus

Macros

#define SEARCH_CHILDREN   0
#define SEARCH_DEPTH   1
#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
#define RES2DEV(res)
#define PCI_DEV_BRIDGE   0x01
#define PCI_DEV_RES_FAIL   0x02
#define PCI_BUS_IO   0x01
#define PCI_BUS_MEMIO   0x02
#define PCI_BUS_MEM   0x04
#define PCI_BUS_IO32   0x08
#define BRIDGE_RES_COUNT   2
#define BUS_RES_START   BRIDGE_RES_COUNT
#define DEV_RES_CNT   (DEV_RES_ROM + 1)

Enumerations

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
}

Functions

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)

Variables

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

Detailed Description

PCI Configuration Library.

Macro Definition Documentation

◆ RES2DEV

#define RES2DEV ( res)
Value:
((struct pci_dev *) \
((uintptr_t)res - (uintptr_t)(res->bar * (sizeof(struct pci_res)))))
Definition pci.h:41
Definition cfg.h:168