summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorn <@>2024-01-07 21:24:08 +0200
committern <@>2024-01-07 21:24:08 +0200
commit1e4c9774f13b9c033c4a7c27f36ee05037e10e42 (patch)
treed750623e2c2e7b39784779132b3ec39897d8ae59
parent91118e4d181a1ad3fa90fe4012a853ad98fdd363 (diff)
m.c
-rw-r--r--m.c31
1 files changed, 10 insertions, 21 deletions
diff --git a/m.c b/m.c
index 99db0387..bbdbb332 100644
--- a/m.c
+++ b/m.c
@@ -14,24 +14,23 @@ A mf(U f,U i,U n)_(V*p=mm(pg+n,1);P(!p,eo0())P(mmap(p+pg,n,PROT_READ|PROT_WRITE,
Z A bkt[24];DBG(Z U lck;)
Z W cap(A x/*0*/)_((HD<<xb)-HD)
Z A mb(U i)_(P(i>=L(bkt),V*p=mm(HD<<i,0);P(!p,die("OOM"))HD+(A)p)A x=bkt[i];P(x,bkt[i]=xX;DBG(xX=0);x)x=mb(i+1);A y=x+(HD<<i);MS(yV-HD,0,HD);yb=i;yX=bkt[i];bkt[i]=y;x)
-A1(m0,DBG(lck++;)Q(x)P(_t0(x),0)P(xr>REFB,xr--;0)I(TR(xT),mrn(xn|!xn,xA);xT=tL)U i=xb;P(!i,mu(xV-pg))P(i>=L(bkt),mu(xV-HD))xX=bkt[i];bkt[i]=x;xr=0;x)
+A1(m0,DBG(lck++;)Q(x)XP(0)P(xr>REFB,xr--;0)I(TR(xT),mrn(xn|!xn,xA);xT=tL)U i=xb;P(!i,mu(xV-pg))P(i>=L(bkt),mu(xV-HD))xX=bkt[i];bkt[i]=x;xr=0;x)
DBG(A1(m1,lck--;P(!x||!xb,0)MS(xV,0xab,cap(x));xn=-1;xT=0;0))
-A1(_R,Q(x)P(_t0(x),x)xr++;x)
+A1(_R,Q(x)XP(x)xr++;x)
A1(mr,DBG(m1)(m0(x)))
V mRn(U n,CO A*a){F(n,_R(a[i]))}
V mrn(U n,CO A*a){F(n,mr(a[i]))}
A1(mRa,mRn(xn,xA);x)
-A an(U n,C t)_(Q(!lck)Q(tA<=t)Q(t<tn)Q(!TP(t))U i=59-CLZ(HD|HD-1+(((W)n<<Tw[t])+7>>3));A x=mb(i);xb=i;xr=REFB;xT=t;xn=n;x)
+NI A an(U n,C t)_(Q(!lck)Q(tA<=t)Q(t<tn)Q(!TP(t))U i=59-CLZ(HD|HD-1+(((W)n<<Tw[t])+7>>3));A x=mb(i);xb=i;xr=REFB;xT=t;xn=n;x)
A aV(C t,U n,CO V*v)_(A x=an(n,t);MC(xV,v,((W)n<<Tw[t])+7>>3);x)
A aa(U n,A x/*1*/)_(P(MINE(x)&&((W)n<<xw)+7>>3<=cap(x),AN(n,x))A y=an(n,xt);MC(yV,xV,((W)xn<<Tw[xt])+7>>3);I(ytR,I(MINE(x),AZ(x))E(mRn(xn,xA)))x(y))//realloc
A aA0(U n)_(A x=AN(0,aA(n));xx=emp(tC);x)
-Z A a2t(A x,A y,C t/*11t*/)_(A z=an(2,t);zx=x;zy=y;z)
-A1(aA1,A y=an(1,tA);yx=x;y)
-A2(aA2,/*11*/a2t(x,y,tA))
-A3(aA3,/*111*/A u=an(3,tA);ux=x;uy=y;uz=z;u)
-A2(aM,/*11*/Q(xtMT)Q(ytA )Q(xN==yN)a2t(x,y,tM))
-A2(am,/*11*/Q(xtMT)Q(ytMT)Q(xN==yN)a2t(x,y,tm))
+A1(aA1,aV(tA,1,&x))
+A2(aA2,/*11*/aV(tA,2,A(x,y)))
+A3(aA3,/*111*/aV(tA,3,A(x,y,z)))
+A2(aM,/*11*/Q(xtMT)Q(ytA )Q(xN==yN)aV(tM,2,A(x,y)))
+A2(am,/*11*/Q(xtMT)Q(ytMT)Q(xN==yN)aV(tm,2,A(x,y)))
A aA(U n)_(an(n,tA))
A aB(U n)_(an(n,tB))
A aG(U n)_(an(n,tG))
@@ -112,15 +111,5 @@ ZN A1(ox,o8(x);osd(" b",xb);C t=xT;os(" t");I(LH(1,t,tn),ow(&TS[t],1))E(od(t))os
#define OBS(a...) RGS(A x=(A)(p+HD*!f+pg*f),y=(A)q;W(x<y,a;x+=HD<<xb))
#define XYS(a...) OBS(I(xtR,F(xn|!xn,A y=xa;a)))
#define RTS(a...) {A x=cns;a;F(gn,I(x=gv[i],a))}
-A bsm(S s)_(
- XYS(I(!ytP,yr--))
- RTS(I(!xtP,xr--))
- OBS(I(xr,os("!refc:");ox(x)))
- RTS(I(!xtP,xr++))
- XYS(I(!ytP,yr++))
- OBS(I(xT>=tn,os("!type:");ox(x)))
- OBS(I(xtA&&!xn&&!xx,os("!prot:");ox(x)))
- XYS(I(!yt,os("!dngl:");ox(x);ox(y)))
-// I n=0;OBS(ox(x);n++);osd("nObjs:",n)
-// os("mapped regions:\n");RGS(os(f?"[f] ":"[x] ");o8((L)p);os("-");o8((L)q);osd(" N",q-p);os("\n"));os("\n");
- au)
+A bsm(S s)_(XYS(I(!ytP,yr--))RTS(I(!xtP,xr--))OBS(I(xr,os("!refc:");ox(x)))RTS(I(!xtP,xr++))XYS(I(!ytP,yr++))
+ OBS(I(xT>=tn,os("!type:");ox(x)))OBS(I(xtA&&!xn&&!xx,os("!prot:");ox(x)))XYS(I(!yt,os("!dngl:");ox(x);ox(y)))au)