mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-12 09:05:28 +00:00
1591f208c0
As we are going to share FlatView's between AddressSpace's, and AddressSpaceDispatch is a structure to perform quick lookup in FlatView, this moves ASD to FlatView. After previosly open coded ASD rendering, we can also remove as->next_dispatch as the new FlatView pointer is stored on a stack and set to an AS atomically. flatview_destroy() is executed under RCU instead of address_space_dispatch_free() now. This makes mem_begin/mem_commit to work with ASD and mem_add with FV as later on mem_add will be taking FV as an argument anyway. This should cause no behavioural change. Backports commit 66a6df1dc6d5b28cc3e65db0d71683fbdddc6b62 from qemu
40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
/*
|
|
* Declarations for obsolete exec.c functions
|
|
*
|
|
* Copyright 2011 Red Hat, Inc. and/or its affiliates
|
|
*
|
|
* Authors:
|
|
* Avi Kivity <avi@redhat.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or
|
|
* later. See the COPYING file in the top-level directory.
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* This header is for use by exec.c and memory.c ONLY. Do not include it.
|
|
* The functions declared here will be removed soon.
|
|
*/
|
|
|
|
#ifndef MEMORY_INTERNAL_H
|
|
#define MEMORY_INTERNAL_H
|
|
|
|
#ifndef CONFIG_USER_ONLY
|
|
typedef struct AddressSpaceDispatch AddressSpaceDispatch;
|
|
|
|
extern const MemoryRegionOps unassigned_mem_ops;
|
|
|
|
bool memory_region_access_valid(MemoryRegion *mr, hwaddr addr,
|
|
unsigned size, bool is_write);
|
|
|
|
void mem_add(AddressSpace *as, FlatView *fv, MemoryRegionSection *section);
|
|
AddressSpaceDispatch *mem_begin(AddressSpace *as);
|
|
void mem_commit(AddressSpaceDispatch *d);
|
|
|
|
AddressSpaceDispatch *address_space_to_dispatch(AddressSpace *as);
|
|
AddressSpaceDispatch *flatview_to_dispatch(FlatView *fv);
|
|
void address_space_dispatch_free(AddressSpaceDispatch *d);
|
|
|
|
#endif
|
|
#endif
|