From 2eabedc761bb883e9eea44168275d22dc5e5d084 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Mon, 25 May 2020 22:51:05 -0400 Subject: [PATCH] Aux memory support seems to be working (disabled by default) --- sortdir.c | 14 ++++++++++++-- sortdir.po | Bin 143360 -> 143360 bytes 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sortdir.c b/sortdir.c index 04ebe12..b4a1a9b 100644 --- a/sortdir.c +++ b/sortdir.c @@ -1327,7 +1327,6 @@ int readdir(uint device, uint blocknum) { copyaux(dirblkbuf, curblk->data, BLKSZ, TOAUX); bzero(dirblkbuf + PTRSZ, BLKSZ - PTRSZ); copyaux(dirblkbuf, curblk->sorteddata, BLKSZ, TOAUX); - freeallaux(); #else memcpy(curblk->data, dirblkbuf, BLKSZ); bzero(dirblkbuf + PTRSZ, BLKSZ - PTRSZ); @@ -1620,7 +1619,6 @@ uint blockidxtoblocknum(uint idx) { /* * Copy a file entry from one srcblk, srcent to dstblk, dstent * All indices are 1-based. - * TODO: HANDLE AUX MEMORY */ void copyent(uint srcblk, uint srcent, uint dstblk, uint dstent, uint device) { struct block *source = blocks, *dest = blocks; @@ -1642,10 +1640,19 @@ void copyent(uint srcblk, uint srcent, uint dstblk, uint dstent, uint device) { dest = dest->next; srcptr = source->data + PTRSZ + (srcent-1) * entsz; dstptr = dest->sorteddata + PTRSZ + (dstent-1) * entsz; +#ifdef AUXMEM + copyaux(srcptr, buf2, entsz, FROMAUX); + copyaux(buf2, dstptr, entsz, TOAUX); +#else memcpy(dstptr, srcptr, entsz); +#endif /* For directories, update the parent dir entry number */ +#ifdef AUXMEM + ent = (struct pd_dirent*)buf2; +#else ent = (struct pd_dirent*)dstptr; +#endif if ((ent->typ_len & 0xf0) == 0xd0) { uint block = ent->keyptr[0] + 256U * ent->keyptr[1]; if (readdiskblock(device, block, buf) == -1) @@ -1920,6 +1927,9 @@ void processdir(uint device, uint blocknum) { } done: freeblocks(); +#ifdef AUXMEM + freeallaux(); +#endif } /* diff --git a/sortdir.po b/sortdir.po index d0f607e2577ee57c6940dca2b2dcce3579f23c8d..0df1b7207cde1d86f145ace211c9118a000c3045 100644 GIT binary patch delta 24070 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 QwoUq%_7y+W{a`Qn|E(E2+yDRo delta 24602 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 aTlTH{JJpsKYDj-tdA4BP_dCD05BdN1g(=