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

io_trapped.h (1474B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_SH_IO_TRAPPED_H
      3#define __ASM_SH_IO_TRAPPED_H
      4
      5#include <linux/list.h>
      6#include <linux/ioport.h>
      7#include <asm/page.h>
      8
      9#define IO_TRAPPED_MAGIC 0xfeedbeef
     10
     11struct trapped_io {
     12	unsigned int magic;
     13	struct resource *resource;
     14	unsigned int num_resources;
     15	unsigned int minimum_bus_width;
     16	struct list_head list;
     17	void __iomem *virt_base;
     18} __aligned(PAGE_SIZE);
     19
     20#ifdef CONFIG_IO_TRAPPED
     21int register_trapped_io(struct trapped_io *tiop);
     22int handle_trapped_io(struct pt_regs *regs, unsigned long address);
     23
     24void __iomem *match_trapped_io_handler(struct list_head *list,
     25				       unsigned long offset,
     26				       unsigned long size);
     27
     28#ifdef CONFIG_HAS_IOMEM
     29extern struct list_head trapped_mem;
     30
     31static inline void __iomem *
     32__ioremap_trapped(unsigned long offset, unsigned long size)
     33{
     34	return match_trapped_io_handler(&trapped_mem, offset, size);
     35}
     36#else
     37#define __ioremap_trapped(offset, size) NULL
     38#endif
     39
     40#ifdef CONFIG_HAS_IOPORT_MAP
     41extern struct list_head trapped_io;
     42
     43static inline void __iomem *
     44__ioport_map_trapped(unsigned long offset, unsigned long size)
     45{
     46	return match_trapped_io_handler(&trapped_io, offset, size);
     47}
     48#else
     49#define __ioport_map_trapped(offset, size) NULL
     50#endif
     51
     52#else
     53#define register_trapped_io(tiop) (-1)
     54#define handle_trapped_io(tiop, address) 0
     55#define __ioremap_trapped(offset, size) NULL
     56#define __ioport_map_trapped(offset, size) NULL
     57#endif
     58
     59#endif /* __ASM_SH_IO_TRAPPED_H */