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

irq_remapping.h (1386B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2012 Advanced Micro Devices, Inc.
      4 * Author: Joerg Roedel <jroedel@suse.de>
      5 *
      6 * This header file contains stuff that is shared between different interrupt
      7 * remapping drivers but with no need to be visible outside of the IOMMU layer.
      8 */
      9
     10#ifndef __IRQ_REMAPPING_H
     11#define __IRQ_REMAPPING_H
     12
     13#ifdef CONFIG_IRQ_REMAP
     14
     15struct irq_data;
     16struct msi_msg;
     17struct irq_domain;
     18struct irq_alloc_info;
     19
     20extern int irq_remap_broken;
     21extern int disable_sourceid_checking;
     22extern int no_x2apic_optout;
     23extern int irq_remapping_enabled;
     24
     25extern int disable_irq_post;
     26
     27struct irq_remap_ops {
     28	/* The supported capabilities */
     29	int capability;
     30
     31	/* Initializes hardware and makes it ready for remapping interrupts */
     32	int  (*prepare)(void);
     33
     34	/* Enables the remapping hardware */
     35	int  (*enable)(void);
     36
     37	/* Disables the remapping hardware */
     38	void (*disable)(void);
     39
     40	/* Reenables the remapping hardware */
     41	int  (*reenable)(int);
     42
     43	/* Enable fault handling */
     44	int  (*enable_faulting)(void);
     45};
     46
     47extern struct irq_remap_ops intel_irq_remap_ops;
     48extern struct irq_remap_ops amd_iommu_irq_ops;
     49extern struct irq_remap_ops hyperv_irq_remap_ops;
     50
     51#else  /* CONFIG_IRQ_REMAP */
     52
     53#define irq_remapping_enabled 0
     54#define irq_remap_broken      0
     55#define disable_irq_post      1
     56
     57#endif /* CONFIG_IRQ_REMAP */
     58
     59#endif /* __IRQ_REMAPPING_H */