FreeBSD kernel amd64 PCI device code
pci_host_generic.c File Reference
#include <sys/cdefs.h>
#include "opt_platform.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/kernel.h>
#include <sys/rman.h>
#include <sys/module.h>
#include <sys/bus.h>
#include <sys/endian.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcib_private.h>
#include <dev/pci/pci_host_generic.h>
#include <machine/bus.h>
#include <machine/intr.h>
#include "pcib_if.h"
Include dependency graph for pci_host_generic.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
static uint32_t generic_pcie_read_config (device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int bytes)
 
static void generic_pcie_write_config (device_t dev, u_int bus, u_int slot, u_int func, u_int reg, uint32_t val, int bytes)
 
static int generic_pcie_maxslots (device_t dev)
 
static int generic_pcie_read_ivar (device_t dev, device_t child, int index, uintptr_t *result)
 
static int generic_pcie_write_ivar (device_t dev, device_t child, int index, uintptr_t value)
 
int pci_host_generic_core_attach (device_t dev)
 
static struct rman * generic_pcie_rman (struct generic_pcie_core_softc *sc, int type, int flags)
 
int pci_host_generic_core_release_resource (device_t dev, device_t child, int type, int rid, struct resource *res)
 
static int generic_pcie_translate_resource_common (device_t dev, int type, rman_res_t start, rman_res_t end, rman_res_t *new_start, rman_res_t *new_end)
 
static int generic_pcie_translate_resource (device_t bus, int type, rman_res_t start, rman_res_t *newstart)
 
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)
 
static int generic_pcie_activate_resource (device_t dev, device_t child, int type, int rid, struct resource *r)
 
static int generic_pcie_deactivate_resource (device_t dev, device_t child, int type, int rid, struct resource *r)
 
static int generic_pcie_adjust_resource (device_t dev, device_t child, int type, struct resource *res, rman_res_t start, rman_res_t end)
 
static bus_dma_tag_t generic_pcie_get_dma_tag (device_t dev, device_t child)
 
 DEFINE_CLASS_0 (pcib, generic_pcie_core_driver, generic_pcie_methods, sizeof(struct generic_pcie_core_softc))
 

Variables

static device_method_t generic_pcie_methods []
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ DEFINE_CLASS_0()

DEFINE_CLASS_0 ( pcib  ,
generic_pcie_core_driver  ,
generic_pcie_methods  ,
sizeof(struct generic_pcie_core_softc  
)

◆ generic_pcie_activate_resource()

static int generic_pcie_activate_resource ( device_t  dev,
device_t  child,
int  type,
int  rid,
struct resource *  r 
)
static

Definition at line 463 of file pci_host_generic.c.

References child, dev, generic_pcie_translate_resource_common(), generic_pcie_core_softc::res, rid, start, and type.

Here is the call graph for this function:

◆ generic_pcie_adjust_resource()

static int generic_pcie_adjust_resource ( device_t  dev,
device_t  child,
int  type,
struct resource *  res,
rman_res_t  start,
rman_res_t  end 
)
static

Definition at line 514 of file pci_host_generic.c.

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

Here is the call graph for this function:

◆ generic_pcie_deactivate_resource()

static int generic_pcie_deactivate_resource ( device_t  dev,
device_t  child,
int  type,
int  rid,
struct resource *  r 
)
static

Definition at line 491 of file pci_host_generic.c.

References child, dev, generic_pcie_core_softc::res, rid, and type.

◆ generic_pcie_get_dma_tag()

static bus_dma_tag_t generic_pcie_get_dma_tag ( device_t  dev,
device_t  child 
)
static

Definition at line 534 of file pci_host_generic.c.

References dev, and generic_pcie_core_softc::dmat.

◆ generic_pcie_maxslots()

static int generic_pcie_maxslots ( device_t  dev)
static

Definition at line 249 of file pci_host_generic.c.

◆ generic_pcie_read_config()

static uint32_t generic_pcie_read_config ( device_t  dev,
u_int  bus,
u_int  slot,
u_int  func,
u_int  reg,
int  bytes 
)
static

◆ generic_pcie_read_ivar()

static int generic_pcie_read_ivar ( device_t  dev,
device_t  child,
int  index,
uintptr_t *  result 
)
static

◆ generic_pcie_rman()

static struct rman * generic_pcie_rman ( struct generic_pcie_core_softc sc,
int  type,
int  flags 
)
static

◆ generic_pcie_translate_resource()

static int generic_pcie_translate_resource ( device_t  bus,
int  type,
rman_res_t  start,
rman_res_t *  newstart 
)
static

Definition at line 392 of file pci_host_generic.c.

References bus, generic_pcie_translate_resource_common(), start, and type.

Here is the call graph for this function:

◆ generic_pcie_translate_resource_common()

static int generic_pcie_translate_resource_common ( device_t  dev,
int  type,
rman_res_t  start,
rman_res_t  end,
rman_res_t *  new_start,
rman_res_t *  new_end 
)
static

◆ generic_pcie_write_config()

static void generic_pcie_write_config ( device_t  dev,
u_int  bus,
u_int  slot,
u_int  func,
u_int  reg,
uint32_t  val,
int  bytes 
)
static

◆ generic_pcie_write_ivar()

static int generic_pcie_write_ivar ( device_t  dev,
device_t  child,
int  index,
uintptr_t  value 
)
static

Definition at line 279 of file pci_host_generic.c.

◆ 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:

Variable Documentation

◆ generic_pcie_methods

device_method_t generic_pcie_methods[]
static
Initial value:
= {
DEVMETHOD(device_attach, pci_host_generic_core_attach),
DEVMETHOD(bus_read_ivar, generic_pcie_read_ivar),
DEVMETHOD(bus_write_ivar, generic_pcie_write_ivar),
DEVMETHOD(bus_alloc_resource, pci_host_generic_core_alloc_resource),
DEVMETHOD(bus_adjust_resource, generic_pcie_adjust_resource),
DEVMETHOD(bus_activate_resource, generic_pcie_activate_resource),
DEVMETHOD(bus_deactivate_resource, generic_pcie_deactivate_resource),
DEVMETHOD(bus_release_resource, pci_host_generic_core_release_resource),
DEVMETHOD(bus_translate_resource, generic_pcie_translate_resource),
DEVMETHOD(bus_setup_intr, bus_generic_setup_intr),
DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr),
DEVMETHOD(bus_get_dma_tag, generic_pcie_get_dma_tag),
DEVMETHOD_END
}
static int generic_pcie_adjust_resource(device_t dev, device_t child, int type, struct resource *res, rman_res_t start, rman_res_t end)
static void generic_pcie_write_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, uint32_t val, int bytes)
int pci_host_generic_core_release_resource(device_t dev, device_t child, int type, int rid, struct resource *res)
static int generic_pcie_activate_resource(device_t dev, device_t child, int type, int rid, struct resource *r)
static int generic_pcie_read_ivar(device_t dev, device_t child, int index, uintptr_t *result)
static int generic_pcie_deactivate_resource(device_t dev, device_t child, int type, int rid, struct resource *r)
static int generic_pcie_translate_resource(device_t bus, int type, rman_res_t start, rman_res_t *newstart)
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)
int pci_host_generic_core_attach(device_t dev)
static int generic_pcie_write_ivar(device_t dev, device_t child, int index, uintptr_t value)
static uint32_t generic_pcie_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int bytes)
static bus_dma_tag_t generic_pcie_get_dma_tag(device_t dev, device_t child)
static int generic_pcie_maxslots(device_t dev)
static uint32_t pcib_read_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, int width)
Definition: pci_pci.c:2698
int pcib_maxslots(device_t dev)
Definition: pci_pci.c:2629
static void pcib_write_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, uint32_t val, int width)
Definition: pci_pci.c:2721

Definition at line 542 of file pci_host_generic.c.