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> | |
19 | ||
20 | static unsigned int isa_membase, isa_portbase, isa_portshift; | |
21 | ||
22 | static ctl_table ctl_isa_vars[4] = { | |
7034b0e6 RK |
23 | { |
24 | .ctl_name = BUS_ISA_MEM_BASE, | |
25 | .procname = "membase", | |
26 | .data = &isa_membase, | |
27 | .maxlen = sizeof(isa_membase), | |
28 | .mode = 0444, | |
29 | .proc_handler = &proc_dointvec, | |
30 | }, { | |
31 | .ctl_name = BUS_ISA_PORT_BASE, | |
32 | .procname = "portbase", | |
33 | .data = &isa_portbase, | |
34 | .maxlen = sizeof(isa_portbase), | |
35 | .mode = 0444, | |
36 | .proc_handler = &proc_dointvec, | |
37 | }, { | |
38 | .ctl_name = BUS_ISA_PORT_SHIFT, | |
39 | .procname = "portshift", | |
40 | .data = &isa_portshift, | |
41 | .maxlen = sizeof(isa_portshift), | |
42 | .mode = 0444, | |
43 | .proc_handler = &proc_dointvec, | |
44 | }, {0} | |
1da177e4 LT |
45 | }; |
46 | ||
47 | static struct ctl_table_header *isa_sysctl_header; | |
48 | ||
7034b0e6 RK |
49 | static ctl_table ctl_isa[2] = { |
50 | { | |
51 | .ctl_name = CTL_BUS_ISA, | |
52 | .procname = "isa", | |
53 | .mode = 0555, | |
54 | .child = ctl_isa_vars, | |
55 | }, {0} | |
56 | }; | |
57 | ||
58 | static ctl_table ctl_bus[2] = { | |
59 | { | |
60 | .ctl_name = CTL_BUS, | |
61 | .procname = "bus", | |
62 | .mode = 0555, | |
63 | .child = ctl_isa, | |
64 | }, {0} | |
65 | }; | |
1da177e4 LT |
66 | |
67 | void __init | |
68 | register_isa_ports(unsigned int membase, unsigned int portbase, unsigned int portshift) | |
69 | { | |
70 | isa_membase = membase; | |
71 | isa_portbase = portbase; | |
72 | isa_portshift = portshift; | |
0b4d4147 | 73 | isa_sysctl_header = register_sysctl_table(ctl_bus); |
1da177e4 | 74 | } |