cregit-Linux how code gets into the kernel

Release 4.14 arch/alpha/include/asm/pci.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ALPHA_PCI_H

#define __ALPHA_PCI_H

#ifdef __KERNEL__

#include <linux/spinlock.h>
#include <linux/dma-mapping.h>
#include <linux/scatterlist.h>
#include <asm/machvec.h>

/*
 * The following structure is used to manage multiple PCI busses.
 */

struct pci_dev;
struct pci_bus;
struct resource;
struct pci_iommu_arena;
struct page;

/* A controller.  Used to manage multiple PCI busses.  */


struct pci_controller {
	
struct pci_controller *next;
        
struct pci_bus *bus;
	
struct resource *io_space;
	
struct resource *mem_space;

	/* The following are for reporting to userland.  The invariant is
           that if we report a BWX-capable dense memory, we do not report
           a sparse memory at all, even if it exists.  */
	
unsigned long sparse_mem_base;
	
unsigned long dense_mem_base;
	
unsigned long sparse_io_base;
	
unsigned long dense_io_base;

	/* This one's for the kernel only.  It's in KSEG somewhere.  */
	
unsigned long config_space_base;

	
unsigned int index;
	/* For compatibility with current (as of July 2003) pciutils
           and XFree86. Eventually will be removed. */
	
unsigned int need_domain_info;

	
struct pci_iommu_arena *sg_pci;
	
struct pci_iommu_arena *sg_isa;

	
void *sysdata;
};

/* Override the logic in pci_scan_bus for skipping already-configured
   bus numbers.  */


#define pcibios_assign_all_busses()	1


#define PCIBIOS_MIN_IO		alpha_mv.min_io_address

#define PCIBIOS_MIN_MEM		alpha_mv.min_mem_address

extern void pcibios_set_master(struct pci_dev *dev);

/* IOMMU controls.  */

/* The PCI address space does not equal the physical memory address space.
   The networking and block device layers use this boolean for bounce buffer
   decisions.  */

#define PCI_DMA_BUS_IS_PHYS  0

/* TODO: integrate with include/asm-generic/pci.h ? */

static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { return channel ? 15 : 14; }

Contributors

PersonTokensPropCommitsCommitProp
Jeff Garzik22100.00%1100.00%
Total22100.00%1100.00%

#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
static inline int pci_proc_domain(struct pci_bus *bus) { struct pci_controller *hose = bus->sysdata; return hose->need_domain_info; }

Contributors

PersonTokensPropCommitsCommitProp
Matthew Wilcox1557.69%250.00%
Ivan Kokshaysky1142.31%250.00%
Total26100.00%4100.00%

#endif /* __KERNEL__ */ /* Values for the `which' argument to sys_pciconfig_iobase. */ #define IOBASE_HOSE 0 #define IOBASE_SPARSE_MEM 1 #define IOBASE_DENSE_MEM 2 #define IOBASE_SPARSE_IO 3 #define IOBASE_DENSE_IO 4 #define IOBASE_ROOT_BUS 5 #define IOBASE_FROM_HOSE 0x10000 extern struct pci_dev *isa_bridge; extern int pci_legacy_read(struct pci_bus *bus, loff_t port, u32 *val, size_t count); extern int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t count); extern int pci_mmap_legacy_page_range(struct pci_bus *bus, struct vm_area_struct *vma, enum pci_mmap_state mmap_state); extern void pci_adjust_legacy_attr(struct pci_bus *bus, enum pci_mmap_state mmap_type); #define HAVE_PCI_LEGACY 1 extern int pci_create_resource_files(struct pci_dev *dev); extern void pci_remove_resource_files(struct pci_dev *dev); #endif /* __ALPHA_PCI_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)15245.78%939.13%
Ivan Kokshaysky10932.83%313.04%
Jeff Garzik236.93%14.35%
Matthew Wilcox226.63%313.04%
Linus Torvalds113.31%28.70%
Adrian Bunk61.81%14.35%
Richard Henderson41.20%14.35%
FUJITA Tomonori30.90%14.35%
Greg Kroah-Hartman10.30%14.35%
Christoph Hellwig10.30%14.35%
Total332100.00%23100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.