1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  *  linux/arch/arm/kernel/isa.c
4  *
5  *  Copyright (C) 1999 Phil Blundell
6  *
7  *  ISA shared memory and I/O port support, and is required to support
8  *  iopl, inb, outb and friends in userspace via glibc emulation.
9  */
10 #include <linux/stddef.h>
11 #include <linux/types.h>
12 #include <linux/fs.h>
13 #include <linux/sysctl.h>
14 #include <linux/init.h>
15 #include <linux/io.h>
16 
17 static unsigned int isa_membase, isa_portbase, isa_portshift;
18 
19 static struct ctl_table ctl_isa_vars[4] = {
20 	{
21 		.procname	= "membase",
22 		.data		= &isa_membase,
23 		.maxlen		= sizeof(isa_membase),
24 		.mode		= 0444,
25 		.proc_handler	= proc_dointvec,
26 	}, {
27 		.procname	= "portbase",
28 		.data		= &isa_portbase,
29 		.maxlen		= sizeof(isa_portbase),
30 		.mode		= 0444,
31 		.proc_handler	= proc_dointvec,
32 	}, {
33 		.procname	= "portshift",
34 		.data		= &isa_portshift,
35 		.maxlen		= sizeof(isa_portshift),
36 		.mode		= 0444,
37 		.proc_handler	= proc_dointvec,
38 	}, {}
39 };
40 
41 static struct ctl_table_header *isa_sysctl_header;
42 
43 void __init
register_isa_ports(unsigned int membase,unsigned int portbase,unsigned int portshift)44 register_isa_ports(unsigned int membase, unsigned int portbase, unsigned int portshift)
45 {
46 	isa_membase = membase;
47 	isa_portbase = portbase;
48 	isa_portshift = portshift;
49 	isa_sysctl_header = register_sysctl("bus/isa", ctl_isa_vars);
50 }
51