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

i915_perf.h (1576B)


      1/* SPDX-License-Identifier: MIT */
      2/*
      3 * Copyright © 2019 Intel Corporation
      4 */
      5
      6#ifndef __I915_PERF_H__
      7#define __I915_PERF_H__
      8
      9#include <linux/kref.h>
     10#include <linux/types.h>
     11
     12#include "i915_perf_types.h"
     13
     14struct drm_device;
     15struct drm_file;
     16struct drm_i915_private;
     17struct i915_oa_config;
     18struct intel_context;
     19struct intel_engine_cs;
     20
     21void i915_perf_init(struct drm_i915_private *i915);
     22void i915_perf_fini(struct drm_i915_private *i915);
     23void i915_perf_register(struct drm_i915_private *i915);
     24void i915_perf_unregister(struct drm_i915_private *i915);
     25int i915_perf_ioctl_version(void);
     26int i915_perf_sysctl_register(void);
     27void i915_perf_sysctl_unregister(void);
     28
     29int i915_perf_open_ioctl(struct drm_device *dev, void *data,
     30			 struct drm_file *file);
     31int i915_perf_add_config_ioctl(struct drm_device *dev, void *data,
     32			       struct drm_file *file);
     33int i915_perf_remove_config_ioctl(struct drm_device *dev, void *data,
     34				  struct drm_file *file);
     35
     36void i915_oa_init_reg_state(const struct intel_context *ce,
     37			    const struct intel_engine_cs *engine);
     38
     39struct i915_oa_config *
     40i915_perf_get_oa_config(struct i915_perf *perf, int metrics_set);
     41
     42static inline struct i915_oa_config *
     43i915_oa_config_get(struct i915_oa_config *oa_config)
     44{
     45	if (kref_get_unless_zero(&oa_config->ref))
     46		return oa_config;
     47	else
     48		return NULL;
     49}
     50
     51void i915_oa_config_release(struct kref *ref);
     52static inline void i915_oa_config_put(struct i915_oa_config *oa_config)
     53{
     54	if (!oa_config)
     55		return;
     56
     57	kref_put(&oa_config->ref, i915_oa_config_release);
     58}
     59
     60#endif /* __I915_PERF_H__ */