MPE/iX System Utilities Reference Manual (32650-90908)

Chapter 22
SOMPATCH
Operation
191
| |
------------------------
ProcA + 00xx-->| Proc B’s Level 2 code| <-- code being patched
| |
ProcB + 0000-->------------------------
| |
| Proc B -- Level 1 |
------------------------
The patch instruction may have the following syntax, but the
second represents the preferred method:
1) Modify ProcA + 00xx
OR
2) Modify ProcB - 00yy (Where ProcA + xx + yy = ProcB)
When the multi-SOM NL is linked, the two relocatable object files are sometimes no longer congruent. If they
are not congruent, the positive offset from the first level 1 procedure is no longer valid.
There are different ways of dealing with this problem. The easiest way is to specify a patch as a negative
offset from the level 1 procedure that owns the level 2 procedure being patched ( 2) in the example above). The
SOMPATCH utility contains the SYMBOL command, which determines the procedure name of the level 1
procedure that owns the level 2 procedure containing the patched instruction, plus the negative offset of the
patch from the level 1 procedure entry point.
Error Message
No such symbol
CAUSE A symbol was given that is not in the library symbol table.
ACTION Try the FIND command, and use the @ feature.
USE
This command causes a patch to read an input file of patch instructions, and to implement the instructions.
If there is an error such as an undefined symbol in a MODIFY command, an error message is generated, and
the program continues to execute.
If the file specified is not present, an error message is generated, and the JCWs are set to their respective
FATAL status.
When the end of the patch file is reached, the program returns to the MPE/iX CI.
Syntax
US[E ] filename
Parameters
filename Filename is the name of the script file to be used. The group and account default to logon if
not specified.