Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071/* 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