1f2645fa3SMario LimoncielloWhat:		/dev/wmi/dell-smbios
2f2645fa3SMario LimoncielloDate:		November 2017
3f2645fa3SMario LimoncielloKernelVersion:	4.15
4*8599a12bSHans de GoedeContact:	Dell.Client.Kernel@dell.com
5f2645fa3SMario LimoncielloDescription:
6f2645fa3SMario Limonciello		Perform SMBIOS calls on supported Dell machines.
7f2645fa3SMario Limonciello		through the Dell ACPI-WMI interface.
8f2645fa3SMario Limonciello
9f2645fa3SMario Limonciello		IOCTL's and buffer formats are defined in:
10f2645fa3SMario Limonciello		<uapi/linux/wmi.h>
11f2645fa3SMario Limonciello
12f2645fa3SMario Limonciello		1) To perform an SMBIOS call from userspace, you'll need to
13f2645fa3SMario Limonciello		   first determine the minimum size of the calling interface
14f2645fa3SMario Limonciello		   buffer for your machine.
15f2645fa3SMario Limonciello		   Platforms that contain larger buffers can return larger
16f2645fa3SMario Limonciello		   objects from the system firmware.
17f2645fa3SMario Limonciello		   Commonly this size is either 4k or 32k.
18f2645fa3SMario Limonciello
19f2645fa3SMario Limonciello		   To determine the size of the buffer read() a u64 dword from
20f2645fa3SMario Limonciello		   the WMI character device /dev/wmi/dell-smbios.
21f2645fa3SMario Limonciello
22f2645fa3SMario Limonciello		2) After you've determined the minimum size of the calling
23f2645fa3SMario Limonciello		   interface buffer, you can allocate a structure that represents
24f2645fa3SMario Limonciello		   the structure documented above.
25f2645fa3SMario Limonciello
26f2645fa3SMario Limonciello		3) In the 'length' object store the size of the buffer you
27f2645fa3SMario Limonciello		   determined above and allocated.
28f2645fa3SMario Limonciello
29f2645fa3SMario Limonciello		4) In this buffer object, prepare as necessary for the SMBIOS
30f2645fa3SMario Limonciello		   call you're interested in.  Typically SMBIOS buffers have
31f2645fa3SMario Limonciello		   "class", "select", and "input" defined to values that coincide
32f2645fa3SMario Limonciello		   with the data you are interested in.
33f2645fa3SMario Limonciello		   Documenting class/select/input values is outside of the scope
34f2645fa3SMario Limonciello		   of this documentation. Check with the libsmbios project for
35f2645fa3SMario Limonciello		   further documentation on these values.
36f2645fa3SMario Limonciello
37f2645fa3SMario Limonciello		6) Run the call by using ioctl() as described in the header.
38f2645fa3SMario Limonciello
39f2645fa3SMario Limonciello		7) The output will be returned in the buffer object.
40f2645fa3SMario Limonciello
41f2645fa3SMario Limonciello		8) Be sure to free up your allocated object.
42