162306a36Sopenharmony_ciWhat:		/dev/wmi/dell-smbios
262306a36Sopenharmony_ciDate:		November 2017
362306a36Sopenharmony_ciKernelVersion:	4.15
462306a36Sopenharmony_ciContact:	Dell.Client.Kernel@dell.com
562306a36Sopenharmony_ciDescription:
662306a36Sopenharmony_ci		Perform SMBIOS calls on supported Dell machines.
762306a36Sopenharmony_ci		through the Dell ACPI-WMI interface.
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci		IOCTL's and buffer formats are defined in:
1062306a36Sopenharmony_ci		<uapi/linux/wmi.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci		1) To perform an SMBIOS call from userspace, you'll need to
1362306a36Sopenharmony_ci		   first determine the minimum size of the calling interface
1462306a36Sopenharmony_ci		   buffer for your machine.
1562306a36Sopenharmony_ci		   Platforms that contain larger buffers can return larger
1662306a36Sopenharmony_ci		   objects from the system firmware.
1762306a36Sopenharmony_ci		   Commonly this size is either 4k or 32k.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci		   To determine the size of the buffer read() a u64 dword from
2062306a36Sopenharmony_ci		   the WMI character device /dev/wmi/dell-smbios.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci		2) After you've determined the minimum size of the calling
2362306a36Sopenharmony_ci		   interface buffer, you can allocate a structure that represents
2462306a36Sopenharmony_ci		   the structure documented above.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci		3) In the 'length' object store the size of the buffer you
2762306a36Sopenharmony_ci		   determined above and allocated.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci		4) In this buffer object, prepare as necessary for the SMBIOS
3062306a36Sopenharmony_ci		   call you're interested in.  Typically SMBIOS buffers have
3162306a36Sopenharmony_ci		   "class", "select", and "input" defined to values that coincide
3262306a36Sopenharmony_ci		   with the data you are interested in.
3362306a36Sopenharmony_ci		   Documenting class/select/input values is outside of the scope
3462306a36Sopenharmony_ci		   of this documentation. Check with the libsmbios project for
3562306a36Sopenharmony_ci		   further documentation on these values.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci		6) Run the call by using ioctl() as described in the header.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci		7) The output will be returned in the buffer object.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci		8) Be sure to free up your allocated object.
42