1 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ 2 /* 3 * User API methods for ACPI-WMI mapping driver 4 * 5 * Copyright (C) 2017 Dell, Inc. 6 */ 7 #ifndef _UAPI_LINUX_WMI_H 8 #define _UAPI_LINUX_WMI_H 9 10 #include <linux/ioctl.h> 11 #include <linux/types.h> 12 13 /* WMI bus will filter all WMI vendor driver requests through this IOC */ 14 #define WMI_IOC 'W' 15 16 /* All ioctl requests through WMI should declare their size followed by 17 * relevant data objects 18 */ 19 struct wmi_ioctl_buffer { 20 __u64 length; 21 __u8 data[]; 22 }; 23 24 /* This structure may be modified by the firmware when we enter 25 * system management mode through SMM, hence the volatiles 26 */ 27 struct calling_interface_buffer { 28 __u16 cmd_class; 29 __u16 cmd_select; 30 volatile __u32 input[4]; 31 volatile __u32 output[4]; 32 } __packed; 33 34 struct dell_wmi_extensions { 35 __u32 argattrib; 36 __u32 blength; 37 __u8 data[]; 38 } __packed; 39 40 struct dell_wmi_smbios_buffer { 41 __u64 length; 42 struct calling_interface_buffer std; 43 struct dell_wmi_extensions ext; 44 } __packed; 45 46 /* Whitelisted smbios class/select commands */ 47 #define CLASS_TOKEN_READ 0 48 #define CLASS_TOKEN_WRITE 1 49 #define SELECT_TOKEN_STD 0 50 #define SELECT_TOKEN_BAT 1 51 #define SELECT_TOKEN_AC 2 52 #define CLASS_FLASH_INTERFACE 7 53 #define SELECT_FLASH_INTERFACE 3 54 #define CLASS_ADMIN_PROP 10 55 #define SELECT_ADMIN_PROP 3 56 #define CLASS_INFO 17 57 #define SELECT_RFKILL 11 58 #define SELECT_APP_REGISTRATION 3 59 #define SELECT_DOCK 22 60 61 /* whitelisted tokens */ 62 #define CAPSULE_EN_TOKEN 0x0461 63 #define CAPSULE_DIS_TOKEN 0x0462 64 #define WSMT_EN_TOKEN 0x04EC 65 #define WSMT_DIS_TOKEN 0x04ED 66 67 /* Dell SMBIOS calling IOCTL command used by dell-smbios-wmi */ 68 #define DELL_WMI_SMBIOS_CMD _IOWR(WMI_IOC, 0, struct dell_wmi_smbios_buffer) 69 70 #endif 71
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.