mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
accel/tcg: Remove page_protect
Merge the user-only page_protect function with the user-only implementation of tb_lock_page0. This avoids pulling page-protection.h into tb-internal.h. Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
aa6f138aba
commit
b103cc6e74
3 changed files with 4 additions and 10 deletions
|
@ -51,28 +51,23 @@
|
||||||
|
|
||||||
#endif /* CONFIG_SOFTMMU */
|
#endif /* CONFIG_SOFTMMU */
|
||||||
|
|
||||||
|
void tb_lock_page0(tb_page_addr_t);
|
||||||
|
|
||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
#include "user/page-protection.h"
|
|
||||||
/*
|
/*
|
||||||
* For user-only, page_protect sets the page read-only.
|
* For user-only, page_protect sets the page read-only.
|
||||||
* Since most execution is already on read-only pages, and we'd need to
|
* Since most execution is already on read-only pages, and we'd need to
|
||||||
* account for other TBs on the same page, defer undoing any page protection
|
* account for other TBs on the same page, defer undoing any page protection
|
||||||
* until we receive the write fault.
|
* until we receive the write fault.
|
||||||
*/
|
*/
|
||||||
static inline void tb_lock_page0(tb_page_addr_t p0)
|
|
||||||
{
|
|
||||||
page_protect(p0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void tb_lock_page1(tb_page_addr_t p0, tb_page_addr_t p1)
|
static inline void tb_lock_page1(tb_page_addr_t p0, tb_page_addr_t p1)
|
||||||
{
|
{
|
||||||
page_protect(p1);
|
tb_lock_page0(p1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void tb_unlock_page1(tb_page_addr_t p0, tb_page_addr_t p1) { }
|
static inline void tb_unlock_page1(tb_page_addr_t p0, tb_page_addr_t p1) { }
|
||||||
static inline void tb_unlock_pages(TranslationBlock *tb) { }
|
static inline void tb_unlock_pages(TranslationBlock *tb) { }
|
||||||
#else
|
#else
|
||||||
void tb_lock_page0(tb_page_addr_t);
|
|
||||||
void tb_lock_page1(tb_page_addr_t, tb_page_addr_t);
|
void tb_lock_page1(tb_page_addr_t, tb_page_addr_t);
|
||||||
void tb_unlock_page1(tb_page_addr_t, tb_page_addr_t);
|
void tb_unlock_page1(tb_page_addr_t, tb_page_addr_t);
|
||||||
void tb_unlock_pages(TranslationBlock *);
|
void tb_unlock_pages(TranslationBlock *);
|
||||||
|
|
|
@ -657,7 +657,7 @@ target_ulong page_find_range_empty(target_ulong min, target_ulong max,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void page_protect(tb_page_addr_t address)
|
void tb_lock_page0(tb_page_addr_t address)
|
||||||
{
|
{
|
||||||
PageFlagsNode *p;
|
PageFlagsNode *p;
|
||||||
target_ulong start, last;
|
target_ulong start, last;
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#include "exec/target_long.h"
|
#include "exec/target_long.h"
|
||||||
#include "exec/translation-block.h"
|
#include "exec/translation-block.h"
|
||||||
|
|
||||||
void page_protect(tb_page_addr_t page_addr);
|
|
||||||
int page_unprotect(tb_page_addr_t address, uintptr_t pc);
|
int page_unprotect(tb_page_addr_t address, uintptr_t pc);
|
||||||
|
|
||||||
int page_get_flags(target_ulong address);
|
int page_get_flags(target_ulong address);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue