9 DMSFRE, DMSFRET, or DMSFRES occurred.
An unexpected internal error
THE DMSFRES MACRO CMS uses the DMSFRES management services.
unpredictable results.
.acro to request special internal free storage Use of this macro by non-system routines causes
The format is: I label DMSFRES option
where "option" is one of the following:
INITl Performs the system first initialization routine.
INIT2 Performs the CMS system second initialization routine.
CHECK Invokes a routine that checks the validity of all current free
storage management pointers. CKON Sets a flag that causes the CHECK to be invoked for each call to DMSFREE or DMSFRET. CKOFF Turns off the above flag. UREC Assists ABEND recovery, by releasing all USER-type DMSFREE storage allocations. CALOC Assist ABEND recovery, by computing the total amount of allocated
storage, excluding the system disk MFD and the FREETAB table.
For a full discussion of the meanings of these options, refer to "DMSFRE Service Routines."
THE DMSKEY MACRO CMS uses the DMSKEY macro to modify the PSi storage protection key so
that the nucleus code can store data into protected storage. The format
is: NUCLEUS USER [label) DMSKEY {NUCLEUS[,NOSTACK]I USER(,NOSTACK)I LASTUSER[,NOSTACK]I RESET} The nucleus storage protection key is placed in the PSR, and
the old contents of the second byte of the PSi is saved in a
stack. Use of this option allows the program to store into
system storage, which is ordinarily protected.
The user storage protection key is placed in the PSi, and the
old contents of the second byte of the PSi is saved in a
stack. Use of this option prevents the program from inadvertently modifying nucleus storage, which is protected. CMS Method of Operation and Program Organization 2-111
LASTUSER The SVC handler traces back through its system save areas for
the active user routine closest to the top of the stack, and
the storage key in effect for that routine is placed in the PSi. The old contents of the second tyte of the PSi is saved
in a stack. This option should be used only by system routines that should enter a user exit routine. NOSTACK This option may be used with any of the above options to
prevent the system from saving the second byte of the current PSi in a stack. If this is done, then no DMSKEY RESET need be
issued later. RESET The seccnd byte of the PSW is changed to the value at the top
of the PSi key stack, and removed from the stack. Thus, the
effect of the last DMSKEY NUCLEUS or USER or LASTUSER request
is reversed. This option should may not be used to reverse
the effect of a DMSKEY macro for which the NOSTACK option was
specified. A DMSKEY RESET macro must be executed for each DMSKEY NUCLEUS, USER or LASTUSER macro that was executed and
that did not specify the NOSTACK option. Failure to observe
this rule results in program abnormal termination. THE DMSEXS MACRO System commands running in user protect status use the DMSEXS macro to
execute a single instruction with a system protect key in the PSi. This
macro instruction can be used in lieu of two DMSKEY macros. The format
is:
r--------------------------------------------------- I [label] I DMSEXS I op-code,operands
The op-code and the operands of the instruction to be executed must be given as arguments to the DMSEXS macro.
For example, execution of the sequence, USING NUCON,O DMSEXS OI,OSSFLAGS,COMPSiT would cause the 01 instruction to be executed with a zero protect key in
the PSi. This sequence would turn on the COMPSiT flag in the nucleus.
It would be reset with DMSEXS NI,OSSFLAGS,255-COMPSWT The instruction to be executed may be an EX instruction.
Register 1 cannot be used in any way in the instruction being
executed.
2-112 IBM VM/370 System Logic and Program Determination--Volume 2
Previous Page Next Page