summaryrefslogtreecommitdiff
path: root/system/base/1.7.5/src/dataspace
blob: 3045a53bfc71179fb1074aadd03081bd2c04df1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
(* ------------------- VERSION 3     22.04.86 ------------------- *)
PACKET dataspace DEFINES 

    := ,
    nilspace ,
    forget ,
    type ,
    heap size ,
    storage ,
    ds pages ,
    next ds page ,
    blockout ,
    blockin ,
    ALIGN :


LET myself id field   = 9 ,
    lowest ds number  = 4 ,
    highest ds number = 255 ;

TYPE ALIGN = ROW 252 INT ;

OP := (DATASPACE VAR dest, DATASPACE CONST source ) : 
  EXTERNAL 70
ENDOP := ;
 
DATASPACE PROC nilspace : 
  EXTERNAL 69
ENDPROC nilspace ;
 
PROC forget (DATASPACE CONST dataspace ) :
  EXTERNAL 71
ENDPROC forget ;
 
PROC type (DATASPACE CONST ds, INT CONST type) :
  EXTERNAL 72
ENDPROC type ;
 
INT PROC type (DATASPACE CONST ds) :
  EXTERNAL 73
ENDPROC type ;
 
INT PROC heap size (DATASPACE CONST ds) :
  EXTERNAL 74
ENDPROC heap size ;

INT PROC storage (DATASPACE CONST ds) :
  (ds pages (ds) + 1) DIV 2
ENDPROC storage ;

INT PROC ds pages (DATASPACE CONST ds) :
  pages (ds, pcb (myself id field))
ENDPROC ds pages ;

INT PROC pages (DATASPACE CONST ds, INT CONST task nr) :
  EXTERNAL 88
ENDPROC pages ;

INT PROC next ds page (DATASPACE CONST ds, INT CONST page nr) :
  EXTERNAL 87
ENDPROC next ds page ;

PROC blockout (DATASPACE CONST ds, INT CONST page nr, code1, code2,
               INT VAR return code) :
  EXTERNAL 85
ENDPROC blockout ;

PROC blockin (DATASPACE VAR ds, INT CONST page nr, code1, code2,
              INT VAR return code) :
  EXTERNAL 86
ENDPROC blockin ;

ENDPACKET dataspace ;