1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 prds_init: proc (pp, tag, idle_ptr);
20
21 dcl pp ptr,
22 idle_ptr ptr,
23 tag fixed bin (3);
24
25 dcl p1 ptr,
26 code fixed bin (35),
27 basedptr ptr based (pp),
28 basedbit36 bit (36) aligned based (pp),
29 basedfixed fixed bin(17) based (pp) ;
30
31
32
33
34 dcl fast_connect_init entry (ptr, fixed bin (3), fixed bin (35));
35 dcl syserr entry options (variable);
36
37 dcl prds$ fixed bin ext,
38 prds$cache_luf_reg bit (36) aligned ext,
39 prds$processor_tag ext bit (36) aligned,
40 prds$idle_ptr ptr ext;
41
42 dcl (addr, null, ptr, rel, size) builtin;
43
44 ^L
45
46 % include stack_header;
47
48 ^L
49
50
51
52
53 sb = addr (prds$);
54 pp -> stack_header_overlay = sb -> stack_header_overlay;
55
56 pp -> stack_header.signal_ptr = null ();
57 pp -> stack_header.sct_ptr = null ();
58
59 p1 = ptr (pp, rel (addr (prds$cache_luf_reg)));
60 p1 -> basedbit36 = "000000000003"b3;
61
62 p1 = ptr (pp, rel (addr (prds$processor_tag)));
63 p1 -> basedfixed = tag;
64
65 p1 = ptr (pp, rel (addr (prds$idle_ptr)));
66 p1 -> basedptr = idle_ptr;
67
68 call fast_connect_init (pp, tag, code);
69 if code^=0
70 then call syserr (1, "prds_init: Invalid size for prds$fast_connect_code");
71
72 return;
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 end prds_init;