code:
# SPDX-License-Identifier: GPL-2.0-only
output
*.pyc

repo_name: angery/linux


code:
This directory attempts to document the ABI between the Linux kernel and
userspace, and the relative stability of these interfaces.  Due to the
everchanging nature of Linux, and the differing maturity levels, these
interfaces should be used by userspace programs in different ways.

We have four different levels of ABI stability, as shown by the four
different subdirectories in this location.  Interfaces may change levels
of stability according to the rules described below.

The different levels of stability are:

  stable/
	This directory documents the interfaces that the developer has
	defined to be stable.  Userspace programs are free to use these
	interfaces with no restrictions, and backward compatibility for
	them will be guaranteed for at least 2 years.  Most interfaces
	(like syscalls) are expected to never change and always be
	available.

  testing/
	This directory documents interfaces that are felt to be stable,
	as the main development of this interface has been completed.
	The interface can be changed to add new features, but the
	current interface will not break by doing this, unless grave
	errors or security problems are found in them.  Userspace
	programs can start to rely on these interfaces, but they must be
	aware of changes that can occur before these interfaces move to
	be marked stable.  Programs that use these interfaces are
	strongly encouraged to add their name to the description of
	these interfaces, so that the kernel developers can easily
	notify them if any changes occur (see the description of the
	layout of the files below for details on how to do this.)

  obsolete/
	This directory documents interfaces that are still remaining in
	the kernel, but are marked to be removed at some later point in
	time.  The description of the interface will document the reason
	why it is obsolete and when it can be expected to be removed.

  removed/
	This directory contains a list of the old interfaces that have
	been removed from the kernel.

Every file in these directories will contain the following information:

What:		Short description of the interface
Date:		Date created
KernelVersion:	Kernel version this feature first showed up in.
Contact:	Primary contact for this interface (may be a mailing list)
Description:	Long description of the interface and how to use it.
Users:		All users of this interface who wish to be notified when
		it changes.  This is very important for interfaces in
		the "testing" stage, so that kernel developers can work
		with userspace developers to ensure that things do not
		break in ways that are unacceptable.  It is also
		important to get feedback for these interfaces to make
		sure they are working in a proper way and do not need to
		be changed further.

Note:
   The fields should be use a simple notation, compatible with ReST markup.
   Also, the file **should not** have a top-level index, like::

	===
	foo
	===

How things move between levels:

Interfaces in stable may move to obsolete, as long as the proper
notification is given.

Interfaces may be removed from obsolete and the kernel as long as the
documented amount of time has gone by.

Interfaces in the testing state can move to the stable state when the
developers feel they are finished.  They cannot be removed from the
kernel tree without going through the obsolete state first.

It's up to the developer to place their interfaces in the category they
wish for it to start out in.

Notable bits of non-ABI, which should not under any circumstances be considered
stable:

- Kconfig.  Userspace should not rely on the presence or absence of any
  particular Kconfig symbol, in /proc/config.gz, in the copy of .config
  commonly installed to /boot, or in any invocation of the kernel build
  process.

- Kernel-internal symbols.  Do not rely on the presence, absence, location, or
  type of any kernel symbol, either in System.map files or the kernel binary
  itself.  See Documentation/process/stable-api-nonsense.rst.

path: Documentation/ABI/README


code:
What:		/sys/o2cb
Date:		Dec 2005
KernelVersion:	2.6.16
Contact:	ocfs2-devel@oss.oracle.com
Description:	Ocfs2-tools looks at 'interface-revision' for versioning
		information. Each logmask/ file controls a set of debug prints
		and can be written into with the strings "allow", "deny", or
		"off". Reading the file returns the current state.
		Was renamed to /sys/fs/u2cb/
Users:		ocfs2-tools. It's sufficient to mail proposed changes to
		ocfs2-devel@oss.oracle.com.


code:
What:		/proc/i8k
Date:		November 2001
KernelVersion:	2.4.14
Contact:	Pali Rohár <pali@kernel.org>
Description:	Legacy interface for getting/setting sensor information like
		fan speed, temperature, serial number, hotkey status etc
		on Dell Laptops.
		Since the driver is now using the standard hwmon sysfs interface,
		the procfs interface is deprecated.
Users:		https://github.com/vitorafsr/i8kutils


code:
What:		/sys/bus/iio/devices/iio:deviceX/buffer/length
KernelVersion:	2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		Number of scans contained by the buffer.

		Since Kernel 5.11, multiple buffers are supported.
		so, it is better to use, instead:

			/sys/bus/iio/devices/iio:deviceX/bufferY/length

What:		/sys/bus/iio/devices/iio:deviceX/buffer/enable
KernelVersion:	2.6.35
Contact:	linux-iio@vger.kernel.org
Description:
		Actually start the buffer capture up.  Will start trigger
		if first device and appropriate.

		Since Kernel 5.11, multiple buffers are supported.
		so, it is better to use, instead:

			/sys/bus/iio/devices/iio:deviceX/bufferY/enable

What:		/sys/bus/iio/devices/iio:deviceX/scan_elements
KernelVersion:	2.6.37
Contact:	linux-iio@vger.kernel.org
Description:
		Directory containing interfaces for elements that will be
		captured for a single triggered sample set in the buffer.

		Since kernel 5.11 the scan_elements attributes are merged into
		the bufferY directory, to be configurable per buffer.

What:		/sys/.../iio:deviceX/scan_elements/in_accel_x_en
What:		/sys/.../iio:deviceX/scan_elements/in_accel_y_en
What:		/sys/.../iio:deviceX/scan_elements/in_accel_z_en
What:		/sys/.../iio:deviceX/scan_elements/in_anglvel_x_en
What:		/sys/.../iio:deviceX/scan_elements/in_anglvel_y_en
What:		/sys/.../iio:deviceX/scan_elements/in_anglvel_z_en
What:		/sys/.../iio:deviceX/scan_elements/in_magn_x_en
What:		/sys/.../iio:deviceX/scan_elements/in_magn_y_en
What:		/sys/.../iio:deviceX/scan_elements/in_magn_z_en
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_magnetic_en
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_true_en
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_magnetic_tilt_comp_en
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_true_tilt_comp_en
What:		/sys/.../iio:deviceX/scan_elements/in_timestamp_en
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_supply_en
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_en
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY-voltageZ_en
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_i_en
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_q_en
What:		/sys/.../iio:deviceX/scan_elements/in_voltage_i_en
What:		/sys/.../iio:deviceX/scan_elements/in_voltage_q_en
What:		/sys/.../iio:deviceX/scan_elements/in_incli_x_en
What:		/sys/.../iio:deviceX/scan_elements/in_incli_y_en
What:		/sys/.../iio:deviceX/scan_elements/in_pressureY_en
What:		/sys/.../iio:deviceX/scan_elements/in_pressure_en
What:		/sys/.../iio:deviceX/scan_elements/in_rot_quaternion_en
What:		/sys/.../iio:deviceX/scan_elements/in_proximity_en
KernelVersion:	2.6.37
Contact:	linux-iio@vger.kernel.org
Description:
		Scan element control for triggered data capture.

		Since kernel 5.11 the scan_elements attributes are merged into
		the bufferY directory, to be configurable per buffer.

What:		/sys/.../iio:deviceX/scan_elements/in_accel_type
What:		/sys/.../iio:deviceX/scan_elements/in_anglvel_type
What:		/sys/.../iio:deviceX/scan_elements/in_magn_type
What:		/sys/.../iio:deviceX/scan_elements/in_incli_type
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_type
What:		/sys/.../iio:deviceX/scan_elements/in_voltage_type
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_supply_type
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_i_type
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_q_type
What:		/sys/.../iio:deviceX/scan_elements/in_voltage_i_type
What:		/sys/.../iio:deviceX/scan_elements/in_voltage_q_type
What:		/sys/.../iio:deviceX/scan_elements/in_timestamp_type
What:		/sys/.../iio:deviceX/scan_elements/in_pressureY_type
What:		/sys/.../iio:deviceX/scan_elements/in_pressure_type
What:		/sys/.../iio:deviceX/scan_elements/in_rot_quaternion_type
What:		/sys/.../iio:deviceX/scan_elements/in_proximity_type
KernelVersion:	2.6.37
Contact:	linux-iio@vger.kernel.org
Description:
		Description of the scan element data storage within the buffer
		and hence the form in which it is read from user-space.
		Form is [be|le]:[s|u]bits/storagebits[>>shift].
		be or le specifies big or little endian. s or u specifies if
		signed (2's complement) or unsigned. bits is the number of bits
		of data and storagebits is the space (after padding) that it
		occupies in the buffer. shift if specified, is the shift that
		needs to be applied prior to masking out unused bits. Some
		devices put their data in the middle of the transferred elements
		with additional information on both sides.  Note that some
		devices will have additional information in the unused bits
		so to get a clean value, the bits value must be used to mask
		the buffer output value appropriately.  The storagebits value
		also specifies the data alignment.  So s48/64>>2 will be a
		signed 48 bit integer stored in a 64 bit location aligned to
		a 64 bit boundary. To obtain the clean value, shift right 2
		and apply a mask to zero the top 16 bits of the result.
		For other storage combinations this attribute will be extended
		appropriately.

		Since kernel 5.11 the scan_elements attributes are merged into
		the bufferY directory, to be configurable per buffer.

What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_index
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_supply_index
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_i_index
What:		/sys/.../iio:deviceX/scan_elements/in_voltageY_q_index
What:		/sys/.../iio:deviceX/scan_elements/in_voltage_i_index
What:		/sys/.../iio:deviceX/scan_elements/in_voltage_q_index
What:		/sys/.../iio:deviceX/scan_elements/in_accel_x_index
What:		/sys/.../iio:deviceX/scan_elements/in_accel_y_index
What:		/sys/.../iio:deviceX/scan_elements/in_accel_z_index
What:		/sys/.../iio:deviceX/scan_elements/in_anglvel_x_index
What:		/sys/.../iio:deviceX/scan_elements/in_anglvel_y_index
What:		/sys/.../iio:deviceX/scan_elements/in_anglvel_z_index
What:		/sys/.../iio:deviceX/scan_elements/in_magn_x_index
What:		/sys/.../iio:deviceX/scan_elements/in_magn_y_index
What:		/sys/.../iio:deviceX/scan_elements/in_magn_z_index
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_magnetic_index
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_true_index
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_magnetic_tilt_comp_index
What:		/sys/.../iio:deviceX/scan_elements/in_rot_from_north_true_tilt_comp_index
What:		/sys/.../iio:deviceX/scan_elements/in_incli_x_index
What:		/sys/.../iio:deviceX/scan_elements/in_incli_y_index
What:		/sys/.../iio:deviceX/scan_elements/in_timestamp_index
What:		/sys/.../iio:deviceX/scan_elements/in_pressureY_index
What:		/sys/.../iio:deviceX/scan_elements/in_pressure_index
What:		/sys/.../iio:deviceX/scan_elements/in_rot_quaternion_index
What:		/sys/.../iio:deviceX/scan_elements/in_proximity_index
KernelVersion:	2.6.37
Description:
		A single positive integer specifying the position of this
		scan element in the buffer. Note these are not dependent on
		what is enabled and may not be contiguous. Thus for user-space
		to establish the full layout these must be used in conjunction
		with all _en attributes to establish which channels are present,
		and the relevant _type attributes to establish the data storage
		format.

		Since kernel 5.11 the scan_elements attributes are merged into
		the bufferY directory, to be configurable per buffer.

What:		/sys/bus/iio/devices/iio:deviceX/buffer/watermark
KernelVersion:	4.2
Contact:	linux-iio@vger.kernel.org
Description:
		A single positive integer specifying the maximum number of scan
		elements to wait for.

		Poll will block until the watermark is reached.

		Blocking read will wait until the minimum between the requested
		read amount or the low water mark is available.

		Non-blocking read will retrieve the available samples from the
		buffer even if there are less samples then watermark level. This
		allows the application to block on poll with a timeout and read
		the available samples after the timeout expires and thus have a
		maximum delay guarantee.

		Since Kernel 5.11, multiple buffers are supported.
		so, it is better to use, instead:

			/sys/bus/iio/devices/iio:deviceX/bufferY/watermark

What:		/sys/bus/iio/devices/iio:deviceX/buffer/data_available
KernelVersion: 4.16
Contact:	linux-iio@vger.kernel.org
Description:
		A read-only value indicating the bytes of data available in the
		buffer. In the case of an output buffer, this indicates the
		amount of empty space available to write data to. In the case of
		an input buffer, this indicates the amount of data available for
		reading.

		Since Kernel 5.11, multiple buffers are supported.
		so, it is better to use, instead:

			/sys/bus/iio/devices/iio:deviceX/bufferY/data_available


code:
What:		/sys/bus/usb/devices/.../power/level
Date:		March 2007
KernelVersion:	2.6.21
Contact:	Alan Stern <stern@rowland.harvard.edu>
Description:
		Each USB device directory will contain a file named
		power/level.  This file holds a power-level setting for
		the device, either "on" or "auto".

		"on" means that the device is not allowed to autosuspend,
		although normal suspends for system sleep will still
		be honored.  "auto" means the device will autosuspend
		and autoresume in the usual manner, according to the
		capabilities of its driver.

		During normal use, devices should be left in the "auto"
		level.  The "on" level is meant for administrative uses.
		If you want to suspend a device immediately but leave it
		free to wake up in response to I/O requests, you should
		write "0" to power/autosuspend.

		Device not capable of proper suspend and resume should be
		left in the "on" level.  Although the USB spec requires
		devices to support suspend/resume, many of them do not.
		In fact so many don't that by default, the USB core
		initializes all non-hub devices in the "on" level.  Some
		drivers may change this setting when they are bound.

		This file is deprecated and will be removed after 2010.
		Use the power/control file instead; it does exactly the
		same thing.


code:
These files are deprecated and will be removed. The same files are available
under /sys/bus/typec (see Documentation/ABI/testing/sysfs-bus-typec).

What:		/sys/class/typec/<port|partner|cable>/<dev>/svid
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		The SVID (Standard or Vendor ID) assigned by USB-IF for this
		alternate mode.

What:		/sys/class/typec/<port|partner|cable>/<dev>/mode<index>/
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Every supported mode will have its own directory. The name of
		a mode will be "mode<index>" (for example mode1), where <index>
		is the actual index to the mode VDO returned by Discover Modes
		USB power delivery command.

What:		/sys/class/typec/<port|partner|cable>/<dev>/mode<index>/description
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Shows description of the mode. The description is optional for
		the drivers, just like with the Billboard Devices.

What:		/sys/class/typec/<port|partner|cable>/<dev>/mode<index>/vdo
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Shows the VDO in hexadecimal returned by Discover Modes command
		for this mode.

What:		/sys/class/typec/<port|partner|cable>/<dev>/mode<index>/active
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Shows if the mode is active or not. The attribute can be used
		for entering/exiting the mode with partners and cable plugs, and
		with the port alternate modes it can be used for disabling
		support for specific alternate modes. Entering/exiting modes is
		supported as synchronous operation so write(2) to the attribute
		does not return until the enter/exit mode operation has
		finished. The attribute is notified when the mode is
		entered/exited so poll(2) on the attribute wakes up.
		Entering/exiting a mode will also generate uevent KOBJ_CHANGE.

		Valid values: yes, no


code:
What:		/sys/devices/system/cpu/cpuidle/current_governor_ro
Date:		April, 2020
Contact:	linux-pm@vger.kernel.org
Description:
	current_governor_ro shows current using cpuidle governor, but read only.
	with the update that cpuidle governor can be changed at runtime in default,
	both current_governor and current_governor_ro co-exist under
	/sys/devices/system/cpu/cpuidle/ file, it's duplicate so make
	current_governor_ro obsolete.


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/arvo/roccatarvo<minor>/actual_profile
Date:		Januar 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 1-5.
		When read, this attribute returns the number of the actual
		profile which is also the profile that's active on device startup.
		When written this attribute activates the selected profile
		immediately.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/arvo/roccatarvo<minor>/button
Date:		Januar 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The keyboard can store short macros with consist of 1 button with
		several modifier keys internally.
		When written, this file lets one set the sequence for a specific
		button for a specific profile. Button and profile numbers are
		included in written data. The data has to be 24 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/arvo/roccatarvo<minor>/info
Date:		Januar 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns some info about the device like the
		installed firmware version.
		The size of the data is 8 bytes in size.
		This file is readonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/arvo/roccatarvo<minor>/key_mask
Date:		Januar 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The keyboard lets the user deactivate 5 certain keys like the
		windows and application keys, to protect the user from the outcome
		of accidentally pressing them.
		The integer value of this attribute has bits 0-4 set depending
		on the state of the corresponding key.
		When read, this file returns the current state of the buttons.
		When written, the given buttons are activated/deactivated
		immediately.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/arvo/roccatarvo<minor>/mode_key
Date:		Januar 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The keyboard has a condensed layout without num-lock key.
		Instead it uses a mode-key which activates a gaming mode where
		the assignment of the number block changes.
		The integer value of this attribute ranges from 0 (OFF) to 1 (ON).
		When read, this file returns the actual state of the key.
		When written, the key is activated/deactivated immediately.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/actual_profile
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 0-4.
		When read, this attribute returns the number of the actual
		profile. This value is persistent, so its equivalent to the
		profile that's active when the device is powered on next time.
		When written, this file sets the number of the startup profile
		and the device activates this profile immediately.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/info
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		The data is 6 bytes long.
		This file is readonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/key_mask
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one deactivate certain keys like
		windows and application keys, to prevent accidental presses.
		Profile number for which this settings occur is included in
		written data. The data has to be 6 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_capslock
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		capslock key for a specific profile. Profile number is included
		in written data. The data has to be 6 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_easyzone
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		easyzone keys for a specific profile. Profile number is included
		in written data. The data has to be 65 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_function
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		function keys for a specific profile. Profile number is included
		in written data. The data has to be 41 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_macro
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the macro
		keys for a specific profile. Profile number is included in
		written data. The data has to be 35 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_media
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the media
		keys for a specific profile. Profile number is included in
		written data. The data has to be 29 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/keys_thumbster
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		thumbster keys for a specific profile. Profile number is included
		in written data. The data has to be 23 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/last_set
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the time in secs since
		epoch in which the last configuration took place.
		The data has to be 20 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/light
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the backlight intensity for
		a specific profile. Profile number is included in written data.
		The data has to be 10 bytes long for Isku, IskuFX needs	16 bytes
		of data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/macro
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one store macros with max 500
		keystrokes for a specific button for a specific profile.
		Button and profile numbers are included in written data.
		The data has to be 2083 bytes long.
		Before reading this file, control has to be written to select
		which profile and key to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/reset
Date:		November 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one reset the device.
		The data has to be 3 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/control
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one select which data from which
		profile will be	read next. The data has to be 3 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/talk
Date:		June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one trigger easyshift functionality
		from the host.
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/talkfx
Date:		February 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one trigger temporary color schemes
		from the host.
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 0-4.
                When read, this attribute returns the number of the actual
                profile. This value is persistent, so its equivalent to the
                profile that's active when the mouse is powered on next time.
		When written, this file sets the number of the startup profile
		and the mouse activates this profile immediately.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 0-4.
                When read, this attribute returns the number of the actual
                profile. This value is persistent, so its equivalent to the
                profile that's active when the mouse is powered on next time.
		When written, this file sets the number of the startup profile
		and the mouse activates this profile immediately.
		Please use actual_profile, it does the same thing.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns the raw integer version number of the
		firmware reported by the mouse. Using the integer value eases
		further usage in other programs. To receive the real version
		number the decimal point has to be shifted 2 positions to the
		left. E.g. a returned value of 121 means 1.21
		This file is readonly.
		Please read binary attribute info which contains firmware version.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/info
Date:		November 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		When written, the device can be reset.
		The data is 8 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/macro
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store a macro with max 500 key/button strokes
		internally.
		When written, this file lets one set the sequence for a specific
		button for a specific profile. Button and profile numbers are
		included in written data. The data has to be 2082 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_buttons
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When written, this file lets one write the respective profile
		buttons back to the mouse. The data has to be 77 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_buttons
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When read, these files return the respective profile buttons.
		The returned data is 77 bytes in size.
		This file is readonly.
		Write control to select profile and read profile_buttons instead.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_settings
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When written, this file lets one write the respective profile
		settings back to the mouse. The data has to be 43 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_settings
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When read, these files return the respective profile settings.
		The returned data is 43 bytes in size.
		This file is readonly.
		Write control to select profile and read profile_settings instead.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/sensor
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse has a tracking- and a distance-control-unit. These
		can be activated/deactivated and the lift-off distance can be
		set. The data has to be 6 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/talk
Date:		May 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	Used to active some easy* functions of the mouse from outside.
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written a calibration process for the tracking control unit
		can be initiated/cancelled. Also lets one read/write sensor
		registers.
		The data has to be 4 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu_image
Date:		October 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read the mouse returns a 30x30 pixel image of the
		sampled underground. This works only in the course of a
		calibration process initiated with tcu.
		The returned data is 1028 bytes in size.
		This file is readonly.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/actual_profile
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. actual_profile holds number of actual profile.
		This value is persistent, so its value determines the profile
		that's active when the mouse is powered on next time.
		When written, the mouse activates the set profile immediately.
		The data has to be 3 bytes long.
		The mouse will reject invalid data.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/control
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one select which data from which
		profile will be	read next. The data has to be 3 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/info
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		When written, the device can be reset.
		The data is 6 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/macro
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store a macro with max 500 key/button strokes
		internally.
		When written, this file lets one set the sequence for a specific
		button for a specific profile. Button and profile numbers are
		included in written data. The data has to be 2082 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/profile_buttons
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When written, this file lets one write the respective profile
		buttons back to the mouse. The data has to be 59 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/profile_settings
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When written, this file lets one write the respective profile
		settings back to the mouse. The data has to be 31 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/sensor
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse has a tracking- and a distance-control-unit. These
		can be activated/deactivated and the lift-off distance can be
		set. The data has to be 6 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/talk
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	Used to active some easy* functions of the mouse from outside.
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/tcu
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written a calibration process for the tracking control unit
		can be initiated/cancelled. Also lets one read/write sensor
		registers.
		The data has to be 4 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/tcu_image
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read the mouse returns a 30x30 pixel image of the
		sampled underground. This works only in the course of a
		calibration process initiated with tcu.
		The returned data is 1028 bytes in size.
		This file is readonly.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_cpi
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 1-4.
		When read, this attribute returns the number of the active
		cpi level.
		This file is readonly.
		Has never been used. If bookkeeping is done, it's done in userland tools.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_profile
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 0-4.
		When read, this attribute returns the number of the active
		profile.
		When written, the mouse activates this profile immediately.
		The profile that's active when powered down is the same that's
		active when the mouse is powered on.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_sensitivity_x
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 1-10.
		When read, this attribute returns the number of the actual
		sensitivity in x direction.
		This file is readonly.
		Has never been used. If bookkeeping is done, it's done in userland tools.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/actual_sensitivity_y
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 1-10.
		When read, this attribute returns the number of the actual
		sensitivity in y direction.
		This file is readonly.
		Has never been used. If bookkeeping is done, it's done in userland tools.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/firmware_version
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns the raw integer version number of the
		firmware reported by the mouse. Using the integer value eases
		further usage in other programs. To receive the real version
		number the decimal point has to be shifted 2 positions to the
		left. E.g. a returned value of 121 means 1.21
		This file is readonly.
		Obsoleted by binary sysfs attribute "info".
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/info
Date:		November 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		When written, the device can be reset.
		The data is 6 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile_buttons
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When written, this file lets one write the respective profile
		buttons back to the mouse. The data has to be 23 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile[1-5]_buttons
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When read, these files return the respective profile buttons.
		The returned data is 23 bytes in size.
		This file is readonly.
		Write control to select profile and read profile_buttons instead.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile_settings
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When written, this file lets one write the respective profile
		settings back to the mouse. The data has to be 16 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kovaplus/roccatkovaplus<minor>/profile[1-5]_settings
Date:		January 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When read, these files return the respective profile settings.
		The returned data is 16 bytes in size.
		This file is readonly.
		Write control to select profile and read profile_settings instead.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/control
Date:		October 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, cpi, button and light settings can be configured.
		When read, actual cpi setting and sensor data are returned.
		The data has to be 8 bytes long.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/actual_cpi
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	It is possible to switch the cpi setting of the mouse with the
		press of a button.
		When read, this file returns the raw number of the actual cpi
		setting reported by the mouse. This number has to be further
		processed to receive the real dpi value:

		===== ====
		VALUE DPI
		===== ====
		1     400
		2     800
		4     1600
		===== ====

		This file is readonly.
		Has never been used. If bookkeeping is done, it's done in userland tools.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/actual_profile
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns the number of the actual profile in
		range 0-4.
		This file is readonly.
		Please use binary attribute "settings" which provides this information.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/firmware_version
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns the raw integer version number of the
		firmware reported by the mouse. Using the integer value eases
		further usage in other programs. To receive the real version
		number the decimal point has to be shifted 2 positions to the
		left. E.g. a returned value of 138 means 1.38
		This file is readonly.
		Please use binary attribute "info" which provides this information.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/info
Date:		November 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		When written, the device can be reset.
		The data is 6 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile_buttons
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When written, this file lets one write the respective profile
		buttons back to the mouse. The data has to be 19 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile[1-5]_buttons
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When read, these files return the respective profile buttons.
		The returned data is 19 bytes in size.
		This file is readonly.
		Write control to select profile and read profile_buttons instead.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile_settings
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When written, this file lets one write the respective profile
		settings back to the mouse. The data has to be 13 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/profile[1-5]_settings
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When read, these files return the respective profile settings.
		The returned data is 13 bytes in size.
		This file is readonly.
		Write control to select profile and read profile_settings instead.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/settings
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns the settings stored in the mouse.
		The size of the data is 3 bytes and holds information on the
		startup_profile.
		When written, this file lets write settings back to the mouse.
		The data has to be 3 bytes long. The mouse will reject invalid
		data.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/pyra/roccatpyra<minor>/startup_profile
Date:		August 2010
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The integer value of this attribute ranges from 0-4.
                When read, this attribute returns the number of the profile
                that's active when the mouse is powered on.
		This file is readonly.
		Please use binary attribute "settings" which provides this information.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/control
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one select which data from which
		profile will be	read next. The data has to be 3 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/profile
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. profile holds index of actual profile.
		This value is persistent, so its value determines the profile
		that's active when the device is powered on next time.
		When written, the device activates the set profile immediately.
		The data has to be 3 bytes long.
		The device will reject invalid data.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/keys_primary
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the default of all keys for
		a specific profile. Profile index is included in written data.
		The data has to be 125 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/keys_function
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		function keys for a specific profile. Profile index is included
		in written data. The data has to be 95 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/keys_macro
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the macro
		keys for a specific profile. Profile index is included in
		written data. The data has to be 35 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/keys_thumbster
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		thumbster keys for a specific profile. Profile index is included
		in written data. The data has to be 23 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/keys_extra
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		capslock and function keys for a specific profile. Profile index
		is included in written data. The data has to be 8 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/keys_easyzone
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the function of the
		easyzone keys for a specific profile. Profile index is included
		in written data. The data has to be 294 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/key_mask
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one deactivate certain keys like
		windows and application keys, to prevent accidental presses.
		Profile index for which this settings occur is included in
		written data. The data has to be 6 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/light
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the backlight intensity for
		a specific profile. Profile index is included in written data.
		This attribute is only valid for the glow and pro variant.
		The data has to be 16 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/macro
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one store macros with max 480
		keystrokes for a specific button for a specific profile.
		Button and profile indexes are included in written data.
		The data has to be 2002 bytes long.
		Before reading this file, control has to be written to select
		which profile and key to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/info
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		The data is 8 bytes long.
		This file is readonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/reset
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one reset the device.
		The data has to be 3 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/talk
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one trigger easyshift functionality
		from the host.
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/light_control
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one switch between stored and custom
		light settings.
		This attribute is only valid for the pro variant.
		The data has to be 8 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/stored_lights
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set per-key lighting for different
		layers.
		This attribute is only valid for the pro variant.
		The data has to be 1382 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/custom_lights
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the actual per-key lighting.
		This attribute is only valid for the pro variant.
		The data has to be 20 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/ryos/roccatryos<minor>/light_macro
Date:		October 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set a light macro that is looped
		whenever the device gets in dimness mode.
		This attribute is only valid for the pro variant.
		The data has to be 2002 bytes long.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net


code:
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/buttons
Date:		Mai 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split into general settings and
		button settings. The buttons variable holds information about
		button layout. When written, this file lets one write the
		respective profile buttons to the mouse. The data has to be
		47 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/control
Date:		Mai 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one select which data from which
		profile will be	read next. The data has to be 3 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/general
Date:		Mai 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split into general settings and
		button settings. A profile holds information like resolution,
		sensitivity and light effects.
		When written, this file lets one write the respective profile
		settings back to the mouse. The data has to be 43 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/info
Date:		Mai 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		When written, the device can be reset.
		The data is 8 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/macro
Date:		Mai 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one store macros with max 500
		keystrokes for a specific button for a specific profile.
		Button and profile numbers are included in written data.
		The data has to be 2083 bytes long.
		Before reading this file, control has to be written to select
		which profile and key to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/profile
Date:		Mai 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. profile holds number of actual profile.
		This value is persistent, so its value determines the profile
		that's active when the mouse is powered on next time.
		When written, the mouse activates the set profile immediately.
		The data has to be 3 bytes long.
		The mouse will reject invalid data.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/savu/roccatsavu<minor>/sensor
Date:		July 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse has a Avago ADNS-3090 sensor.
		This file allows reading and writing of the mouse sensors registers.
		The data has to be 4 bytes long.
Users:		http://roccat.sourceforge.net


code:
These files allow sending arbitrary IPC commands to the PMC/SCU which
may be dangerous. These will be removed eventually and should not be
used in any new applications.

What:		/sys/bus/platform/devices/INT34D2:00/simplecmd
Date:		Jun 2015
KernelVersion:	4.1
Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
Description:	This interface allows userspace to send an arbitrary
		IPC command to the PMC/SCU.

		Format: %d %d where first number is command and
		second number is subcommand.

What:		/sys/bus/platform/devices/INT34D2:00/northpeak
Date:		Jun 2015
KernelVersion:	4.1
Contact:	Mika Westerberg <mika.westerberg@linux.intel.com>
Description:	This interface allows userspace to enable and disable
		Northpeak through the PMC/SCU.

		Format: %u.


code:
What:		/sys/firmware/acpi/hotplug/force_remove
Date:		Mar 2017
Contact:	Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Description:
		Since the force_remove is inherently broken and dangerous to
		use for some hotplugable resources like memory (because ignoring
		the offline failure might lead to memory corruption and crashes)
		enabling this knob is not safe and thus unsupported.


code:
What:		/sys/class/gpio/
Date:		July 2008
KernelVersion:	2.6.27
Contact:	Linus Walleij <linusw@kernel.org>
Description:

  As a Kconfig option, individual GPIO signals may be accessed from
  userspace.  GPIOs are only made available to userspace by an explicit
  "export" operation.  If a given GPIO is not claimed for use by
  kernel code, it may be exported by userspace (and unexported later).
  Kernel code may export it for complete or partial access.

  GPIOs are identified as they are inside the kernel, using integers in
  the range 0..INT_MAX.  See Documentation/admin-guide/gpio for more information.

  ::

    /sys/class/gpio
	/export ... asks the kernel to export a GPIO to userspace
	/unexport ... to return a GPIO to the kernel
	/gpioN ... for each exported GPIO #N OR
	/<LINE-NAME> ... for a properly named GPIO line
	    /value ... always readable, writes fail for input GPIOs
	    /direction ... r/w as: in, out (default low); write: high, low
	    /edge ... r/w as: none, falling, rising, both
	/gpiochipN ... for each gpiochip; #N is its first GPIO
	    /base ... (r/o) same as N
	    /label ... (r/o) descriptive, not necessarily unique
	    /ngpio ... (r/o) number of GPIOs; numbered N to N + (ngpio - 1)

  This ABI is deprecated and will be removed after 2020. It is
  replaced with the GPIO character device.

path: Documentation/ABI/obsolete/sysfs-gpio


code:
This ABI is renamed and moved to a new location /sys/kernel/fadump/enabled.

What:		/sys/kernel/fadump_enabled
Date:		Feb 2012
Contact:	linuxppc-dev@lists.ozlabs.org
Description:	read only
		Primarily used to identify whether the FADump is enabled in
		the kernel or not.
User:		Kdump service


code:
This ABI is renamed and moved to a new location /sys/kernel/fadump/registered.

What:		/sys/kernel/fadump_registered
Date:		Feb 2012
Contact:	linuxppc-dev@lists.ozlabs.org
Description:	read/write
		Helps to control the dump collect feature from userspace.
		Setting 1 to this file enables the system to collect the
		dump and 0 to disable it.
User:		Kdump service


code:
This ABI is renamed and moved to a new location /sys/kernel/fadump/release_mem.

What:		/sys/kernel/fadump_release_mem
Date:		Feb 2012
Contact:	linuxppc-dev@lists.ozlabs.org
Description:	write only
		This is a special sysfs file and only available when
		the system is booted to capture the vmcore using FADump.
		It is used to release the memory reserved by FADump to
		save the crash dump.


code:
What:		/sys/fs/selinux/checkreqprot
Date:		April 2005 (predates git)
KernelVersion:	2.6.12-rc2 (predates git)
Contact:	selinux@vger.kernel.org
Description:

	The selinuxfs "checkreqprot" node allows SELinux to be configured
	to check the protection requested by userspace for mmap/mprotect
	calls instead of the actual protection applied by the kernel.
	This was a compatibility mechanism for legacy userspace and
	for the READ_IMPLIES_EXEC personality flag.  However, if set to
	1, it weakens security by allowing mappings to be made executable
	without authorization by policy.  The default value of checkreqprot
	at boot was changed starting in Linux v4.4 to 0 (i.e. check the
	actual protection), and Android and Linux distributions have been
	explicitly writing a "0" to /sys/fs/selinux/checkreqprot during
	initialization for some time.  Support for setting checkreqprot to 1
	will be	removed no sooner than June 2021, at which point the kernel
	will always cease using checkreqprot internally and will always
	check the actual protections being applied upon mmap/mprotect calls.
	The checkreqprot selinuxfs node will remain for backward compatibility
	but will discard writes of the "0" value and will reject writes of the
	"1" value when this mechanism is removed.


code:
What:		/sys/fs/selinux/disable
Date:		April 2005 (predates git)
KernelVersion:	2.6.12-rc2 (predates git)
Contact:	selinux@vger.kernel.org
Description:

	The selinuxfs "disable" node allows SELinux to be disabled at runtime
	prior to a policy being loaded into the kernel.  If disabled via this
	mechanism, SELinux will remain disabled until the system is rebooted.

	The preferred method of disabling SELinux is via the "selinux=0" boot
	parameter, but the selinuxfs "disable" node was created to make it
	easier for systems with primitive bootloaders that did not allow for
	easy modification of the kernel command line.  Unfortunately, allowing
	for SELinux to be disabled at runtime makes it difficult to secure the
	kernel's LSM hooks using the "__ro_after_init" feature.

	Thankfully, the need for the SELinux runtime disable appears to be
	gone, the default Kconfig configuration disables this selinuxfs node,
	and only one of the major distributions, Fedora, supports disabling
	SELinux at runtime.  Fedora is in the process of removing the
	selinuxfs "disable" node and once that is complete we will start the
	slow process of removing this code from the kernel.

	More information on /sys/fs/selinux/disable can be found under the
	CONFIG_SECURITY_SELINUX_DISABLE Kconfig option.


code:
What:		devfs
Date:		July 2005 (scheduled), finally removed in kernel v2.6.18
Contact:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Description:
	devfs has been unmaintained for a number of years, has unfixable
	races, contains a naming policy within the kernel that is
	against the LSB, and can be replaced by using udev.

	The files fs/devfs/*, include/linux/devfs_fs*.h were removed,
	along with the assorted devfs function calls throughout the
	kernel tree.

Users:

path: Documentation/ABI/removed/devfs


code:
What:		dv1394 (a.k.a. "OHCI-DV I/O support" for FireWire)
Date:		May 2010 (scheduled), finally removed in kernel v2.6.37
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	/dev/dv1394/* were character device files, one for each FireWire
	controller and for NTSC and PAL respectively, from which DV data
	could be received by read() or transmitted by write().  A few
	ioctl()s allowed limited control.
	This special-purpose interface has been superseded by libraw1394 +
	libiec61883 which are functionally equivalent, support HDV, and
	transparently work on top of the newer firewire kernel drivers.

Users:
	ffmpeg/libavformat (if configured for DV1394)


code:
What:		ip_queue
Date:		finally removed in kernel v3.5.0
Contact:	Pablo Neira Ayuso <pablo@netfilter.org>
Description:
	ip_queue has been replaced by nfnetlink_queue which provides
	more advanced queueing mechanism to user-space. The ip_queue
	module was already announced to become obsolete years ago.

Users:


code:
What:		tcp_dma_copybreak sysctl
Date:		Removed in kernel v3.13
Contact:	Dan Williams <dan.j.williams@intel.com>
Description:
	Formerly the lower limit, in bytes, of the size of socket reads
	that will be offloaded to a DMA copy engine.  Removed due to
	coherency issues of the cpu potentially touching the buffers
	while dma is in flight.


code:
What:		/sys/o2cb symlink
Date:		May 2011
KernelVersion:	3.0
Contact:	ocfs2-devel@oss.oracle.com
Description:	This is a symlink: /sys/o2cb to /sys/fs/o2cb. The symlink is
		removed when new versions of ocfs2-tools which know to look
		in /sys/fs/o2cb are sufficiently prevalent. Don't code new
		software to look here, it should try /sys/fs/o2cb instead.
Users:		ocfs2-tools. It's sufficient to mail proposed changes to
		ocfs2-devel@oss.oracle.com.


code:
What:		raw1394 (a.k.a. "Raw IEEE1394 I/O support" for FireWire)
Date:		May 2010 (scheduled), finally removed in kernel v2.6.37
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	/dev/raw1394 was a character device file that allowed low-level
	access to FireWire buses.  Its major drawbacks were its inability
	to implement sensible device security policies, and its low level
	of abstraction that required userspace clients to duplicate much
	of the kernel's ieee1394 core functionality.

	Replaced by /dev/fw*, i.e. the <linux/firewire-cdev.h> ABI of
	firewire-core.

Users:
	libraw1394 (works with firewire-cdev too, transparent to library ABI
	users)


code:
What:		/sys/bus/nd/devices/regionX/nfit/ecc_unit_size
Date:		Aug, 2017
KernelVersion:	v4.14 (Removed v4.18)
Contact:	nvdimm@lists.linux.dev
Description:
		(RO) Size of a write request to a DIMM that will not incur a
		read-modify-write cycle at the memory controller.

		When the nfit driver initializes it runs an ARS (Address Range
		Scrub) operation across every pmem range. Part of that process
		involves determining the ARS capabilities of a given address
		range. One of the capabilities that is reported is the 'Clear
		Uncorrectable Error Range Length Unit Size' (see: ACPI 6.2
		section 9.20.7.4 Function Index 1 - Query ARS Capabilities).
		This property indicates the boundary at which the NVDIMM may
		need to perform read-modify-write cycles to maintain ECC (Error
		Correcting Code) blocks.


code:
rfkill - radio frequency (RF) connector kill switch support

For details to this subsystem look at Documentation/driver-api/rfkill.rst.

What:		/sys/class/rfkill/rfkill[0-9]+/claim
Date:		09-Jul-2007
KernelVersion	v2.6.22
Contact:	linux-wireless@vger.kernel.org
Description:	This file was deprecated because there no longer was a way to
		claim just control over a single rfkill instance.
		This file was scheduled to be removed in 2012, and was removed
		in 2016.
Values:		0: Kernel handles events


code:
This ABI is moved to /sys/firmware/opal/mpipl/release_core.

What:		/sys/kernel/fadump_release_opalcore
Date:		Sep 2019
Contact:	linuxppc-dev@lists.ozlabs.org
Description:	write only
		The sysfs file is available when the system is booted to
		collect the dump on OPAL based machine. It used to release
		the memory used to collect the opalcore.


code:
What:		/sys/kernel/uids/<uid>/cpu_shares
Date:		December 2007, finally removed in kernel v2.6.34-rc1
Contact:	Dhaval Giani <dhaval@linux.vnet.ibm.com>
		Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Description:
		The /sys/kernel/uids/<uid>/cpu_shares tunable is used
		to set the cpu bandwidth a user is allowed. This is a
		proportional value. What that means is that if there
		are two users logged in, each with an equal number of
		shares, then they will get equal CPU bandwidth. Another
		example would be, if User A has shares = 1024 and user
		B has shares = 2048, User B will get twice the CPU
		bandwidth user A will. For more details refer
		Documentation/scheduler/sched-design-CFS.rst


code:
What:		/sys/devices/system/machinecheck/machinecheckX/tolerant
Contact:	Borislav Petkov <bp@suse.de>
Date:		Dec, 2021
Description:
		Unused and obsolete after the advent of recoverable machine
		checks (see last sentence below) and those are present since
		2010 (Nehalem).

		Original description:

		The entries appear for each CPU, but they are truly shared
		between all CPUs.

		Tolerance level. When a machine check exception occurs for a
		non corrected machine check the kernel can take different
		actions.

		Since machine check exceptions can happen any time it is
		sometimes risky for the kernel to kill a process because it
		defies normal kernel locking rules. The tolerance level
		configures how hard the kernel tries to recover even at some
		risk of	deadlock. Higher tolerant values trade potentially
		better uptime with the risk of a crash or even corruption
		(for tolerant >= 3).

		==  ===========================================================
		 0  always panic on uncorrected errors, log corrected errors
		 1  panic or SIGBUS on uncorrected errors, log corrected errors
		 2  SIGBUS or log uncorrected errors, log corrected errors
		 3  never panic or SIGBUS, log all errors (for testing only)
		==  ===========================================================

		Default: 1

		Note this only makes a difference if the CPU allows recovery
		from a machine check exception. Current x86 CPUs generally
		do not.

path: Documentation/ABI/removed/sysfs-mce


code:
What:		video1394 (a.k.a. "OHCI-1394 Video support" for FireWire)
Date:		May 2010 (scheduled), finally removed in kernel v2.6.37
Contact:	linux1394-devel@lists.sourceforge.net
Description:
	/dev/video1394/* were character device files, one for each FireWire
	controller, which were used for isochronous I/O.  It was added as an
	alternative to raw1394's isochronous I/O functionality which had
	performance issues in its first generation.  Any video1394 user had
	to use raw1394 + libraw1394 too because video1394 did not provide
	asynchronous I/O for device discovery and configuration.

	Replaced by /dev/fw*, i.e. the <linux/firewire-cdev.h> ABI of
	firewire-core.

Users:
	libdc1394 (works with firewire-cdev too, transparent to library ABI
	users)


code:
What:		/dev/fw[0-9]+
Date:		May 2007
KernelVersion:	2.6.22
Contact:	linux1394-devel@lists.sourceforge.net
Description:
		The character device files /dev/fw* are the interface between
		firewire-core and IEEE 1394 device drivers implemented in
		userspace.  The ioctl(2)- and read(2)-based ABI is defined and
		documented in <linux/firewire-cdev.h>.

		This ABI offers most of the features which firewire-core also
		exposes to kernelspace IEEE 1394 drivers.

		Each /dev/fw* is associated with one IEEE 1394 node, which can
		be remote or local nodes.  Operations on a /dev/fw* file have
		different scope:

		  - The 1394 node which is associated with the file:

			  - Asynchronous request transmission
			  - Get the Configuration ROM
			  - Query node ID
			  - Query maximum speed of the path between this node
			    and local node

		  - The 1394 bus (i.e. "card") to which the node is attached to:

			  - Isochronous stream transmission and reception
			  - Asynchronous stream transmission and reception
			  - Asynchronous broadcast request transmission
			  - PHY packet transmission and reception
			  - Allocate, reallocate, deallocate isochronous
			    resources (channels, bandwidth) at the bus's IRM
			  - Query node IDs of local node, root node, IRM, bus
			    manager
			  - Query cycle time
			  - Bus reset initiation, bus reset event reception

		  - All 1394 buses:

			  - Allocation of IEEE 1212 address ranges on the local
			    link layers, reception of inbound requests to such
			    an address range, asynchronous response transmission
			    to inbound requests
			  - Addition of descriptors or directories to the local
			    nodes' Configuration ROM

		Due to the different scope of operations and in order to let
		userland implement different access permission models, some
		operations are restricted to /dev/fw* files that are associated
		with a local node:

			  - Addition of descriptors or directories to the local
			    nodes' Configuration ROM
			  - PHY packet transmission and reception

		A /dev/fw* file remains associated with one particular node
		during its entire life time.  Bus topology changes, and hence
		node ID changes, are tracked by firewire-core.  ABI users do not
		need to be aware of topology.

		The following file operations are supported:

		open(2)
		    Currently the only useful flags are O_RDWR.

		ioctl(2)
		    Initiate various actions.  Some take immediate effect, others
		    are performed asynchronously while or after the ioctl returns.
		    See the inline documentation in <linux/firewire-cdev.h> for
		    descriptions of all ioctls.

		poll(2), select(2), epoll_wait(2) etc.
		    Watch for events to become available to be read.

		read(2)
		    Receive various events.  There are solicited events like
		    outbound asynchronous transaction completion or isochronous
		    buffer completion, and unsolicited events such as bus resets,
		    request reception, or PHY packet reception.  Always use a read
		    buffer which is large enough to receive the largest event that
		    could ever arrive.  See <linux/firewire-cdev.h> for descriptions
		    of all event types and for which ioctls affect reception of
		    events.

		mmap(2)
		    Allocate a DMA buffer for isochronous reception or transmission
		    and map it into the process address space.  The arguments should
		    be used as follows:  addr = NULL, length = the desired buffer
		    size, i.e. number of packets times size of largest packet,
		    prot = at least PROT_READ for reception and at least PROT_WRITE
		    for transmission, flags = MAP_SHARED, fd = the handle to the
		    /dev/fw*, offset = 0.

		Isochronous reception works in packet-per-buffer fashion except
		for multichannel reception which works in buffer-fill mode.

		munmap(2)
		    Unmap the isochronous I/O buffer from the process address space.

		close(2)
		    Besides stopping and freeing I/O contexts that were associated
		    with the file descriptor, back out any changes to the local
		    nodes' Configuration ROM.  Deallocate isochronous channels and
		    bandwidth at the IRM that were marked for kernel-assisted
		    re- and deallocation.

Users:		libraw1394;
		libdc1394;
		libhinawa;
		tools like linux-firewire-utils, fwhack, ...

path: Documentation/ABI/stable/firewire-cdev


code:
What:		/sys/fs/o2cb/
Date:		Dec 2005
KernelVersion:	2.6.16
Contact:	ocfs2-devel@oss.oracle.com
Description:	Ocfs2-tools looks at 'interface-revision' for versioning
		information. Each logmask/ file controls a set of debug prints
		and can be written into with the strings "allow", "deny", or
		"off". Reading the file returns the current state.
Users:		ocfs2-tools. It's sufficient to mail proposed changes to
		ocfs2-devel@oss.oracle.com.


code:
What:		Audit Login UID
Date:		2005-02-01
KernelVersion:	2.6.11-rc2 1e2d1492e178 ("[PATCH] audit: handle loginuid through proc")
Contact:	linux-audit@redhat.com
Users:		audit and login applications
Description:
		The /proc/$pid/loginuid pseudofile is written to set and
		read to get the audit login UID of process $pid as a
		decimal unsigned int (%u, u32).  If it is unset,
		permissions are not needed to set it.  The accessor must
		have CAP_AUDIT_CONTROL in the initial user namespace to
		write it if it has been set.  It cannot be written again
		if AUDIT_FEATURE_LOGINUID_IMMUTABLE is enabled.  It
		cannot be unset if AUDIT_FEATURE_ONLY_UNSET_LOGINUID is
		enabled.

What:		Audit Login Session ID
Date:		2008-03-13
KernelVersion:	2.6.25-rc7 1e0bd7550ea9 ("[PATCH] export sessionid alongside the loginuid in procfs")
Contact:	linux-audit@redhat.com
Users:		audit and login applications
Description:
		The /proc/$pid/sessionid pseudofile is read to get the
		audit login session ID of process $pid as a decimal
		unsigned int (%u, u32).  It is set automatically,
		serially assigned with each new login.


code:
What:		The kernel syscall interface
Description:
	This interface matches much of the POSIX interface and is based
	on it and other Unix based interfaces.  It will only be added to
	over time, and not have things removed from it.

	Note that this interface is different for every architecture
	that Linux supports.  Please see the architecture-specific
	documentation for details on the syscall numbers that are to be
	mapped to each syscall.

path: Documentation/ABI/stable/syscalls


code:
What:		/sys/firmware/acpi/pm_profile
Date:		03-Nov-2011
KernelVersion:	v3.2
Contact:	linux-acpi@vger.kernel.org
Description:	The ACPI pm_profile sysfs interface exports the platform
		power management (and performance) requirement expectations
		as provided by BIOS. The integer value is directly passed as
		retrieved from the FADT ACPI table.

Values:	        For possible values see ACPI specification:
		5.2.9 Fixed ACPI Description Table (FADT)
		Field: Preferred_PM_Profile

		Currently these values are defined by spec:

		== =================
		0  Unspecified
		1  Desktop
		2  Mobile
		3  Workstation
		4  Enterprise Server
		5  SOHO Server
		6  Appliance PC
		7  Performance Server
		>7 Reserved
		== =================