50 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * SH version cribbed from the MIPS copy:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This file is subject to the terms and conditions of the GNU General Public
							 | 
						||
| 
								 | 
							
								 * License.  See the file "COPYING" in the main directory of this archive
							 | 
						||
| 
								 | 
							
								 * for more details.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Copyright (C) 2003, 2004 Ralf Baechle
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#ifndef __MACH_COMMON_MANGLE_PORT_H
							 | 
						||
| 
								 | 
							
								#define __MACH_COMMON_MANGLE_PORT_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Sane hardware offers swapping of PCI/ISA I/O space accesses in hardware;
							 | 
						||
| 
								 | 
							
								 * less sane hardware forces software to fiddle with this...
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Regardless, if the host bus endianness mismatches that of PCI/ISA, then
							 | 
						||
| 
								 | 
							
								 * you can't have the numerical value of data and byte addresses within
							 | 
						||
| 
								 | 
							
								 * multibyte quantities both preserved at the same time.  Hence two
							 | 
						||
| 
								 | 
							
								 * variations of functions: non-prefixed ones that preserve the value
							 | 
						||
| 
								 | 
							
								 * and prefixed ones that preserve byte addresses.  The latters are
							 | 
						||
| 
								 | 
							
								 * typically used for moving raw data between a peripheral and memory (cf.
							 | 
						||
| 
								 | 
							
								 * string I/O functions), hence the "__mem_" prefix.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#if defined(CONFIG_SWAP_IO_SPACE)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# define ioswabb(x)		(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabb(x)	(x)
							 | 
						||
| 
								 | 
							
								# define ioswabw(x)		le16_to_cpu(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabw(x)	(x)
							 | 
						||
| 
								 | 
							
								# define ioswabl(x)		le32_to_cpu(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabl(x)	(x)
							 | 
						||
| 
								 | 
							
								# define ioswabq(x)		le64_to_cpu(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabq(x)	(x)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# define ioswabb(x)		(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabb(x)	(x)
							 | 
						||
| 
								 | 
							
								# define ioswabw(x)		(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabw(x)	cpu_to_le16(x)
							 | 
						||
| 
								 | 
							
								# define ioswabl(x)		(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabl(x)	cpu_to_le32(x)
							 | 
						||
| 
								 | 
							
								# define ioswabq(x)		(x)
							 | 
						||
| 
								 | 
							
								# define __mem_ioswabq(x)	cpu_to_le32(x)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* __MACH_COMMON_MANGLE_PORT_H */
							 |