kernel: Refactor arch_cpu_invalidate* methods to take a context parameter.

This will be useful on architectures that support ASIDs, and on
ones that don't, it can be used to avoid a race between invalidation
messages being sent and context switches occurring on other CPUs.

In this commit, no behavioral change intended on any architecture.

Change-Id: I6d2ee4b69150f9ff8503329761266ddbdb550eab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10349
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
Augustin Cavalier
2026-02-26 17:17:06 +00:00
committed by waddlesplash
parent afaeb2d45d
commit 3e1ccaf329
22 changed files with 93 additions and 93 deletions
+4 -4
View File
@@ -29,10 +29,10 @@ status_t arch_cpu_init_post_vm(struct kernel_args *args);
status_t arch_cpu_init_post_modules(struct kernel_args *args);
status_t arch_cpu_shutdown(bool reboot);
void arch_cpu_invalidate_TLB_range(addr_t start, addr_t end);
void arch_cpu_invalidate_TLB_list(addr_t pages[], int num_pages);
void arch_cpu_user_TLB_invalidate(void);
void arch_cpu_global_TLB_invalidate(void);
void arch_cpu_invalidate_tlb_range(intptr_t context, addr_t start, addr_t end);
void arch_cpu_invalidate_tlb_list(intptr_t context, addr_t pages[], int num_pages);
void arch_cpu_user_tlb_invalidate(intptr_t context);
void arch_cpu_global_tlb_invalidate(void);
void arch_cpu_sync_icache(void *address, size_t length);