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

hwctrset.h (1689B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2/*
      3 * Copyright IBM Corp. 2021
      4 * Interface implementation for communication with the CPU Measurement
      5 * counter facility device driver.
      6 *
      7 * Author(s): Thomas Richter <tmricht@linux.ibm.com>
      8 *
      9 * Define for ioctl() commands to communicate with the CPU Measurement
     10 * counter facility device driver.
     11 */
     12
     13#ifndef _PERF_CPUM_CF_DIAG_H
     14#define _PERF_CPUM_CF_DIAG_H
     15
     16#include <linux/ioctl.h>
     17#include <linux/types.h>
     18
     19#define S390_HWCTR_DEVICE		"hwctr"
     20#define S390_HWCTR_START_VERSION	1
     21
     22struct s390_ctrset_start {		/* Set CPUs to operate on */
     23	__u64 version;			/* Version of interface */
     24	__u64 data_bytes;		/* # of bytes required */
     25	__u64 cpumask_len;		/* Length of CPU mask in bytes */
     26	__u64 *cpumask;			/* Pointer to CPU mask */
     27	__u64 counter_sets;		/* Bit mask of counter sets to get */
     28};
     29
     30struct s390_ctrset_setdata {		/* Counter set data */
     31	__u32 set;			/* Counter set number */
     32	__u32 no_cnts;			/* # of counters stored in cv[] */
     33	__u64 cv[0];			/* Counter values (variable length) */
     34};
     35
     36struct s390_ctrset_cpudata {		/* Counter set data per CPU */
     37	__u32 cpu_nr;			/* CPU number */
     38	__u32 no_sets;			/* # of counters sets in data[] */
     39	struct s390_ctrset_setdata data[0];
     40};
     41
     42struct s390_ctrset_read {		/* Structure to get all ctr sets */
     43	__u64 no_cpus;			/* Total # of CPUs data taken from */
     44	struct s390_ctrset_cpudata data[0];
     45};
     46
     47#define S390_HWCTR_MAGIC	'C'	/* Random magic # for ioctls */
     48#define	S390_HWCTR_START	_IOWR(S390_HWCTR_MAGIC, 1, struct s390_ctrset_start)
     49#define	S390_HWCTR_STOP		_IO(S390_HWCTR_MAGIC, 2)
     50#define	S390_HWCTR_READ		_IOWR(S390_HWCTR_MAGIC, 3, struct s390_ctrset_read)
     51#endif