1 /*
2  *  linux/arch/arm/lib/io-shark.c
3  *
4  *  by Alexander Schulz
5  *
6  * derived from:
7  * linux/arch/arm/lib/io-ebsa.S
8  * Copyright (C) 1995, 1996 Russell King
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License version 2 as
12  * published by the Free Software Foundation.
13  */
14 #include <linux/kernel.h>
15 
16 #include <asm/io.h>
17 
print_warning(void)18 void print_warning(void)
19 {
20 	printk(KERN_WARNING "ins?/outs? not implemented on this architecture\n");
21 }
22 
insl(unsigned int port,void * to,int len)23 void insl(unsigned int port, void *to, int len)
24 {
25 	print_warning();
26 }
27 
insb(unsigned int port,void * to,int len)28 void insb(unsigned int port, void *to, int len)
29 {
30 	print_warning();
31 }
32 
outsl(unsigned int port,const void * from,int len)33 void outsl(unsigned int port, const void *from, int len)
34 {
35 	print_warning();
36 }
37 
outsb(unsigned int port,const void * from,int len)38 void outsb(unsigned int port, const void *from, int len)
39 {
40 	print_warning();
41 }
42 
43 /* these should be in assembler again */
44 
45 /*
46  * Purpose: read a block of data from a hardware register to memory.
47  * Proto  : insw(int from_port, void *to, int len_in_words);
48  * Proto  : inswb(int from_port, void *to, int len_in_bytes);
49  * Notes  : increment to
50  */
51 
insw(unsigned int port,void * to,int len)52 void insw(unsigned int port, void *to, int len)
53 {
54 	int i;
55 
56 	for (i = 0; i < len; i++)
57 		((unsigned short *) to)[i] = inw(port);
58 }
59 
inswb(unsigned int port,void * to,int len)60 void inswb(unsigned int port, void *to, int len)
61 {
62 	insw(port, to, len >> 2);
63 }
64 
65 /*
66  * Purpose: write a block of data from memory to a hardware register.
67  * Proto  : outsw(int to_reg, void *from, int len_in_words);
68  * Proto  : outswb(int to_reg, void *from, int len_in_bytes);
69  * Notes  : increments from
70  */
71 
outsw(unsigned int port,const void * from,int len)72 void outsw(unsigned int port, const void *from, int len)
73 {
74 	int i;
75 
76 	for (i = 0; i < len; i++)
77 		outw(((unsigned short *) from)[i], port);
78 }
79 
outswb(unsigned int port,const void * from,int len)80 void outswb(unsigned int port, const void *from, int len)
81 {
82 	outsw(port, from, len >> 2);
83 }
84