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:
Richard Henderson 2025-03-27 16:48:09 -05:00
parent aa6f138aba
commit b103cc6e74
3 changed files with 4 additions and 10 deletions

View file

@ -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 *);

View file

@ -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;

View file

@ -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);