1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __VIRT_CONVERT__
3#define __VIRT_CONVERT__
4
5/*
6 * Macros used for converting between virtual and physical mappings.
7 */
8
9#ifdef __KERNEL__
10
11#include <linux/compiler.h>
12#include <linux/mmzone.h>
13#include <asm/setup.h>
14#include <asm/page.h>
15
16/*
17 * Change virtual addresses to physical addresses and vv.
18 */
19#define virt_to_phys virt_to_phys
20static inline unsigned long virt_to_phys(void *address)
21{
22	return __pa(address);
23}
24
25#define phys_to_virt phys_to_virt
26static inline void *phys_to_virt(unsigned long address)
27{
28	return __va(address);
29}
30
31/* Permanent address of a page. */
32#define page_to_phys(page)	(page_to_pfn(page) << PAGE_SHIFT)
33
34/*
35 * IO bus memory addresses are 1:1 with the physical address,
36 * deprecated globally but still used on two machines.
37 */
38#if defined(CONFIG_AMIGA) || defined(CONFIG_VME)
39#define virt_to_bus virt_to_phys
40#endif
41
42#endif
43#endif
44