Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * linux/arch/arm/kernel/isa.c | |
3 | * | |
4 | * Copyright (C) 1999 Phil Blundell | |
5 | * | |
1da177e4 LT |
6 | * This program is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU General Public License | |
8 | * as published by the Free Software Foundation; either version | |
9 | * 2 of the License, or (at your option) any later version. | |
7034b0e6 RK |
10 | * |
11 | * ISA shared memory and I/O port support, and is required to support | |
12 | * iopl, inb, outb and friends in userspace via glibc emulation. | |
1da177e4 | 13 | */ |
1da177e4 LT |
14 | #include <linux/stddef.h> |
15 | #include <linux/types.h> | |
16 | #include <linux/fs.h> | |
17 | #include <linux/sysctl.h> | |
18 | #include <linux/init.h> | |
87e0d6cc | 19 | #include <linux/io.h> |
1da177e4 LT |
20 | |
21 | static unsigned int isa_membase, isa_portbase, isa_portshift; | |
22 | ||
23 | static ctl_table ctl_isa_vars[4] = { | |
7034b0e6 RK |
24 | { |
25 | .ctl_name = BUS_ISA_MEM_BASE, | |
26 | .procname = "membase", | |
27 | .data = &isa_membase, | |
28 | .maxlen = sizeof(isa_membase), | |
29 | .mode = 0444, | |
30 | .proc_handler = &proc_dointvec, | |
31 | }, { | |
32 | .ctl_name = BUS_ISA_PORT_BASE, | |
33 | .procname = "portbase", | |
34 | .data = &isa_portbase, | |
35 | .maxlen = sizeof(isa_portbase), | |
36 | .mode = 0444, | |
37 | .proc_handler = &proc_dointvec, | |
38 | }, { | |
39 | .ctl_name = BUS_ISA_PORT_SHIFT, | |
40 | .procname = "portshift", | |
41 | .data = &isa_portshift, | |
42 | .maxlen = sizeof(isa_portshift), | |
43 | .mode = 0444, | |
44 | .proc_handler = &proc_dointvec, | |
45 | }, {0} | |
1da177e4 LT |
46 | }; |
47 | ||
48 | static struct ctl_table_header *isa_sysctl_header; | |
49 | ||
7034b0e6 RK |
50 | static ctl_table ctl_isa[2] = { |
51 | { | |
52 | .ctl_name = CTL_BUS_ISA, | |
53 | .procname = "isa", | |
54 | .mode = 0555, | |
55 | .child = ctl_isa_vars, | |
56 | }, {0} | |
57 | }; | |
58 | ||
59 | static ctl_table ctl_bus[2] = { | |
60 | { | |
61 | .ctl_name = CTL_BUS, | |
62 | .procname = "bus", | |
63 | .mode = 0555, | |
64 | .child = ctl_isa, | |
65 | }, {0} | |
66 | }; | |
1da177e4 LT |
67 | |
68 | void __init | |
69 | register_isa_ports(unsigned int membase, unsigned int portbase, unsigned int portshift) | |
70 | { | |
71 | isa_membase = membase; | |
72 | isa_portbase = portbase; | |
73 | isa_portshift = portshift; | |
0b4d4147 | 74 | isa_sysctl_header = register_sysctl_table(ctl_bus); |
1da177e4 | 75 | } |