From 6f9838a6a5b80e0253bdc8fb194ad6f15eb655f5 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 16 Jan 2022 19:25:11 +0000 Subject: kernel: make Page.txtflush into an array To avoid a MAXMACH limit of 32 and make txtflush into an array for the bitmap. Provide portable macros for testing and clearing the bits: needtxtflush(), donetxtflush(). On pc/pc64, define inittxtflush()/settxtflush() as no-op macros, avoiding the storage overhead of the txtflush array alltogether. --- sys/src/9/ppc/mmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/src/9/ppc') diff --git a/sys/src/9/ppc/mmu.c b/sys/src/9/ppc/mmu.c index 59e59c229..cc7f28380 100644 --- a/sys/src/9/ppc/mmu.c +++ b/sys/src/9/ppc/mmu.c @@ -245,10 +245,10 @@ putmmu(uintptr va, uintptr pa, Page *pg) q[0] = ptehi; q[1] = pa; - if(pg->txtflush & (1<machno)){ + if(needtxtflush(pg)){ dcflush((void*)pg->va, BY2PG); icflush((void*)pg->va, BY2PG); - pg->txtflush &= ~(1<machno); + donetxtflush(pg); } } -- cgit v1.2.3