]>
Commit | Line | Data |
---|---|---|
acd1c812 AK |
1 | #ifndef IORANGE_H |
2 | #define IORANGE_H | |
3 | ||
4 | #include <stdint.h> | |
5 | ||
6 | typedef struct IORange IORange; | |
7 | typedef struct IORangeOps IORangeOps; | |
8 | ||
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 | }; | |
15 | ||
16 | struct IORange { | |
17 | const IORangeOps *ops; | |
18 | uint64_t base; | |
19 | uint64_t len; | |
20 | }; | |
21 | ||
22 | static inline void iorange_init(IORange *iorange, const IORangeOps *ops, | |
23 | uint64_t base, uint64_t len) | |
24 | { | |
25 | iorange->ops = ops; | |
26 | iorange->base = base; | |
27 | iorange->len = len; | |
28 | } | |
29 | ||
30 | #endif |