diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-11-24 11:02:04 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-11-24 11:02:04 +0100 |
commit | e82b10ffb480c85a80af21d016f3f8a30db08156 (patch) | |
tree | 89b1b681187de6c6f936c966e9a7662ce4a65805 /sys/src/cmd/aux | |
parent | 518fd3ec8350a010e5ed6490e1106c66af8f4d02 (diff) |
disksim: don't assume 4-byte pointers
Diffstat (limited to 'sys/src/cmd/aux')
-rw-r--r-- | sys/src/cmd/aux/disksim.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/sys/src/cmd/aux/disksim.c b/sys/src/cmd/aux/disksim.c index 1f600a768..3d261ea54 100644 --- a/sys/src/cmd/aux/disksim.c +++ b/sys/src/cmd/aux/disksim.c @@ -20,8 +20,7 @@ enum { LOGBLKSZ = 13, BLKSZ = 1<<LOGBLKSZ, /* 8192 */ - LOGNPTR = LOGBLKSZ-2, /* assume sizeof(void*) == 4 */ - NPTR = 1<<LOGNPTR, + NPTR = BLKSZ/sizeof(void*), }; static uchar zero[BLKSZ]; @@ -251,12 +250,12 @@ getblock(vlong addr, int alloc) addr >>= LOGBLKSZ; oaddr = addr<<LOGBLKSZ; - i0 = addr & (NPTR-1); - addr >>= LOGNPTR; - i1 = addr & (NPTR-1); - addr >>= LOGNPTR; - i2 = addr & (NPTR-1); - addr >>= LOGNPTR; + i0 = addr % NPTR; + addr /= NPTR; + i1 = addr % NPTR; + addr /= NPTR; + i2 = addr % NPTR; + addr /= NPTR; assert(addr == 0); if((p2 = trip.dbl[i2]) == 0){ @@ -633,8 +632,6 @@ main(int argc, char **argv) file = nil; quotefmtinstall(); time0 = time(0); - if(NPTR != BLKSZ/sizeof(void*)) - sysfatal("unexpected pointer size"); ARGBEGIN{ case 'D': |