cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

intel_sar.h (2684B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (c) 2021, Intel Corporation.
      4 */
      5#ifndef INTEL_SAR_H
      6#define INTEL_SAR_H
      7
      8#define COMMAND_ID_DEV_MODE 1
      9#define COMMAND_ID_CONFIG_TABLE 2
     10#define DRVNAME "intc_sar"
     11#define MAX_DEV_MODES 50
     12#define MAX_REGULATORY 3
     13#define SAR_DSM_UUID "82737E72-3A33-4C45-A9C7-57C0411A5F13"
     14#define SAR_EVENT 0x80
     15#define SYSFS_DATANAME "intc_data"
     16#define TOTAL_DATA 4
     17
     18/**
     19 * Structure wwan_device_mode_info - device mode information
     20 * Holds the data that needs to be passed to userspace.
     21 * The data is updated from the BIOS sensor information.
     22 * @device_mode: Specific mode of the device
     23 * @bandtable_index: Index of RF band
     24 * @antennatable_index: Index of antenna
     25 * @sartable_index: Index of SAR
     26 */
     27struct wwan_device_mode_info {
     28	int device_mode;
     29	int bandtable_index;
     30	int antennatable_index;
     31	int sartable_index;
     32};
     33
     34/**
     35 * Structure wwan_device_mode_configuration - device configuration
     36 * Holds the data that is configured and obtained on probe event.
     37 * The data is updated from the BIOS sensor information.
     38 * @version: Mode configuration version
     39 * @total_dev_mode: Total number of device modes
     40 * @device_mode_info: pointer to structure wwan_device_mode_info
     41 */
     42struct wwan_device_mode_configuration {
     43	int version;
     44	int total_dev_mode;
     45	struct wwan_device_mode_info *device_mode_info;
     46};
     47
     48/**
     49 * Structure wwan_supported_info - userspace datastore
     50 * Holds the data that is obtained from userspace
     51 * The data is updated from the userspace and send value back in the
     52 * structure format that is mentioned here.
     53 * @reg_mode_needed: regulatory mode set by user for tests
     54 * @bios_table_revision: Version of SAR table
     55 * @num_supported_modes: Total supported modes based on reg_mode
     56 */
     57struct wwan_supported_info {
     58	int reg_mode_needed;
     59	int bios_table_revision;
     60	int num_supported_modes;
     61};
     62
     63/**
     64 * Structure wwan_sar_context - context of SAR
     65 * Holds the complete context as long as the driver is in existence
     66 * The context holds instance of the data used for different cases.
     67 * @guid: Group id
     68 * @handle: store acpi handle
     69 * @reg_value: regulatory value
     70 * Regulatory 0: FCC, 1: CE, 2: ISED
     71 * @sar_device: platform_device type
     72 * @sar_kobject: kobject for sysfs
     73 * @supported_data: wwan_supported_info struct
     74 * @sar_data: wwan_device_mode_info struct
     75 * @config_data: wwan_device_mode_configuration array struct
     76 */
     77struct wwan_sar_context {
     78	guid_t guid;
     79	acpi_handle handle;
     80	int reg_value;
     81	struct platform_device *sar_device;
     82	struct wwan_supported_info supported_data;
     83	struct wwan_device_mode_info sar_data;
     84	struct wwan_device_mode_configuration config_data[MAX_REGULATORY];
     85};
     86#endif /* INTEL_SAR_H */