FreeBSD kernel amd64 PCI device code
pci_host_generic.h File Reference
#include "pci_if.h"
Include dependency graph for pci_host_generic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pcie_range
 
struct  generic_pcie_core_softc
 

Macros

#define PCIE_BUS_SHIFT   20
 
#define PCIE_SLOT_SHIFT   15
 
#define PCIE_FUNC_SHIFT   12
 
#define PCIE_BUS_MASK   0xFF
 
#define PCIE_SLOT_MASK   0x1F
 
#define PCIE_FUNC_MASK   0x07
 
#define PCIE_REG_MASK   0xFFF
 
#define PCIE_ADDR_OFFSET(bus, slot, func, reg)
 
#define MAX_RANGES_TUPLES   16
 
#define MIN_RANGES_TUPLES   2
 
#define FLAG_TYPE(x)   ((x) & FLAG_TYPE_MASK)
 
#define FLAG_TYPE_MASK   0x3
 
#define FLAG_TYPE_INVALID   0x0
 
#define FLAG_TYPE_IO   0x1
 
#define FLAG_TYPE_MEM   0x2
 
#define FLAG_TYPE_PMEM   0x3
 
#define PCIE_ECAM_DESIGNWARE_QUIRK   (1 << 0)
 

Functions

 DECLARE_CLASS (generic_pcie_core_driver)
 
int pci_host_generic_core_attach (device_t)
 
struct resource * pci_host_generic_core_alloc_resource (device_t, device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int)
 
int pci_host_generic_core_release_resource (device_t, device_t, int, int, struct resource *)
 

Macro Definition Documentation

◆ FLAG_TYPE

#define FLAG_TYPE (   x)    ((x) & FLAG_TYPE_MASK)

Definition at line 62 of file pci_host_generic.h.

◆ FLAG_TYPE_INVALID

#define FLAG_TYPE_INVALID   0x0

Definition at line 64 of file pci_host_generic.h.

◆ FLAG_TYPE_IO

#define FLAG_TYPE_IO   0x1

Definition at line 65 of file pci_host_generic.h.

◆ FLAG_TYPE_MASK

#define FLAG_TYPE_MASK   0x3

Definition at line 63 of file pci_host_generic.h.

◆ FLAG_TYPE_MEM

#define FLAG_TYPE_MEM   0x2

Definition at line 66 of file pci_host_generic.h.

◆ FLAG_TYPE_PMEM

#define FLAG_TYPE_PMEM   0x3

Definition at line 67 of file pci_host_generic.h.

◆ MAX_RANGES_TUPLES

#define MAX_RANGES_TUPLES   16

Definition at line 54 of file pci_host_generic.h.

◆ MIN_RANGES_TUPLES

#define MIN_RANGES_TUPLES   2

Definition at line 55 of file pci_host_generic.h.

◆ PCIE_ADDR_OFFSET

#define PCIE_ADDR_OFFSET (   bus,
  slot,
  func,
  reg 
)
Value:
u_int reg
Definition: pci_dw_if.m:42
#define PCIE_SLOT_SHIFT
#define PCIE_FUNC_SHIFT
#define PCIE_BUS_MASK
#define PCIE_FUNC_MASK
#define PCIE_BUS_SHIFT
#define PCIE_SLOT_MASK
#define PCIE_REG_MASK
u_int func
Definition: pcib_if.m:81
u_int bus
Definition: pcib_if.m:79
u_int slot
Definition: pcib_if.m:80

Definition at line 48 of file pci_host_generic.h.

◆ PCIE_BUS_MASK

#define PCIE_BUS_MASK   0xFF

Definition at line 43 of file pci_host_generic.h.

◆ PCIE_BUS_SHIFT

#define PCIE_BUS_SHIFT   20

Definition at line 40 of file pci_host_generic.h.

◆ PCIE_ECAM_DESIGNWARE_QUIRK

#define PCIE_ECAM_DESIGNWARE_QUIRK   (1 << 0)

Definition at line 92 of file pci_host_generic.h.

◆ PCIE_FUNC_MASK

#define PCIE_FUNC_MASK   0x07

Definition at line 45 of file pci_host_generic.h.

◆ PCIE_FUNC_SHIFT

#define PCIE_FUNC_SHIFT   12

Definition at line 42 of file pci_host_generic.h.

◆ PCIE_REG_MASK

#define PCIE_REG_MASK   0xFFF

Definition at line 46 of file pci_host_generic.h.

◆ PCIE_SLOT_MASK

#define PCIE_SLOT_MASK   0x1F

Definition at line 44 of file pci_host_generic.h.

◆ PCIE_SLOT_SHIFT

#define PCIE_SLOT_SHIFT   15

Definition at line 41 of file pci_host_generic.h.

Function Documentation

◆ DECLARE_CLASS()

DECLARE_CLASS ( generic_pcie_core_driver  )

◆ pci_host_generic_core_alloc_resource()

struct resource * pci_host_generic_core_alloc_resource ( device_t  dev,
device_t  child,
int  type,
int *  rid,
rman_res_t  start,
rman_res_t  end,
rman_res_t  count,
u_int  flags 
)

Definition at line 402 of file pci_host_generic.c.

References child, count, dev, generic_pcie_core_softc::ecam, generic_pcie_rman(), generic_pcie_translate_resource_common(), rid, start, and type.

Here is the call graph for this function:

◆ pci_host_generic_core_attach()

◆ pci_host_generic_core_release_resource()

int pci_host_generic_core_release_resource ( device_t  dev,
device_t  child,
int  type,
int  rid,
struct resource *  res 
)

Definition at line 305 of file pci_host_generic.c.

References child, dev, generic_pcie_core_softc::ecam, generic_pcie_rman(), rid, and type.

Here is the call graph for this function: