Merge remote-tracking branch 'origin/master' into staging
[qemu-kvm.git] / iorange.h
blobcd980a8312a83590f0dfeea47ad2ce52e187ea3d
1 #ifndef IORANGE_H
2 #define IORANGE_H
4 #include <stdint.h>
6 typedef struct IORange IORange;
7 typedef struct IORangeOps IORangeOps;
9 struct IORangeOps {
10 void (*read)(IORange *iorange, uint64_t offset, unsigned width,
11 uint64_t *data);
12 void (*write)(IORange *iorange, uint64_t offset, unsigned width,
13 uint64_t data);
14 void (*destructor)(IORange *iorange);
17 struct IORange {
18 const IORangeOps *ops;
19 uint64_t base;
20 uint64_t len;
23 static inline void iorange_init(IORange *iorange, const IORangeOps *ops,
24 uint64_t base, uint64_t len)
26 iorange->ops = ops;
27 iorange->base = base;
28 iorange->len = len;
31 #endif