Documentation/ABI/testing/dell-smbios-wmi

Source file repositories/reference/linux-study-clean/Documentation/ABI/testing/dell-smbios-wmi

File Facts

System
Linux kernel
Corpus path
Documentation/ABI/testing/dell-smbios-wmi
Extension
[no extension]
Size
1543 bytes
Lines
42
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: Documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

What:		/dev/wmi/dell-smbios
Date:		November 2017
KernelVersion:	4.15
Contact:	Dell.Client.Kernel@dell.com
Description:
		Perform SMBIOS calls on supported Dell machines.
		through the Dell ACPI-WMI interface.

		IOCTL's and buffer formats are defined in:
		<uapi/linux/wmi.h>

		1) To perform an SMBIOS call from userspace, you'll need to
		   first determine the minimum size of the calling interface
		   buffer for your machine.
		   Platforms that contain larger buffers can return larger
		   objects from the system firmware.
		   Commonly this size is either 4k or 32k.

		   To determine the size of the buffer read() a u64 dword from
		   the WMI character device /dev/wmi/dell-smbios.

		2) After you've determined the minimum size of the calling
		   interface buffer, you can allocate a structure that represents
		   the structure documented above.

		3) In the 'length' object store the size of the buffer you
		   determined above and allocated.

		4) In this buffer object, prepare as necessary for the SMBIOS
		   call you're interested in.  Typically SMBIOS buffers have
		   "class", "select", and "input" defined to values that coincide
		   with the data you are interested in.
		   Documenting class/select/input values is outside of the scope
		   of this documentation. Check with the libsmbios project for
		   further documentation on these values.

		6) Run the call by using ioctl() as described in the header.

		7) The output will be returned in the buffer object.

		8) Be sure to free up your allocated object.

Annotation

Implementation Notes