nubus: Rework /proc/bus/nubus/s/ implementation
authorFinn Thain <fthain@telegraphics.com.au>
Sat, 13 Jan 2018 22:37:13 +0000 (17:37 -0500)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Tue, 16 Jan 2018 15:47:29 +0000 (16:47 +0100)
commit2f7dd07ecadac6bdc3d55c217d65efa2834ba1cb
treebd55d141cdf80fc39cb3aedb87f0621c9c1a51a1
parent883b8cb31a8546b9921c98b255d5f7779d1bc9f6
nubus: Rework /proc/bus/nubus/s/ implementation

The /proc/bus/nubus/s/ directory tree for any slot s is missing a lot
of information. The struct file_operations methods have long been left
unimplemented (hence the familiar compile-time warning, "Need to set
some I/O handlers here").

Slot resources have a complex structure which varies depending on board
function. The logic for interpreting these ROM data structures is found
in nubus.c. Let's not duplicate that logic in proc.c.

Create the /proc/bus/nubus/s/ inodes while scanning slot s. During
descent through slot resource subdirectories, call the new
nubus_proc_add_foo() functions to create the procfs inodes.

Also add a new function, nubus_seq_write_rsrc_mem(), to write the
contents of a particular slot resource to a given seq_file. This is
used by the procfs file_operations methods, to finally give userspace
access to slot ROM information, such as the available video modes.

Tested-by: Stan Johnson <userm57@yahoo.com>
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
drivers/nubus/nubus.c
drivers/nubus/proc.c
include/linux/nubus.h