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_wopcm.h (1205B)


      1/*
      2 * SPDX-License-Identifier: MIT
      3 *
      4 * Copyright © 2017-2018 Intel Corporation
      5 */
      6
      7#ifndef _INTEL_WOPCM_H_
      8#define _INTEL_WOPCM_H_
      9
     10#include <linux/types.h>
     11
     12/**
     13 * struct intel_wopcm - Overall WOPCM info and WOPCM regions.
     14 * @size: Size of overall WOPCM.
     15 * @guc: GuC WOPCM Region info.
     16 * @guc.base: GuC WOPCM base which is offset from WOPCM base.
     17 * @guc.size: Size of the GuC WOPCM region.
     18 */
     19struct intel_wopcm {
     20	u32 size;
     21	struct {
     22		u32 base;
     23		u32 size;
     24	} guc;
     25};
     26
     27/**
     28 * intel_wopcm_guc_base()
     29 * @wopcm:	intel_wopcm structure
     30 *
     31 * Returns the base of the WOPCM shadowed region.
     32 *
     33 * Returns:
     34 * 0 if GuC is not present or not in use.
     35 * Otherwise, the GuC WOPCM base.
     36 */
     37static inline u32 intel_wopcm_guc_base(struct intel_wopcm *wopcm)
     38{
     39	return wopcm->guc.base;
     40}
     41
     42/**
     43 * intel_wopcm_guc_size()
     44 * @wopcm:	intel_wopcm structure
     45 *
     46 * Returns size of the WOPCM shadowed region.
     47 *
     48 * Returns:
     49 * 0 if GuC is not present or not in use.
     50 * Otherwise, the GuC WOPCM size.
     51 */
     52static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm)
     53{
     54	return wopcm->guc.size;
     55}
     56
     57void intel_wopcm_init_early(struct intel_wopcm *wopcm);
     58void intel_wopcm_init(struct intel_wopcm *wopcm);
     59
     60#endif