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

genwqe_driver.h (1738B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2#ifndef __GENWQE_DRIVER_H__
      3#define __GENWQE_DRIVER_H__
      4
      5/**
      6 * IBM Accelerator Family 'GenWQE'
      7 *
      8 * (C) Copyright IBM Corp. 2013
      9 *
     10 * Author: Frank Haverkamp <haver@linux.vnet.ibm.com>
     11 * Author: Joerg-Stephan Vogt <jsvogt@de.ibm.com>
     12 * Author: Michael Jung <mijung@gmx.net>
     13 * Author: Michael Ruettger <michael@ibmra.de>
     14 */
     15
     16#include <linux/types.h>
     17#include <linux/stddef.h>
     18#include <linux/cdev.h>
     19#include <linux/list.h>
     20#include <linux/kthread.h>
     21#include <linux/scatterlist.h>
     22#include <linux/iommu.h>
     23#include <linux/spinlock.h>
     24#include <linux/mutex.h>
     25#include <linux/platform_device.h>
     26#include <linux/printk.h>
     27
     28#include <asm/byteorder.h>
     29#include <linux/genwqe/genwqe_card.h>
     30
     31#define DRV_VERSION		"2.0.25"
     32
     33/*
     34 * Static minor number assignement, until we decide/implement
     35 * something dynamic.
     36 */
     37#define GENWQE_MAX_MINOR	128 /* up to 128 possible genwqe devices */
     38
     39/**
     40 * genwqe_requ_alloc() - Allocate a new DDCB execution request
     41 *
     42 * This data structure contains the user visiable fields of the DDCB
     43 * to be executed.
     44 *
     45 * Return: ptr to genwqe_ddcb_cmd data structure
     46 */
     47struct genwqe_ddcb_cmd *ddcb_requ_alloc(void);
     48
     49/**
     50 * ddcb_requ_free() - Free DDCB execution request.
     51 * @req:       ptr to genwqe_ddcb_cmd data structure.
     52 */
     53void ddcb_requ_free(struct genwqe_ddcb_cmd *req);
     54
     55u32  genwqe_crc32(u8 *buff, size_t len, u32 init);
     56
     57static inline void genwqe_hexdump(struct pci_dev *pci_dev,
     58				  const void *buff, unsigned int size)
     59{
     60	char prefix[32];
     61
     62	scnprintf(prefix, sizeof(prefix), "%s %s: ",
     63		  GENWQE_DEVNAME, pci_name(pci_dev));
     64
     65	print_hex_dump_debug(prefix, DUMP_PREFIX_OFFSET, 16, 1, buff,
     66			     size, true);
     67}
     68
     69#endif	/* __GENWQE_DRIVER_H__ */