1022c62cbSPaolo Bonzini /* 29d70618cSPeter Maydell * Declarations for functions which are internal to the memory subsystem. 3022c62cbSPaolo Bonzini * 4022c62cbSPaolo Bonzini * Copyright 2011 Red Hat, Inc. and/or its affiliates 5022c62cbSPaolo Bonzini * 6022c62cbSPaolo Bonzini * Authors: 7022c62cbSPaolo Bonzini * Avi Kivity <avi@redhat.com> 8022c62cbSPaolo Bonzini * 9022c62cbSPaolo Bonzini * This work is licensed under the terms of the GNU GPL, version 2 or 10022c62cbSPaolo Bonzini * later. See the COPYING file in the top-level directory. 11022c62cbSPaolo Bonzini * 12022c62cbSPaolo Bonzini */ 13022c62cbSPaolo Bonzini 14022c62cbSPaolo Bonzini /* 159d70618cSPeter Maydell * This header is for use by exec.c, memory.c and accel/tcg/cputlb.c ONLY, 169d70618cSPeter Maydell * for declarations which are shared between the memory subsystem's 179d70618cSPeter Maydell * internals and the TCG TLB code. Do not include it from elsewhere. 18022c62cbSPaolo Bonzini */ 19022c62cbSPaolo Bonzini 20022c62cbSPaolo Bonzini #ifndef MEMORY_INTERNAL_H 21022c62cbSPaolo Bonzini #define MEMORY_INTERNAL_H 22022c62cbSPaolo Bonzini 23*ec150c7eSMarkus Armbruster #include "cpu.h" 24*ec150c7eSMarkus Armbruster 25022c62cbSPaolo Bonzini #ifndef CONFIG_USER_ONLY flatview_to_dispatch(FlatView * fv)26785a507eSPaolo Bonzinistatic inline AddressSpaceDispatch *flatview_to_dispatch(FlatView *fv) 27785a507eSPaolo Bonzini { 28785a507eSPaolo Bonzini return fv->dispatch; 29785a507eSPaolo Bonzini } 30785a507eSPaolo Bonzini address_space_to_dispatch(AddressSpace * as)31785a507eSPaolo Bonzinistatic inline AddressSpaceDispatch *address_space_to_dispatch(AddressSpace *as) 32785a507eSPaolo Bonzini { 33785a507eSPaolo Bonzini return flatview_to_dispatch(address_space_to_flatview(as)); 34785a507eSPaolo Bonzini } 35022c62cbSPaolo Bonzini 3648564041SPaolo Bonzini FlatView *address_space_get_flatview(AddressSpace *as); 3748564041SPaolo Bonzini void flatview_unref(FlatView *view); 3848564041SPaolo Bonzini 39d197063fSPaolo Bonzini extern const MemoryRegionOps unassigned_mem_ops; 40d197063fSPaolo Bonzini 418629d3fcSAlexey Kardashevskiy void flatview_add_to_dispatch(FlatView *fv, MemoryRegionSection *section); 428629d3fcSAlexey Kardashevskiy AddressSpaceDispatch *address_space_dispatch_new(FlatView *fv); 438629d3fcSAlexey Kardashevskiy void address_space_dispatch_compact(AddressSpaceDispatch *d); 4466a6df1dSAlexey Kardashevskiy void address_space_dispatch_free(AddressSpaceDispatch *d); 459a62e24fSAlexey Kardashevskiy 46b6b71cb5SMarkus Armbruster void mtree_print_dispatch(struct AddressSpaceDispatch *d, 475e8fd947SAlexey Kardashevskiy MemoryRegion *root); 48022c62cbSPaolo Bonzini #endif 49022c62cbSPaolo Bonzini #endif 50