diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2023-10-29 16:39:24 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2023-10-29 16:39:24 +0000 |
commit | 515f4d59b1b865bc25d2e139d545c24d83cb4212 (patch) | |
tree | d9ed0b27fb9d0a6c0a841486d8649a0e14baa697 | |
parent | 8b1e81d71f4d898c97460578fe282f2ebeb5a1de (diff) |
bcm64: remove sysreg.c
-rw-r--r-- | sys/src/9/bcm64/sysreg.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/sys/src/9/bcm64/sysreg.c b/sys/src/9/bcm64/sysreg.c deleted file mode 100644 index 1d892504e..000000000 --- a/sys/src/9/bcm64/sysreg.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * ARMv8 system registers - * mainly to cope with arm hard-wiring register numbers into instructions. - * - * these routines must be callable from KZERO. - * - * on a multiprocessor, process switching to another cpu is assumed - * to be inhibited by the caller as these registers are local to the cpu. - */ -#include "u.h" -#include "../port/lib.h" -#include "mem.h" -#include "dat.h" -#include "fns.h" - -static void* -mkinstr(ulong wd) -{ - static ulong ib[256], *ep[MAXMACH+1]; - static Lock lk; - ulong *ip, *ie; - - ie = ep[m->machno]; - for(ip = ib; ip < ie; ip += 2) - if(*ip == wd) - return ip; - - ilock(&lk); - ie = ep[MAXMACH]; - for(; ip < ie; ip += 2) - if(*ip == wd) - goto Found; - if(ip >= &ib[nelem(ib)]) - panic("mkinstr: out of instrucuction buffer"); - ip[0] = wd; - ip[1] = 0xd65f03c0; // RETURN - ep[MAXMACH] = ie = ip + 2; - cachedwbinvse(ip, 2*sizeof(*ip)); -Found: - iunlock(&lk); - cacheiinv(); - ep[m->machno] = ie; - return ip; -} - -uvlong -sysrd(ulong spr) -{ - uvlong (*fp)(void) = mkinstr(0xd5380000UL | spr); - return fp(); -} - -void -syswr(ulong spr, uvlong val) -{ - void (*fp)(uvlong) = mkinstr(0xd5180000UL | spr); - fp(val); -} |