Message ID | 20241114011310.3615-8-philmd@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | exec: Build up 'cputlb.h' and 'ram_addr.h' headers | expand |
On 11/13/24 17:12, Philippe Mathieu-Daudé wrote: > TARGET_PAGE_MASK is defined in "exec/cpu-all.h". > Include it in order to avoid when refactoring: > > system/watchpoint.c:52:24: error: use of undeclared identifier 'TARGET_PAGE_MASK' > 52 | in_page = -(addr | TARGET_PAGE_MASK); > | ^ > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > system/watchpoint.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/system/watchpoint.c b/system/watchpoint.c > index 2aa2a9ea63..f7366574a3 100644 > --- a/system/watchpoint.c > +++ b/system/watchpoint.c > @@ -20,6 +20,7 @@ > #include "qemu/osdep.h" > #include "qemu/error-report.h" > #include "exec/exec-all.h" > +#include "exec/cpu-all.h" > #include "hw/core/cpu.h" > > /* Add a watchpoint. */ Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
On 11/13/24 17:12, Philippe Mathieu-Daudé wrote: > TARGET_PAGE_MASK is defined in "exec/cpu-all.h". > Include it in order to avoid when refactoring: > > system/watchpoint.c:52:24: error: use of undeclared identifier 'TARGET_PAGE_MASK' > 52 | in_page = -(addr | TARGET_PAGE_MASK); > | ^ > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > system/watchpoint.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/system/watchpoint.c b/system/watchpoint.c > index 2aa2a9ea63..f7366574a3 100644 > --- a/system/watchpoint.c > +++ b/system/watchpoint.c > @@ -20,6 +20,7 @@ > #include "qemu/osdep.h" > #include "qemu/error-report.h" > #include "exec/exec-all.h" > +#include "exec/cpu-all.h" This uses TARGET_PAGE_MASK to choose between flushing one page or the entire tlb. Better would be to use tlb_flush_range_by_mmuidx(..., ALL_MMUIDX_BITS) to flush exactly one or two pages. That said, I've just noticed that tlb_flush_range_by_mmuidx does not properly handle addr+len that are not already page aligned. That can be fixed fairly easily. r~
diff --git a/system/watchpoint.c b/system/watchpoint.c index 2aa2a9ea63..f7366574a3 100644 --- a/system/watchpoint.c +++ b/system/watchpoint.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "qemu/error-report.h" #include "exec/exec-all.h" +#include "exec/cpu-all.h" #include "hw/core/cpu.h" /* Add a watchpoint. */
TARGET_PAGE_MASK is defined in "exec/cpu-all.h". Include it in order to avoid when refactoring: system/watchpoint.c:52:24: error: use of undeclared identifier 'TARGET_PAGE_MASK' 52 | in_page = -(addr | TARGET_PAGE_MASK); | ^ Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- system/watchpoint.c | 1 + 1 file changed, 1 insertion(+)