diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2012-12-21 07:53:48 -0600 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-12-21 07:53:48 -0600 |
commit | bb5801f551ee8591d576d87a9290af297998e322 (patch) | |
tree | 232402f237f940946c642c4cd6e0edcf6f94dd3f /include/exec/iorange.h | |
parent | 914606d26e654d4c01bd5186f4d05e3fd445e219 (diff) | |
parent | 9848a40427cd76628d04d918fa4751c542527915 (diff) |
Merge remote-tracking branch 'quintela/thread-20121220.next' into staging
* quintela/thread-20121220.next: (79 commits)
migration: merge QEMUFileBuffered into MigrationState
migration: fix qemu_get_fd for BufferedFile
ram: refactor ram_save_block() return value
ram: account the amount of transferred ram better
ram: optimize migration bitmap walking
ram: Use memory_region_test_and_clear_dirty
memory: introduce memory_region_test_and_clear_dirty
ram: Add last_sent_block
ram: rename last_block to last_seen_block
migration: move migration notifier
migration: Inline qemu_fopen_ops_buffered into migrate_fd_connect
migration: move migration_fd_put_ready()
migration: add XFER_LIMIT_RATIO
migration: move buffered_file.c code into migration.c
savevm: New save live migration method: pending
buffered_file: unfold buffered_append in buffered_put_buffer
buffered_file: don't flush on put buffer
buffered_file: Unfold the trick to restart generating migration data
migration: just lock migrate_fd_put_ready
migration: remove unfreeze logic
...
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'include/exec/iorange.h')
-rw-r--r-- | include/exec/iorange.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/exec/iorange.h b/include/exec/iorange.h new file mode 100644 index 0000000000..cd980a8312 --- /dev/null +++ b/include/exec/iorange.h @@ -0,0 +1,31 @@ +#ifndef IORANGE_H +#define IORANGE_H + +#include <stdint.h> + +typedef struct IORange IORange; +typedef struct IORangeOps IORangeOps; + +struct IORangeOps { + void (*read)(IORange *iorange, uint64_t offset, unsigned width, + uint64_t *data); + void (*write)(IORange *iorange, uint64_t offset, unsigned width, + uint64_t data); + void (*destructor)(IORange *iorange); +}; + +struct IORange { + const IORangeOps *ops; + uint64_t base; + uint64_t len; +}; + +static inline void iorange_init(IORange *iorange, const IORangeOps *ops, + uint64_t base, uint64_t len) +{ + iorange->ops = ops; + iorange->base = base; + iorange->len = len; +} + +#endif |