Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
2
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
82023bb
Documentation
arch
alpha
arc
arm
arm64
avr32
blackfin
c6x
cris
frv
hexagon
ia64
configs
dig
hp
include
asm
native
sn
uv
xen
Kbuild
acpi-ext.h
acpi.h
agp.h
asm-offsets.h
asmmacro.h
atomic.h
barrier.h
bitops.h
bug.h
bugs.h
cache.h
cacheflush.h
checksum.h
clocksource.h
cpu.h
cputime.h
current.h
cyclone.h
delay.h
device.h
div64.h
dma-mapping.h
dma.h
dmi.h
elf.h
emergency-restart.h
esi.h
fb.h
fpswa.h
ftrace.h
futex.h
gcc_intrin.h
gpio.h
hardirq.h
hpsim.h
hugetlb.h
hw_irq.h
idle.h
intrinsics.h
io.h
iommu.h
iommu_table.h
iosapic.h
irq.h
irq_regs.h
irq_remapping.h
irqflags.h
kdebug.h
kexec.h
kmap_types.h
kprobes.h
kregs.h
kvm_host.h
libata-portmap.h
linkage.h
local.h
local64.h
machvec.h
machvec_dig.h
machvec_dig_vtd.h
machvec_hpsim.h
machvec_hpzx1.h
machvec_hpzx1_swiotlb.h
machvec_init.h
machvec_sn2.h
machvec_uv.h
machvec_xen.h
mc146818rtc.h
mca.h
mca_asm.h
meminit.h
mman.h
mmu.h
mmu_context.h
mmzone.h
module.h
msidef.h
mutex.h
nodedata.h
numa.h
page.h
pal.h
param.h
paravirt.h
paravirt_patch.h
paravirt_privop.h
parport.h
patch.h
pci.h
percpu.h
perfmon.h
pgalloc.h
pgtable.h
processor.h
ptrace.h
pvclock-abi.h
rwsem.h
sal.h
scatterlist.h
sections.h
segment.h
serial.h
shmparam.h
siginfo.h
signal.h
smp.h
sparsemem.h
spinlock.h
spinlock_types.h
string.h
swiotlb.h
switch_to.h
sync_bitops.h
syscall.h
termios.h
thread_info.h
timex.h
tlb.h
tlbflush.h
topology.h
types.h
uaccess.h
unaligned.h
uncached.h
unistd.h
unwind.h
user.h
ustack.h
vga.h
xor.h
uapi
kernel
kvm
lib
mm
oprofile
pci
scripts
sn
uv
xen
Kconfig
Kconfig.debug
Makefile
install.sh
module.lds
m32r
m68k
metag
microblaze
mips
mn10300
openrisc
parisc
powerpc
s390
score
sh
sparc
tile
um
unicore32
x86
xtensa
.gitignore
Kconfig
block
crypto
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
REPORTING-BUGS
Breadcrumbs
linux
/
arch
/
ia64
/
include
/
asm
/
pci.h
Copy path
Blame
Blame
Latest commit
History
History
139 lines (112 loc) · 3.8 KB
Breadcrumbs
linux
/
arch
/
ia64
/
include
/
asm
/
pci.h
Top
File metadata and controls
Code
Blame
139 lines (112 loc) · 3.8 KB
Raw
#ifndef _ASM_IA64_PCI_H #define _ASM_IA64_PCI_H #include <linux/mm.h> #include <linux/slab.h> #include <linux/spinlock.h> #include <linux/string.h> #include <linux/types.h> #include <asm/io.h> #include <asm/scatterlist.h> #include <asm/hw_irq.h> struct pci_vector_struct { __u16 segment; /* PCI Segment number */ __u16 bus; /* PCI Bus number */ __u32 pci_id; /* ACPI split 16 bits device, 16 bits function (see section 6.1.1) */ __u8 pin; /* PCI PIN (0 = A, 1 = B, 2 = C, 3 = D) */ __u32 irq; /* IRQ assigned */ }; /* * Can be used to override the logic in pci_scan_bus for skipping already-configured bus * numbers - to be used for buggy BIOSes or architectures with incomplete PCI setup by the * loader. */ #define pcibios_assign_all_busses() 0 #define PCIBIOS_MIN_IO 0x1000 #define PCIBIOS_MIN_MEM 0x10000000 void pcibios_config_init(void); struct pci_dev; /* * PCI_DMA_BUS_IS_PHYS should be set to 1 if there is _necessarily_ a direct * correspondence between device bus addresses and CPU physical addresses. * Platforms with a hardware I/O MMU _must_ turn this off to suppress the * bounce buffer handling code in the block and network device layers. * Platforms with separate bus address spaces _must_ turn this off and provide * a device DMA mapping implementation that takes care of the necessary * address translation. * * For now, the ia64 platforms which may have separate/multiple bus address * spaces all have I/O MMUs which support the merging of physically * discontiguous buffers, so we can use that as the sole factor to determine * the setting of PCI_DMA_BUS_IS_PHYS. */ extern unsigned long ia64_max_iommu_merge_mask; #define PCI_DMA_BUS_IS_PHYS (ia64_max_iommu_merge_mask == ~0UL) static inline void pcibios_penalize_isa_irq (int irq, int active) { /* We don't do dynamic PCI IRQ allocation */ } #include <asm-generic/pci-dma-compat.h> #ifdef CONFIG_PCI static inline void pci_dma_burst_advice(struct pci_dev *pdev, enum pci_dma_burst_strategy *strat, unsigned long *strategy_parameter) { unsigned long cacheline_size; u8 byte; pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &byte); if (byte == 0) cacheline_size = 1024; else cacheline_size = (int) byte * 4; *strat = PCI_DMA_BURST_MULTIPLE; *strategy_parameter = cacheline_size; } #endif #define HAVE_PCI_MMAP extern int pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma, enum pci_mmap_state mmap_state, int write_combine); #define HAVE_PCI_LEGACY extern int pci_mmap_legacy_page_range(struct pci_bus *bus, struct vm_area_struct *vma, enum pci_mmap_state mmap_state); #define pci_get_legacy_mem platform_pci_get_legacy_mem #define pci_legacy_read platform_pci_legacy_read #define pci_legacy_write platform_pci_legacy_write struct iospace_resource { struct list_head list; struct resource res; }; struct pci_controller { struct acpi_device *companion; void *iommu; int segment; int node; /* nearest node with memory or -1 for global allocation */ void *platform_data; }; #define PCI_CONTROLLER(busdev) ((struct pci_controller *) busdev->sysdata) #define pci_domain_nr(busdev) (PCI_CONTROLLER(busdev)->segment) extern struct pci_ops pci_root_ops; static inline int pci_proc_domain(struct pci_bus *bus) { return (pci_domain_nr(bus) != 0); } static inline struct resource * pcibios_select_root(struct pci_dev *pdev, struct resource *res) { struct resource *root = NULL; if (res->flags & IORESOURCE_IO) root = &ioport_resource; if (res->flags & IORESOURCE_MEM) root = &iomem_resource; return root; } #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14); } #ifdef CONFIG_INTEL_IOMMU extern void pci_iommu_alloc(void); #endif #endif /* _ASM_IA64_PCI_H */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
You can’t perform that action at this time.