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 18static inline void *map_sysmem(phys_addr_t paddr, unsigned long len) 19{ 20 return (void *)(uintptr_t)paddr; 21} 22 23static inline void unmap_sysmem(const void *vaddr) 24{ 25} 26 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 case shows that the sandbox 37 * conversion has been done 38 */ 39static inline void *nomap_sysmem(phys_addr_t paddr, unsigned long len) 40{ 41 return (void *)(uintptr_t)paddr; 42} 43 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