提交 9ad2bbc1 编写于 作者: A Avi Kivity

memory: export AddressSpace

The DMA API will use an AddressSpace to differentiate among different
initiators.
Reviewed-by: NAnthony Liguori <aliguori@us.ibm.com>
Signed-off-by: NAvi Kivity <avi@redhat.com>
上级 8786db7c
......@@ -216,17 +216,8 @@ struct FlatView {
unsigned nr_allocated;
};
typedef struct AddressSpace AddressSpace;
typedef struct AddressSpaceOps AddressSpaceOps;
/* A system address space - I/O, memory, etc. */
struct AddressSpace {
MemoryRegion *root;
FlatView *current_map;
int ioeventfd_nb;
MemoryRegionIoeventfd *ioeventfds;
};
#define FOR_EACH_FLAT_RANGE(var, view) \
for (var = (view)->ranges; var < (view)->ranges + (view)->nr; ++var)
......@@ -1510,7 +1501,7 @@ void memory_listener_unregister(MemoryListener *listener)
QTAILQ_REMOVE(&memory_listeners, listener, link);
}
static void address_space_init(AddressSpace *as, MemoryRegion *root)
void address_space_init(AddressSpace *as, MemoryRegion *root)
{
memory_region_transaction_begin();
as->root = root;
......
......@@ -157,6 +157,19 @@ struct MemoryRegionPortio {
#define PORTIO_END_OF_LIST() { }
typedef struct AddressSpace AddressSpace;
/**
* AddressSpace: describes a mapping of addresses to #MemoryRegion objects
*/
struct AddressSpace {
/* All fields are private. */
MemoryRegion *root;
struct FlatView *current_map;
int ioeventfd_nb;
struct MemoryRegionIoeventfd *ioeventfds;
};
typedef struct MemoryRegionSection MemoryRegionSection;
/**
......@@ -776,6 +789,14 @@ void memory_global_dirty_log_stop(void);
void mtree_info(fprintf_function mon_printf, void *f);
/**
* address_space_init: initializes an address space
*
* @as: an uninitialized #AddressSpace
* @root: a #MemoryRegion that routes addesses for the address space
*/
void address_space_init(AddressSpace *as, MemoryRegion *root);
#endif
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册