1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (c) 2015 National Instruments 4 * 5 * (C) Copyright 2015 6 * Joe Hershberger <joe.hershberger@ni.com> 7 */ 8 9 #ifndef __MAPMEM_H 10 #define __MAPMEM_H 11 12 /* Define a null map_sysmem() if the architecture doesn't use it */ 13 # ifdef CONFIG_ARCH_MAP_SYSMEM 14 #include <asm/io.h> 15 # else 16 #include <linux/types.h> 17 map_sysmem(phys_addr_t paddr,unsigned long len)18static inline void *map_sysmem(phys_addr_t paddr, unsigned long len) 19 { 20 return (void *)(uintptr_t)paddr; 21 } 22 unmap_sysmem(const void * vaddr)23static inline void unmap_sysmem(const void *vaddr) 24 { 25 } 26 map_to_sysmem(const void * ptr)27static inline phys_addr_t map_to_sysmem(const void *ptr) 28 { 29 return (phys_addr_t)(uintptr_t)ptr; 30 } 31 32 /** 33 * nomap_sysmem() - pass through an address unchanged 34 * 35 * This is used to indicate an address which should NOT be mapped, e.g. in 36 * SMBIOS tables. Using this function instead of a cast shows that the sandbox 37 * conversion has been done 38 */ nomap_sysmem(phys_addr_t paddr,unsigned long len)39static inline void *nomap_sysmem(phys_addr_t paddr, unsigned long len) 40 { 41 return (void *)(uintptr_t)paddr; 42 } 43 nomap_to_sysmem(const void * ptr)44static inline phys_addr_t nomap_to_sysmem(const void *ptr) 45 { 46 return (phys_addr_t)(uintptr_t)ptr; 47 } 48 49 # endif 50 51 #endif /* __MAPMEM_H */ 52