1 /* SPDX-License-Identifier: GPL-2.0 */ 1 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 11 struct 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 21 int register_trapped_io(struct trapped_io *tio 22 int handle_trapped_io(struct pt_regs *regs, un 23 24 void __iomem *match_trapped_io_handler(struct 25 unsigne 26 unsigne 27 28 #ifdef CONFIG_HAS_IOMEM 29 extern struct list_head trapped_mem; 30 31 static inline void __iomem * 32 __ioremap_trapped(unsigned long offset, unsign 33 { 34 return match_trapped_io_handler(&trapp 35 } 36 #else 37 #define __ioremap_trapped(offset, size) NULL 38 #endif 39 40 #ifdef CONFIG_HAS_IOPORT_MAP 41 extern struct list_head trapped_io; 42 43 static inline void __iomem * 44 __ioport_map_trapped(unsigned long offset, uns 45 { 46 return match_trapped_io_handler(&trapp 47 } 48 #else 49 #define __ioport_map_trapped(offset, size) NUL 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) NUL 57 #endif 58 59 #endif /* __ASM_SH_IO_TRAPPED_H */ 60
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.