brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 7085c5d Raw
71 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */2/*3 *  User API methods for ACPI-WMI mapping driver4 *5 *  Copyright (C) 2017 Dell, Inc.6 */7#ifndef _UAPI_LINUX_WMI_H8#define _UAPI_LINUX_WMI_H9 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 by17 * relevant data objects18 */19struct wmi_ioctl_buffer {20	__u64	length;21	__u8	data[];22};23 24/* This structure may be modified by the firmware when we enter25 * system management mode through SMM, hence the volatiles26 */27struct calling_interface_buffer {28	__u16 cmd_class;29	__u16 cmd_select;30	volatile __u32 input[4];31	volatile __u32 output[4];32} __packed;33 34struct dell_wmi_extensions {35	__u32 argattrib;36	__u32 blength;37	__u8 data[];38} __packed;39 40struct 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	048#define CLASS_TOKEN_WRITE	149#define SELECT_TOKEN_STD	050#define SELECT_TOKEN_BAT	151#define SELECT_TOKEN_AC		252#define CLASS_FLASH_INTERFACE	753#define SELECT_FLASH_INTERFACE	354#define CLASS_ADMIN_PROP	1055#define SELECT_ADMIN_PROP	356#define CLASS_INFO		1757#define SELECT_RFKILL		1158#define SELECT_APP_REGISTRATION	359#define SELECT_DOCK		2260 61/* whitelisted tokens */62#define CAPSULE_EN_TOKEN	0x046163#define CAPSULE_DIS_TOKEN	0x046264#define WSMT_EN_TOKEN		0x04EC65#define WSMT_DIS_TOKEN		0x04ED66 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#endif71