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