diff options
author | n <@> | 2024-01-07 21:24:08 +0200 |
---|---|---|
committer | n <@> | 2024-01-07 21:24:08 +0200 |
commit | 1e4c9774f13b9c033c4a7c27f36ee05037e10e42 (patch) | |
tree | d750623e2c2e7b39784779132b3ec39897d8ae59 | |
parent | 91118e4d181a1ad3fa90fe4012a853ad98fdd363 (diff) |
m.c
-rw-r--r-- | m.c | 31 |
1 files changed, 10 insertions, 21 deletions
@@ -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) |