Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/s390/include/asm/io.h
10819 views
1
/*
2
* include/asm-s390/io.h
3
*
4
* S390 version
5
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
6
* Author(s): Martin Schwidefsky ([email protected])
7
*
8
* Derived from "include/asm-i386/io.h"
9
*/
10
11
#ifndef _S390_IO_H
12
#define _S390_IO_H
13
14
#ifdef __KERNEL__
15
16
#include <asm/page.h>
17
18
#define IO_SPACE_LIMIT 0xffffffff
19
20
/*
21
* Change virtual addresses to physical addresses and vv.
22
* These are pretty trivial
23
*/
24
static inline unsigned long virt_to_phys(volatile void * address)
25
{
26
unsigned long real_address;
27
asm volatile(
28
" lra %0,0(%1)\n"
29
" jz 0f\n"
30
" la %0,0\n"
31
"0:"
32
: "=a" (real_address) : "a" (address) : "cc");
33
return real_address;
34
}
35
36
static inline void * phys_to_virt(unsigned long address)
37
{
38
return (void *) address;
39
}
40
41
/*
42
* Convert a physical pointer to a virtual kernel pointer for /dev/mem
43
* access
44
*/
45
#define xlate_dev_mem_ptr(p) __va(p)
46
47
/*
48
* Convert a virtual cached pointer to an uncached pointer
49
*/
50
#define xlate_dev_kmem_ptr(p) p
51
52
#endif /* __KERNEL__ */
53
54
#endif
55
56