Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/um/include/asm/io.h
10820 views
1
#ifndef __UM_IO_H
2
#define __UM_IO_H
3
4
#include "asm/page.h"
5
6
#define IO_SPACE_LIMIT 0xdeadbeef /* Sure hope nothing uses this */
7
8
static inline int inb(unsigned long i) { return(0); }
9
static inline void outb(char c, unsigned long i) { }
10
11
/*
12
* Change virtual addresses to physical addresses and vv.
13
* These are pretty trivial
14
*/
15
static inline unsigned long virt_to_phys(volatile void * address)
16
{
17
return __pa((void *) address);
18
}
19
20
static inline void * phys_to_virt(unsigned long address)
21
{
22
return __va(address);
23
}
24
25
/*
26
* Convert a physical pointer to a virtual kernel pointer for /dev/mem
27
* access
28
*/
29
#define xlate_dev_mem_ptr(p) __va(p)
30
31
/*
32
* Convert a virtual cached pointer to an uncached pointer
33
*/
34
#define xlate_dev_kmem_ptr(p) p
35
36
static inline void writeb(unsigned char b, volatile void __iomem *addr)
37
{
38
*(volatile unsigned char __force *) addr = b;
39
}
40
static inline void writew(unsigned short b, volatile void __iomem *addr)
41
{
42
*(volatile unsigned short __force *) addr = b;
43
}
44
static inline void writel(unsigned int b, volatile void __iomem *addr)
45
{
46
*(volatile unsigned int __force *) addr = b;
47
}
48
static inline void writeq(unsigned int b, volatile void __iomem *addr)
49
{
50
*(volatile unsigned long long __force *) addr = b;
51
}
52
#define __raw_writeb writeb
53
#define __raw_writew writew
54
#define __raw_writel writel
55
#define __raw_writeq writeq
56
57
#endif
58
59