mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ |
|
/* |
|
* User API methods for ACPI-WMI mapping driver |
|
* |
|
* Copyright (C) 2017 Dell, Inc. |
|
*/ |
|
#ifndef _UAPI_LINUX_WMI_H |
|
#define _UAPI_LINUX_WMI_H |
|
|
|
#include <linux/ioctl.h> |
|
#include <linux/types.h> |
|
|
|
/* WMI bus will filter all WMI vendor driver requests through this IOC */ |
|
#define WMI_IOC 'W' |
|
|
|
/* All ioctl requests through WMI should declare their size followed by |
|
* relevant data objects |
|
*/ |
|
struct wmi_ioctl_buffer { |
|
__u64 length; |
|
__u8 data[]; |
|
}; |
|
|
|
/* This structure may be modified by the firmware when we enter |
|
* system management mode through SMM, hence the volatiles |
|
*/ |
|
struct calling_interface_buffer { |
|
__u16 cmd_class; |
|
__u16 cmd_select; |
|
volatile __u32 input[4]; |
|
volatile __u32 output[4]; |
|
} __packed; |
|
|
|
struct dell_wmi_extensions { |
|
__u32 argattrib; |
|
__u32 blength; |
|
__u8 data[]; |
|
} __packed; |
|
|
|
struct dell_wmi_smbios_buffer { |
|
__u64 length; |
|
struct calling_interface_buffer std; |
|
struct dell_wmi_extensions ext; |
|
} __packed; |
|
|
|
/* Whitelisted smbios class/select commands */ |
|
#define CLASS_TOKEN_READ 0 |
|
#define CLASS_TOKEN_WRITE 1 |
|
#define SELECT_TOKEN_STD 0 |
|
#define SELECT_TOKEN_BAT 1 |
|
#define SELECT_TOKEN_AC 2 |
|
#define CLASS_FLASH_INTERFACE 7 |
|
#define SELECT_FLASH_INTERFACE 3 |
|
#define CLASS_ADMIN_PROP 10 |
|
#define SELECT_ADMIN_PROP 3 |
|
#define CLASS_INFO 17 |
|
#define SELECT_RFKILL 11 |
|
#define SELECT_APP_REGISTRATION 3 |
|
#define SELECT_DOCK 22 |
|
|
|
/* whitelisted tokens */ |
|
#define CAPSULE_EN_TOKEN 0x0461 |
|
#define CAPSULE_DIS_TOKEN 0x0462 |
|
#define WSMT_EN_TOKEN 0x04EC |
|
#define WSMT_DIS_TOKEN 0x04ED |
|
|
|
/* Dell SMBIOS calling IOCTL command used by dell-smbios-wmi */ |
|
#define DELL_WMI_SMBIOS_CMD _IOWR(WMI_IOC, 0, struct dell_wmi_smbios_buffer) |
|
|
|
#endif
|
|
|