1 What: /dev/wmi/dell-smbios 1 What: /dev/wmi/dell-smbios 2 Date: November 2017 2 Date: November 2017 3 KernelVersion: 4.15 3 KernelVersion: 4.15 4 Contact: Dell.Client.Kernel@dell.com !! 4 Contact: "Mario Limonciello" <mario.limonciello@dell.com> 5 Description: 5 Description: 6 Perform SMBIOS calls on suppor 6 Perform SMBIOS calls on supported Dell machines. 7 through the Dell ACPI-WMI inte 7 through the Dell ACPI-WMI interface. 8 8 9 IOCTL's and buffer formats are 9 IOCTL's and buffer formats are defined in: 10 <uapi/linux/wmi.h> 10 <uapi/linux/wmi.h> 11 11 12 1) To perform an SMBIOS call f 12 1) To perform an SMBIOS call from userspace, you'll need to 13 first determine the minimum 13 first determine the minimum size of the calling interface 14 buffer for your machine. 14 buffer for your machine. 15 Platforms that contain larg 15 Platforms that contain larger buffers can return larger 16 objects from the system fir 16 objects from the system firmware. 17 Commonly this size is eithe 17 Commonly this size is either 4k or 32k. 18 18 19 To determine the size of th 19 To determine the size of the buffer read() a u64 dword from 20 the WMI character device /d 20 the WMI character device /dev/wmi/dell-smbios. 21 21 22 2) After you've determined the 22 2) After you've determined the minimum size of the calling 23 interface buffer, you can a 23 interface buffer, you can allocate a structure that represents 24 the structure documented ab 24 the structure documented above. 25 25 26 3) In the 'length' object stor 26 3) In the 'length' object store the size of the buffer you 27 determined above and alloca 27 determined above and allocated. 28 28 29 4) In this buffer object, prep 29 4) In this buffer object, prepare as necessary for the SMBIOS 30 call you're interested in. 30 call you're interested in. Typically SMBIOS buffers have 31 "class", "select", and "inp 31 "class", "select", and "input" defined to values that coincide 32 with the data you are inter 32 with the data you are interested in. 33 Documenting class/select/in 33 Documenting class/select/input values is outside of the scope 34 of this documentation. Chec 34 of this documentation. Check with the libsmbios project for 35 further documentation on th 35 further documentation on these values. 36 36 37 6) Run the call by using ioctl 37 6) Run the call by using ioctl() as described in the header. 38 38 39 7) The output will be returned 39 7) The output will be returned in the buffer object. 40 40 41 8) Be sure to free up your all 41 8) Be sure to free up your allocated object.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.