xref: /linux/arch/arm/kernel/isa.c (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
12874c5fdSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  *  linux/arch/arm/kernel/isa.c
41da177e4SLinus Torvalds  *
51da177e4SLinus Torvalds  *  Copyright (C) 1999 Phil Blundell
61da177e4SLinus Torvalds  *
77034b0e6SRussell King  *  ISA shared memory and I/O port support, and is required to support
87034b0e6SRussell King  *  iopl, inb, outb and friends in userspace via glibc emulation.
91da177e4SLinus Torvalds  */
101da177e4SLinus Torvalds #include <linux/stddef.h>
111da177e4SLinus Torvalds #include <linux/types.h>
121da177e4SLinus Torvalds #include <linux/fs.h>
131da177e4SLinus Torvalds #include <linux/sysctl.h>
141da177e4SLinus Torvalds #include <linux/init.h>
1587e0d6ccSBen Dooks #include <linux/io.h>
161da177e4SLinus Torvalds 
171da177e4SLinus Torvalds static unsigned int isa_membase, isa_portbase, isa_portshift;
181da177e4SLinus Torvalds 
19*de8a660bSJoel Granados static struct ctl_table ctl_isa_vars[] = {
207034b0e6SRussell King 	{
217034b0e6SRussell King 		.procname	= "membase",
227034b0e6SRussell King 		.data		= &isa_membase,
237034b0e6SRussell King 		.maxlen		= sizeof(isa_membase),
247034b0e6SRussell King 		.mode		= 0444,
256d456111SEric W. Biederman 		.proc_handler	= proc_dointvec,
267034b0e6SRussell King 	}, {
277034b0e6SRussell King 		.procname	= "portbase",
287034b0e6SRussell King 		.data		= &isa_portbase,
297034b0e6SRussell King 		.maxlen		= sizeof(isa_portbase),
307034b0e6SRussell King 		.mode		= 0444,
316d456111SEric W. Biederman 		.proc_handler	= proc_dointvec,
327034b0e6SRussell King 	}, {
337034b0e6SRussell King 		.procname	= "portshift",
347034b0e6SRussell King 		.data		= &isa_portshift,
357034b0e6SRussell King 		.maxlen		= sizeof(isa_portshift),
367034b0e6SRussell King 		.mode		= 0444,
376d456111SEric W. Biederman 		.proc_handler	= proc_dointvec,
38*de8a660bSJoel Granados 	},
391da177e4SLinus Torvalds };
401da177e4SLinus Torvalds 
411da177e4SLinus Torvalds static struct ctl_table_header *isa_sysctl_header;
421da177e4SLinus Torvalds 
431da177e4SLinus Torvalds void __init
register_isa_ports(unsigned int membase,unsigned int portbase,unsigned int portshift)441da177e4SLinus Torvalds register_isa_ports(unsigned int membase, unsigned int portbase, unsigned int portshift)
451da177e4SLinus Torvalds {
461da177e4SLinus Torvalds 	isa_membase = membase;
471da177e4SLinus Torvalds 	isa_portbase = portbase;
481da177e4SLinus Torvalds 	isa_portshift = portshift;
49ca14ccf3SLuis Chamberlain 	isa_sysctl_header = register_sysctl("bus/isa", ctl_isa_vars);
501da177e4SLinus Torvalds }
51