linux-headers (unknown)

(root)/
include/
linux/
wmi.h
       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 _LINUX_WMI_H
       8  #define _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  } __attribute__((packed));
      33  
      34  struct dell_wmi_extensions {
      35  	__u32 argattrib;
      36  	__u32 blength;
      37  	__u8 data[];
      38  } __attribute__((packed));
      39  
      40  struct dell_wmi_smbios_buffer {
      41  	__u64 length;
      42  	struct calling_interface_buffer std;
      43  	struct dell_wmi_extensions	ext;
      44  } __attribute__((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