direct-io.hg
changeset 13439:ba79a17ff715
[IA64] Move machvec.h to linux-xen
Necessary to clean up warnings
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Necessary to clean up warnings
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
author | awilliam@xenbuild2.aw |
---|---|
date | Thu Dec 14 13:23:33 2006 -0700 (2006-12-14) |
parents | 97a369d8da43 |
children | 8a9b1b72af44 |
files | xen/include/asm-ia64/linux-xen/asm/README.origin xen/include/asm-ia64/linux-xen/asm/machvec.h xen/include/asm-ia64/linux/asm/README.origin xen/include/asm-ia64/linux/asm/machvec.h |
line diff
1.1 --- a/xen/include/asm-ia64/linux-xen/asm/README.origin Thu Dec 14 11:01:37 2006 -0700 1.2 +++ b/xen/include/asm-ia64/linux-xen/asm/README.origin Thu Dec 14 13:23:33 2006 -0700 1.3 @@ -36,6 +36,7 @@ perfmon.h -> linux/include/asm-ia64/per 1.4 perfmon_default_smpl.h -> linux/include/asm-ia64/perfmon_default_smpl.h 1.5 1.6 # The files below are from Linux-2.6.19 1.7 +machvec.h -> linux/include/asm-ia64/machvec.h 1.8 machvec_dig.h -> linux/include/asm-ia64/machvec_dig.h 1.9 machvec_sn2.h -> linux/include/asm-ia64/machvec_sn2.h 1.10 machvec_hpzx1.h -> linux/include/asm-ia64/machvec_hpzx1.h
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/xen/include/asm-ia64/linux-xen/asm/machvec.h Thu Dec 14 13:23:33 2006 -0700 2.3 @@ -0,0 +1,390 @@ 2.4 +/* 2.5 + * Machine vector for IA-64. 2.6 + * 2.7 + * Copyright (C) 1999 Silicon Graphics, Inc. 2.8 + * Copyright (C) Srinivasa Thirumalachar <sprasad@engr.sgi.com> 2.9 + * Copyright (C) Vijay Chander <vijay@engr.sgi.com> 2.10 + * Copyright (C) 1999-2001, 2003-2004 Hewlett-Packard Co. 2.11 + * David Mosberger-Tang <davidm@hpl.hp.com> 2.12 + */ 2.13 +#ifndef _ASM_IA64_MACHVEC_H 2.14 +#define _ASM_IA64_MACHVEC_H 2.15 + 2.16 +#include <linux/config.h> 2.17 +#include <linux/types.h> 2.18 + 2.19 +/* forward declarations: */ 2.20 +struct device; 2.21 +struct pt_regs; 2.22 +struct scatterlist; 2.23 +struct page; 2.24 +struct mm_struct; 2.25 +struct pci_bus; 2.26 + 2.27 +typedef void ia64_mv_setup_t (char **); 2.28 +typedef void ia64_mv_cpu_init_t (void); 2.29 +typedef void ia64_mv_irq_init_t (void); 2.30 +typedef void ia64_mv_send_ipi_t (int, int, int, int); 2.31 +typedef void ia64_mv_timer_interrupt_t (int, void *, struct pt_regs *); 2.32 +typedef void ia64_mv_global_tlb_purge_t (unsigned long, unsigned long, unsigned long); 2.33 +typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); 2.34 +typedef unsigned int ia64_mv_local_vector_to_irq (u8); 2.35 +typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); 2.36 +typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val, 2.37 + u8 size); 2.38 +typedef int ia64_mv_pci_legacy_write_t (struct pci_bus *, u16 port, u32 val, 2.39 + u8 size); 2.40 + 2.41 +/* DMA-mapping interface: */ 2.42 +typedef void ia64_mv_dma_init (void); 2.43 +typedef void *ia64_mv_dma_alloc_coherent (struct device *, size_t, dma_addr_t *, int); 2.44 +typedef void ia64_mv_dma_free_coherent (struct device *, size_t, void *, dma_addr_t); 2.45 +typedef dma_addr_t ia64_mv_dma_map_single (struct device *, void *, size_t, int); 2.46 +typedef void ia64_mv_dma_unmap_single (struct device *, dma_addr_t, size_t, int); 2.47 +typedef int ia64_mv_dma_map_sg (struct device *, struct scatterlist *, int, int); 2.48 +typedef void ia64_mv_dma_unmap_sg (struct device *, struct scatterlist *, int, int); 2.49 +typedef void ia64_mv_dma_sync_single_for_cpu (struct device *, dma_addr_t, size_t, int); 2.50 +typedef void ia64_mv_dma_sync_sg_for_cpu (struct device *, struct scatterlist *, int, int); 2.51 +typedef void ia64_mv_dma_sync_single_for_device (struct device *, dma_addr_t, size_t, int); 2.52 +typedef void ia64_mv_dma_sync_sg_for_device (struct device *, struct scatterlist *, int, int); 2.53 +typedef int ia64_mv_dma_mapping_error (dma_addr_t dma_addr); 2.54 +typedef int ia64_mv_dma_supported (struct device *, u64); 2.55 + 2.56 +/* 2.57 + * WARNING: The legacy I/O space is _architected_. Platforms are 2.58 + * expected to follow this architected model (see Section 10.7 in the 2.59 + * IA-64 Architecture Software Developer's Manual). Unfortunately, 2.60 + * some broken machines do not follow that model, which is why we have 2.61 + * to make the inX/outX operations part of the machine vector. 2.62 + * Platform designers should follow the architected model whenever 2.63 + * possible. 2.64 + */ 2.65 +typedef unsigned int ia64_mv_inb_t (unsigned long); 2.66 +typedef unsigned int ia64_mv_inw_t (unsigned long); 2.67 +typedef unsigned int ia64_mv_inl_t (unsigned long); 2.68 +typedef void ia64_mv_outb_t (unsigned char, unsigned long); 2.69 +typedef void ia64_mv_outw_t (unsigned short, unsigned long); 2.70 +typedef void ia64_mv_outl_t (unsigned int, unsigned long); 2.71 +typedef void ia64_mv_mmiowb_t (void); 2.72 +typedef unsigned char ia64_mv_readb_t (const volatile void __iomem *); 2.73 +typedef unsigned short ia64_mv_readw_t (const volatile void __iomem *); 2.74 +typedef unsigned int ia64_mv_readl_t (const volatile void __iomem *); 2.75 +typedef unsigned long ia64_mv_readq_t (const volatile void __iomem *); 2.76 +typedef unsigned char ia64_mv_readb_relaxed_t (const volatile void __iomem *); 2.77 +typedef unsigned short ia64_mv_readw_relaxed_t (const volatile void __iomem *); 2.78 +typedef unsigned int ia64_mv_readl_relaxed_t (const volatile void __iomem *); 2.79 +typedef unsigned long ia64_mv_readq_relaxed_t (const volatile void __iomem *); 2.80 + 2.81 +static inline void 2.82 +machvec_noop (void) 2.83 +{ 2.84 +} 2.85 + 2.86 +static inline void 2.87 +machvec_noop_mm (struct mm_struct *mm) 2.88 +{ 2.89 +} 2.90 + 2.91 +extern void machvec_setup (char **); 2.92 +extern void machvec_timer_interrupt (int, void *, struct pt_regs *); 2.93 +extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int); 2.94 +extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int); 2.95 +extern void machvec_tlb_migrate_finish (struct mm_struct *); 2.96 + 2.97 +# if defined (CONFIG_IA64_HP_SIM) 2.98 +# include <asm/machvec_hpsim.h> 2.99 +# elif defined (CONFIG_IA64_DIG) 2.100 +# include <asm/machvec_dig.h> 2.101 +# elif defined (CONFIG_IA64_HP_ZX1) 2.102 +# include <asm/machvec_hpzx1.h> 2.103 +# elif defined (CONFIG_IA64_HP_ZX1_SWIOTLB) 2.104 +# include <asm/machvec_hpzx1_swiotlb.h> 2.105 +# elif defined (CONFIG_IA64_SGI_SN2) 2.106 +# include <asm/machvec_sn2.h> 2.107 +# elif defined (CONFIG_IA64_GENERIC) 2.108 + 2.109 +# ifdef MACHVEC_PLATFORM_HEADER 2.110 +# include MACHVEC_PLATFORM_HEADER 2.111 +# else 2.112 +# define platform_name ia64_mv.name 2.113 +# define platform_setup ia64_mv.setup 2.114 +# define platform_cpu_init ia64_mv.cpu_init 2.115 +# define platform_irq_init ia64_mv.irq_init 2.116 +# define platform_send_ipi ia64_mv.send_ipi 2.117 +# define platform_timer_interrupt ia64_mv.timer_interrupt 2.118 +# define platform_global_tlb_purge ia64_mv.global_tlb_purge 2.119 +# define platform_tlb_migrate_finish ia64_mv.tlb_migrate_finish 2.120 +# define platform_dma_init ia64_mv.dma_init 2.121 +# define platform_dma_alloc_coherent ia64_mv.dma_alloc_coherent 2.122 +# define platform_dma_free_coherent ia64_mv.dma_free_coherent 2.123 +# define platform_dma_map_single ia64_mv.dma_map_single 2.124 +# define platform_dma_unmap_single ia64_mv.dma_unmap_single 2.125 +# define platform_dma_map_sg ia64_mv.dma_map_sg 2.126 +# define platform_dma_unmap_sg ia64_mv.dma_unmap_sg 2.127 +# define platform_dma_sync_single_for_cpu ia64_mv.dma_sync_single_for_cpu 2.128 +# define platform_dma_sync_sg_for_cpu ia64_mv.dma_sync_sg_for_cpu 2.129 +# define platform_dma_sync_single_for_device ia64_mv.dma_sync_single_for_device 2.130 +# define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device 2.131 +# define platform_dma_mapping_error ia64_mv.dma_mapping_error 2.132 +# define platform_dma_supported ia64_mv.dma_supported 2.133 +# define platform_local_vector_to_irq ia64_mv.local_vector_to_irq 2.134 +# define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem 2.135 +# define platform_pci_legacy_read ia64_mv.pci_legacy_read 2.136 +# define platform_pci_legacy_write ia64_mv.pci_legacy_write 2.137 +# define platform_inb ia64_mv.inb 2.138 +# define platform_inw ia64_mv.inw 2.139 +# define platform_inl ia64_mv.inl 2.140 +# define platform_outb ia64_mv.outb 2.141 +# define platform_outw ia64_mv.outw 2.142 +# define platform_outl ia64_mv.outl 2.143 +# define platform_mmiowb ia64_mv.mmiowb 2.144 +# define platform_readb ia64_mv.readb 2.145 +# define platform_readw ia64_mv.readw 2.146 +# define platform_readl ia64_mv.readl 2.147 +# define platform_readq ia64_mv.readq 2.148 +# define platform_readb_relaxed ia64_mv.readb_relaxed 2.149 +# define platform_readw_relaxed ia64_mv.readw_relaxed 2.150 +# define platform_readl_relaxed ia64_mv.readl_relaxed 2.151 +# define platform_readq_relaxed ia64_mv.readq_relaxed 2.152 +# endif 2.153 + 2.154 +/* __attribute__((__aligned__(16))) is required to make size of the 2.155 + * structure multiple of 16 bytes. 2.156 + * This will fillup the holes created because of section 3.3.1 in 2.157 + * Software Conventions guide. 2.158 + */ 2.159 +struct ia64_machine_vector { 2.160 + const char *name; 2.161 + ia64_mv_setup_t *setup; 2.162 + ia64_mv_cpu_init_t *cpu_init; 2.163 + ia64_mv_irq_init_t *irq_init; 2.164 + ia64_mv_send_ipi_t *send_ipi; 2.165 + ia64_mv_timer_interrupt_t *timer_interrupt; 2.166 + ia64_mv_global_tlb_purge_t *global_tlb_purge; 2.167 + ia64_mv_tlb_migrate_finish_t *tlb_migrate_finish; 2.168 + ia64_mv_dma_init *dma_init; 2.169 + ia64_mv_dma_alloc_coherent *dma_alloc_coherent; 2.170 + ia64_mv_dma_free_coherent *dma_free_coherent; 2.171 + ia64_mv_dma_map_single *dma_map_single; 2.172 + ia64_mv_dma_unmap_single *dma_unmap_single; 2.173 + ia64_mv_dma_map_sg *dma_map_sg; 2.174 + ia64_mv_dma_unmap_sg *dma_unmap_sg; 2.175 + ia64_mv_dma_sync_single_for_cpu *dma_sync_single_for_cpu; 2.176 + ia64_mv_dma_sync_sg_for_cpu *dma_sync_sg_for_cpu; 2.177 + ia64_mv_dma_sync_single_for_device *dma_sync_single_for_device; 2.178 + ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; 2.179 + ia64_mv_dma_mapping_error *dma_mapping_error; 2.180 + ia64_mv_dma_supported *dma_supported; 2.181 + ia64_mv_local_vector_to_irq *local_vector_to_irq; 2.182 + ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; 2.183 + ia64_mv_pci_legacy_read_t *pci_legacy_read; 2.184 + ia64_mv_pci_legacy_write_t *pci_legacy_write; 2.185 + ia64_mv_inb_t *inb; 2.186 + ia64_mv_inw_t *inw; 2.187 + ia64_mv_inl_t *inl; 2.188 + ia64_mv_outb_t *outb; 2.189 + ia64_mv_outw_t *outw; 2.190 + ia64_mv_outl_t *outl; 2.191 + ia64_mv_mmiowb_t *mmiowb; 2.192 + ia64_mv_readb_t *readb; 2.193 + ia64_mv_readw_t *readw; 2.194 + ia64_mv_readl_t *readl; 2.195 + ia64_mv_readq_t *readq; 2.196 + ia64_mv_readb_relaxed_t *readb_relaxed; 2.197 + ia64_mv_readw_relaxed_t *readw_relaxed; 2.198 + ia64_mv_readl_relaxed_t *readl_relaxed; 2.199 + ia64_mv_readq_relaxed_t *readq_relaxed; 2.200 +} __attribute__((__aligned__(16))); /* align attrib? see above comment */ 2.201 + 2.202 +#define MACHVEC_INIT(name) \ 2.203 +{ \ 2.204 + #name, \ 2.205 + platform_setup, \ 2.206 + platform_cpu_init, \ 2.207 + platform_irq_init, \ 2.208 + platform_send_ipi, \ 2.209 + platform_timer_interrupt, \ 2.210 + platform_global_tlb_purge, \ 2.211 + platform_tlb_migrate_finish, \ 2.212 + platform_dma_init, \ 2.213 + platform_dma_alloc_coherent, \ 2.214 + platform_dma_free_coherent, \ 2.215 + platform_dma_map_single, \ 2.216 + platform_dma_unmap_single, \ 2.217 + platform_dma_map_sg, \ 2.218 + platform_dma_unmap_sg, \ 2.219 + platform_dma_sync_single_for_cpu, \ 2.220 + platform_dma_sync_sg_for_cpu, \ 2.221 + platform_dma_sync_single_for_device, \ 2.222 + platform_dma_sync_sg_for_device, \ 2.223 + platform_dma_mapping_error, \ 2.224 + platform_dma_supported, \ 2.225 + platform_local_vector_to_irq, \ 2.226 + platform_pci_get_legacy_mem, \ 2.227 + platform_pci_legacy_read, \ 2.228 + platform_pci_legacy_write, \ 2.229 + platform_inb, \ 2.230 + platform_inw, \ 2.231 + platform_inl, \ 2.232 + platform_outb, \ 2.233 + platform_outw, \ 2.234 + platform_outl, \ 2.235 + platform_mmiowb, \ 2.236 + platform_readb, \ 2.237 + platform_readw, \ 2.238 + platform_readl, \ 2.239 + platform_readq, \ 2.240 + platform_readb_relaxed, \ 2.241 + platform_readw_relaxed, \ 2.242 + platform_readl_relaxed, \ 2.243 + platform_readq_relaxed, \ 2.244 +} 2.245 + 2.246 +extern struct ia64_machine_vector ia64_mv; 2.247 +extern void machvec_init (const char *name); 2.248 + 2.249 +# else 2.250 +# error Unknown configuration. Update asm-ia64/machvec.h. 2.251 +# endif /* CONFIG_IA64_GENERIC */ 2.252 + 2.253 +/* 2.254 + * Declare default routines which aren't declared anywhere else: 2.255 + */ 2.256 +extern ia64_mv_dma_init swiotlb_init; 2.257 +extern ia64_mv_dma_alloc_coherent swiotlb_alloc_coherent; 2.258 +extern ia64_mv_dma_free_coherent swiotlb_free_coherent; 2.259 +extern ia64_mv_dma_map_single swiotlb_map_single; 2.260 +extern ia64_mv_dma_unmap_single swiotlb_unmap_single; 2.261 +extern ia64_mv_dma_map_sg swiotlb_map_sg; 2.262 +extern ia64_mv_dma_unmap_sg swiotlb_unmap_sg; 2.263 +extern ia64_mv_dma_sync_single_for_cpu swiotlb_sync_single_for_cpu; 2.264 +extern ia64_mv_dma_sync_sg_for_cpu swiotlb_sync_sg_for_cpu; 2.265 +extern ia64_mv_dma_sync_single_for_device swiotlb_sync_single_for_device; 2.266 +extern ia64_mv_dma_sync_sg_for_device swiotlb_sync_sg_for_device; 2.267 +extern ia64_mv_dma_mapping_error swiotlb_dma_mapping_error; 2.268 +extern ia64_mv_dma_supported swiotlb_dma_supported; 2.269 + 2.270 +/* 2.271 + * Define default versions so we can extend machvec for new platforms without having 2.272 + * to update the machvec files for all existing platforms. 2.273 + */ 2.274 +#ifndef platform_setup 2.275 +# define platform_setup machvec_setup 2.276 +#endif 2.277 +#ifndef platform_cpu_init 2.278 +# define platform_cpu_init machvec_noop 2.279 +#endif 2.280 +#ifndef platform_irq_init 2.281 +# define platform_irq_init machvec_noop 2.282 +#endif 2.283 + 2.284 +#ifndef platform_send_ipi 2.285 +# define platform_send_ipi ia64_send_ipi /* default to architected version */ 2.286 +#endif 2.287 +#ifndef platform_timer_interrupt 2.288 +# define platform_timer_interrupt machvec_timer_interrupt 2.289 +#endif 2.290 +#ifndef platform_global_tlb_purge 2.291 +# define platform_global_tlb_purge ia64_global_tlb_purge /* default to architected version */ 2.292 +#endif 2.293 +#ifndef platform_tlb_migrate_finish 2.294 +# define platform_tlb_migrate_finish machvec_noop_mm 2.295 +#endif 2.296 +#ifndef platform_dma_init 2.297 +# define platform_dma_init swiotlb_init 2.298 +#endif 2.299 +#ifndef platform_dma_alloc_coherent 2.300 +# define platform_dma_alloc_coherent swiotlb_alloc_coherent 2.301 +#endif 2.302 +#ifndef platform_dma_free_coherent 2.303 +# define platform_dma_free_coherent swiotlb_free_coherent 2.304 +#endif 2.305 +#ifndef platform_dma_map_single 2.306 +# define platform_dma_map_single swiotlb_map_single 2.307 +#endif 2.308 +#ifndef platform_dma_unmap_single 2.309 +# define platform_dma_unmap_single swiotlb_unmap_single 2.310 +#endif 2.311 +#ifndef platform_dma_map_sg 2.312 +# define platform_dma_map_sg swiotlb_map_sg 2.313 +#endif 2.314 +#ifndef platform_dma_unmap_sg 2.315 +# define platform_dma_unmap_sg swiotlb_unmap_sg 2.316 +#endif 2.317 +#ifndef platform_dma_sync_single_for_cpu 2.318 +# define platform_dma_sync_single_for_cpu swiotlb_sync_single_for_cpu 2.319 +#endif 2.320 +#ifndef platform_dma_sync_sg_for_cpu 2.321 +# define platform_dma_sync_sg_for_cpu swiotlb_sync_sg_for_cpu 2.322 +#endif 2.323 +#ifndef platform_dma_sync_single_for_device 2.324 +# define platform_dma_sync_single_for_device swiotlb_sync_single_for_device 2.325 +#endif 2.326 +#ifndef platform_dma_sync_sg_for_device 2.327 +# define platform_dma_sync_sg_for_device swiotlb_sync_sg_for_device 2.328 +#endif 2.329 +#ifndef platform_dma_mapping_error 2.330 +# define platform_dma_mapping_error swiotlb_dma_mapping_error 2.331 +#endif 2.332 +#ifndef platform_dma_supported 2.333 +# define platform_dma_supported swiotlb_dma_supported 2.334 +#endif 2.335 +#ifndef platform_local_vector_to_irq 2.336 +# define platform_local_vector_to_irq __ia64_local_vector_to_irq 2.337 +#endif 2.338 +#ifndef platform_pci_get_legacy_mem 2.339 +# define platform_pci_get_legacy_mem ia64_pci_get_legacy_mem 2.340 +#endif 2.341 +#ifndef platform_pci_legacy_read 2.342 +# define platform_pci_legacy_read ia64_pci_legacy_read 2.343 +#endif 2.344 +#ifndef platform_pci_legacy_write 2.345 +# define platform_pci_legacy_write ia64_pci_legacy_write 2.346 +#endif 2.347 +#ifndef platform_inb 2.348 +# define platform_inb __ia64_inb 2.349 +#endif 2.350 +#ifndef platform_inw 2.351 +# define platform_inw __ia64_inw 2.352 +#endif 2.353 +#ifndef platform_inl 2.354 +# define platform_inl __ia64_inl 2.355 +#endif 2.356 +#ifndef platform_outb 2.357 +# define platform_outb __ia64_outb 2.358 +#endif 2.359 +#ifndef platform_outw 2.360 +# define platform_outw __ia64_outw 2.361 +#endif 2.362 +#ifndef platform_outl 2.363 +# define platform_outl __ia64_outl 2.364 +#endif 2.365 +#ifndef platform_mmiowb 2.366 +# define platform_mmiowb __ia64_mmiowb 2.367 +#endif 2.368 +#ifndef platform_readb 2.369 +# define platform_readb __ia64_readb 2.370 +#endif 2.371 +#ifndef platform_readw 2.372 +# define platform_readw __ia64_readw 2.373 +#endif 2.374 +#ifndef platform_readl 2.375 +# define platform_readl __ia64_readl 2.376 +#endif 2.377 +#ifndef platform_readq 2.378 +# define platform_readq __ia64_readq 2.379 +#endif 2.380 +#ifndef platform_readb_relaxed 2.381 +# define platform_readb_relaxed __ia64_readb_relaxed 2.382 +#endif 2.383 +#ifndef platform_readw_relaxed 2.384 +# define platform_readw_relaxed __ia64_readw_relaxed 2.385 +#endif 2.386 +#ifndef platform_readl_relaxed 2.387 +# define platform_readl_relaxed __ia64_readl_relaxed 2.388 +#endif 2.389 +#ifndef platform_readq_relaxed 2.390 +# define platform_readq_relaxed __ia64_readq_relaxed 2.391 +#endif 2.392 + 2.393 +#endif /* _ASM_IA64_MACHVEC_H */
3.1 --- a/xen/include/asm-ia64/linux/asm/README.origin Thu Dec 14 11:01:37 2006 -0700 3.2 +++ b/xen/include/asm-ia64/linux/asm/README.origin Thu Dec 14 13:23:33 2006 -0700 3.3 @@ -21,7 +21,6 @@ intrinsics.h -> linux/include/asm-ia64/ 3.4 ioctl.h -> linux/include/asm-ia64/ioctl.h 3.5 irq.h -> linux/include/asm-ia64/irq.h 3.6 linkage.h -> linux/include/asm-ia64/linkage.h 3.7 -machvec.h -> linux/include/asm-ia64/machvec.h 3.8 machvec_hpsim.h -> linux/include/asm-ia64/machvec_hpsim.h 3.9 mca.h -> linux/include/asm-ia64/mca.h 3.10 nodedata.h -> linux/include/asm-ia64/nodedate.h
4.1 --- a/xen/include/asm-ia64/linux/asm/machvec.h Thu Dec 14 11:01:37 2006 -0700 4.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 4.3 @@ -1,390 +0,0 @@ 4.4 -/* 4.5 - * Machine vector for IA-64. 4.6 - * 4.7 - * Copyright (C) 1999 Silicon Graphics, Inc. 4.8 - * Copyright (C) Srinivasa Thirumalachar <sprasad@engr.sgi.com> 4.9 - * Copyright (C) Vijay Chander <vijay@engr.sgi.com> 4.10 - * Copyright (C) 1999-2001, 2003-2004 Hewlett-Packard Co. 4.11 - * David Mosberger-Tang <davidm@hpl.hp.com> 4.12 - */ 4.13 -#ifndef _ASM_IA64_MACHVEC_H 4.14 -#define _ASM_IA64_MACHVEC_H 4.15 - 4.16 -#include <linux/config.h> 4.17 -#include <linux/types.h> 4.18 - 4.19 -/* forward declarations: */ 4.20 -struct device; 4.21 -struct pt_regs; 4.22 -struct scatterlist; 4.23 -struct page; 4.24 -struct mm_struct; 4.25 -struct pci_bus; 4.26 - 4.27 -typedef void ia64_mv_setup_t (char **); 4.28 -typedef void ia64_mv_cpu_init_t (void); 4.29 -typedef void ia64_mv_irq_init_t (void); 4.30 -typedef void ia64_mv_send_ipi_t (int, int, int, int); 4.31 -typedef void ia64_mv_timer_interrupt_t (int, void *, struct pt_regs *); 4.32 -typedef void ia64_mv_global_tlb_purge_t (unsigned long, unsigned long, unsigned long); 4.33 -typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); 4.34 -typedef unsigned int ia64_mv_local_vector_to_irq (u8); 4.35 -typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); 4.36 -typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val, 4.37 - u8 size); 4.38 -typedef int ia64_mv_pci_legacy_write_t (struct pci_bus *, u16 port, u32 val, 4.39 - u8 size); 4.40 - 4.41 -/* DMA-mapping interface: */ 4.42 -typedef void ia64_mv_dma_init (void); 4.43 -typedef void *ia64_mv_dma_alloc_coherent (struct device *, size_t, dma_addr_t *, int); 4.44 -typedef void ia64_mv_dma_free_coherent (struct device *, size_t, void *, dma_addr_t); 4.45 -typedef dma_addr_t ia64_mv_dma_map_single (struct device *, void *, size_t, int); 4.46 -typedef void ia64_mv_dma_unmap_single (struct device *, dma_addr_t, size_t, int); 4.47 -typedef int ia64_mv_dma_map_sg (struct device *, struct scatterlist *, int, int); 4.48 -typedef void ia64_mv_dma_unmap_sg (struct device *, struct scatterlist *, int, int); 4.49 -typedef void ia64_mv_dma_sync_single_for_cpu (struct device *, dma_addr_t, size_t, int); 4.50 -typedef void ia64_mv_dma_sync_sg_for_cpu (struct device *, struct scatterlist *, int, int); 4.51 -typedef void ia64_mv_dma_sync_single_for_device (struct device *, dma_addr_t, size_t, int); 4.52 -typedef void ia64_mv_dma_sync_sg_for_device (struct device *, struct scatterlist *, int, int); 4.53 -typedef int ia64_mv_dma_mapping_error (dma_addr_t dma_addr); 4.54 -typedef int ia64_mv_dma_supported (struct device *, u64); 4.55 - 4.56 -/* 4.57 - * WARNING: The legacy I/O space is _architected_. Platforms are 4.58 - * expected to follow this architected model (see Section 10.7 in the 4.59 - * IA-64 Architecture Software Developer's Manual). Unfortunately, 4.60 - * some broken machines do not follow that model, which is why we have 4.61 - * to make the inX/outX operations part of the machine vector. 4.62 - * Platform designers should follow the architected model whenever 4.63 - * possible. 4.64 - */ 4.65 -typedef unsigned int ia64_mv_inb_t (unsigned long); 4.66 -typedef unsigned int ia64_mv_inw_t (unsigned long); 4.67 -typedef unsigned int ia64_mv_inl_t (unsigned long); 4.68 -typedef void ia64_mv_outb_t (unsigned char, unsigned long); 4.69 -typedef void ia64_mv_outw_t (unsigned short, unsigned long); 4.70 -typedef void ia64_mv_outl_t (unsigned int, unsigned long); 4.71 -typedef void ia64_mv_mmiowb_t (void); 4.72 -typedef unsigned char ia64_mv_readb_t (const volatile void __iomem *); 4.73 -typedef unsigned short ia64_mv_readw_t (const volatile void __iomem *); 4.74 -typedef unsigned int ia64_mv_readl_t (const volatile void __iomem *); 4.75 -typedef unsigned long ia64_mv_readq_t (const volatile void __iomem *); 4.76 -typedef unsigned char ia64_mv_readb_relaxed_t (const volatile void __iomem *); 4.77 -typedef unsigned short ia64_mv_readw_relaxed_t (const volatile void __iomem *); 4.78 -typedef unsigned int ia64_mv_readl_relaxed_t (const volatile void __iomem *); 4.79 -typedef unsigned long ia64_mv_readq_relaxed_t (const volatile void __iomem *); 4.80 - 4.81 -static inline void 4.82 -machvec_noop (void) 4.83 -{ 4.84 -} 4.85 - 4.86 -static inline void 4.87 -machvec_noop_mm (struct mm_struct *mm) 4.88 -{ 4.89 -} 4.90 - 4.91 -extern void machvec_setup (char **); 4.92 -extern void machvec_timer_interrupt (int, void *, struct pt_regs *); 4.93 -extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int); 4.94 -extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int); 4.95 -extern void machvec_tlb_migrate_finish (struct mm_struct *); 4.96 - 4.97 -# if defined (CONFIG_IA64_HP_SIM) 4.98 -# include <asm/machvec_hpsim.h> 4.99 -# elif defined (CONFIG_IA64_DIG) 4.100 -# include <asm/machvec_dig.h> 4.101 -# elif defined (CONFIG_IA64_HP_ZX1) 4.102 -# include <asm/machvec_hpzx1.h> 4.103 -# elif defined (CONFIG_IA64_HP_ZX1_SWIOTLB) 4.104 -# include <asm/machvec_hpzx1_swiotlb.h> 4.105 -# elif defined (CONFIG_IA64_SGI_SN2) 4.106 -# include <asm/machvec_sn2.h> 4.107 -# elif defined (CONFIG_IA64_GENERIC) 4.108 - 4.109 -# ifdef MACHVEC_PLATFORM_HEADER 4.110 -# include MACHVEC_PLATFORM_HEADER 4.111 -# else 4.112 -# define platform_name ia64_mv.name 4.113 -# define platform_setup ia64_mv.setup 4.114 -# define platform_cpu_init ia64_mv.cpu_init 4.115 -# define platform_irq_init ia64_mv.irq_init 4.116 -# define platform_send_ipi ia64_mv.send_ipi 4.117 -# define platform_timer_interrupt ia64_mv.timer_interrupt 4.118 -# define platform_global_tlb_purge ia64_mv.global_tlb_purge 4.119 -# define platform_tlb_migrate_finish ia64_mv.tlb_migrate_finish 4.120 -# define platform_dma_init ia64_mv.dma_init 4.121 -# define platform_dma_alloc_coherent ia64_mv.dma_alloc_coherent 4.122 -# define platform_dma_free_coherent ia64_mv.dma_free_coherent 4.123 -# define platform_dma_map_single ia64_mv.dma_map_single 4.124 -# define platform_dma_unmap_single ia64_mv.dma_unmap_single 4.125 -# define platform_dma_map_sg ia64_mv.dma_map_sg 4.126 -# define platform_dma_unmap_sg ia64_mv.dma_unmap_sg 4.127 -# define platform_dma_sync_single_for_cpu ia64_mv.dma_sync_single_for_cpu 4.128 -# define platform_dma_sync_sg_for_cpu ia64_mv.dma_sync_sg_for_cpu 4.129 -# define platform_dma_sync_single_for_device ia64_mv.dma_sync_single_for_device 4.130 -# define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device 4.131 -# define platform_dma_mapping_error ia64_mv.dma_mapping_error 4.132 -# define platform_dma_supported ia64_mv.dma_supported 4.133 -# define platform_local_vector_to_irq ia64_mv.local_vector_to_irq 4.134 -# define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem 4.135 -# define platform_pci_legacy_read ia64_mv.pci_legacy_read 4.136 -# define platform_pci_legacy_write ia64_mv.pci_legacy_write 4.137 -# define platform_inb ia64_mv.inb 4.138 -# define platform_inw ia64_mv.inw 4.139 -# define platform_inl ia64_mv.inl 4.140 -# define platform_outb ia64_mv.outb 4.141 -# define platform_outw ia64_mv.outw 4.142 -# define platform_outl ia64_mv.outl 4.143 -# define platform_mmiowb ia64_mv.mmiowb 4.144 -# define platform_readb ia64_mv.readb 4.145 -# define platform_readw ia64_mv.readw 4.146 -# define platform_readl ia64_mv.readl 4.147 -# define platform_readq ia64_mv.readq 4.148 -# define platform_readb_relaxed ia64_mv.readb_relaxed 4.149 -# define platform_readw_relaxed ia64_mv.readw_relaxed 4.150 -# define platform_readl_relaxed ia64_mv.readl_relaxed 4.151 -# define platform_readq_relaxed ia64_mv.readq_relaxed 4.152 -# endif 4.153 - 4.154 -/* __attribute__((__aligned__(16))) is required to make size of the 4.155 - * structure multiple of 16 bytes. 4.156 - * This will fillup the holes created because of section 3.3.1 in 4.157 - * Software Conventions guide. 4.158 - */ 4.159 -struct ia64_machine_vector { 4.160 - const char *name; 4.161 - ia64_mv_setup_t *setup; 4.162 - ia64_mv_cpu_init_t *cpu_init; 4.163 - ia64_mv_irq_init_t *irq_init; 4.164 - ia64_mv_send_ipi_t *send_ipi; 4.165 - ia64_mv_timer_interrupt_t *timer_interrupt; 4.166 - ia64_mv_global_tlb_purge_t *global_tlb_purge; 4.167 - ia64_mv_tlb_migrate_finish_t *tlb_migrate_finish; 4.168 - ia64_mv_dma_init *dma_init; 4.169 - ia64_mv_dma_alloc_coherent *dma_alloc_coherent; 4.170 - ia64_mv_dma_free_coherent *dma_free_coherent; 4.171 - ia64_mv_dma_map_single *dma_map_single; 4.172 - ia64_mv_dma_unmap_single *dma_unmap_single; 4.173 - ia64_mv_dma_map_sg *dma_map_sg; 4.174 - ia64_mv_dma_unmap_sg *dma_unmap_sg; 4.175 - ia64_mv_dma_sync_single_for_cpu *dma_sync_single_for_cpu; 4.176 - ia64_mv_dma_sync_sg_for_cpu *dma_sync_sg_for_cpu; 4.177 - ia64_mv_dma_sync_single_for_device *dma_sync_single_for_device; 4.178 - ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; 4.179 - ia64_mv_dma_mapping_error *dma_mapping_error; 4.180 - ia64_mv_dma_supported *dma_supported; 4.181 - ia64_mv_local_vector_to_irq *local_vector_to_irq; 4.182 - ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; 4.183 - ia64_mv_pci_legacy_read_t *pci_legacy_read; 4.184 - ia64_mv_pci_legacy_write_t *pci_legacy_write; 4.185 - ia64_mv_inb_t *inb; 4.186 - ia64_mv_inw_t *inw; 4.187 - ia64_mv_inl_t *inl; 4.188 - ia64_mv_outb_t *outb; 4.189 - ia64_mv_outw_t *outw; 4.190 - ia64_mv_outl_t *outl; 4.191 - ia64_mv_mmiowb_t *mmiowb; 4.192 - ia64_mv_readb_t *readb; 4.193 - ia64_mv_readw_t *readw; 4.194 - ia64_mv_readl_t *readl; 4.195 - ia64_mv_readq_t *readq; 4.196 - ia64_mv_readb_relaxed_t *readb_relaxed; 4.197 - ia64_mv_readw_relaxed_t *readw_relaxed; 4.198 - ia64_mv_readl_relaxed_t *readl_relaxed; 4.199 - ia64_mv_readq_relaxed_t *readq_relaxed; 4.200 -} __attribute__((__aligned__(16))); /* align attrib? see above comment */ 4.201 - 4.202 -#define MACHVEC_INIT(name) \ 4.203 -{ \ 4.204 - #name, \ 4.205 - platform_setup, \ 4.206 - platform_cpu_init, \ 4.207 - platform_irq_init, \ 4.208 - platform_send_ipi, \ 4.209 - platform_timer_interrupt, \ 4.210 - platform_global_tlb_purge, \ 4.211 - platform_tlb_migrate_finish, \ 4.212 - platform_dma_init, \ 4.213 - platform_dma_alloc_coherent, \ 4.214 - platform_dma_free_coherent, \ 4.215 - platform_dma_map_single, \ 4.216 - platform_dma_unmap_single, \ 4.217 - platform_dma_map_sg, \ 4.218 - platform_dma_unmap_sg, \ 4.219 - platform_dma_sync_single_for_cpu, \ 4.220 - platform_dma_sync_sg_for_cpu, \ 4.221 - platform_dma_sync_single_for_device, \ 4.222 - platform_dma_sync_sg_for_device, \ 4.223 - platform_dma_mapping_error, \ 4.224 - platform_dma_supported, \ 4.225 - platform_local_vector_to_irq, \ 4.226 - platform_pci_get_legacy_mem, \ 4.227 - platform_pci_legacy_read, \ 4.228 - platform_pci_legacy_write, \ 4.229 - platform_inb, \ 4.230 - platform_inw, \ 4.231 - platform_inl, \ 4.232 - platform_outb, \ 4.233 - platform_outw, \ 4.234 - platform_outl, \ 4.235 - platform_mmiowb, \ 4.236 - platform_readb, \ 4.237 - platform_readw, \ 4.238 - platform_readl, \ 4.239 - platform_readq, \ 4.240 - platform_readb_relaxed, \ 4.241 - platform_readw_relaxed, \ 4.242 - platform_readl_relaxed, \ 4.243 - platform_readq_relaxed, \ 4.244 -} 4.245 - 4.246 -extern struct ia64_machine_vector ia64_mv; 4.247 -extern void machvec_init (const char *name); 4.248 - 4.249 -# else 4.250 -# error Unknown configuration. Update asm-ia64/machvec.h. 4.251 -# endif /* CONFIG_IA64_GENERIC */ 4.252 - 4.253 -/* 4.254 - * Declare default routines which aren't declared anywhere else: 4.255 - */ 4.256 -extern ia64_mv_dma_init swiotlb_init; 4.257 -extern ia64_mv_dma_alloc_coherent swiotlb_alloc_coherent; 4.258 -extern ia64_mv_dma_free_coherent swiotlb_free_coherent; 4.259 -extern ia64_mv_dma_map_single swiotlb_map_single; 4.260 -extern ia64_mv_dma_unmap_single swiotlb_unmap_single; 4.261 -extern ia64_mv_dma_map_sg swiotlb_map_sg; 4.262 -extern ia64_mv_dma_unmap_sg swiotlb_unmap_sg; 4.263 -extern ia64_mv_dma_sync_single_for_cpu swiotlb_sync_single_for_cpu; 4.264 -extern ia64_mv_dma_sync_sg_for_cpu swiotlb_sync_sg_for_cpu; 4.265 -extern ia64_mv_dma_sync_single_for_device swiotlb_sync_single_for_device; 4.266 -extern ia64_mv_dma_sync_sg_for_device swiotlb_sync_sg_for_device; 4.267 -extern ia64_mv_dma_mapping_error swiotlb_dma_mapping_error; 4.268 -extern ia64_mv_dma_supported swiotlb_dma_supported; 4.269 - 4.270 -/* 4.271 - * Define default versions so we can extend machvec for new platforms without having 4.272 - * to update the machvec files for all existing platforms. 4.273 - */ 4.274 -#ifndef platform_setup 4.275 -# define platform_setup machvec_setup 4.276 -#endif 4.277 -#ifndef platform_cpu_init 4.278 -# define platform_cpu_init machvec_noop 4.279 -#endif 4.280 -#ifndef platform_irq_init 4.281 -# define platform_irq_init machvec_noop 4.282 -#endif 4.283 - 4.284 -#ifndef platform_send_ipi 4.285 -# define platform_send_ipi ia64_send_ipi /* default to architected version */ 4.286 -#endif 4.287 -#ifndef platform_timer_interrupt 4.288 -# define platform_timer_interrupt machvec_timer_interrupt 4.289 -#endif 4.290 -#ifndef platform_global_tlb_purge 4.291 -# define platform_global_tlb_purge ia64_global_tlb_purge /* default to architected version */ 4.292 -#endif 4.293 -#ifndef platform_tlb_migrate_finish 4.294 -# define platform_tlb_migrate_finish machvec_noop_mm 4.295 -#endif 4.296 -#ifndef platform_dma_init 4.297 -# define platform_dma_init swiotlb_init 4.298 -#endif 4.299 -#ifndef platform_dma_alloc_coherent 4.300 -# define platform_dma_alloc_coherent swiotlb_alloc_coherent 4.301 -#endif 4.302 -#ifndef platform_dma_free_coherent 4.303 -# define platform_dma_free_coherent swiotlb_free_coherent 4.304 -#endif 4.305 -#ifndef platform_dma_map_single 4.306 -# define platform_dma_map_single swiotlb_map_single 4.307 -#endif 4.308 -#ifndef platform_dma_unmap_single 4.309 -# define platform_dma_unmap_single swiotlb_unmap_single 4.310 -#endif 4.311 -#ifndef platform_dma_map_sg 4.312 -# define platform_dma_map_sg swiotlb_map_sg 4.313 -#endif 4.314 -#ifndef platform_dma_unmap_sg 4.315 -# define platform_dma_unmap_sg swiotlb_unmap_sg 4.316 -#endif 4.317 -#ifndef platform_dma_sync_single_for_cpu 4.318 -# define platform_dma_sync_single_for_cpu swiotlb_sync_single_for_cpu 4.319 -#endif 4.320 -#ifndef platform_dma_sync_sg_for_cpu 4.321 -# define platform_dma_sync_sg_for_cpu swiotlb_sync_sg_for_cpu 4.322 -#endif 4.323 -#ifndef platform_dma_sync_single_for_device 4.324 -# define platform_dma_sync_single_for_device swiotlb_sync_single_for_device 4.325 -#endif 4.326 -#ifndef platform_dma_sync_sg_for_device 4.327 -# define platform_dma_sync_sg_for_device swiotlb_sync_sg_for_device 4.328 -#endif 4.329 -#ifndef platform_dma_mapping_error 4.330 -# define platform_dma_mapping_error swiotlb_dma_mapping_error 4.331 -#endif 4.332 -#ifndef platform_dma_supported 4.333 -# define platform_dma_supported swiotlb_dma_supported 4.334 -#endif 4.335 -#ifndef platform_local_vector_to_irq 4.336 -# define platform_local_vector_to_irq __ia64_local_vector_to_irq 4.337 -#endif 4.338 -#ifndef platform_pci_get_legacy_mem 4.339 -# define platform_pci_get_legacy_mem ia64_pci_get_legacy_mem 4.340 -#endif 4.341 -#ifndef platform_pci_legacy_read 4.342 -# define platform_pci_legacy_read ia64_pci_legacy_read 4.343 -#endif 4.344 -#ifndef platform_pci_legacy_write 4.345 -# define platform_pci_legacy_write ia64_pci_legacy_write 4.346 -#endif 4.347 -#ifndef platform_inb 4.348 -# define platform_inb __ia64_inb 4.349 -#endif 4.350 -#ifndef platform_inw 4.351 -# define platform_inw __ia64_inw 4.352 -#endif 4.353 -#ifndef platform_inl 4.354 -# define platform_inl __ia64_inl 4.355 -#endif 4.356 -#ifndef platform_outb 4.357 -# define platform_outb __ia64_outb 4.358 -#endif 4.359 -#ifndef platform_outw 4.360 -# define platform_outw __ia64_outw 4.361 -#endif 4.362 -#ifndef platform_outl 4.363 -# define platform_outl __ia64_outl 4.364 -#endif 4.365 -#ifndef platform_mmiowb 4.366 -# define platform_mmiowb __ia64_mmiowb 4.367 -#endif 4.368 -#ifndef platform_readb 4.369 -# define platform_readb __ia64_readb 4.370 -#endif 4.371 -#ifndef platform_readw 4.372 -# define platform_readw __ia64_readw 4.373 -#endif 4.374 -#ifndef platform_readl 4.375 -# define platform_readl __ia64_readl 4.376 -#endif 4.377 -#ifndef platform_readq 4.378 -# define platform_readq __ia64_readq 4.379 -#endif 4.380 -#ifndef platform_readb_relaxed 4.381 -# define platform_readb_relaxed __ia64_readb_relaxed 4.382 -#endif 4.383 -#ifndef platform_readw_relaxed 4.384 -# define platform_readw_relaxed __ia64_readw_relaxed 4.385 -#endif 4.386 -#ifndef platform_readl_relaxed 4.387 -# define platform_readl_relaxed __ia64_readl_relaxed 4.388 -#endif 4.389 -#ifndef platform_readq_relaxed 4.390 -# define platform_readq_relaxed __ia64_readq_relaxed 4.391 -#endif 4.392 - 4.393 -#endif /* _ASM_IA64_MACHVEC_H */