Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
virt
kvm
iodev.h
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or modify
3
* it under the terms of the GNU General Public License as published by
4
* the Free Software Foundation; either version 2 of the License.
5
*
6
* This program is distributed in the hope that it will be useful,
7
* but WITHOUT ANY WARRANTY; without even the implied warranty of
8
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9
* GNU General Public License for more details.
10
*
11
* You should have received a copy of the GNU General Public License
12
* along with this program; if not, write to the Free Software
13
* Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14
*/
15
16
#ifndef __KVM_IODEV_H__
17
#define __KVM_IODEV_H__
18
19
#include <
linux/kvm_types.h
>
20
#include <asm/errno.h>
21
22
struct
kvm_io_device
;
23
29
struct
kvm_io_device_ops
{
30
int
(*
read
)(
struct
kvm_io_device
*
this
,
31
gpa_t
addr
,
32
int
len
,
33
void
*
val
);
34
int
(*
write
)(
struct
kvm_io_device
*
this
,
35
gpa_t
addr
,
36
int
len
,
37
const
void
*
val
);
38
void
(*
destructor
)(
struct
kvm_io_device
*
this
);
39
};
40
41
42
struct
kvm_io_device
{
43
const
struct
kvm_io_device_ops
*
ops
;
44
};
45
46
static
inline
void
kvm_iodevice_init(
struct
kvm_io_device
*
dev
,
47
const
struct
kvm_io_device_ops
*ops)
48
{
49
dev->
ops
= ops;
50
}
51
52
static
inline
int
kvm_iodevice_read(
struct
kvm_io_device
*
dev
,
53
gpa_t
addr
,
int
l
,
void
*
v
)
54
{
55
return
dev->
ops
->read ? dev->
ops
->read(dev, addr, l, v) : -
EOPNOTSUPP
;
56
}
57
58
static
inline
int
kvm_iodevice_write(
struct
kvm_io_device
*dev,
59
gpa_t
addr,
int
l,
const
void
*v)
60
{
61
return
dev->
ops
->write ? dev->
ops
->write(dev, addr, l, v) : -
EOPNOTSUPP
;
62
}
63
64
static
inline
void
kvm_iodevice_destructor(
struct
kvm_io_device
*dev)
65
{
66
if
(dev->
ops
->destructor)
67
dev->
ops
->destructor(dev);
68
}
69
70
#endif
/* __KVM_IODEV_H__ */
Generated on Thu Jan 10 2013 15:09:36 for Linux Kernel by
1.8.2