root / rwhandler.h @ b3755a91
History | View | Annotate | Download (969 Bytes)
1 | 049f7adb | Michael S. Tsirkin | #ifndef READ_WRITE_HANDLER_H
|
---|---|---|---|
2 | 049f7adb | Michael S. Tsirkin | #define READ_WRITE_HANDLER_H
|
3 | 049f7adb | Michael S. Tsirkin | |
4 | 049f7adb | Michael S. Tsirkin | #include "qemu-common.h" |
5 | 049f7adb | Michael S. Tsirkin | #include "ioport.h" |
6 | 049f7adb | Michael S. Tsirkin | |
7 | 049f7adb | Michael S. Tsirkin | typedef struct ReadWriteHandler ReadWriteHandler; |
8 | 049f7adb | Michael S. Tsirkin | |
9 | 049f7adb | Michael S. Tsirkin | /* len is guaranteed to be one of 1, 2 or 4, addr is guaranteed to fit in an
|
10 | 049f7adb | Michael S. Tsirkin | * appropriate type (io/memory/etc). They do not need to be range checked. */
|
11 | 049f7adb | Michael S. Tsirkin | typedef void WriteHandlerFunc(ReadWriteHandler *, pcibus_t addr, |
12 | 049f7adb | Michael S. Tsirkin | uint32_t value, int len);
|
13 | 049f7adb | Michael S. Tsirkin | typedef uint32_t ReadHandlerFunc(ReadWriteHandler *, pcibus_t addr, int len); |
14 | 049f7adb | Michael S. Tsirkin | |
15 | 049f7adb | Michael S. Tsirkin | struct ReadWriteHandler {
|
16 | 049f7adb | Michael S. Tsirkin | WriteHandlerFunc *write; |
17 | 049f7adb | Michael S. Tsirkin | ReadHandlerFunc *read; |
18 | 049f7adb | Michael S. Tsirkin | }; |
19 | 049f7adb | Michael S. Tsirkin | |
20 | 049f7adb | Michael S. Tsirkin | /* Helpers for when we want to use a single routine with length. */
|
21 | 049f7adb | Michael S. Tsirkin | /* CPU memory handler: both read and write must be present. */
|
22 | 049f7adb | Michael S. Tsirkin | int cpu_register_io_memory_simple(ReadWriteHandler *);
|
23 | 049f7adb | Michael S. Tsirkin | /* io port handler: can supply only read or write handlers. */
|
24 | 049f7adb | Michael S. Tsirkin | int register_ioport_simple(ReadWriteHandler *,
|
25 | 049f7adb | Michael S. Tsirkin | pio_addr_t start, int length, int size); |
26 | 049f7adb | Michael S. Tsirkin | |
27 | 049f7adb | Michael S. Tsirkin | #endif |