1 :Info: patch_ring_zero: prz:
2 2023-06-27 patch_ring_zero, prz
3
4 Syntax as a command:
5 prz SEGNAME OFFSET VALUES
6 prz SEGNO OFFSET VALUES
7
8
9 Function: allows privileged users to patch locations in ring 0. If
10 necessary, the descriptor segment is patched to give access to patch
11 a write-protected segment. Only one VALUE is required, the 2nd through
12 Nth are optional.
13
14
15 Arguments:
16 SEGNAME
17 is either a pathname, the name of a ring 0 segment, or an octal
18 segment number to the segment to be patched.
19 OFFSET
20 is the octal offset of the first word to be patched.
21 VALUES
22 One or more octal values to be patched, starting at the offset
23 specified by OFFSET. Only one value is required, although any
24 number can be specified.
25 SEGNO
26 is the octal segment number of a segment to be patched.
27
28
29 Access required: You need access to the hphcs_ gate.
30
31
32 Notes:
33 Historically, and when running on real Multics hardware, the prz
34 command presented issues due to the command's not taking into account
35 the Multics hardware CPU cache. It was therefore possible for someone
36 to patch a segment, while other processes were referencing potentially
37 old segment contents from the CPU hardware cache.
38
39 The dps8 simulator does not implement the Multics hardware cache
40 mechanism, so limitations on using prz are not necessary when running
41 on simulated hardware.
42
43 On real hardware that supports hardware cache on each CPU, use of prz
44 was usually done in a standone e.g. "boot stan" session, where the
45 Initializer process was the only non-hardcore process running. This was
46 done to avoid cache discrepancy issues with patched data words.
47
48
49 :hcom:
50 /****^ HISTORY COMMENTS:
51 1) change2023-07-05Swenson, approve2023-07-05MCR10136,
52 audit2023-07-05GDixon, install2023-07-07MR12.8-1061:
53 Created this info segment.
54 END HISTORY COMMENTS */
55