These are the primary tool of space banks{(p2,bank)}. All calls to range keys {including sever} are as prompt as the space being accessed.
PRANGE(5,((4,rcda)); ==> c;K) is the same as order code 0 except that if the page is not on any mounted disk, c is 2.
{ni}PRANGE(?,((4,n),(4,m));==>c;PR) returns a new page range key PR whose range is a subrange of the range of PRANGE if n+m is less than the size of the range of PRANGE {otherwise c will be -1 and no key will be returned}. f(0) for the new key will be f(n) for the old key. The new key will be for m CDA's.
If (K is not a page key with RO off or there exists no number x such that f(x) is K's CDA) and 1 <= n <= 4 or n=6 then PRANGE(n;K==>-1;). If K is a page key with RO off and there exists a {unique} integer x such that the coded disk address of the page is f(x), then:
PRANGE(2;K==>0;) {"sever"} changes all slots holding keys to the page designated by K to hold DK(0). Fine print: If the page being severed is the parameter page of the sever operation, the effect is unpredictable.
PRANGE(6;K==>0;) {"sever and zero"} is like sever {(sever)} but clears the page to zeros as well.
PRANGE(3;K==>0;) makes the page gratis.
PRANGE(4;K==>0;) makes the page non-gratis.
With FBA disks we can get the CDA cheap without the rest of the page.
These keys are restricted merely because we wish to keep for a while longer the freedom to change their architecture and we think there is no great need to spread them widely.
Applications can use range keys directly if rescinding is done by abandoning a range of CDAs. This is feasible with six byte CDAs (the current size). This requires reformating packs in order to ensure that the application or its assignees can no longer access the disk.
See (p3,scrut).