]> git.proxmox.com Git - qemu.git/blame - rwhandler.h
Merge remote-tracking branch 'kwolf/for-anthony' into staging
[qemu.git] / rwhandler.h
CommitLineData
049f7adb
MT
1#ifndef READ_WRITE_HANDLER_H
2#define READ_WRITE_HANDLER_H
3
4#include "qemu-common.h"
5#include "ioport.h"
6
7typedef struct ReadWriteHandler ReadWriteHandler;
8
9/* len is guaranteed to be one of 1, 2 or 4, addr is guaranteed to fit in an
10 * appropriate type (io/memory/etc). They do not need to be range checked. */
11typedef void WriteHandlerFunc(ReadWriteHandler *, pcibus_t addr,
12 uint32_t value, int len);
13typedef uint32_t ReadHandlerFunc(ReadWriteHandler *, pcibus_t addr, int len);
14
15struct ReadWriteHandler {
16 WriteHandlerFunc *write;
17 ReadHandlerFunc *read;
18};
19
20/* Helpers for when we want to use a single routine with length. */
21/* CPU memory handler: both read and write must be present. */
6bef0436 22int cpu_register_io_memory_simple(ReadWriteHandler *, int endian);
049f7adb
MT
23/* io port handler: can supply only read or write handlers. */
24int register_ioport_simple(ReadWriteHandler *,
25 pio_addr_t start, int length, int size);
26
27#endif