def bd.sub

bend-osdev-caps@0.1.0.0 · PROOF.bend:918

import bend-osdev-caps@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-caps@0.1.0.0/caps.bend as C
import bend-osdev-caps@0.1.0.0/adjust.bend as A

918# prctl
919def bd.sub(+v: Bool, +sp: Bool, +c: C.CapCred, +x: U32) -> {C.CapSet.subset(C.CapState.bounding(C.CapCred.sets(C.Caps.or(A.CapAdjust.bset_drop.go(v, sp, c, x), c))), C.CapState.bounding(C.CapCred.sets(c))) == True{} : Bool}:
920  match v sp c:
921    case False{} sp c:
922      set.sub_refl(C.CapState.bounding(C.CapCred.sets(c)))
923    case True{} False{} c:
924      set.sub_refl(C.CapState.bounding(C.CapCred.sets(c)))
925    case True{} True{} C.CapCred{r, eu, sv, nr, na, C.CapState{+p, +i, +e, +b, +a}}:
926      set.sub_minus(b, C.CapSet.of(x))

Uses (12)

Used by (1)