Linux Kernel
3.7.1
|
Data Fields | |
struct rb_node | rb_node |
unsigned long | addr_lo |
unsigned long | addr_hi |
struct eeh_dev * | edev |
struct pci_dev * | pcidev |
unsigned int | flags |
The pci address cache subsystem. This subsystem places PCI device address resources into a red-black tree, sorted according to the address range, so that given only an i/o address, the corresponding PCI device can be quickly found. It is safe to perform an address lookup in an interrupt context; this ability is an important feature.
Currently, the only customer of this code is the EEH subsystem; thus, this code has been somewhat tailored to suit EEH better. In particular, the cache does not hold the addresses of devices for which EEH is not enabled.
(Implementation Note: The RB tree seems to be better/faster than any hash algo I could think of for this problem, even with the penalty of slow pointer chases for d-cache misses).
Definition at line 49 of file eeh_cache.c.
unsigned long addr_hi |
Definition at line 52 of file eeh_cache.c.
unsigned long addr_lo |
Definition at line 51 of file eeh_cache.c.
struct eeh_dev* edev |
Definition at line 53 of file eeh_cache.c.
unsigned int flags |
Definition at line 55 of file eeh_cache.c.
Definition at line 54 of file eeh_cache.c.
Definition at line 50 of file eeh_cache.c.