ABI stable symbols

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.

What:

/dev/fw[0-9]+

Defined on file firewire-cdev

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.

What:

/sys/bus/firewire/devices/*/

Defined on file sysfs-bus-firewire

Attributes common to IEEE 1394 node devices and unit devices.
Read-only.  Mutable during the node device's lifetime.
Immutable during the unit device's lifetime.
See IEEE 1212 for semantic definitions.

These attributes are only created if the root directory of an
IEEE 1394 node or the unit directory of an IEEE 1394 unit
actually contains according entries.

hardware_version
	Hexadecimal string representation of an u24.

hardware_version_name
	Contents of a respective textual descriptor leaf.

model
	Hexadecimal string representation of an u24.

model_name
	Contents of a respective textual descriptor leaf.

specifier_id
	Hexadecimal string representation of an u24.
	Mandatory in unit directories according to IEEE 1212.

vendor
	Hexadecimal string representation of an u24.
	Mandatory in the root directory according to IEEE 1212.

vendor_name
	Contents of a respective textual descriptor leaf.

version
	Hexadecimal string representation of an u24.
	Mandatory in unit directories according to IEEE 1212.

What:

/sys/bus/firewire/devices/fw[0-9]+/

Defined on file sysfs-bus-firewire

IEEE 1394 node device attributes.
Read-only.  Mutable during the node device's lifetime.
See IEEE 1212 for semantic definitions.

config_rom
	Contents of the Configuration ROM register.
	Binary attribute; an array of host-endian u32.

guid
	The node's EUI-64 in the bus information block of
	Configuration ROM.
	Hexadecimal string representation of an u64.

What:

/sys/bus/firewire/devices/fw[0-9]+/is_local

Defined on file sysfs-bus-firewire

IEEE 1394 node device attribute.
Read-only and immutable.
Values:         1: The sysfs entry represents a local node (a controller card).
	        0: The sysfs entry represents a remote node.

What:

/sys/bus/firewire/devices/fw[0-9]+/units

Defined on file sysfs-bus-firewire

IEEE 1394 node device attribute.
Read-only.  Mutable during the node device's lifetime.
See IEEE 1212 for semantic definitions.

units
	Summary of all units present in an IEEE 1394 node.
	Contains space-separated tuples of specifier_id and
	version of each unit present in the node.  Specifier_id
	and version are hexadecimal string representations of
	u24 of the respective unit directory entries.
	Specifier_id and version within each tuple are separated
	by a colon.

What:

/sys/bus/firewire/devices/fw[0-9]+[.][0-9]+/

Defined on file sysfs-bus-firewire

IEEE 1394 unit device attributes.
Read-only.  Immutable during the unit device's lifetime.
See IEEE 1212 for semantic definitions.

modalias
	Same as MODALIAS in the uevent at device creation.

rom_index
	Offset of the unit directory within the parent device's
	(node device's) Configuration ROM, in quadlets.
	Decimal string representation.

What:

/sys/bus/firewire/drivers/sbp2/fw*/host*/target*/*:*:*:*/ieee1394_id

Defined on file sysfs-bus-firewire

SCSI target port identifier and logical unit identifier of a
logical unit of an SBP-2 target.  The identifiers are specified
in SAM-2...SAM-4 annex A.  They are persistent and world-wide
unique properties the SBP-2 attached target.

Read-only attribute, immutable during the target's lifetime.
Format, as exposed by firewire-sbp2 since 2.6.22, May 2007:
Colon-separated hexadecimal string representations of
	u64 EUI-64 : u24 directory_ID : u16 LUN
without 0x prefixes, without whitespace.  The former sbp2 driver
(removed in 2.6.37 after being superseded by firewire-sbp2) used
a somewhat shorter format which was not as close to SAM.

What:

/sys/bus/pci/drivers/qla2xxx/.../devices/*

Defined on file sysfs-driver-qla2xxx

qla2xxx-udev.sh currently looks for uevent CHANGE events to signal a firmware-dump has been generated by the driver and is ready for retrieval.

What:

/sys/bus/usb/device/.../avoid_reset_quirk

Defined on file sysfs-bus-usb

Writing 1 to this file tells the kernel that this device will morph into another mode when it is reset. Drivers will not use reset for error handling for such devices.

What:

/sys/bus/usb/device/.../power/active_duration

Defined on file sysfs-bus-usb

If CONFIG_PM is enabled, then this file is present. When read, it returns the total time (in msec) that the USB device has been active, i.e. not in a suspended state. This file is read-only.

Tools can use this file and the connected_duration file to compute the percentage of time that a device has been active. For example, echo $((100 * `cat active_duration` / `cat connected_duration`)) will give an integer percentage. Note that this does not account for counter wrap.

What:

/sys/bus/usb/device/.../power/connected_duration

Defined on file sysfs-bus-usb

If CONFIG_PM is enabled, then this file is present. When read, it returns the total time (in msec) that the USB device has been connected to the machine. This file is read-only.

What:

/sys/bus/usb/devices/.../bConfigurationValue

Defined on file sysfs-bus-usb

bConfigurationValue of the *active* configuration for the device. Writing 0 or -1 to bConfigurationValue will reset the active configuration (unconfigure the device). Writing another value will change the active configuration.

Note that some devices, in violation of the USB spec, have a configuration with a value equal to 0. Writing 0 to bConfigurationValue for these devices will install that configuration, rather then unconfigure the device.

Writing -1 will always unconfigure the device.

What:

/sys/bus/usb/devices/.../busnum

Defined on file sysfs-bus-usb

Bus-number of the USB-bus the device is connected to.

What:

/sys/bus/usb/devices/.../descriptors

Defined on file sysfs-bus-usb

Binary file containing cached descriptors of the device. The binary data consists of the device descriptor followed by the descriptors for each configuration of the device. Note that the wTotalLength of the config descriptors can not be trusted, as the device may have a smaller config descriptor than it advertises. The bLength field of each (sub) descriptor can be trusted, and can be used to seek forward one (sub) descriptor at a time until the next config descriptor is found. All descriptors read from this file are in bus-endian format

What:

/sys/bus/usb/devices/.../devnum

Defined on file sysfs-bus-usb

Device address on the USB bus.

What:

/sys/bus/usb/devices/.../power/autosuspend

Defined on file sysfs-bus-usb

Each USB device directory will contain a file named power/autosuspend. This file holds the time (in seconds) the device must be idle before it will be autosuspended. 0 means the device will be autosuspended as soon as possible. Negative values will prevent the device from being autosuspended at all, and writing a negative value will resume the device if it is already suspended.

The autosuspend delay for newly-created devices is set to the value of the usbcore.autosuspend module parameter.

What:

/sys/bus/usb/devices/.../power/persist

Defined on file sysfs-bus-usb

USB device directories can contain a file named power/persist. The file holds a boolean value (0 or 1) indicating whether or not the “USB-Persist” facility is enabled for the device. For hubs this facility is always enabled and their device directories will not contain this file.

For more information, see Documentation/driver-api/usb/persist.rst.

What:

/sys/bus/usb/devices/.../speed

Defined on file sysfs-bus-usb

Speed the device is connected with to the usb-host in Mbit / second. IE one of 1.5 / 12 / 480 / 5000.

What:

/sys/bus/usb/devices/<busnum>-<port[.port]>...:<config num>-<interface num>/supports_autosuspend

Defined on file sysfs-bus-usb

When read, this file returns 1 if the interface driver for this interface supports autosuspend. It also returns 1 if no driver has claimed this interface, as an unclaimed interface will not stop the device from being autosuspended if all other interface drivers are idle. The file returns 0 if autosuspend support has not been added to the driver.

What:

/sys/bus/usb/drivers/usbtmc/*/TermChar

Defined on file sysfs-driver-usb-usbtmc

This file is the TermChar value to be sent to the USB TMC device as described by the document, “Universal Serial Bus Test and Measurement Class Specification (USBTMC) Revision 1.0” as published by the USB-IF.

Note that the TermCharEnabled file determines if this value is sent to the device or not.

What:

/sys/bus/usb/drivers/usbtmc/*/TermCharEnabled

Defined on file sysfs-driver-usb-usbtmc

This file determines if the TermChar is to be sent to the device on every transaction or not. For more details about this, please see the document, “Universal Serial Bus Test and Measurement Class Specification (USBTMC) Revision 1.0” as published by the USB-IF.

What:

/sys/bus/usb/drivers/usbtmc/*/auto_abort

Defined on file sysfs-driver-usb-usbtmc

This file determines if the transaction of the USB TMC device is to be automatically aborted if there is any error. For more details about this, please see the document, “Universal Serial Bus Test and Measurement Class Specification (USBTMC) Revision 1.0” as published by the USB-IF.

What:

/sys/bus/usb/drivers/usbtmc/*/interface_capabilities
/sys/bus/usb/drivers/usbtmc/*/device_capabilities

Defined on file sysfs-driver-usb-usbtmc

These files show the various USB TMC capabilities as described by the device itself. The full description of the bitfields can be found in the USB TMC documents from the USB-IF entitled “Universal Serial Bus Test and Measurement Class Specification (USBTMC) Revision 1.0” section 4.2.1.8.

The files are read only.

What:

/sys/bus/usb/drivers/usbtmc/*/usb488_interface_capabilities
/sys/bus/usb/drivers/usbtmc/*/usb488_device_capabilities

Defined on file sysfs-driver-usb-usbtmc

These files show the various USB TMC capabilities as described by the device itself. The full description of the bitfields can be found in the USB TMC documents from the USB-IF entitled “Universal Serial Bus Test and Measurement Class, Subclass USB488 Specification (USBTMC-USB488) Revision 1.0” section 4.2.2.

The files are read only.

What:

/sys/bus/vmbus/devices/vmbus_*/channel_vp_mapping

Defined on file sysfs-bus-vmbus

The mapping of which primary/sub channels are bound to which Virtual Processors. Format: <channel’s child_relid:the bound cpu’s number>

What:

/sys/bus/vmbus/devices/vmbus_*/class_id

Defined on file sysfs-bus-vmbus

The VMBus interface type GUID of the device

What:

/sys/bus/vmbus/devices/vmbus_*/device

Defined on file sysfs-bus-vmbus

The 16 bit device ID of the device

What:

/sys/bus/vmbus/devices/vmbus_*/device_id

Defined on file sysfs-bus-vmbus

The VMBus interface instance GUID of the device

What:

/sys/bus/vmbus/devices/vmbus_*/id

Defined on file sysfs-bus-vmbus

The VMBus child_relid of the device’s primary channel

What:

/sys/bus/vmbus/devices/vmbus_*/vendor

Defined on file sysfs-bus-vmbus

The 16 bit vendor ID of the device

What:

/sys/bus/w1/devices/.../eeprom

Defined on file sysfs-driver-w1_ds28e04

read/write the contents of the EEPROM memory of the DS28E04-100 see Documentation/w1/slaves/w1_ds28e04 for detailed information

What:

/sys/bus/w1/devices/.../pio

Defined on file sysfs-driver-w1_ds28e04

read/write the contents of the two PIO’s of the DS28E04-100 see Documentation/w1/slaves/w1_ds28e04 for detailed information

What:

/sys/bus/w1/devices/.../w1_master_timeout_us

Defined on file sysfs-bus-w1

Bus scanning interval, microseconds component. Some of 1-Wire devices commonly associated with physical access control systems are attached/generate presence for as short as 100 ms - hence the tens-to-hundreds milliseconds scan intervals are required. see Documentation/w1/w1.generic for detailed information.

What:

/sys/bus/w1/devices/.../w1_seq

Defined on file sysfs-driver-w1_ds28ea00

Support for the DS28EA00 chain sequence function see Documentation/w1/slaves/w1_therm for detailed information

What:

/sys/bus/xen-backend/devices/*/devtype

Defined on file sysfs-bus-xen-backend

The type of the device. e.g., one of: ‘vbd’ (block), ‘vif’ (network), or ‘vfb’ (framebuffer).

What:

/sys/bus/xen-backend/devices/*/nodename

Defined on file sysfs-bus-xen-backend

XenStore node (under /local/domain/NNN/) for this backend device.

What:

/sys/bus/xen-backend/devices/vbd-*/mode

Defined on file sysfs-bus-xen-backend

Whether the block device is read-only (‘r’) or read-write (‘w’).

What:

/sys/bus/xen-backend/devices/vbd-*/physical_device

Defined on file sysfs-bus-xen-backend

The major:minor number (in hexidecimal) of the physical device providing the storage for this backend block device.

What:

/sys/bus/xen-backend/devices/vbd-*/statistics/f_req

Defined on file sysfs-bus-xen-backend

Number of flush requests from the frontend.

What:

/sys/bus/xen-backend/devices/vbd-*/statistics/oo_req

Defined on file sysfs-bus-xen-backend

Number of requests delayed because the backend was too busy processing previous requests.

What:

/sys/bus/xen-backend/devices/vbd-*/statistics/rd_req

Defined on file sysfs-bus-xen-backend

Number of read requests from the frontend.

What:

/sys/bus/xen-backend/devices/vbd-*/statistics/rd_sect

Defined on file sysfs-bus-xen-backend

Number of sectors read by the frontend.

What:

/sys/bus/xen-backend/devices/vbd-*/statistics/wr_req

Defined on file sysfs-bus-xen-backend

Number of write requests from the frontend.

What:

/sys/bus/xen-backend/devices/vbd-*/statistics/wr_sect

Defined on file sysfs-bus-xen-backend

Number of sectors written by the frontend.

What:

/sys/class/backlight/<backlight>/actual_brightness

Defined on file sysfs-class-backlight

Show the actual brightness by querying the hardware.

What:

/sys/class/backlight/<backlight>/bl_power

Defined on file sysfs-class-backlight

Control BACKLIGHT power, values are FB_BLANK_* from fb.h
 - FB_BLANK_UNBLANK (0)   : power on.
 - FB_BLANK_POWERDOWN (4) : power off

What:

/sys/class/backlight/<backlight>/brightness

Defined on file sysfs-class-backlight

Control the brightness for this <backlight>. Values are between 0 and max_brightness. This file will also show the brightness level stored in the driver, which may not be the actual brightness (see actual_brightness).

What:

/sys/class/backlight/<backlight>/max_brightness

Defined on file sysfs-class-backlight

Maximum brightness for <backlight>.

What:

/sys/class/backlight/<backlight>/type

Defined on file sysfs-class-backlight

The type of interface controlled by <backlight>. “firmware”: The driver uses a standard firmware interface “platform”: The driver uses a platform-specific interface “raw”: The driver controls hardware registers directly

In the general case, when multiple backlight interfaces are available for a single device, firmware control should be preferred to platform control should be preferred to raw control. Using a firmware interface reduces the probability of confusion with the hardware and the OS independently updating the backlight state. Platform interfaces are mostly a holdover from pre-standardisation of firmware interfaces.

What:

/sys/class/infiniband_srp/srp-<hca>-<port_number>/add_target

Defined on file sysfs-driver-ib_srp

Interface for making ib_srp connect to a new target.
One can request ib_srp to connect to a new target by writing
a comma-separated list of login parameters to this sysfs
attribute. The supported parameters are:
* id_ext, a 16-digit hexadecimal number specifying the eight
  byte identifier extension in the 16-byte SRP target port
  identifier. The target port identifier is sent by ib_srp
  to the target in the SRP_LOGIN_REQ request.
* ioc_guid, a 16-digit hexadecimal number specifying the eight
  byte I/O controller GUID portion of the 16-byte target port
  identifier.
* dgid, a 32-digit hexadecimal number specifying the
  destination GID.
* pkey, a four-digit hexadecimal number specifying the
  InfiniBand partition key.
* service_id, a 16-digit hexadecimal number specifying the
  InfiniBand service ID used to establish communication with
  the SRP target. How to find out the value of the service ID
  is specified in the documentation of the SRP target.
* max_sect, a decimal number specifying the maximum number of
  512-byte sectors to be transferred via a single SCSI command.
* max_cmd_per_lun, a decimal number specifying the maximum
  number of outstanding commands for a single LUN.
* io_class, a hexadecimal number specifying the SRP I/O class.
  Must be either 0xff00 (rev 10) or 0x0100 (rev 16a). The I/O
  class defines the format of the SRP initiator and target
  port identifiers.
* initiator_ext, a 16-digit hexadecimal number specifying the
  identifier extension portion of the SRP initiator port
  identifier. This data is sent by the initiator to the target
  in the SRP_LOGIN_REQ request.
* cmd_sg_entries, a number in the range 1..255 that specifies
  the maximum number of data buffer descriptors stored in the
  SRP_CMD information unit itself. With allow_ext_sg=0 the
  parameter cmd_sg_entries defines the maximum S/G list length
  for a single SRP_CMD, and commands whose S/G list length
  exceeds this limit after S/G list collapsing will fail.
* allow_ext_sg, whether ib_srp is allowed to include a partial
  memory descriptor list in an SRP_CMD instead of the entire
  list. If a partial memory descriptor list has been included
  in an SRP_CMD the remaining memory descriptors are
  communicated from initiator to target via an additional RDMA
  transfer. Setting allow_ext_sg to 1 increases the maximum
  amount of data that can be transferred between initiator and
  target via a single SCSI command. Since not all SRP target
  implementations support partial memory descriptor lists the
  default value for this option is 0.
* sg_tablesize, a number in the range 1..2048 specifying the
  maximum S/G list length the SCSI layer is allowed to pass to
  ib_srp. Specifying a value that exceeds cmd_sg_entries is
  only safe with partial memory descriptor list support enabled
  (allow_ext_sg=1).
* comp_vector, a number in the range 0..n-1 specifying the
  MSI-X completion vector of the first RDMA channel. Some
  HCA's allocate multiple (n) MSI-X vectors per HCA port. If
  the IRQ affinity masks of these interrupts have been
  configured such that each MSI-X interrupt is handled by a
  different CPU then the comp_vector parameter can be used to
  spread the SRP completion workload over multiple CPU's.
* tl_retry_count, a number in the range 2..7 specifying the
  IB RC retry count.
* queue_size, the maximum number of commands that the
  initiator is allowed to queue per SCSI host. The default
  value for this parameter is 62. The lowest supported value
  is 2.

What:

/sys/class/infiniband_srp/srp-<hca>-<port_number>/ibdev

Defined on file sysfs-driver-ib_srp

HCA name (<hca>).

What:

/sys/class/infiniband_srp/srp-<hca>-<port_number>/port

Defined on file sysfs-driver-ib_srp

HCA port number (<port_number>).

What:

/sys/class/rfkill

Defined on file sysfs-class-rfkill

The rfkill class subsystem folder. Each registered rfkill driver is represented by an rfkillX subfolder (X being an integer > 0).

What:

/sys/class/rfkill/rfkill[0-9]+/hard

Defined on file sysfs-class-rfkill

Current hardblock state. This file is read only.
Values:         A numeric value.
	        0: inactive
	                The transmitter is (potentially) active.
	        1: active
	                The transmitter is forced off by something outside of
	                the driver's control.

What:

/sys/class/rfkill/rfkill[0-9]+/name

Defined on file sysfs-class-rfkill

Name assigned by driver to this key (interface or driver name). Values: arbitrary string.

What:

/sys/class/rfkill/rfkill[0-9]+/persistent

Defined on file sysfs-class-rfkill

Whether the soft blocked state is initialised from non-volatile
storage at startup.
Values:         A numeric value.
	        0: false
	        1: true

What:

/sys/class/rfkill/rfkill[0-9]+/soft

Defined on file sysfs-class-rfkill

Current softblock state. This file is read and write.
Values:         A numeric value.
	        0: inactive
	                The transmitter is (potentially) active.
	        1: active
	                The transmitter is turned off by software.

What:

/sys/class/rfkill/rfkill[0-9]+/state

Defined on file sysfs-class-rfkill

Current state of the transmitter.
This file was scheduled to be removed in 2014, but due to its
large number of users it will be sticking around for a bit
longer. Despite it being marked as stabe, the newer "hard" and
"soft" interfaces should be preffered, since it is not possible
to express the 'soft and hard block' state of the rfkill driver
through this interface. There will likely be another attempt to
remove it in the future.
Values:         A numeric value.
	        0: RFKILL_STATE_SOFT_BLOCKED
	                transmitter is turned off by software
	        1: RFKILL_STATE_UNBLOCKED
	                transmitter is (potentially) active
	        2: RFKILL_STATE_HARD_BLOCKED
	                transmitter is forced off by something outside of
	                the driver's control.

What:

/sys/class/rfkill/rfkill[0-9]+/type

Defined on file sysfs-class-rfkill

Driver type string (“wlan”, “bluetooth”, etc). Values: See include/linux/rfkill.h.

What:

/sys/class/scsi_host/host<n>/allow_ext_sg

Defined on file sysfs-driver-ib_srp

Whether ib_srp is allowed to include a partial memory descriptor list in an SRP_CMD when communicating with an SRP target.

What:

/sys/class/scsi_host/host<n>/ch_count

Defined on file sysfs-driver-ib_srp

Number of RDMA channels used for communication with the SRP target.

What:

/sys/class/scsi_host/host<n>/cmd_sg_entries

Defined on file sysfs-driver-ib_srp

Maximum number of data buffer descriptors that may be sent to the target in a single SRP_CMD request.

What:

/sys/class/scsi_host/host<n>/comp_vector

Defined on file sysfs-driver-ib_srp

Completion vector used for the first RDMA channel.

What:

/sys/class/scsi_host/host<n>/dgid

Defined on file sysfs-driver-ib_srp

InfiniBand destination GID used for communication with the SRP target. Differs from orig_dgid if port redirection has happened.

What:

/sys/class/scsi_host/host<n>/id_ext

Defined on file sysfs-driver-ib_srp

Eight-byte identifier extension portion of the 16-byte target port identifier.

What:

/sys/class/scsi_host/host<n>/ioc_guid

Defined on file sysfs-driver-ib_srp

Eight-byte I/O controller GUID portion of the 16-byte target port identifier.

What:

/sys/class/scsi_host/host<n>/local_ib_device

Defined on file sysfs-driver-ib_srp

Name of the InfiniBand HCA used for communicating with the SRP target.

What:

/sys/class/scsi_host/host<n>/local_ib_port

Defined on file sysfs-driver-ib_srp

Number of the HCA port used for communicating with the SRP target.

What:

/sys/class/scsi_host/host<n>/orig_dgid

Defined on file sysfs-driver-ib_srp

InfiniBand destination GID specified in the parameters written to the add_target sysfs attribute.

What:

/sys/class/scsi_host/host<n>/pkey

Defined on file sysfs-driver-ib_srp

A 16-bit number representing the InfiniBand partition key used for communication with the SRP target.

What:

/sys/class/scsi_host/host<n>/req_lim

Defined on file sysfs-driver-ib_srp

Number of requests ib_srp can send to the target before it has to wait for more credits. For more information see also the SRP credit algorithm in the SRP specification.

What:

/sys/class/scsi_host/host<n>/service_id

Defined on file sysfs-driver-ib_srp

InfiniBand service ID used for establishing communication with the SRP target.

What:

/sys/class/scsi_host/host<n>/sgid

Defined on file sysfs-driver-ib_srp

InfiniBand GID of the source port used for communication with the SRP target.

What:

/sys/class/scsi_host/host<n>/zero_req_lim

Defined on file sysfs-driver-ib_srp

Number of times the initiator had to wait before sending a request to the target because it ran out of credits. For more information see also the SRP credit algorithm in the SRP specification.

What:

/sys/class/srp_remote_ports/port-<h>:<n>/delete

Defined on file sysfs-transport-srp

Instructs an SRP initiator to disconnect from a target and to remove all LUNs imported from that target.

What:

/sys/class/srp_remote_ports/port-<h>:<n>/dev_loss_tmo

Defined on file sysfs-transport-srp

Number of seconds the SCSI layer will wait after a transport layer error has been observed before removing a target port. Zero means immediate removal. Setting this attribute to “off” will disable the dev_loss timer.

What:

/sys/class/srp_remote_ports/port-<h>:<n>/fast_io_fail_tmo

Defined on file sysfs-transport-srp

Number of seconds the SCSI layer will wait after a transport layer error has been observed before failing I/O. Zero means failing I/O immediately. Setting this attribute to “off” will disable the fast_io_fail timer.

What:

/sys/class/srp_remote_ports/port-<h>:<n>/port_id

Defined on file sysfs-transport-srp

16-byte local SRP port identifier in hexadecimal format. An example: 4c:49:4e:55:58:20:56:49:4f:00:00:00:00:00:00:00.

What:

/sys/class/srp_remote_ports/port-<h>:<n>/reconnect_delay

Defined on file sysfs-transport-srp

Number of seconds the SCSI layer will wait after a reconnect attempt failed before retrying. Setting this attribute to “off” will disable time-based reconnecting.

What:

/sys/class/srp_remote_ports/port-<h>:<n>/roles

Defined on file sysfs-transport-srp

Role of the remote port. Either “SRP Initiator” or “SRP Target”.

What:

/sys/class/srp_remote_ports/port-<h>:<n>/state

Defined on file sysfs-transport-srp

State of the transport layer used for communication with the remote port. “running” if the transport layer is operational; “blocked” if a transport layer error has been encountered but the fast_io_fail_tmo timer has not yet fired; “fail-fast” after the fast_io_fail_tmo timer has fired and before the “dev_loss_tmo” timer has fired; “lost” after the “dev_loss_tmo” timer has fired and before the port is finally removed.

What:

/sys/class/tpm/tpmX/device/

Defined on file sysfs-class-tpm

The device/ directory under a specific TPM instance exposes the properties of that TPM chip

What:

/sys/class/tpm/tpmX/device/active

Defined on file sysfs-class-tpm

The “active” property prints a ‘1’ if the TPM chip is accepting commands. An inactive TPM chip still contains all the state of an active chip (Storage Root Key, NVRAM, etc), and can be visible to the OS, but will only accept a restricted set of commands. See the TPM Main Specification part 2, Structures, section 17 for more information on which commands are available.

What:

/sys/class/tpm/tpmX/device/cancel

Defined on file sysfs-class-tpm

The “cancel” property allows you to cancel the currently pending TPM command. Writing any value to cancel will call the TPM vendor specific cancel operation.

What:

/sys/class/tpm/tpmX/device/caps

Defined on file sysfs-class-tpm

The "caps" property contains TPM manufacturer and version info.

Example output:

Manufacturer: 0x53544d20
TCG version: 1.2
Firmware version: 8.16

Manufacturer is a hex dump of the 4 byte manufacturer info
space in a TPM. TCG version shows the TCG TPM spec level that
the chip supports. Firmware version is that of the chip and
is manufacturer specific.

What:

/sys/class/tpm/tpmX/device/durations

Defined on file sysfs-class-tpm

The "durations" property shows the 3 vendor-specific values
used to wait for a short, medium and long TPM command. All
TPM commands are categorized as short, medium or long in
execution time, so that the driver doesn't have to wait
any longer than necessary before starting to poll for a
result.

Example output:

3015000 4508000 180995000 [original]

Here the short, medium and long durations are displayed in
usecs. "[original]" indicates that the values are displayed
unmodified from when they were queried from the chip.
Durations can be modified in the case where a buggy chip
reports them in msec instead of usec and they need to be
scaled to be displayed in usecs. In this case "[adjusted]"
will be displayed in place of "[original]".

What:

/sys/class/tpm/tpmX/device/enabled

Defined on file sysfs-class-tpm

The “enabled” property prints a ‘1’ if the TPM chip is enabled, meaning that it should be visible to the OS. This property may be visible but produce a ‘0’ after some operation that disables the TPM.

What:

/sys/class/tpm/tpmX/device/owned

Defined on file sysfs-class-tpm

The “owned” property produces a ‘1’ if the TPM_TakeOwnership ordinal has been executed successfully in the chip. A ‘0’ indicates that ownership hasn’t been taken.

What:

/sys/class/tpm/tpmX/device/pcrs

Defined on file sysfs-class-tpm

The "pcrs" property will dump the current value of all Platform
Configuration Registers in the TPM. Note that since these
values may be constantly changing, the output is only valid
for a snapshot in time.

Example output:

PCR-00: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
PCR-01: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
PCR-02: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
PCR-03: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
PCR-04: 3A 3F 78 0F 11 A4 B4 99 69 FC AA 80 CD 6E 39 57 C3 3B 22 75
...

The number of PCRs and hex bytes needed to represent a PCR
value will vary depending on TPM chip version. For TPM 1.1 and
1.2 chips, PCRs represent SHA-1 hashes, which are 20 bytes
long. Use the "caps" property to determine TPM version.

What:

/sys/class/tpm/tpmX/device/pubek

Defined on file sysfs-class-tpm

The "pubek" property will return the TPM's public endorsement
key if possible. If the TPM has had ownership established and
is version 1.2, the pubek will not be available without the
owner's authorization. Since the TPM driver doesn't store any
secrets, it can't authorize its own request for the pubek,
making it unaccessible. The public endorsement key is gener-
ated at TPM manufacture time and exists for the life of the
chip.

Example output:

Algorithm: 00 00 00 01
Encscheme: 00 03
Sigscheme: 00 01
Parameters: 00 00 08 00 00 00 00 02 00 00 00 00
Modulus length: 256
Modulus:
B4 76 41 82 C9 20 2C 10 18 40 BC 8B E5 44 4C 6C
3A B2 92 0C A4 9B 2A 83 EB 5C 12 85 04 48 A0 B6
1E E4 81 84 CE B2 F2 45 1C F0 85 99 61 02 4D EB
86 C4 F7 F3 29 60 52 93 6B B2 E5 AB 8B A9 09 E3
D7 0E 7D CA 41 BF 43 07 65 86 3C 8C 13 7A D0 8B
82 5E 96 0B F8 1F 5F 34 06 DA A2 52 C1 A9 D5 26
0F F4 04 4B D9 3F 2D F2 AC 2F 74 64 1F 8B CD 3E
1E 30 38 6C 70 63 69 AB E2 50 DF 49 05 2E E1 8D
6F 78 44 DA 57 43 69 EE 76 6C 38 8A E9 8E A3 F0
A7 1F 3C A8 D0 12 15 3E CA 0E BD FA 24 CD 33 C6
47 AE A4 18 83 8E 22 39 75 93 86 E6 FD 66 48 B6
10 AD 94 14 65 F9 6A 17 78 BD 16 53 84 30 BF 70
E0 DC 65 FD 3C C6 B0 1E BF B9 C1 B5 6C EF B1 3A
F8 28 05 83 62 26 11 DC B4 6B 5A 97 FF 32 26 B6
F7 02 71 CF 15 AE 16 DD D1 C1 8E A8 CF 9B 50 7B
C3 91 FF 44 1E CF 7C 39 FE 17 77 21 20 BD CE 9B

Possible values:

Algorithm:      TPM_ALG_RSA                     (1)
Encscheme:      TPM_ES_RSAESPKCSv15             (2)
	        TPM_ES_RSAESOAEP_SHA1_MGF1      (3)
Sigscheme:      TPM_SS_NONE                     (1)
Parameters, a byte string of 3 u32 values:
	Key Length (bits):      00 00 08 00     (2048)
	Num primes:             00 00 00 02     (2)
	Exponent Size:          00 00 00 00     (0 means the
	                                         default exp)
Modulus Length: 256 (bytes)
Modulus:        The 256 byte Endorsement Key modulus

What:

/sys/class/tpm/tpmX/device/temp_deactivated

Defined on file sysfs-class-tpm

The “temp_deactivated” property returns a ‘1’ if the chip has been temporarily deactivated, usually until the next power cycle. Whether a warm boot (reboot) will clear a TPM chip from a temp_deactivated state is platform specific.

What:

/sys/class/tpm/tpmX/device/timeouts

Defined on file sysfs-class-tpm

The "timeouts" property shows the 4 vendor-specific values
for the TPM's interface spec timeouts. The use of these
timeouts is defined by the TPM interface spec that the chip
conforms to.

Example output:

750000 750000 750000 750000 [original]

The four timeout values are shown in usecs, with a trailing
"[original]" or "[adjusted]" depending on whether the values
were scaled by the driver to be reported in usec from msecs.

What:

/sys/class/ubi/

Defined on file sysfs-class-ubi

The ubi/ class sub-directory belongs to the UBI subsystem and provides general UBI information, per-UBI device information and per-UBI volume information.

What:

/sys/class/ubi/ubiX/avail_eraseblocks

Defined on file sysfs-class-ubi

Amount of available logical eraseblock. For example, one may create a new UBI volume which has this amount of logical eraseblocks.

What:

/sys/class/ubi/ubiX/bad_peb_count

Defined on file sysfs-class-ubi

Count of bad physical eraseblocks on the underlying MTD device.

What:

/sys/class/ubi/ubiX/bgt_enabled

Defined on file sysfs-class-ubi

Contains ASCII “0\n” if the UBI background thread is disabled, and ASCII “1\n” if it is enabled.

What:

/sys/class/ubi/ubiX/dev

Defined on file sysfs-class-ubi

Major and minor numbers of the character device corresponding to this UBI device (in <major>:<minor> format).

What:

/sys/class/ubi/ubiX/eraseblock_size

Defined on file sysfs-class-ubi

Maximum logical eraseblock size this UBI device may provide. UBI volumes may have smaller logical eraseblock size because of their alignment.

What:

/sys/class/ubi/ubiX/max_ec

Defined on file sysfs-class-ubi

Maximum physical eraseblock erase counter value.

What:

/sys/class/ubi/ubiX/max_vol_count

Defined on file sysfs-class-ubi

Maximum number of volumes which this UBI device may have.

What:

/sys/class/ubi/ubiX/min_io_size

Defined on file sysfs-class-ubi

Minimum input/output unit size. All the I/O may only be done in fractions of the contained number.

What:

/sys/class/ubi/ubiX/mtd_num

Defined on file sysfs-class-ubi

Number of the underlying MTD device.

What:

/sys/class/ubi/ubiX/reserved_for_bad

Defined on file sysfs-class-ubi

Number of physical eraseblocks reserved for bad block handling.

What:

/sys/class/ubi/ubiX/ro_mode

Defined on file sysfs-class-ubi

Contains ASCII “1\n” if the read-only flag is set on this device, and “0\n” if it is cleared. UBI devices mark themselves as read-only when they detect an unrecoverable error.

What:

/sys/class/ubi/ubiX/total_eraseblocks

Defined on file sysfs-class-ubi

Total number of good (not marked as bad) physical eraseblocks on the underlying MTD device.

What:

/sys/class/ubi/ubiX/ubiX_Y/

Defined on file sysfs-class-ubi

The /sys/class/ubi/ubiX/ubiX_0/, /sys/class/ubi/ubiX/ubiX_1/, etc directories describe UBI volumes on UBI device X (volumes 0, 1, etc).

What:

/sys/class/ubi/ubiX/ubiX_Y/alignment

Defined on file sysfs-class-ubi

Volume alignment - the value the logical eraseblock size of this volume has to be aligned on. For example, 2048 means that logical eraseblock size is multiple of 2048. In other words, volume logical eraseblock size is UBI device logical eraseblock size aligned to the alignment value.

What:

/sys/class/ubi/ubiX/ubiX_Y/corrupted

Defined on file sysfs-class-ubi

Contains ASCII “0\n” if the UBI volume is OK, and ASCII “1\n” if it is corrupted (e.g., due to an interrupted volume update).

What:

/sys/class/ubi/ubiX/ubiX_Y/data_bytes

Defined on file sysfs-class-ubi

The amount of data this volume contains. This value makes sense only for static volumes, and for dynamic volume it equivalent to the total volume size in bytes.

What:

/sys/class/ubi/ubiX/ubiX_Y/dev

Defined on file sysfs-class-ubi

Major and minor numbers of the character device corresponding to this UBI volume (in <major>:<minor> format).

What:

/sys/class/ubi/ubiX/ubiX_Y/name

Defined on file sysfs-class-ubi

Volume name.

What:

/sys/class/ubi/ubiX/ubiX_Y/reserved_ebs

Defined on file sysfs-class-ubi

Count of physical eraseblock reserved for this volume. Equivalent to the volume size in logical eraseblocks.

What:

/sys/class/ubi/ubiX/ubiX_Y/type

Defined on file sysfs-class-ubi

Volume type. Contains ASCII “dynamic\n” for dynamic volumes and “static\n” for static volumes.

What:

/sys/class/ubi/ubiX/ubiX_Y/upd_marker

Defined on file sysfs-class-ubi

Contains ASCII “0\n” if the update marker is not set for this volume, and “1\n” if it is set. The update marker is set when volume update starts, and cleaned when it ends. So the presence of the update marker indicates that the volume is being updated at the moment of the update was interrupted. The later may be checked using the “corrupted” sysfs file.

What:

/sys/class/ubi/ubiX/ubiX_Y/usable_eb_size

Defined on file sysfs-class-ubi

Logical eraseblock size of this volume. Equivalent to logical eraseblock size of the device aligned on the volume alignment value.

What:

/sys/class/ubi/ubiX/volumes_count

Defined on file sysfs-class-ubi

Count of volumes on this UBI device.

What:

/sys/class/ubi/version

Defined on file sysfs-class-ubi

This file contains version of the latest supported UBI on-media format. Currently it is 1, and there is no plan to change this. However, if in the future UBI needs on-flash format changes which cannot be done in a compatible manner, a new format version will be added. So this is a mechanism for possible future backward-compatible (but forward-incompatible) improvements.

What:

/sys/class/ubiX/

Defined on file sysfs-class-ubi

The /sys/class/ubi0, /sys/class/ubi1, etc directories describe UBI devices (UBI device 0, 1, etc). They contain general UBI device information and per UBI volume information (each UBI device may have many UBI volumes)

What:

/sys/class/udc/<udc>/a_alt_hnp_support

Defined on file sysfs-class-udc

Indicates if an OTG A-Host supports HNP at an alternate port.

What:

/sys/class/udc/<udc>/a_hnp_support

Defined on file sysfs-class-udc

Indicates if an OTG A-Host supports HNP at this port.

What:

/sys/class/udc/<udc>/b_hnp_enable

Defined on file sysfs-class-udc

Indicates if an OTG A-Host enabled HNP support.

What:

/sys/class/udc/<udc>/current_speed

Defined on file sysfs-class-udc

Indicates the current negotiated speed at this port.

What:

/sys/class/udc/<udc>/is_a_peripheral

Defined on file sysfs-class-udc

Indicates that this port is the default Host on an OTG session but HNP was used to switch roles.

What:

/sys/class/udc/<udc>/is_otg

Defined on file sysfs-class-udc

Indicates that this port support OTG.

What:

/sys/class/udc/<udc>/maximum_speed

Defined on file sysfs-class-udc

Indicates the maximum USB speed supported by this port.
	        Indicates the maximum USB speed supported by this port.

What:

/sys/class/udc/<udc>/soft_connect

Defined on file sysfs-class-udc

Allows users to disconnect data pullup resistors thus causing a logical disconnection from the USB Host.

What:

/sys/class/udc/<udc>/srp

Defined on file sysfs-class-udc

Allows users to manually start Session Request Protocol.

What:

/sys/class/udc/<udc>/state

Defined on file sysfs-class-udc

Indicates current state of the USB Device Controller. Valid states are: ‘not-attached’, ‘attached’, ‘powered’, ‘reconnecting’, ‘unauthenticated’, ‘default’, ‘addressed’, ‘configured’, and ‘suspended’; however not all USB Device Controllers support reporting all states.

What:

/sys/devices/*/devspec

Defined on file sysfs-devices

If CONFIG_OF is enabled, then this file is present. When read, it returns full name of the device node.

What:

/sys/devices/*/obppath

Defined on file sysfs-devices

If CONFIG_OF is enabled, then this file is present. When read, it returns full name of the device node.

What:

/sys/devices/*/of_node

Defined on file sysfs-devices

Any device associated with a device-tree node will have an of_path symlink pointing to the corresponding device node in /sys/firmware/devicetree/

What:

/sys/devices/system/cpu/cpu[0-9]+/dscr

Defined on file sysfs-devices-system-cpu

Default value for the Data Stream Control Register (DSCR) on a CPU. This default value is used when the kernel is executing and for any process that has not set the DSCR itself. If a process ever sets the DSCR (via direct access to the SPR) that value will be persisted for that process and used on any CPU where it executes (overriding the value described here). If set by a process it will be inherited by child processes. Values: 64 bit unsigned integer (bit field)

What:

/sys/devices/system/cpu/dscr_default

Defined on file sysfs-devices-system-cpu

Writes are equivalent to writing to /sys/devices/system/cpu/cpuN/dscr on all CPUs. Reads return the last written value or 0. This value is not a global default: it is a way to set all per-CPU defaults at the same time. Values: 64 bit unsigned integer (bit field)

What:

/sys/devices/system/node/has_cpu

Defined on file sysfs-devices-node

Nodes that have one or more CPUs.

What:

/sys/devices/system/node/has_high_memory

Defined on file sysfs-devices-node

Nodes that have regular or high memory. Depends on CONFIG_HIGHMEM.

What:

/sys/devices/system/node/has_normal_memory

Defined on file sysfs-devices-node

Nodes that have regular memory.

What:

/sys/devices/system/node/nodeX

Defined on file sysfs-devices-node

When CONFIG_NUMA is enabled, this is a directory containing information on node X such as what CPUs are local to the node. Each file is detailed next.

What:

/sys/devices/system/node/nodeX/compact

Defined on file sysfs-devices-node

When this file is written to, all memory within that node will be compacted. When it completes, memory will be freed into blocks which have as many contiguous pages as possible

What:

/sys/devices/system/node/nodeX/cpulist

Defined on file sysfs-devices-node

The CPUs associated to the node.

What:

/sys/devices/system/node/nodeX/cpumap

Defined on file sysfs-devices-node

The node’s cpumap.

What:

/sys/devices/system/node/nodeX/distance

Defined on file sysfs-devices-node

Distance between the node and all the other nodes in the system.

What:

/sys/devices/system/node/nodeX/hugepages/hugepages-<size>/

Defined on file sysfs-devices-node

The node’s huge page size control/query attributes. See Documentation/vm/hugetlbpage.txt

What:

/sys/devices/system/node/nodeX/meminfo

Defined on file sysfs-devices-node

Provides information about the node’s distribution and memory utilization. Similar to /proc/meminfo, see Documentation/filesystems/proc.txt

What:

/sys/devices/system/node/nodeX/numastat

Defined on file sysfs-devices-node

The node’s hit/miss statistics, in units of pages. See Documentation/numastat.txt

What:

/sys/devices/system/node/nodeX/vmstat

Defined on file sysfs-devices-node

The node’s zoned virtual memory statistics. This is a superset of numastat.

What:

/sys/devices/system/node/online

Defined on file sysfs-devices-node

Nodes that are online.

What:

/sys/devices/system/node/possible

Defined on file sysfs-devices-node

Nodes that could be possibly become online at some point.

What:

/sys/devices/system/xen_memory/xen_memory0/info/current_kb

Defined on file sysfs-devices-system-xen_memory

Current size (in KiB) of this domain’s memory reservation.

What:

/sys/devices/system/xen_memory/xen_memory0/info/high_kb

Defined on file sysfs-devices-system-xen_memory

Amount (in KiB) of high memory in the balloon.

What:

/sys/devices/system/xen_memory/xen_memory0/info/low_kb

Defined on file sysfs-devices-system-xen_memory

Amount (in KiB) of low (or normal) memory in the balloon.

What:

/sys/devices/system/xen_memory/xen_memory0/max_retry_count

Defined on file sysfs-devices-system-xen_memory

The maximum number of times the balloon driver will attempt to increase the balloon before giving up. See also ‘retry_count’ below. A value of zero means retry forever and is the default one.

What:

/sys/devices/system/xen_memory/xen_memory0/max_schedule_delay

Defined on file sysfs-devices-system-xen_memory

The limit that ‘schedule_delay’ (see below) will be increased to. The default value is 32 seconds.

What:

/sys/devices/system/xen_memory/xen_memory0/retry_count

Defined on file sysfs-devices-system-xen_memory

The current number of times that the balloon driver has attempted to increase the size of the balloon. The default value is one. With max_retry_count being zero (unlimited), this means that the driver will attempt to retry with a ‘schedule_delay’ delay.

What:

/sys/devices/system/xen_memory/xen_memory0/schedule_delay

Defined on file sysfs-devices-system-xen_memory

The time (in seconds) to wait between attempts to increase the balloon. Each time the balloon cannot be increased, ‘schedule_delay’ is increased (until ‘max_schedule_delay’ is reached at which point it will use the max value).

What:

/sys/devices/system/xen_memory/xen_memory0/target

Defined on file sysfs-devices-system-xen_memory

The target number of pages to adjust this domain’s memory reservation to.

What:

/sys/devices/system/xen_memory/xen_memory0/target_kb

Defined on file sysfs-devices-system-xen_memory

As target above, except the value is in KiB.

What:

/sys/firmware/acpi/pm_profile

Defined on file sysfs-acpi-pmprofile

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

What:

/sys/firmware/efi/vars

Defined on file sysfs-firmware-efi-vars

This directory exposes interfaces for interactive with
EFI variables.  For more information on EFI variables,
see 'Variable Services' in the UEFI specification
(section 7.2 in specification version 2.3 Errata D).

In summary, EFI variables are named, and are classified
into separate namespaces through the use of a vendor
GUID.  They also have an arbitrary binary value
associated with them.

The efivars module enumerates these variables and
creates a separate directory for each one found.  Each
directory has a name of the form "<key>-<vendor guid>"
and contains the following files:

attributes:     A read-only text file enumerating the
	        EFI variable flags.  Potential values
	        include:

	        EFI_VARIABLE_NON_VOLATILE
	        EFI_VARIABLE_BOOTSERVICE_ACCESS
	        EFI_VARIABLE_RUNTIME_ACCESS
	        EFI_VARIABLE_HARDWARE_ERROR_RECORD
	        EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS

	        See the EFI documentation for an
	        explanation of each of these variables.

data:           A read-only binary file that can be read
	        to attain the value of the EFI variable

guid:           The vendor GUID of the variable.  This
	        should always match the GUID in the
	        variable's name.

raw_var:        A binary file that can be read to obtain
	        a structure that contains everything
	        there is to know about the variable.
	        For structure definition see "struct
	        efi_variable" in the kernel sources.

	        This file can also be written to in
	        order to update the value of a variable.
	        For this to work however, all fields of
	        the "struct efi_variable" passed must
	        match byte for byte with the structure
	        read out of the file, save for the value
	        portion.

	        **Note** the efi_variable structure
	        read/written with this file contains a
	        'long' type that may change widths
	        depending on your underlying
	        architecture.

size:           As ASCII representation of the size of
	        the variable's value.


In addition, two other magic binary files are provided
in the top-level directory and are used for adding and
removing variables:

new_var:        Takes a "struct efi_variable" and
	        instructs the EFI firmware to create a
	        new variable.

del_var:        Takes a "struct efi_variable" and
	        instructs the EFI firmware to remove any
	        variable that has a matching vendor GUID
	        and variable key name.

What:

/sys/firmware/opal/dump

Defined on file sysfs-firmware-opal-dump

This directory exposes interfaces for interacting with
the FSP and platform dumps through OPAL firmware interface.

This is only for the powerpc/powernv platform.

initiate_dump:  When '1' is written to it,
	        we will initiate a dump.
	        Read this file for supported commands.

0xXX-0xYYYY:    A directory for dump of type 0xXX and
	        id 0xYYYY (in hex). The name of this
	        directory should not be relied upon to
	        be in this format, only that it's unique
	        among all dumps. For determining the type
	        and ID of the dump, use the id and type files.
	        Do not rely on any particular size of dump
	        type or dump id.

Each dump has the following files:
id:             An ASCII representation of the dump ID
	        in hex (e.g. '0x01')
type:           An ASCII representation of the type of
	        dump in the format "0x%x %s" with the ID
	        in hex and a description of the dump type
	        (or 'unknown').
	        Type '0xffffffff unknown' is used when
	        we could not get the type from firmware.
	        e.g. '0x02 System/Platform Dump'
dump:           A binary file containing the dump.
	        The size of the dump is the size of this file.
acknowledge:    When 'ack' is written to this, we will
	        acknowledge that we've retrieved the
	        dump to the service processor. It will
	        then remove it, making the dump
	        inaccessible.
	        Reading this file will get a list of
	        supported actions.

What:

/sys/firmware/opal/elog

Defined on file sysfs-firmware-opal-elog

This directory exposes error log entries retrieved
through the OPAL firmware interface.

Each error log is identified by a unique ID and will
exist until explicitly acknowledged to firmware.

Each log entry has a directory in /sys/firmware/opal/elog.

Log entries may be purged by the service processor
before retrieved by firmware or retrieved/acknowledged by
Linux if there is no room for more log entries.

In the event that Linux has retrieved the log entries
but not explicitly acknowledged them to firmware and
the service processor needs more room for log entries,
the only remaining copy of a log message may be in
Linux.

Typically, a user space daemon will monitor for new
entries, read them out and acknowledge them.

The service processor may be able to store more log
entries than firmware can, so after you acknowledge
an event from Linux you may instantly get another one
from the queue that was generated some time in the past.

The raw log format is a binary format. We currently
do not parse this at all in kernel, leaving it up to
user space to solve the problem. In future, we may
do more parsing in kernel and add more files to make
it easier for simple user space processes to extract
more information.

For each log entry (directory), there are the following
files:

id:             An ASCII representation of the ID of the
	        error log, in hex - e.g. "0x01".

type:           An ASCII representation of the type id and
	        description of the type of error log.
	        Currently just "0x00 PEL" - platform error log.
	        In the future there may be additional types.

raw:            A read-only binary file that can be read
	        to get the raw log entry. These are
	        <16kb, often just hundreds of bytes and
	        "average" 2kb.

acknowledge:    Writing 'ack' to this file will acknowledge
	        the error log to firmware (and in turn
	        the service processor, if applicable).
	        Shortly after acknowledging it, the log
	        entry will be removed from sysfs.
	        Reading this file will list the supported
	        operations (currently just acknowledge).

What:

/sys/fs/o2cb/ (was /sys/o2cb)

Defined on file o2cb

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.

What:

/sys/fs/orangefs/acache/*

Defined on file sysfs-fs-orangefs

Attribute cache configurable settings.

What:

/sys/fs/orangefs/capcache/*

Defined on file sysfs-fs-orangefs

Capability cache configurable settings.

What:

/sys/fs/orangefs/ccache/*

Defined on file sysfs-fs-orangefs

Credential cache configurable settings.

What:

/sys/fs/orangefs/ncache/*

Defined on file sysfs-fs-orangefs

Name cache configurable settings.

What:

/sys/fs/orangefs/op_timeout_secs

Defined on file sysfs-fs-orangefs

Service operation timeout in seconds.

What:

/sys/fs/orangefs/perf_counter_reset

Defined on file sysfs-fs-orangefs

echo a 0 or a 1 into perf_counter_reset to reset all the counters in /sys/fs/orangefs/perf_counters except ones with PINT_PERF_PRESERVE set.

What:

/sys/fs/orangefs/perf_counters/*

Defined on file sysfs-fs-orangefs

Counters and settings for various caches. Read only.

What:

/sys/fs/orangefs/perf_history_size

Defined on file sysfs-fs-orangefs

The perf_counters cache statistics have N, or perf_history_size, samples. The default is one.

Every perf_time_interval_secs the (first) samples are reset.

If N is greater than one, the “current” set of samples is reset, and the samples from the other N-1 intervals remain available.

What:

/sys/fs/orangefs/perf_time_interval_secs

Defined on file sysfs-fs-orangefs

Length of perf counter intervals in seconds.

What:

/sys/fs/orangefs/slot_timeout_secs

Defined on file sysfs-fs-orangefs

“Slot” timeout in seconds. A “slot” is an indexed buffer in the shared memory segment used for communication between the kernel module and userspace. Slots are requested and waited for, the wait times out after slot_timeout_secs.

What:

/sys/module

Defined on file sysfs-module

The /sys/module tree consists of the following structure:

/sys/module/MODULENAME
	The name of the module that is in the kernel.  This
	module name will always show up if the module is loaded as a
	dynamic module.  If it is built directly into the kernel, it
	will only show up if it has a version or at least one
	parameter.

	Note: The conditions of creation in the built-in case are not
	by design and may be removed in the future.

/sys/module/MODULENAME/parameters
	This directory contains individual files that are each
	individual parameters of the module that are able to be
	changed at runtime.  See the individual module
	documentation as to the contents of these parameters and
	what they accomplish.

	Note: The individual parameter names and values are not
	considered stable, only the fact that they will be
	placed in this location within sysfs.  See the
	individual driver documentation for details as to the
	stability of the different parameters.

/sys/module/MODULENAME/refcnt
	If the module is able to be unloaded from the kernel, this file
	will contain the current reference count of the module.

	Note: If the module is built into the kernel, or if the
	CONFIG_MODULE_UNLOAD kernel configuration value is not enabled,
	this file will not be present.
A notification mechanism for thermal related events

Defined on file thermal-notification

This interface enables notification for thermal related events. The notification is in the form of a netlink event.

What:

The kernel syscall interface

Defined on file syscalls

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.

File firewire-cdev

Has the following ABI:

File o2cb

Has the following ABI:

File syscalls

Has the following ABI:

File sysfs-acpi-pmprofile

Has the following ABI:

File sysfs-bus-w1

Has the following ABI:

File sysfs-class-rfkill

rfkill - radio frequency (RF) connector kill switch support

For details to this subsystem look at Documentation/rfkill.txt.

For the deprecated /sys/class/rfkill/*/claim knobs of this interface look in Documentation/ABI/removed/sysfs-class-rfkill.

Has the following ABI:

File sysfs-devices

# Note: This documents additional properties of any device beyond what # is documented in Documentation/sysfs-rules.txt

Has the following ABI:

File sysfs-devices-system-cpu

Has the following ABI:

File sysfs-driver-qla2xxx

Has the following ABI:

File sysfs-driver-w1_ds28e04

Has the following ABI:

File sysfs-driver-w1_ds28ea00

Has the following ABI:

File sysfs-firmware-efi-vars

Has the following ABI:

File sysfs-firmware-opal-dump

Has the following ABI:

File sysfs-firmware-opal-elog

Has the following ABI:

File sysfs-module

Has the following ABI:

File thermal-notification

Has the following ABI:

File vdso

On some architectures, when the kernel loads any userspace program it
maps an ELF DSO into that program's address space.  This DSO is called
the vDSO and it often contains useful and highly-optimized alternatives
to real syscalls.

These functions are called just like ordinary C function according to
your platform's ABI.  Call them from a sensible context.  (For example,
if you set CS on x86 to something strange, the vDSO functions are
within their rights to crash.)  In addition, if you pass a bad
pointer to a vDSO function, you might get SIGSEGV instead of -EFAULT.

To find the DSO, parse the auxiliary vector passed to the program's
entry point.  The AT_SYSINFO_EHDR entry will point to the vDSO.

The vDSO uses symbol versioning; whenever you request a symbol from the
vDSO, specify the version you are expecting.

Programs that dynamically link to glibc will use the vDSO automatically.
Otherwise, you can use the reference parser in
tools/testing/selftests/vDSO/parse_vdso.c.

Unless otherwise noted, the set of symbols with any given version and the
ABI of those symbols is considered stable.  It may vary across architectures,
though.

(As of this writing, this ABI documentation as been confirmed for x86_64.
 The maintainers of the other vDSO-using architectures should confirm
 that it is correct for their architecture.)